6 ms·
The Helix Text Editor (2024)
- MrJohz 1y agoHey, that's me! I wrote this about a year ago, and I'm still using Helix, and still quite happy with it. The lack of a plugin ecosystem is sometimes irritating, but work there is slowly progressing. And I'm still not a fan of the idea of building the perfect IDE by composing different TUIs together and spending hours trying to get a perfect setup. But other than that, editing in Helix feels so fluent and fast that I'd really struggle not to use it if I went back.
- gidellav 1y agoHi! I started using Helix about 1 month ago, jumped from Emacs, and I have to say that I really prefer this minimalist approach where I have just two tabs on my term emulator, one for Helix one for git/compiler/etc, and I honestly don't feel the absence of plugins, except for maybe a better find/replace symbols like in VSCode could be nice. Well, thanks for your article!
- JetSetWilly 1y agoI'd love to switch to helix from emacs - I really like the editing model when I have tried it. However I write a lot of clojure and the lack of a REPL in helix and reliance on using LSP for everything (which just isn't as good as repl integration) is a bit of a blocker. I hope their plugin system and embracing scheme for it means that some kind of REPL capability will be implemented and supported well. I hope that plugin branch is merged soon.
- makizar 1y agoYou might want to have a look at Matt Paras’s config. He’s been developping the plugin system using steel, his own scheme interpreter in rust. To send things to the repl, it uses eval-buffer from the helix-ext.scm file. The integration and customizability is for sure not that of Emacs yet, but with the plugin system soon to be merged, we can hope to have a proper REPL and Parinfer implementation! https://github.com/mattwparas/helix-config https://github.com/mattwparas/helix-config
- 1-more 1y agoHome row layer select is extremely my thing too!
- josh-sematic 1y agoRegarding open files, <space>+b opens up a picker for the files in the buffer. There is also now a file explorer under <space>+e (little e for starting at workspace root, capital E for starting in the buffer’s directory).
- MrJohz 1y agoI've not actually used the file explorer much, but I've seen that it's there. I assume it can't do file moves or deletes, though? That's the one thing I really miss from file pickers in other tools, otherwise I find the fuzzy search approach really convenient. I should definitely use the buffer picker more, at the moment I use the gn/gb commands and it mostly works, but then I suddenly end up with too many open buffers and it's hard to figure out where I need to go again.
- josh-sematic 1y agoYeah the file picker can’t do moves or deletes. Personally that’s a rare enough part of my workflow that I don’t mind doing it via the terminal.
- spartanatreyu 1y agoWait what?! There's a file explorer now! Just tried it now, it's not quite a file tree but it's almost as good. I have been checking in with helix every 6 months to see if the plugin system was finalised so I could use a real file picker and actually navigate through and explore the files in my project. That one thing has held me back from using helix. I'll probably give it another go for tiny projects where I don't need any plugins (e.g. in-line error annotations through LSPs, indent rainbow, in-editor color pickers, line sorters, etc...).
- srid 1y agoIs Helix good for Markdown-based note taking workflows? I suppose no, because plugin system is yet unavailable.
- Baarsgaard 1y agoYou could try your luck with Iwe, it's an lsp server for notes and markdown: https://github.com/iwe-org/iwe/ https://github.com/iwe-org/iwe/
- vthriller 1y ago> And I'm still not a fan of the idea of building the perfect IDE by composing different TUIs together and spending hours trying to get a perfect setup. OTOH one could build distrib similar to spacemacs/lazyvim, then you could just start with that, and once you find one particular plugin annoying or lacking, you could swap it for something else, at least theoretically (I've never used those personally, so I don't know how hard it is in practive). Not so much with all the eclipses and jetbranses of the world.
- mcdow 1y agoSwitched to Helix about a year ago and haven't looked back since. Has almost everything I need in it(with a few exceptions). With Vim I would've had to have installed some janky plugins. I really recommend it if you find Vim motions unintuitive and want some of the basic features of IDEs like VSCode. My biggest gripes: - No plugin system (yet). - Configuration documentation is not the best. - Hasn't reached enough popularity to where other apps have "Helix mode" like how a bunch of apps have "vim mode". I find myself wanting to do Helix motions in other apps.
- seanhunter 1y agoI am a long-time vim user and tried out helix. In many ways it's great but the fact that there was (at that time) no "reflow text" function made it just completely unusable for me for basic text-editing outside of code. If that's been added I'd take another look.
- MrJohz 1y agoReflow in the sense of wrapping blocks of text? That exists, I think under :reflow, although I always forget the name when I'm looking for it.
- amboar 1y ago[keys.select."space"] q = ":reflow" has worked well for me, even if the reflow behaviour itself is sometimes frustrating
- mackeye 1y agothis is the kind of thing kakoune (helix's primary inspiration) excels at --- i can hook `fmt` to a non-whitespace character insertion and have auto-reflow as i type. of course, this requires the user implementing the script to get it right, but then you can pr it into kakoune's "stdlib" which gets loaded by default, so any user can use it. (though helix is getting a plugin system eventually, which hopefully alleviates the pain of slow merges.)
- skylurk 1y agoHelix is great! All of the features I wish vim had out of the box, and fast. It would be cool if it got more token-based movement/selection/replacement features, since it already has good tree-sitter integration.
- tolmasky 1y agoHow strange that the article never links directly to the Helix editor. I usually immediately open the homepage of whatever a blog post is talking about as a background tab to be able to click back and forth, or to be able to immediately figure out what the thing being talked about is, but no luck here, except for some decoys (like the "helix" link next to the title which is just the tag "helix" which sends you to a page with all the posts tagged with "helix", which happens to just be this one post). I of course quickly just googled it myself and found the page, and so afterward I went to the source of the blog post and searched for the URL to confirm that it wasn't actually linked to anywhere. Turns out that about three quarters of the way down, in the "Key Bindings" section, there is a link to the Helix keymappings documentation page, which appears to be the closest thing to a direct homepage link. Anyways, no nefarious intent being implied of course, I just found it sort of interesting. I am pretty certain it just got accidentally left out, or maybe the project didn't have a homepage back in December of 2024 when this was originally written? Although the github page isn't directly linked either (only one specific issue in the github tracker). Oh, and here's a link to their page: https://helix-editor.com/ https://helix-editor.com/ And github page: https://github.com/helix-editor/ https://github.com/helix-editor/
- MrJohz 1y agoYes, it was pure accident! I surely had the helix homepage and documentation most of the time while writing this, but only thought to link that one bit of documentation! When I get to a computer next I'll update it with a link, because that would be useful.
- TiredOfLife 1y agoNot linking to stuff is the new normal. Many subreddits ban you if you post a link to source. Tweets no longer contain links - you need to click on tweet to see the next ones that maybe contain the link
- zveyaeyv3sfye 1y ago> Not linking to stuff is the new normal. Maybe in certain anti-intellectual crowds. But not here. Reddit behavior shouldn't restrict you elsewhere.
- f311a 1y agoToo bad the development of helix is pretty slow and core devs are pretty resistant to various of changes. It would be benefit a lot from some funding, but it's hard to find funding for a TUI editor. It insane how fast Zed is moving in terms of development, on the other hand, I'm still waiting for some features in helix for more than 2 years. Helix devs have their own vision and reject a lot of attempts/PRs to make it better. Regarding slow development, I saw a thread on reddit today https://old.reddit.com/r/HelixEditor/s/zn0xiSs9pp https://old.reddit.com/r/HelixEditor/s/zn0xiSs9pp
- unshavedyak 1y ago> Helix devs have their own vision and reject a lot of attempts/PRs to make it better. I feel your pain, but i support their focus here. Not only does it help prevent feature soup but at the end of the day they're the ones that have to support all these things. As always, anyone is free to fork it. That sounds short but imo true nonetheless. Especially if the feature is small enough that the fork is just maintaining a patch on the head. Regardless, plugins are being worked on so in time hopefully it's less of an issue. > It insane how fast Zed is moving in terms of development, I imagine funding and bodies helps a lot on this front.
- barnabee 1y agoWhat important features are missing? While I’m looking forward to the plugin system for a few nice to have tweaks, and amrunning the dev branch alongside the main build to check it out, there’s nothing really essential missing to me. I appreciate that the maintainers aren’t trying to compete with vim or emacs for features or be all things to all people, aren’t that they don’t prioritise growing the number of users over keeping true to their vision for the editor. Helix is all the better for its slow, considered development as far as I’m concerned.
- techbro92 1y agoI would like project wide search and replace
- 1y ago
- ruduhudi 1y ago[flagged]
- eviks 1y ago> This has some advantages — for example it means that Helix is very responsive and lightweight, because there’s not a lot of heavy rendering work to be doing. Which text editor is unresponsive because of heavy rendering?? And that's the only potential benefit the author has identified
- Muvasa 1y agoI remember pasting a lot of text in vim. And waiting for all of it to be rendered. In helix it's instant. Things could have changed since then. I am talking about no later than 2023
- lawn 1y ago(Neo)vim is usually very fast. In Neovim at least one reason for why it might be slow is that the particular treesitter implementation for the syntax you're using isn't very optimized? But it depends a lot on what kind of type you're pasting exactly and your setup.
- eviks 1y agoVim is also a terminal editor, so there is no difference! The point was about tui vs gui
- voat 1y agoI tried to use helix as a vim user, but couldn't get used to the key binds. However I recently found evil-helix, and it's a joy. https://github.com/usagi-flow/evil-helix https://github.com/usagi-flow/evil-helix
- spapas82 1y ago+1 for evil helix, however the default keys are not 100% compatible with vim needing some more tweaking with the settings. For example C is not change line as expected but multi line edit mode (something not very useful with vim keybind) ... But even with these quirks it's close enough to be usable and enjoy all the goodies of helix.
- imiric 1y agoFrom the README: > Scheme/Lisp should not be forced onto the user. It's error-prone and harder to read by humans, compared to Rust/TOML/Lua/... I get the argument of preferring TOML over a Turing-complete language for configuration, but to claim that Rust is easier to read than Scheme, or that Lua is less error-prone, is... interesting, to say the least. I saw similar comments in the linked issue that tracks the proposal. I think people object more to functional programming and S-expressions than to Scheme itself, which is a shame. There's a lot to be gained and learned from Lisps once you get over that initial reaction.
- f311a 1y agoI think it's still missing basic motions such as ciw.
- sevg 1y agoLong-time (Neo)Vim user, tried Helix for a few months but just couldn’t get on with it. It felt too inflexible (not just from lack of plugins), and there were numerous annoyances like save always changing file ownership to the current user, the buffer not reloading when a file is changed externally, no way to highlight (only) trailing spaces, dot repeat doesn’t always work (because the motion/selection comes first) etc. But mostly I much prefer the way Vim does selection and motions and actions etc.
- jiehong 1y agoI wish I could pipe stuff to helix without having to deal with not saving the buffer. I also don’t like bulk search and replace in helix as it’s based on selection and replace. Other than that, I find it easier to stick to helix than to vim!
- punkbit 1y agoHappy Helix Editor user here! My favourite text editor
- curioussquirrel 1y agoI love the batteries-included nature of Helix. Especially for people with no prior experience with modal editors, it has a much nicer learning curve compared to vim.
- jzelinskie 1y agoI wanted to provide an anecdote because I hold the opposite opinions of the author in a variety of ways, but still have used Helix as my primary editor for years now. I don't chase shiny new tools nor do I aspire to replace my toolchain with things just because they're built in Rust. I've used vim/neovim ~15 years. I don't use many TUIs (I actually can't think of any others besides my editor), but my development workflow is entirely terminal-based. I use native splits/tabs in my terminal emulator instead of screen/tmux/zellij. I spent years balancing having a minimal vim configuration that included plugins (but not compiled ones so that it was portable) but didn't include hundreds or thousands of lines in my vimrc. I'm excited to see how neovim is making progress with native LSP, but for years getting it working meant continuously tweaking vimscript/lua code or adopting a massive plugin written in TypeScript. When I first tried Helix, LSP just worked; it read what was on the $PATH and used it. That's perfect because it solves for another source of annoyance: having different versions of tools for different projects. As the author notes, there are some LSP features that don't work with Helix, but whenever I dig into the issues, I almost always come to the conclusion that the issue lies in LSP being a VSCode monoculture rather than a deficiency in Helix itself. However, using the right version of a tool for a specific project and not spending any time configuring LSP servers were the top problems plaguing my usage of neovim. If you're a vim user and you're concerned about muscle memory, by the first week I was proficient and by two weeks, Helix was the default in my brain. I was a huge supporter of neovim -- I actually was submitting patches to the vim mailing list to fix vim on a beta version of macOS at the time taruda posted his original async patches that kicked everything off. If you had asked me the day before I tried Helix that you could reimplement a vim-like codebase from scratch well enough to abandon the original vim code, I would've agreed with you.
- christophilus 1y agoI use netrw to create files, and sometimes to browse. What do you use when using helix?
- jzelinskie 1y agoI was never a big user of netrw or nerdtree, but Helix has <space>+f for a fuzzy-finding file browser or more recently they added <space>+e or <space>+E for a hierarchical directory explorer. I build HEAD from source using brew, so I'm not actually sure if the directory explorer is in a stable release.
- pretzel5297 1y agoI like Helix. I couldn't get Neovim to stick after a few tries but Helix let me into the modal editor world. Just works, no config required and their editing model is better for newcomers because you can see what you're about to do. I eventually switched to Neovim after a few months though (thanks to Kickstart.nvim), because configuring with a programming language is just so much more powerful. That said, I'm convinced people praising Helix because they "don't have to install 60 plugins" or "constantly keep tweaking their config" will just start blaming Helix when it gets plugin support and if it gets a dynamic configuration language. You don't have to install 60 plugins (I have 6) and you don't have to keep tweaking your config (I haven't touched core parts of my config in years, just like to play around with logic sometimes). It's not a feature to not support these things just because you lack the self control to stop playing with your editor and focus on your work.
- mrbonner 1y agoI now just use micro and be done with everything else.
- scuff3d 1y agoA lot of the time I find myself highlighting things in NeoVim before I delete/copy them. Probably from years of interacting with text in GUI applications, it just feels more natural. I've heard about Helix's approach before and it seems like it would fit well for me, but I can never bring myself to switch. Probably a little sunk cost fallacy because of how much I put into learning NeoVim, and a little about being able to customize it. I don't do a lot, but I like what I've done, and more importantly I like that I have the options.
- dotnet00 1y agoWas looking into Helix after recently starting to feel the urge to switch things up a little from vscode and not entirely enjoying trying to use neovim as almost an IDE. I remember enough keybinds to do basic editing, but not enough to smoothly flow between other modes/buffers without having to consult documentation. Didn't quite feel like Helix was what I was looking for either, in part due to the apparent lack of Copilot support(?) and lack of plugin support in general. I'm finding that spacemacs seems a bit easier to use, striking a nice balance between vim style editing and emacs style everything else, making it easy to slowly build up memory instead of overwhelming me with keybinds and configuration details.
- n8henrie 1y agoThere are still things in (neo)vim that I miss, even a year or so later (particularly persistent undo files), but helix's startup time is so much faster (and LSP integration so good), I hardly use anything else.