33 ms·
Helix: a post-modern modal text editor
- 0xcoffee 5y agoFYI I didn't see Windows support listed on the installation page (https://docs.helix-editor.com/ https://docs.helix-editor.com/), but it seems to be available on the releases (https://github.com/helix-editor/helix/releases https://github.com/helix-editor/helix/releases)
- laszlokorte 5y agoI get this error when trying to run the latest release on windows > thread 'main' panicked at 'index out of bounds: the len is 2856 but the index is 2856', helix-tui\src\buffer.rs:185:14
- eddieh 5y agoI got a panic like that on macOS too.
- rhabarba 5y agoLooks like a confusing mix between BRIEF (which I like) and micro (which I like). However, I'm afraid that there is no niche to be filled by yet another text editor. (Also, even though I'm an Emacs and Acme user, the assumption that VimScript is bad for the battery is... weird. Mind to elaborate?)
- rosetremiere 5y agoLooks neat! But I'm not sure I follow: what's LSP support like (say compared to coc.nvim)?
- archseer 5y agoIt's not as full featured as coc yet, but I've been adding things as I run into them, so far: - completion - documentation help/hover - formatting - diagnostics - go to (definition, reference, etc)
- hollerith 5y agoUses Kakoune, which uses ncurses.
- msoad 5y agoI never really felt faster eliminating mouse from my coding workflow. Point and click to navigate things is pretty powerful. Why some devs try to avoid the mouse?
- smoldesu 5y agoModal editors in particular can be a mixed bag, they do seem a little out of place in the world of IDEs and Visual Studio Code, but I'd be lying if I said I don't use them heavily. The main appeal for something like this is to keep your hands on the keyboard so you can focus on writing. > Why some devs try to avoid the mouse? Because a keyboard is a much better peripheral to use when you're SSHing into your server. A mouse also has a much higher latency ceiling to execute most commands because it requires much more spacial awareness and brainpower to perform the task than just invoking the keybind. When you move your mouse to hover over a "send" button on an email client, your body is performing subconscious inverse kinematics to try to figure out how far to push the mouse, and when to stop. You can then only click once your mouse successfully lands in the designated area, at which point an additional 50-500ms of latency will ensue, depending on what UI framework your text editor is based off of.
- fpoling 5y agoFor me the appeal of Vim-type editors is that I do not need to learn new shortcuts when switching between Mac, Linux and Windows that I have to do at work periodically. This is a reason I use a Vim plugin with VS-Code with few custom keybindings to minimize the usage of Ctrl key.
- paxys 5y agoIMO part of the reason is cultural. Computing became mainstream only after the mouse and GUI were invented, but programmers have been at it since well before that. So now it's somewhat of a badge of honor that you can be as productive without the newer conveniences. This apples to any new tools or processes like IDEs or linting as well. There was a very distinguished engineer at my company who chastised young engineers for using graphical step-through debugging.
- m1cl 5y agoHow can I use LSP?
- dmos62 5y agoI'd use this if I were starting out now (and wasn't accustomed to vim).
- TedDoesntTalk 5y agoWhat exactly is post-modern about this? Perhaps the author means 'retro'.
- frob 5y agoThe author answers this directly on the page: > Post-modern?! > It's a joke. If neovim is the modern vim, then helix is post-modern.
- IncRnd 5y ago> What exactly is post-modern about this? Perhaps the author means 'retro'. That's the absolute first question answered on the linked page. FAQ Post-modern?! It's a joke. If neovim is the modern vim, then helix is post-modern.
- CyberDildonics 5y agoI don't know why people put up with this stuff. With something like this it is just a nonsensical joke to make a clickbait title that immediately gets walked back. I never thought people would adamantly defend links like this - "sure they made up something that makes no sense, but they back peddle once you click the link" Not only that, this isn't even a text editor, it is a front end for neovim.
- bovermyer 5y ago"Front end for neovim?" Perhaps you should read the source code before saying such things.
- IncRnd 5y ago> Not only that, this isn't even a text editor, it is a front end for neovim. Why do you believe this is a front-end for neovim and not a text editor?
- bern4444 5y agoIts funny and pokes fun at the larger conversation but I hear you. Though I think its fair since neo vim is referred to and means new vim. The author here likely believes helix to be more modern than neo vim hence, post modern. Whatever, I'm sure you understood that. I enjoyed the humor and think its fair
- maxqin1 5y ago> The whole design is based around multiple selections as an editing primitive This makes a lot of sense and I wish it were easier to do elsewhere. Probably wouldn't leave the vs code ecosystem for this alone, though.
- cestith 5y agoI take slight issue with the joke around "postmodern". Modernism and postmodernism are actual things. Modern means a new way to do something without much influence from the older ways. Postmodern means looking at multiple ways something has been done over time then extracting and combining a sets of the good ways from any time and tradition into a new, workable whole. Saying something is postmodern because it came out after something modern cheapens the word. What I really want from another Vim replacement is why it's better than neovim, not jokes about usurping Vim at the expense of the English language. I think that's presumptuous at best and I don't find it very funny to claim to be better because it's newer.
- throwamon 5y agoIt's a joke. Such is the nature of jokes: not taking it seriously.
- wodenokoto 5y agoDo you have sources to back up those definitions? The Oxford dictionary on my iPhone don’t really agree with your assessment and Wikipedia considers postmodern a specific period in time (mid to late 19 hundreds)
- cestith 5y agohttps://www.merriam-webster.com/dictionary/postmodern https://www.merriam-webster.com/dictionary/postmodern https://plato.stanford.edu/entries/postmodernism/ https://plato.stanford.edu/entries/postmodernism/ https://www.wordnik.com/words/postmodern https://www.wordnik.com/words/postmodern https://www.thecollector.com/modernism-vs-postmodernism/ https://www.thecollector.com/modernism-vs-postmodernism/ https://www.webpages.uidaho.edu/engl_258/Lecture%20Notes/modernism_vs_postmodernism.htm https://www.webpages.uidaho.edu/engl_258/Lecture%20Notes/mod... Considering specifically that you mentioned Wikipedia: https://en.wikipedia.org/wiki/Postmodernism https://en.wikipedia.org/wiki/Postmodernism "Postmodernism is generally defined by an attitude of skepticism, irony, or rejection toward what it describes as the grand narratives and ideologies associated with modernism, often criticizing Enlightenment rationality and focusing on the role of ideology in maintaining political or economic power. Postmodern thinkers frequently describe knowledge claims and value systems as contingent or socially-conditioned, framing them as products of political, historical, or cultural discourses and hierarchies. Common targets of postmodern criticism include universalist ideas of objective reality, morality, truth, human nature, reason, science, language, and social progress. Accordingly, postmodern thought is broadly characterized by tendencies to self-consciousness, self-referentiality, epistemological and moral relativism, pluralism, and irreverence." and later "Postmodernism is an intellectual stance or mode of discourse[1][2] defined by an attitude of skepticism toward what it describes as the grand narratives and ideologies of modernism, as well as opposition to epistemic certainty and the stability of meaning.[3] It questions or criticizes viewpoints associated with Enlightenment rationality dating back to the 17th century,[4] and is characterized by irony, eclecticism, and its rejection of the "universal validity" of binary oppositions, stable identity, hierarchy, and categorization."
- jll29 5y agoBoehm, Atkinson and Plass (1995) proposed ropes as an alternative to strings for use in text editors. hx uses the Ropey crate (Rust library) to implement ropes: https://crates.io/crates/ropey https://crates.io/crates/ropey Boehm, Hans-J., Russ Atkinson and Michael Plass (1995) "Ropes: an alternative to strings", Software—Practice & Experience 25: 1315–1330, DOI: 10.1002/spe.4380251203, https://dl.acm.org/doi/10.1002/spe.4380251203 https://dl.acm.org/doi/10.1002/spe.4380251203 (cited 2021-06-01).
- gnull 5y agoRopes is a performance improving technique, not a conceptually new model to think about strings, isn't it?
- nielsbot 5y agoDepends if you're talking from the perspective of the API client or the string storage implementor's.
- giovannibonetti 5y agoInteresting, could you elaborate on that?
- malthejorgensen 5y agoMy impression is that most editors already use this or similar optimized data structures for representing the text internally.
- KirillPanov 5y agoEmacs uses a much less advanced data structure called a "gap buffer": https://www.gnu.org/software/emacs/manual/html_node/elisp/Buffer-Gap.html https://www.gnu.org/software/emacs/manual/html_node/elisp/Bu... https://news.ycombinator.com/item?id=15199642 https://news.ycombinator.com/item?id=15199642 It's basically just two stacks of lines, where a line is an array of characters. One stack has the lines before the cursor, the other has the lines after the cursor (in reverse order). I use emacs, but ropes are a much better way to go if you're starting from scratch.
- ljm 5y agoIt's great to see more projects in the space, but for me it's not really about the editor itself any more, it's about the ecosystem and the extensibility. The act of selecting and changing text is just a small part of the problem space. I use emacs not because I'm a neckbeard, but because I can script it to do whatever the hell I like. I switch to vscode when I want to do something my emacs setup isn't yet good for (like, working with Typescript). On the flip side, I use sublime text as a notepad replacement because it's that fast. I still use nano as my default editor for commit messages. Sometimes I use vim because that's what I happened to type to open a file. This isn't a comment on helix editor itself...just that, it's a pretty saturated space and I'm keen to see something as novel as light table play out again, but only more successfully.
- zygy 5y agohttps://blog.robenkleene.com/2020/09/21/the-era-of-visual-studio-code/ https://blog.robenkleene.com/2020/09/21/the-era-of-visual-st...
- thomasahle 5y agoIt's interesting he values company management so much. What's stopping Microsoft from one day abandoning VS Code, like Atom was abandoned? Is Microsoft even making any money from it?
- hizanberg 5y agoIt’s a play for dev mindshare where they get to control the platform and have access to devs using their software, they have no intentions of making money from it directly only to maximize its appeal & marketshare. It’s a cross-platform dev environment they can easily deliver extensions to connect to their commercial products. There’s no point in them continuing to invest in fragmenting the dev community by developing 2 competing platforms now that they own GitHub so I’m not expecting to see any increased investments in Atom.
- azalemeth 5y ago
- groby_b 5y agoI'm intrigued (because I like to see experiments in the modal editing space), but I'd really appreciate a "why" section. The editor space is crowded, and I like understanding which pain points new ones address. I mean, "neovim, but in Rust" is a perfectly valid decision, but is it the only reason? It looks like this might be an ongoing experiment for the author? (See also the github remark on alternate renderers)
- habitmelon 5y agoMultiple selections as a language primitive feels like a language smell. Why use languages with that much redundancy in their syntax?
- qwerty456127 5y agoMultiple selections is what makes an editor modern. An editor which can't do that easily feels obsolete.
- ConanRus 5y agono M-x ?? we don't need this editor then.
- lalaithion 5y agoThe one page you should add to the documentation is "differences from Vim". For example, https://github.com/purescript/documentation/blob/master/language/Differences-from-Haskell.md https://github.com/purescript/documentation/blob/master/lang... makes picking up PureScript as a Haskell programmer much easier than having to read all of the documentation and do the diff yourself.
- exDM69 5y agoIt says it's based on Kakoune, so you could look into kak docs instead, which describe difference from Vim, and it is indeed different. If the old joke "plan9 is more Unix than Unix" is true, then "Kakoune is more vi than vim". There are similarities but it is a different beast.
- totony 5y agoIt doesn't explain why this instead of kakoune:(
- gaoshan 5y agoThis was my observation before actually reading the post... a reaction to the title. If you visit the actual site you will see that the author points out that the use of "post-modern" is intended to be a joke (which I quite like, lol): From an art perspective "postmodern" would be something that challenged the concept of modernism. That would be work based on idealism and reason vs that based on scepticism and suspicion of reason. Since that doesn't really apply to this editor perhaps this editor is simply a modern editor?
- beepbooptheory 5y agojust a nit-pick but I would push back on the notion that the only thing that came to challenge modernity was neo-Idealism, neo-Rationality. I have never seen any one really define post-modernism that way, and in fact such things are just as challenged by postmodernity! Postmodernity is first and foremost a loose collection of tendencies post-WWII. I also agree its cute that its a little joke. maybe something that makes/or would make it a true PoMo editor is an effort in juxtaposing modern vscode-IDE stuff onto an older terminal aesthetic
- jbverschoor 5y agoI'm happy with VScode, but lately I'm starting to want text-mode UI. More grid, one font, less colors, no icons. Not just for my text editor, but for everything. I don't want everything to look like a glossy magazine. Norton commander, power menu, borland c.. Just let me focus on some text.
- mxuribe 5y agoI've had a similar desire recently...my reason is because regardless of the power of my desktop machine, I've grown impatient waiting for applications to load...but I encounter no such issues with apps that employ more text-mode UIs. TUIs - in my mind now - are a godsend; ironic that they're considered a "throw back" to "the older days of computing".
- seumars 5y agoYou can always start using Sublime Text.
- mxuribe 5y agoI've been on the fence for a while now...i hear so many good things about sublime text...but I just can't get beyond the non-open sourced aspect.
- seumars 5y agoI don't understand the argument against proprietary software. Luckily it's free to download and try, so you might as well start now :^)
- agumonkey 5y agoborland TUI was so neat
- bern4444 5y agoThat's exactly why I really dislike a lot of IDEs and editors. I've been using (n)vim for 3+ years now as my main editor. A big value of (neo)vim is the lack of clutter and how easy it is to bring up and hide windows/buffers when I need them. Editors like VSCode and IntelliJ are just too noisy and gets in the way of the actual coding. I know they can all be customized and configured to reduce this issue, but even then it still feels more visually cluttered and those windows usually end up coming back somehow.
- GekkePrutser 5y agoThis looks really good. Especially the No Electron part <3
- flakiness 5y agoThis seems something I can love, will give it a shot. I switched from Emacs to VSCode but occasionally misses the editor-in-the-terminal-without-project-setup. I use vim when I'm forced by, say git, but I can barely copy-n-pate and undo, and I have no desire to learn the decades old tool. It's too anti-fancy to spend my precious spare time. As a backup, I'd love to hear how to learn vim as a something modern and fancy. I'm happy to be convinced.
- vbsteven 5y agoIn my opinion the only way to learn vim is to fully commit to it: Use it as your only editor and every time you hit a wall, spend the time to learn and unblock yourself. Productivity will take a serious hit for weeks, likely months. I did this 10 years ago and never looked back. Although in the last years I have evolved to an 80/20 JetBrains/vim split. Using the excellent IdeaVIM plugin to bring all my vim skills and configs to a full IDE.
- juniperplant 5y agoWhat do you think about using vim emulation in VSCode? For me it seems impossible to be productive without the ecosystem of extensions VSCode provides. I am intrigued by the power of modal editing, but going all-in vim seems a step back with regard do "modern" development workflows. In vim it appears you have to configure every piece of it from scratch, while in VSCode if you pick a new language it's usually enough to install an extension and you're good to go.
- vbsteven 5y agoI suppose vim emulation also works if the emulation plugin is good. The point is to make the switch and stick to it even though you will be slower for a while. And spend the time to look for better approaches when you feel like you are repeating yourself. (Just like you get that DRY itch to refactor when repeating the same code snippet a few times)
- PaulDavisThe1st 5y agoThat first trick in the video - select some text, do multi-site replacement - how do I do this in Emacs (35 year user, but have no idea :)
- jimm 5y agoIf you select a region with transient mode on, then `query-replace` (`M-%` by default) will only affect the region. So select the region you want the change to effect (just like in the demo video), hit `M-%`, then type the old and new text, then you can type `!` when prompted for what to do and all instances of old become new only within the region.
- natrys 5y agoThere is multiple cursors[1]. Checkout the video by emacsrocks[2]. You can combine that with regex tools if you need to do this over complex patterns[3]. There is also iedit which may fit your mental model better[4]. [1] https://github.com/magnars/multiple-cursors.el https://github.com/magnars/multiple-cursors.el [2] http://emacsrocks.com/e13.html http://emacsrocks.com/e13.html [3] https://github.com/benma/visual-regexp-steroids.el https://github.com/benma/visual-regexp-steroids.el [4] https://github.com/victorhge/iedit https://github.com/victorhge/iedit
- arc-in-space 5y agohttps://streamable.com/t4i5tx https://streamable.com/t4i5tx The highlights and fancy replacement preview are added by a plugin called anzu[0], but otherwise this is a standard emacs feature. I couldn't tell you what the default binding is but the function is query-replace-regexp. (I don't understand why people are trying to bring multiple cursors into this) [0] https://github.com/emacsorphanage/anzu https://github.com/emacsorphanage/anzu
- PaulDavisThe1st 5y agoI use replace-replace-regexp a lot. What was shown in the video was qualitatively different. Multiple sites were shown changing at the same time. That's not what q-r-r does, even with "bang" version mentioned above. You could actually see the old text replaceable by the being-entered new text.
- cbsmith 5y agoThere's a lot of this I like, but I'm kind of scratching my head about the central design feature being "multiple selections by default". I never even gave Kakoune a shot, because in general multiple-selections just didn't seem like a significant design advantage to me. If I'm doing a lot of multiple selection editing, I tend to think of it as a strong signal that my code/system has a design mistake.
- bern4444 5y agoFor the multiple selections feature, how is that different from vim's visual selection paired with additional commands? For example, in vim I typically visually select a block and then run :s/foo/bar or hit > to indent etc Is the flow on helix that different? Does it save a keystroke?
- dokem 5y agoI used to use multiple cursors in sublime, but I do find vims find/replace syntax to be better. Paired with a macro that fills out most of the find/replace command for word under cursor, I find it fast and flexible.
- bern4444 5y agoThe best part is, when you need to do that across multiple files that you can find with a :grep or :Rg command, its trivial. Populate the quickfix/location with grep (or ripgrep or silver searcher etc) and fire off a cdo with a :s/foo/bar/g and watch it run.
- archseer 5y agoIt's similar, but it's closer to kakoune or vis in that you get to visually select first, then edit everything at once. You can do the same things in vim, but there's no visual feedback: you have to undo and change your query. (Or do cgn, then . . . ) Here's a good example from vis: https://asciinema.org/a/41361 https://asciinema.org/a/41361
- belharius 5y agoOne day there will come an editor which has alternating line color theme by default - I hope. Never mind that. I hope they won't forget to add 'read from stdin'.
- dicroce 5y agoDoes Helix run on windows too?
- xaduha 5y agoOnivim 2 is getting there. Version 0.5.5 was released two months ago, 0.6 would be worth taking a look at https://v2.onivim.io/#timeline https://v2.onivim.io/#timeline It's a main contender for me to replace VSCode, whereas this one doesn't look that enticing. I want a terminal in my editor, not an editor in my terminal, had enough of that.
- SavantIdiot 5y agoThe FAQ made me chuckle, and then wonder what exactly a post-modern editor would look like? I guess if we deconstruct text editing, there would probably be one window filled with nothing but all the (non-uniquified) letters and characters you used, another with format rules, and another with a verbal description of your program...? Maybe? I'm no Derrida, so I'll defer to the philosophy majors.
- jonstaab 5y agoAutosuggestions would simply read "who's to say?" It would be a fork bomb, each process of which would kill a random pid in an effort to "subvert structures of systemic hegemony". It would just display its own source code, but as it wished it was, and the result would not execute.
- archseer 5y agoI love all of these, maybe I can include it as some sort of easter egg.
- stanislavb 5y agoIs it any good?
- deleted 5y ago[deleted]
- linsomniac 5y agoLately I've been wanting to get out of the business of maintaining my own vim setup and just adapt to someone else's work. I'm in a state of never coming up with the time to really sit down and create a repeatable modern vim setup, but always feeling like I could be getting more. I've used vi for over 30 years, FYI. Recently I've been playing with: OniVim2: I'm not really sure what enhancements it has, but it does have a standard setup. Unfortunately, I'm running into some problem with my setup losing Python syntax highlighting. The ability to use VSCode extensions seems like a real winner, I've never been able to get into the weight of VSCode for my every day shell-oriented workflows. I don't program much, YMMV. The Amix "awesome vim" setup. It is, unfortunately, TOO awesome. I set it up and some of my first movement commands were bringing up plugins (Ctrl-N and Ctrl-F). Didn't try it very long, it was a bit too much of a departure. SpaceVim: I spent a while in this, it was working ok once I adapted a few things to it. It's a contender, probably behind Lunar. LunarVim+NeoVim 0.5: This is looking promising so far, only used it a bit. But the TreeSitter plus LSP seems like a winning combination! Plus it works in the terminal, which OniVim does not. I do a fair bit of my (limited) programming via ssh from a chromebook (my couch compuer).
- zbaylin 5y agoHey, Onivim contributor here. Sorry to hear about that syntax highlighting bug! It’s something we’ve received a lot of feedback on, and I know bryphe is planning on dedicating more resources to syntax highlighting fixes in the next couple of months. If you haven’t already, feel free to open an issue on GitHub (or comment on one that’s similar)! It helps us put our finger on where the editor falls short for people.
- linsomniac 5y agoWill do. I'm so new to Onivim that I wasn't even sure if it was "a problem" or "my problem", or how to get more info on it. It could be a problem with my setup, I try to keep my workstation fairly clean, but it is a working setup so it's no plain vanilla. Thanks for the reply.
- linsomniac 5y ago
- cryptonector 5y agoDamn it, I want modal editing.
- phist_mcgee 5y agoFyi, the copy button on the Documentation page next copies the dollar signs. Just a little niggle. $ brew tap helix-editor/helix $ brew install helix
- bruno-366 5y agoCool project! Reminds me of vis [1] which uses structural regular expressions [2] from plan9 and lua lpeg for the syntax highlighting. I wonder how these two compare? [1] https://github.com/martanne/vis https://github.com/martanne/vis [2] http://doc.cat-v.org/bell_labs/structural_regexps/ http://doc.cat-v.org/bell_labs/structural_regexps/
- eggy 5y agoI am excited to try Helix. I was a vim user many years ago, but not a superuser. Neovim caught my eye for a while, but I felt like I should stay with vim or vi even to be able to jump on any system and work with modal editing tools. I loved emacs, but found myself playing with it more than using it as a text editor or simple IDE. This looks great for me, and fits in with my learning Rust too. Unfortunately the release build for Windows throws a panic, and so does a new build on my machine. I put in an issue on Github, because I wasn't competent enough in Rust or Helix to know what the issue was other than an array length violation or mismatch. thread 'main' panicked at 'index out of bounds: the len is 3451 but the index is 3451', helix-tui\src\buffer.rs:185:14 stack
- eggy 5y agoThe issue was addressed very quickly, and I was able to try Helix out. I love it! However, some modes are not working (LSP?), and it crashes when I am using it. I can pull up file view, but I am not sure how to jump up a directory. I think I will put it on the backburner and either look at the code myself, or wait until the bugs are worked out for Windows 10. I really like it though. Changing colors would be cool too.
- chadlavi 5y agoBrew install doesn't actually work, in case you like me can't tell that from their installation docs page.
- fouric 5y ago> Built with Rust. No Electron. No VimScript. No JavaScript. Great. So, what's the extension language? Rust is utterly inadequate to be a scripting language (if you have to recompile the text editor to reconfigure it, that's a non-starter). VimScript sucks, but it's better than literally nothing. Emacs Lisp is weird, but powerful. Python is great and everyone knows it. Lua is small, simple, blindingly fast, and literally designed to be embedded in compiled projects. Why is there no mention of extensions or extensibility?
- Buttons840 5y agoWhile we're on the topic, if the perfect editor existed, what extension language do you think it would use?
- tristan957 5y agoPresent a C-API so that you could write extensions in any language assuming someone wrote bindings.
- Buttons840 5y agoWhat happens when I start such an editor? It starts the basic editor and then it spins up 15 other language environments / interpreters to run the extensions?
- tomcatfish 5y agoIf that's what all your usecase's developers think is best, sure.
- samus 5y agoYeah, why not? If implemented correctly, this should ensure that the user interface is always snappy because all the slow parts (language servers, build systems, search, embedded applications) would be in backends. Modern multi-core systems are especially well-suited to such an architecture. The biggest issue would be fragmentation of the extension ecosystem. The ecosystem would be split along implementation languages, which is an altogether disadvantegeous dimension.
- ntr-- 5y agoReally exciting, I wish you would display what keys you are pressing in the demo video though, as it was hard to track down how to find bindings such as the file-picker (I come from sublime where it is bound to ctrl+p)
- kohlerm 5y agoI don't get the point of using a modal editor these days. Just get a keyboard with QMK ( for example, there is also a software approach) and you can edit completely on the home row (everywhere!) without the need for a modal editor.
- Craven 5y agoLink your keymap.c? I've seen people add binds for various "Vim like" actions, but they always seemed a bit ad-hoc. I would love to see a map that's been battle tested.
- TeddyDD 5y agoHow keyboard macro can possibly replace an editor that operates on text objects? Let's say you have 'foo bar' string, and you want to change quotes to " In Kakoune this operation could look like this: <a-a>' # select string including quotes <a-S> # select first and last character of previous selection r" # replace selections with " Trivial, 5 keystrokes and it works for any type of quotes (I can do for example <a-a>`). Notice that "replace quotes around the string" is not built-in operation in Kakoune. Now how would you achieve that in non-modal editor that also doesn't have this operation built-in?
- archseer 5y agoSure, I have two QMK keyboards right here: https://github.com/archseer/keys https://github.com/archseer/keys I consider key remapping orthogonal though, as TeddyDD has stated, there's more to modal editors than just convenient shortcuts.
- lawn 5y agoI have a QMK 34 key keyboard, with lots of layers, combos, tap-olds and things, but it doesn't provide nearly as much as a modal editor does. Select inside a block? Comment out a region? Jump to line X? Jump Y lines up? Go-to definition? Autocomplete? Insert snippet? Even a simple thing as delete the next two words or jump to next "f"? I think the issue is that you don't grok vim.
- davidkunz 5y agoCompared to Neovim 0.5, this doesn't seem to bring much on the table. Surely, some things work out of the box, have nicer UI elements and there are a few new features. But with a huge cost of no big ecosystem.
- archseer 5y agoI agree that if you have a setup that works for you, it might not make sense to migrate. I wrote this specifically to move from neovim though, because: - I had to maintain a large config just to get basic features like code commenting shortcuts - My config would often break, this week all my LSPs died after a neovim update - Vim wasn't designed to support multiple cursors Secondly, I've tried adding a snippet mode in lua: - Neovim would lose any marks on lines that got modified. This got better with nvim_buf_set_text (instead of _set_lines), but it'll still lose marks inside the content area. - Vim is based around macros, so any sort of scripting requires you to inject an incantation of keys. Try programmatically setting a selection? No such luck. Rather than dealing with the bugs I decided to work on my own thing because I can iterate on it faster than dealing with C / C's vimscript interface.
- davidkunz 5y agoThat makes sense, it's very impressive what you've achieved.
- marcinzelent 5y agoThe best one this week.
- skywal_l 5y agoThis is counter-intuitive: $ target/release/hx . Error: unable to create new appliction Caused by: Is a directory (os error 21)
- urlwolf 5y agoGeany is really fast, and according to typometer (From Pavel Faltin), it processes keyboard input faster than any terminal I've tested (linux). So A terminal editor doesn't do anything for me...
- bovermyer 5y agoHow does this compare to Amp?
- thomastjeffery 5y agoWhat I would really like to see is a modal editor that doesn't use vim-like keybindings. Ideally something where the user decides what key executes what function, and maybe some optional vim-like defaults. Vim's macros are great. You can record a list of actions (with q), and they will be written in a clipboard as a string of key names. Unfortunately, this depends on w meaning "move to start of next word", i meaning "enter insert mode" ^[ (the escape character) meaning go to normal mode, etc. You can remap a key on the keyboard to represent a different key in a specific context ("nmap j k" gives the j key the k key's behavior in normal mode), but you can never change a key's underlying meaning (j will always mean go down a line, even when the j key behaves as k). Vim's keybindings are so deeply hardcoded into what vim is that's it's just not feasible to change them. I would really like a modal editor that doesn't have that problem: a modal editor that doesn't even try to be vim.
- linsomniac 5y agoThis looks promising, and I like what they've done with the multiple selections. I like the idea of TreeSitter+LSP, but at least for Python it doesn't look to do anything more than basic editing. It says it has indent information for go, rust, typescript, and javascript. Very interested to see where this goes.
- snarfy 5y agoNo way I'll use this. Why spend an afternoon learning Helix when I spent years learning Vim to accomplish the same things. I don't want to acknowledge that.