46 comments

[ 3.9 ms ] story [ 69.1 ms ] thread
Helix and other new editors (kakoune comes to mind) always appealed to me because they seemed to have slightly more intuitive approaches to editing than vim, but I just don't think I can ever switch, purely because vim just exists everywhere I need it. It (or vi) is installed on practically every system I ever touch by default, and almost every IDE/editor under the sun supports vim keybinds either natively or via well-maintained plugins.

It's the same problem with keyboard layouts: I'm sure I could learn to be slightly faster on dvorak/colemak, but nothing beats the convenience of always having guaranteed access to qwerty, everywhere I go.

> I'm sure I could learn to be slightly faster on dvorak/colemak

As near as I can tell, people generally type at similar speeds regardless of layout. If you're aiming for speed typing [1], I can see it making a difference, but chances are you're not going to see much of a difference. I type on an alpha-thumb layout (Hands Down Vibranium, the R key is under my left thumb) on an ergo keyboard. It's like using a fountain pen versus a cheap ballpoint or a nice mechanical keyboard vs a membrane keyboard. The experience is nicer but it's not a fundamentally different process. Being on a weird setup, I was concerned about "what if my keyboard breaks", "what if I'm on a public computer", etc and the solution is just to not forget qwerty. I use the laptop keyboard every other day or so for something short like a comment and it's fine.

What my personal setup does let me do is have my wrists in a neutral position with my arms resting on chair armrests and no active muscle effort. Between the efficient layout and small keyboard I never need to move my hands at all. This means that my wrists are just as well positioned after 12 hours as they are at the start and that's what has been letting my stress injuries recover.

[1] https://www.reddit.com/r/KeyboardLayouts/comments/1lfu1xt/fi...

> of always having guaranteed access to qwerty everywhere I go.

You haven't travelled far, obviously.

Maybe it is not for people that need to switch. For me it is first editor of this kind and I do not need to fight anything.
I used vim for about one year before switching to kakoune.

Using vim motions in Intellij or just vim hasn't been a problem for me at all. I don't use very advanced shortcuts (the most complicated motions I ever use are ciw and the likes). Even though they are quite different (ciw is <alt>iwc in kakoune) I adjust to them quite easily. Kakoune has also helped me get better at using vim because there is quite some overlaps that are more discoverable in kakoune (<alt>i summons a clippy that shows all the different objects you can select)

This and to be honest no small amount of sunk cost are keeping me with NeoVim. I spent so much time learning how to get the damn thing to work the way I want I just can't bring myself to leave lol
A few days ago I was randomly reading about ed (after stumbling with the 'ed is the standard editor' joke) and reflecting over how much historical baggage we accumulate in computing.

Commands like a for appending text are unchanged from the teletype era, which are so old that most people don't know computers used printers as an output before screens!

It's pushed me to learn about projects that try to move beyond acumulated baggage and rethink principles.

I've been taking a look at Nushell for example, and even though I was initially skeptical of Helix because of how universal vim commands are, perhaps it's time to take a deeper look.

That "accumulated baggage" is though not entirely mostly knowledge and progress won through sweat and tears from many mistakes over many lifetimes.

There's a reason we moved on from paper tape to visual displays, and then from line editors to freeform buffer editors. We didn't abandon paper tape due to "baggage", we did it because it sucked and was inefficient.

Though certainly, I agree with studying and learning from history. It doesn't hurt to know how to use ed, especially since it doesn't take long to learn.

I have a similar story but with neovim (and for the same reason as the author; growing unease with big tech). Tried and failed to make the switch a few times but made a concerted effort to stick with it throughout a specific project and now it’s second nature. I found it useful to research idiomatic (n)vim ways of doing things whenever I’d get frustrated or feel I’d be doing something more quickly in VSCode and commit them to memory by using new commands a few times over. Right now I’d say search/replace is the only thing that’s still not as ergonomic for me in vim as it is in Code. What I do is visually highlight my search phrase, hit asterisk then :%s//replaced - I learned that you can omit the search pattern using this technique.

Anyway nvim and helix are both amazing and terminal editors are both cool and sexy, so why wouldn’t you? ;)

Huh. I forgot about %s. I just search for a pattern and replace the first one manually. If there are fewer than ~5 occurrences, I'll just hit `n.` ~5 times and get them all. If there are more, I'll record a macro with `qqn.q`, then look at the occurence count in the bottom right corner (e.g. 50) and hit `50@q` to get them all. Sometimes the replacement text is non-constant, and this method allows for more flexibility with the recorded macro.

Sometimes it's funny to look around and see the strange local minimum of effort you've settled into.

I've tried Neovim, but still use VSCode because everything either works out of the box or takes 2 clicks to install an extension for and things like drag and drop into the file explorer or the remote extension make it really quick to use.

The only other real GUI contender I've seen is Jetbrains's IDEs (the free educational plan is great) but having seperate IDEs for different languages gets a bit annoying if you have multi language projects (e.g. a Rust backend hosting a Typescript frontend)

> Microsoft is also based in the USA, and the political climate over there makes me want to depend as little as possible on American tools. I know that’s a long, uphill battle, but we have to start somewhere.

I miss the days when we had militant, but more entertaining zealots like Stallman. Whatever else you can say about his antics, Stallman was comitted. And that craziness wrapped back around to being entertaining.

Now we just get whatever this is - basically the equivalent of someone declaring they're going to try being vegetarian by not eating the tips of chicken wings anymore. Like dude, fork Vscode and start hosting it on your own custom vc system that was hacked together as a side project.

Where's the fire and passion behind the resistance?

I do almost all my development on JetBrains IDEs (Rust, Python, Kotlin). IME they are unmatched for giving you code insights and suggested fixes (combined with "click here to do that") out of the box. But they are absolute resource hogs and I don't trust that they (or their best features) will always remain free.

I've tried to get into neovim a few times. It's fine for basic editing and I use it a bit when I am ssh'd into a box without a graphical environment, or I'm just not bothered booting up a full IDE. But the UI still feels less intuitive to me than JetBrains, and by the time I've installed and configured the various plugins that should give me anything approaching JetBrains' functionality the whole setup feels very fragile, like it could break at any moment and I wouldn't easily be able to fix it. In the regard, Helix having more stuff OOTB feels like it could be a definite improvement.

Does the author really not use any other vscode feature than lsp? What about e.g. gitlens or jupyter
Helix boast itself as a no config tool, but you have to find a lsp, installl it, edit a toml to activate it. I dont think we can call that "config less". Success would be something like LazyVim but without the nagging of updates each time you open it.
For me personally I use VSCode + Vim Extension and I find the combo quite perfect. I've been using VSCode pretty much my entire career and with the vim extension I can make things like editing very "vim like" but still be able to break out and do other things the "vscode way"
I really, really want to use Helix but I want to share bindings with VSCode/IntelliJ, and all the plugins that promise them have lots quirks, exceptions and various gaps. I know it's never gonna be 100%, but sometimes simple stuff is broken (x to select line in Helix, selected line+newline in the latest plugin I tried).
First time hearing about the Helix editor, and I gotta say — it really caught my eye. I’m not super familiar with Vim, but I’m definitely gonna install Helix and give it a try.
Helix's features look very cool, but I could not switch to it because of this bug [0]. It has been open since May 2022 and it is still not fixed. Basically you can't exit insert mode with a key combination like `jk`. Four years feels like a long time for such a basic bug. I will stick to NeoVim for now.

0. https://github.com/helix-editor/helix/issues/2612

Helix has its limitations — but I use it for speed. No other editor I’ve tried is as nimble.
Last i checked helix did not have a way to run commands and pipe results to something like quickfix. Is this a thing these days?
I used Helix for a couple of days and really liked it for the most part. However, I would sometimes encounter a small, simple thing that I do without thinking in VS Code but just did not know the command for in Helix. I would look it up, think, "Sweet, that's efficient" and move on. This kept happening and finally I was in a situation where I just needed to move fast and did not have time to investigate how to do it in Helix so I switched back and... never returned.

It was a learning curve issue for me, not a functionality issue. I'll probably return at some point (like when the EOY season becomes slower and I have more time to explore) but for now I'm back to cruising in VS Code.

Just yesterday I think I reached the breaking point with vim. Been using vi and derivatives for 40 years, but the amount of tweaking to get a usable setup is really annoying me. I've gotten to the point where LSP is a must have.

Yesterday I was trying to switch my Astro VIM setup from using black to using "ruff format", which lead me down the path of installing astro from scratch, re-configuring it for my "must haves", and then trying again to get my formatter switched to ruff. I reinstalled because the docs looked like there may be a new way to do it since my last install 6 months ago.

The documentation for Astro VIM is really incomplete. Claude was fairly helpful, maybe Claude Code would be better, since it'll have the context of my exact configs rather than Claude giving me 3-5 options for making the change.

I've got a helix cheatsheet on my desk that I had Claude make me ~3 months ago. I started my work journal in helix this morning, but the install on that system must be broken because I couldn't even exit insert mode, pressing ESC did nothing.

I'm at the point where I think vim is a great library for building a text editor, but nobody has built a great text editor in it yet. I really liked LunarVim but that got abandoned for reasons I don't fully understand.

Helix is a beautifully made editor. Looking forward for it to have scriptability and extensibility.

I went from VS Code to NeoVim and can’t be happier. Not saying that VS Code isn‘t a good product. It‘s actually everything you need in an editor/ ide. But it’s way too heavy for my taste. I made the transition to the terminal for my dev workflow. WezTerm, mux and tmux, neovim as editor, lazygit as git client, yazi for file navigation: I absolutely love how streamlined my process is.

Wonderful times with lots of options.

I'm a mostly happy helix user - but I'm still struggling to get debugging to work - both with ruby/rails and typescript/node (Adonis).

Apparently DAP protocol support has been merged - but I find the documentation lacking, and afaik for typescript/javascript it won't work out of the box, as helix needs a pointers to the dap server (and that can't simply be in PATH)?

How are everyone debugging with Helix?

https://github.com/helix-editor/helix/discussions/9269

I'm switching from VSCode as well. I love Helix's (and Kakoune's) editing model centered around selections rather than motions. I can see what I'll operate on interactively.

I still use VSCode when navigating complex codebase changes, just because of the visual file tree. I hope to fully switch over soon.

> Being a lazy person, I never bothered looking up VS Code shortcuts. Because the learning curve for Helix is slightly steeper, you have to learn those shortcuts that make moving around feel so easy.

This doesn't make sense: if you were truly lazy, you wouldn't spend any effort learning a more complicated app, you'd simply not switch!

> with a few knobs for minor preferences. I am subject to choice paralysis, so making me configure an editor before I’ve even started editing is the best way to tank my productivity.

There are a couple of hundreds of options https://docs.helix-editor.com/editor.html and even more hundreds of keybinds https://docs.helix-editor.com/keymap.html to reconfigure, so you can knob yourself to death with Helix just like with any other configurable app. And the way out is the same as with vim - just pick someone else who has done it and has published the results before dying and use those!

I use NeoVim, not Helix, but I think it's more about sane defaults then the amount of customization. Out of the box NeoVim is just a basic modal text editor and not much more. You have to dive in and start configuring to get the real power out of it.

Helix does a lot of the heavy lifting for you.

Also, as a side note, I feel like trying to use someone else's config in NeoVim is a path to madeness.

Ya, I found the author's justifications for decisions pretty unconvincing.

Of course VSCode keybindings aren't great, but there are excellent Vim keybindings for VSCode, and that's the only thing about Vim that really matters. There are even experimental Helix keybindings for VSCode, and that's the only thing about Helix that really matters. Everything else is just commodified IDE functionality, and VSCode does that best.

And sure, Microsoft is not the kind of company I want to be entirely reliant on. But VSCode is MIT-licensed. There are already tons of forks for various purposes. Switching from VSCode to Helix for this reason is sort of like switching from Chrome to Lynx because you don't like Google. Why not just use Chromium, or Brave? With the level of adoption and support for VSCode, you can bet on well-supported forks popping up the moment Microsoft does anything truly destructive with it.

I mean, if you just want to try out and learn Helix, that's great, but the usability and morality pretense is distracting.

The article misses one important point. Helix is 100% immune against plugin supply chain attacks like GlassWorm.

I am joking of course. Helix is fantastic and I think it eventually will get a state-of-the-art safe plugin system. After a couple of attempts I made the permanent switch from neovim two moths ago. I don't think I'll ever go back.

I'm not sure I follow the argument being made here.

"I don't like vim as you need to install plugins to make it work"

"helix is a dumb editor, so it needs a language server."

Then they go and list the number of plugins they install. This seems to argue against what their main point

I now use VScode most of the time, however to me its a fancy VIM variant, because I'm so used to vim bindings.

I can and do use raw vim, although not for any serious programming recently. If I were then I'd have syntastic installed and possibly some more advanced linter.

However! If it makes them happy, then this is a good thing™.