12 ms·
Notes on switching to Helix from Vim
- constantcrying 1y agoI think it is worth pointing out that there are "zero configuration" vim distributions, which come with the same ease/limits. Not to take away from Helix, which I think is a cool project. But I think it's greatest strength is that it can (and should) be more than a vim rewrite in Rust. It can actually get rid of the legacy parts of vim and redo the things which did not work and integrate modern features from the beginning.
- MyOutfitIsVague 1y agoHelix very much is not a Vim rewrite in Rust. It's closer to a Kakoune clone than a Vim one.
- ikety 1y agoZero config distros still require maintenance, and the chosen tools change over time. Helix is just Helix Helix is actively inspiring Neovim to become a more comprehensive baseline. Which is freaking awesome. One day the ootb experience will be so good with neovim that few will care for these "zero config" distros.
- MyOutfitIsVague 1y agoI love Helix. There are some things Julia didn't list that I also miss from nvim, particularly using it as a 3-way diff tool, and missing code folding, but I don't see leaving Helix any time soon.
- phplovesong 1y agoSkimmed only. Most titles was like "i use X for that" then scrolled down for the next one. And thats the thing. Neovim (vim) is about the unix way, use existing tools and use them from vim. Last time i checked this was not an option in helix, and some very trivil things was impossible, like populating the quickfix (is it a thing n helix?) from a makefile command. Bottom line is helix is basically a stipped down version on vscode, and wont really succeed without a plugin system (and when/if it lands, its basically just a vscode alternative)
- celrod 1y agoI use kakoune, and don't understand why helix seems to be taking off while kakoune (which predated and inspired helix) remains niche. Kakoune fully embraces the unix philosophy, even going so far as relying on OS (or terminal-multiplexer, e.g. kitty or tmux) for window management (via client/sever, so each kakoune instance can still share state like open buffers). A comparison going into the differences (and embracing of the unix philosophy by kakoune) by someone who uses both kakoune and helix: https://phaazon.net/blog/more-hindsight-vim-helix-kakoune https://phaazon.net/blog/more-hindsight-vim-helix-kakoune Sensible defaults and easy setup are a big deal. No one wants to fiddle with setting up their lsp and tree-sitter. There's probably more to their differences in popularity than just this, though.
- aiiizzz 1y agoKakoune's problem is the bad UI (eg LSPs hover), and that scripting it is simply too complicated.
- ikety 1y agoI think the easy setup is exactly the reason Helix has taken off compared to Kakoune. It probably has the most simple onboarding experience I've had with any text editor. Things just make sense, and tools that should be built in are. I think the philosophy of delaying the plugin system as long as possible is one of the reasons helix has achieved that. With Helix I just have to learn selection first, and few different binds compared to vim. With Kakoune, I have to onboard into a more complex ecosystem, in addition to that. A lot of people already have vim/neovim config fatigue so that's not very compelling.
- eminence32 1y agoI really enjoy Helix, but I can't install it everywhere, and so I end up going back and forth between Helix and Vim depending on what machine I'm working on. This puts a lot of pressure on my muscle memory -- I often type a vim keybinding while in Helix or a Helix keybinding while in vim.
- nikolay 1y agoHelix wants to be Emacs. Ever since they decided to use a built-in Lisp dialect called "Steel" for scripting and become the next Emacs, not the next Neovim, I stopped following it. I love Lisp, I wrote so much code in Lisp in the '80s and early '90s, but that was another millennium! It's 2025 now, and just because it's easy to write Lisp interpreters doesn't mean we should use them. In fact, maybe Forth is even easier than Lisp... well, not really.
- Karrot_Kream 1y agoI'm not sure why you think Lisp makes this "emacs" unless you're worried it'll fall flat because most Lisp-interested folks would find emacs more full featured? I'm not sure if a Scheme is particularly different than neovim's Lua. I'll be honest though I'm not sure how deeply Steel is integrated into Helix.
- warmwaffles 1y agoIt's not integrated at all right now. It's still sitting in a feature branch unfortunately.
- Karrot_Kream 1y agoAh I thought the big branch finally got merged.
- warmwaffles 1y agoNot yet. PR is still open and waiting for someone from the team to review. I suspect this won't be an easy thing.
- lawn 1y agoDon't worry, Fennel compiles to Lua so you can keep configuring Neovim with a Lisp dialect too!
- dcre 1y agoIt's very hard to argue the plugin system has made Helix anything in particular, considering it is not merged yet. Approximately nobody's experience of Helix up to this point has been influenced by this choice.
- ramon156 1y agoA year ago I would've loved to see the other way around. Helix is cool but definitely not fit-for-all
- kesor 1y ago"Using vim/nvim for 20 years". "cba to configure LSPs its too hard". What?
- naikrovek 1y agoI think a lot of people on this site have genuine reading comprehension problems. I mean that as an observation, not an attack. > "Using vim/nvim for 20 years". "cba to configure LSPs its too hard". What? Nowhere did she say that she tried and failed to set these up. Your comment indicates that you read it as her saying that it's too hard to do. Where did that come from? She said it "felt like too much work" which is A) unrelated to difficulty and is B) something that you can say after you've done the thing, just as legitimately as you can say it before you do the thing. Being able to recognize that something that works just fine but isn't right, and not being satisfied with that is a skill whose importance is difficult to convey. It is related to the sense people get after a while that gives them an allergy to unnecessary complexity. Complexity is fine if it is required. The zero-step LSP set up procedure for Helix proves that the multi-step LSP set up procedure for vim can be improved.
- kesor 1y agoWhen someone is competent, as must be after using a tool for 20 years (not days). Expecting that someone to complain about a difficulty for something trivial is surprising. There are other ways to highlight that it is easier or simpler in Helix to have working LSP, for example, saying it is "as easy as in vscode". But it is definitely bewildering why would the OP choose to start by bragging of the vast experience, and then focus on a complaint that most people expect from someone who has very little experience.
- naikrovek 1y ago> Expecting that someone to complain about a difficulty for something trivial is surprising. Is it? It isn't to me. It's expected, to me. As I've gotten older I've gotten much, much less tolerant of convoluted and unnecessarily complex hoops (which I collectively call "bullshit") that must be jumped through in order to get something working. Especially when there is an alternative nearby which puts me through zero hoops. When I was young and Linux was brand new I had all the time in the world for compiling, patching, debugging, fixing, compiling, testing, deploying, logging, parsing, notifying, writing tooling and customizing. As I enter my 6th decade I have zero time for most of those things. The mere thought of that kind of thing today for almost all software is anathema. And anything that makes me do anything that should have been sorted out by the software author but wasn't immediately goes to the bottom of the list of consideration for any purpose in the future.
- jbrooks84 1y agoVim is life, no need to change
- deadbabe 1y agoIt’s true. Once you master Vim, your journey to find the perfect editor will have come to an end. For the rest of your career, you can rest assured you will be using some form of vim. But some people don’t actually want to find the perfect editor, they would rather stay on the journey forever, trying to master a new tool every few years. Sounds miserable, never knowing true mastery and enlightenment.
- ikety 1y agoI use both helix and vim every day. After a while your brain just adjusts. It's like playing on playstation and nintendo for a long time. Eventually as soon as your hands touch the controller it switches to the appropriate mode.
- BeFlatXIII 1y agoWhere does evil-mode land?
- eimrine 1y agoFrom what I have heard, evil-mode does not give you an ability to touchtype, I mean totally blind typing without any pesky Escape Meta Alt Ctrl Shift chords.
- jvican 1y agoI've fallen in love with Helix and now use it for everything. Moved from neovim and VS Code to Helix for the majority of my coding. For me, after trying the Lazy neovim plugin distro and being a long-time vim user, Helix fills a unique need: - It's beautiful (lots of attention to detail) - It's fast (meaning: at no point did I think Helix is slower than it should) - It's hugely ergonomic (each default keystroke resonates with me and the modal selection is a boon for my brain and productivity) - It requires almost no configuration out-of-the-box I can't be bothered to use neovim and configure it, and vim doesn't cut it. I need something in the middle between nvim and VS Code, and that's Helix for me. This might have been different had I been a vimscript wizard, which I'm not. I don't need Helix to be more modular or UNIXy, I simply need it to keep on the direction they've taken. There's a thriving ecosystem of tools around it, and I can use it with Claude Code (by simply refreshing the buffer when there's a new edit). What else can I ask for? Helix is a great editor, one of the very best I've ever used. As a result, I started chipping in monthly money to keep the project going. In terms of future improvements, the only one I'm missing the most is the ability to render images or math formulas from the editor, which I hope can at some point be done through a plugin using Kitty's terminal protocol or sixel. This is especially handy when working on Markdown files for notes or blog posts. Long live Helix.
- weinzierl 1y agoAll of this plus that with their approach of shipping an editor that is useable out of the box I feel a lot safer from supply chain attacks. No matter if VSCode or (neo)vim, needing tens of plugins from almost that many different parties always made me feel quite uneasy.
- christophilus 1y agoTheir cargo.lock file is 3500 lines or so: https://github.com/helix-editor/helix/blob/master/Cargo.lock https://github.com/helix-editor/helix/blob/master/Cargo.lock So, I kind of agree with you, but that’s still a lot of dependencies baked into the editor. It’s probably not as bad as Neovim+plugins, but it’s still a supply chain issue.
- ar_lan 1y ago> I think what motivated me to try Helix is that I’ve been trying to get a working language server setup (so I can do things like “go to definition”) and getting a setup that feels good in Vim or Neovim just felt like too much work. After using Vim/Neovim for 20 years... I think this is catching me off guard. Especially in the past 5 years there are Neovim distributions that make this extremely easy to configure. I am not disagreeing that many (most?) developers don't want to spend time debugging their editor - they just want it to work batteries included (or a simple button click to install). I think this is why JetBrains products are so popular (I still don't understand VS Code - it's the worst of all worlds between vim/emacs and Jetbrains). But if you've been a (neo)vim user for 20 years, it sounds very odd that you haven't successfully gotten LSP to work in a way that feels comfortable. I don't want to assume things about the author because I do not know them, but it feels unfair to say for vim and doesn't strike me as honest.
- r14c 1y agoThat is surprising. I didn't have much trouble getting LSP working either in og or neovim. My editor config is fairly barebones by preference, so its not like I spend a lot of time editing my configs either. I will say, Lua is a lot more ergonimic than vimscript for a lot of things, but I appreciate that I can still use the old ways at times. Like ALE isn't leaving my config unless I'm forced to remove it for some reason. I hope they're happy using helix tho
- skydhash 1y agoI use a plugin[0] for LSP in vim and it's pretty easy to setup there too. Installing and configuring the lsp software itself take more time as I'm constantly moving between OS. Also, Emacs and Vim is very much about making the tool your own. I don't mind shaving the yak every now and then, because once an inconvenience is solved, it stay solved. [0]: https://github.com/prabirshrestha/vim-lsp https://github.com/prabirshrestha/vim-lsp
- lawn 1y agoI've never used a distribution and LSPs are in my opinion easy to setup in Neovim and especially now with vim.lsp[0]. [0]: https://neovim.io/doc/user/lsp.html https://neovim.io/doc/user/lsp.html
- commandersaki 1y agoThat bit about search using the ripgrep plugin not providing context has always been available using telescope and a handful of clone plugins.
- sodapopcan 1y agoIndeed, Vim has had ways to do this for years, before nvim. I suppose their point is that it comes out of the box? It is worded in a way that makes it seem like they think like there are no options. There are other things too, like pressing `*` then using `:%s` is no different than the behaviour they describe. I use a plugin that shows you all the updates live as you type making it essentially the same as multiple cursors (for this example). The only difference is that you're typing on the command prompt as opposed to the current line.
- lawn 1y agoI think showing live preview for replacements is also a built-in Neovim feature now, but I can't remember if it's enabled by default or not.
- leephillips 1y agoI suppose it is, my Neovim has always done this.
- cycomanic 1y agoThat is not the same as helix multiple selections. I suggest trying our helix to really understand. I really liked helix, but the problem is that pretty much everything I use is setup using Vim bindings (shell, browser, ideavim,...) so switching to helix concept of editing was different enough to require effort, but close enough that it screwed up all my other muscle memory.
- sodapopcan 1y agoFair enough, I definitely made some assumptions there, but it sure sounds the same based on the description. I guess `%` selects more than just the token? But ya, I'm way too invested in Vim to bother with Helix. I have years of scripts and plugins I've written. I can't even be bothered to switch to nvim (I tried once and was not fun).
- weinzierl 1y ago"using a terminal-based text editor For many years I’d mostly been using a GUI version of vim/neovim, so switching to actually using an editor in the terminal was a bit of an adjustment." For a long time my pain with this was that I often want to open an ephemeral editor while not losing context and sight of my terminal. With a GUI editor you always get a fresh window, but in the terminal this is difficult. Luckily zellij edit solves this issue nicely for me.
- Voklen 1y agoI use Helix and Zellij and it has been amazing, requiring very minimal configuration and maintenance.
- eMPee584 1y agofrom my `/etc/tmux.d/keyboard-shortcuts-comfort.conf`: bind-key j command-prompt -p "vim:" "new-window -c '#{pane_current_path}' 'stty -ixon -ixoff && vim %1'; select-pane -T '%1'" This binds `j` to prompt for files to open (* or just hitting enter works) and launches vim in a new window in tmux (turning off flow control and setting filename as title). Probably one of my most-used shortcuts.
- Macha 1y agoI've tried helix a few times but I've also found it clashes violently with my vim muscle memory, largely because I still use vim in lots of not-vim environments like IdeaVim etc. Clearly I've been able to have seperate modes in my mind for "traditional" keybindings, as I don't find myself having difficulty switching from a text field in my browser or chat apps and then going to vim and back, so I wonder if it's just a case of the helix muscle memory needing to be so ingrained, or if it's just in an uncanny-valley to the vim experience.
- xwowsersx 1y agoI feel the same way. I've put a lot of time into getting fast and efficient with Vim, so the benefits of another editor would have to be substantial to justify switching. As nice as Helix looks, I'm not sure it offers enough to make that leap.
- gtsop 1y agoI got tired of the constantly moving space of IDEs and their plugins. After 10 years of writting software, i know exactly what i want out of my IDE, so i took up a clean (completely clean) neovim and started building every single functionality by myself exactly as i like it. I call it, jokingly, unlazyvim. I had been using vim for many years, but finally, after so many years my editor feels like a fine glove. Don't look up my code, don't ask what I built. Go build your own.
- klaussilveira 1y agoHelix still has no way to emulate Sublime's Ctrl + Click (placing multiple carets), nor Sublime's Ctrl + D (duplicating selections and creating a multiple caret for each)?
- eviks 1y agoIt has both? Granted, Ctrl+D requires manual construction from a sequence of commands, but click to place extra carets works as is
- klaussilveira 1y ago> requires manual construction from a sequence of commands Right, I saw some people share some snippets here before. But none of them act like Sublime does. I can't double-click a token and Ctrl + D to select next instances of it in my file.
- pandur 1y agoA-s = ["save_selection", "select_mode","search_selection","extend_search_next"] you select a token, then pess alt+s to select the next instance and so on
- klaussilveira 1y agoThat limits to only 2 selections. If I keep pressing Alt + S, it does not select multiple instances of the first selection. Also, I can't immediately start typing like in Sublime to replace the content. For example: "test/filenameA.c" "test/filenameB.c" "test/filenameC.c" "test/filenameD.c" If I select test/ with the cursor, then A-s, it won't select 3 and 4. If I do this, however: C-d = ["search_selection", "extend_search_next"] It does select test/, in all 4 lines, but I can't immediately type "blah" to change test to blah.
- Shorel 1y agoIt's very funny to me that some comments before someone wrote that helix has the best multiple cursor implementation. I was curious about what could it be. Then you mention it doesn't have two essential behaviours that I am used to, and I wonder if these people just know vim and cli editors and that's why they have such opinion. Because I am also a SublimeTexter.
- impoppy 1y agoI switched to Helix a year ago and I’m very happy about it. I used to spend way too much of my free time configuring my editor and now that I can’t do that I use my free time to actually write some code!
- eviks 1y ago> crashes: every week or so there’s a segfault and the editor crashes. ... This doesn’t bother me that much though, I can just reopen it. Strange approach to data loss, since it doesn't have persistent undo, you can't just reopen it to the same editing state? > After using Vim/Neovim for 20 years, I’ve tried both “build my own custom configuration from scratch” and “use someone else’s pre-buld configuration system” and even though I love Vim I was excited about having things just work without having to work on my configuration at all. I don't really get it given how primitive the resulting Helix config is (I mean, even the most frequent commands are based off the mistaken unergonomic w/b defaults), presumably you would've been able to replicate it comletely in the first X years of using vim, and then there is no hell anymore? > little help popup telling me places I can go. I really appreciate this because I don’t often use the “go to definition” or “go to reference” feature and I often forget the keyboard shortcut. Exactly! Pity this basic contextual help isn't more widespread, every single app that uses a lot of keybind sequences could benefit from it, especially if it becomes a bit smarter and only shows a popup if you don't finish the sequence right away
- tasn 1y ago> Exactly! Pity this basic contextual help isn't more widespread, every single app that uses a lot of keybind sequences could benefit from it, especially if it becomes a bit smarter and only shows a popup if you don't finish the sequence right away I've been using Vim/Neovim for 20 years, but still can't get enough of which-key[1] which I only installed ~6 months ago. 1: https://github.com/folke/which-key.nvim https://github.com/folke/which-key.nvim
- deleted 1y ago[deleted]
- eikenberry 1y agomini.clue is another good option for this feature in neovim. https://github.com/nvim-mini/mini.clue https://github.com/nvim-mini/mini.clue
- 1y ago
- thefaux 1y agoI cannot express how liberating it feels to opt out of "advanced" editor tools like lsp. I program in neovim with no plugins, no syntax highlighting and no autocomplete of any kind. There is a discipline that this imposes that I believe leads to better quality programs. It's not for everyone I suppose, but I really recommend trying it.
- yacthing 1y agoMost people optimize for productivity and not raw quality of code. I can't imagine that your productivity is higher for removing autocomplete. I'm not saying you need every plugin ever, but autocomplete? Maybe you haven't tried "advanced" editors in a while, and it was a lot worse last time you tried?
- efxhoy 1y agoI had a few periods of doing the same in sublime text, I did use syntax highlighting though. It’s a really great feeling and very liberating, especially in a greenfield project. Can’t really justify it at work though, projects are too big to and gnarly keep in my head.
- chongli 1y agoWhy neovim for this? Why not nvi? Even less distractions that way!
- b00ty4breakfast 1y agoI can see no plugins, I can even see no autocomplete but no syntax highlighting is just making things difficult for the sake of it
- GalaxyNova 1y agoThe true Plan9 aesthetic
- ratrocket 1y agoTo each their own. I quit using syntax highlighting about 10 years ago and won't ever go back (been programming for 25 years, vim/neovim user for 24 years). I just like it better, it works for me. It definitely does not make things "difficult for the sake of it" (for me). There are dozens of us! :) (As to the rest: I use a pretty minimal set of plugins and I use the built in nvim C-o/C-p or C-x C-o/p "dumb" autocomplete. At least I think it's built in...)
- tooltalk 1y agotoo invested in LazyVim.. just learned to use "edgy" with multiple windows: neo-tests, fs browser, diagnostic-trouble, Outline, etc.. and they are just too nice.
- almog 1y agoThe one time I tried Helix, I could find no way to switch from noun-verb syntax to vim's noun-verb syntax, is it possible now?
- dcre 1y agoNo. Noun-verb is central to the design. Everything is built around it. The best writing about this is "Why Kakoune" (Kakoune inspired Helix): https://kakoune.org/why-kakoune/why-kakoune.html https://kakoune.org/why-kakoune/why-kakoune.html
- deleted 1y ago[deleted]
- cycomanic 1y agoNot really, there is a config and some patches (helix-Vim IIRC) that gets you close, but it is still different. It also feels like you're throwing out helix main selling point.
- almog 1y ago* Too late to edit but of course I meant Vim's verb-noun syntax.
- fithisux 1y agoI never managed to understand Vim/Emacs/Vile/Neovim. Helix seemed all the same until I started watching a series of tutorials on Youtube. I get better everyday. I'm on Windows 10 x64 BTW
- eimrine 1y agoVim and Emacs are too different to help you in one comment. At least you need to choose one of them by your own.
- quirino 1y agoThe best thing to have happened to nvim in recent history is mini.nvim. It's a collection of plugins by echasnovski which satisfies many of your needs in a very consistent, very well documented way. With nvim 0.12 (nightly) I've switched to vim.pack (built in plugin manager) and the only plugins I had to install are mini.nvim and lspconfig.
- ratrocket 1y agoTo save anyone else the search: mini.nvim site: https://nvim-mini.org/mini.nvim/ https://nvim-mini.org/mini.nvim/ repo: https://github.com/nvim-mini/mini.nvim https://github.com/nvim-mini/mini.nvim
- eikenberry 1y agoI switched from Neovim to Helix as my primary editor for around a year before switching back to Neovim. The way I'd describe the difference is that Helix is a text/code editor and Neovim is a toolkit to build a text/code editor. Helix is very simple and hits the 'just works' pretty well, but it's development is slow and w/o extensions it isn't flexible enough to handle every situation. Neovim can be a PITA to setup and maintain, but it's flexibility and power are very compelling. It also is semi-mainstream and gets a lot more support... eg. it has the only official, non-vscode, copilot plugin. I still use Helix as my backup editor (when I'm fixing issue with Neovim) and I look forward to it maturing a bit more and for the extension system to land and see where it goes after that.
- danslo 1y agoI tried to switch from neovim to helix for a couple weeks, but noted down the following things that were essential to me and not implemented yet: - Code actions on save, for example adding Go imports: https://github.com/helix-editor/helix/pull/6486 https://github.com/helix-editor/helix/pull/6486 - Fuzzy search with a filepicker like telescope+rg, seems to have been added earlier this year: https://github.com/helix-editor/helix/pull/11285 https://github.com/helix-editor/helix/pull/11285 - Automatically updating buffers when the files on disk change (claude, templ, sqlc, etc): https://github.com/helix-editor/helix/issues/1125 https://github.com/helix-editor/helix/issues/1125 - File tree in browser, which has been rejected in favor of a plugin system which has not materialized yet: https://github.com/helix-editor/helix/pull/5768 https://github.com/helix-editor/helix/pull/5768 There were a number of other things too, that I could have lived with. I guess I'll try again in a year or two.
- jzelinskie 1y agoI rebuild from HEAD using homebrew quite regularly and have maybe had a single crash in years using Helix, so I'm shocked to see Julia report she's had crashes. But because I run HEAD, I can tell you what's actually merged which might not be released yet: > Code actions on save There are command on save hooks which solve the problem for Go, but I could see this being not as applicable for other languages. > Fuzzy search Man, I'm pretty sure this shipped before telescope was particular stable or popular. Although, I don't recall if Helix originally used the ripgrep backend at first. They reworked it earlier this year and it was a massive improvement. > Automatically updating buffers +1 to this. I constantly suspend (ctrl+z) my editor and sometimes forget about it and could really use this prompt. > File tree in browser Space+e or Space+E opens a hierarchical file explorer on HEAD, but this is definitely relatively new
- zimpenfish 1y ago> I tried to switch from neovim to helix for a couple weeks I bounced off after a couple of hours because 35 years of muscle memory for vim commands meant I was making constant infuriating mistakes[0]. Which is a shame because I'd really like to use helix and avoid the neovim config faff. [0] I did try one of the "vim keybindings for helix" but they were only partially correct and that annoyed me even more.
- colordrops 1y agoThe first example of grep-ing source code is not great. It's trivial to install something like Telescope to have functionality similar to the Helix screenshot.
- NetMageSCW 1y agoBut how much do you have to find, vet (how much do you trust Telescope to not steal your credit cards one day), and install for all the features of helix?
- kesor 1y agoAnd you can vet that Helix will not be stealing your personal information now and in the future? What an asinine comment. There is no security, the computer is spying on you, you can't really vet anything.
- zoidb 1y agoThe bloat of the neovim distributions are real and what I would suggest for anyone who is a long time vim user is to check out kickstart. https://github.com/nvim-lua/kickstart.nvim https://github.com/nvim-lua/kickstart.nvim , specifically the modular fork https://github.com/dam9000/kickstart-modular.nvim https://github.com/dam9000/kickstart-modular.nvim which will give you a great (minimal) starting point
- commandersaki 1y agoHeh the thing I like about kickstart is everything is in one file, though it is a bit unwieldy, so I surrounded most bits around fold markers to make it a bit more manageable.
- zoidb 1y agointeresting! yeah I think the one file concept is really neat. Here are some more details about my config with the modular fork if you are curious https://jarv.org/posts/neovim-config/ https://jarv.org/posts/neovim-config/
- dtj1123 1y agoIf you're interested in learning Helix, consider doing so from the legendary nic-revs redo of the Helix docs: https://helix-editor.vercel.app/ https://helix-editor.vercel.app/ Significantly more pleasant to look at than the OG docs and he includes some nice tips and tricks, e.g. recipes for efficient editing and keybinds that help mitigate the lack of a built-in terminal.
- shoobiedoo 1y agoThank you for this. I was always baffled by the unreadability of the official docs. For me, at least
- jvican 1y ago`hx --tutor` is a life saver though. Did that to quickly catch up on hx keybindings and Claude chips in when I need more efficient things to do certain text editing operations.
- ngrilly 1y agoI've been trying Helix and really like it. But as someone coming from VS Code, I've been relying a lot on VS Code automatically saving and restoring sessions on restart (things like opened files, unsaved files, cursor position, etc.). It's helpful when I occasionally restart my computer. How do you that in Helix (or for that matter in Neovim)?
- worksonmine 1y agoI don't know about Helix but Neovim (and vim) has something called sessions and it does everything but unsaved files. By default it's manual but it wouldn't be too difficult to automate. A very simple way could just create/update the session on BufWritePost and ExitPre. Then create an alias to open Neovim with that session: 'nvim -S .session.vim'. You'll get an error if the session doesn't exist but it's easy to dismiss. There are probably plugins that do this in a more seamless way though if you prefer.
- nrvn 1y agoAs they say, YMMV. My personal journey: 2010-2014 - sublime text 2014-2017 - vim and later neovim (bunch of plugins to resemble IDE-like experience) 2017-2024 - jetbrains (intellij idea with language plugins mostly) 2024-now - neovim (with lazyvim) I tried helix in 2023 but it did not stick. Do not remember details but remember the final impressions of having to train muscle memory to “awkward” vim-like key bindings and dealing with various annoyances and bugs. End of trial and error I left it as a terminal $EDITOR for quick and adhoc tasks while doing all the heavylifting in intellij. Ditched it finally when vim muscle memory and hx muscle memory made my brain short circuit several times in a row. Now I am back to neovim and it is surprisingly as productive (when equipped with proper plugins) as the beefy jetbrains IDEs. That said, helix looks promising. Maybe it’s the next big thing, who knows)
- dividedcomet 1y agoI tried both nvim and helix from vscode, and no luck. I feel like I don’t need a lot (syntax highlighting, lsp, goto definitions, file hot reloads, and crucially, a file tree). I can kinda get nvim there, but it falls apart when I can’t just enter and exit the file tree+file viewer with a simple ‘vi or q!’. Maybe I don’t understand quite how to get the config just right, but so far a friendly terminal first code editor seems out of my grasp.
- sirfz 1y agoFunny I just updated my neovim lsp configuration yesterday to get rid of mason and have more control over my tools and found neovim's new vim.lsp.config API really easy to use. fzf-lua (and several other picker plugins) provide really powerful features and ux out of the box. I understand that configuration can seem overwhelming but investing a few hours will be really rewarding. I love (neo)vim
- imjonse 1y ago"Helix doesn’t have tabs, instead it has a nice buffer switcher (<space>b) I can use to switch to the buffer I want" It has tabs if you add (the completely undiscoverably named) bufferline="multiple" to the [editor] section in config.
- dcre 1y agoI use :reflow (mapped to =) decently well for wrapping comments, but it doesn't do well at splitting a long single line into multiple lines. My workaround is to add a second empty comment underneath and include it in the selection before hitting =. Likely fix here, coming soon according to the last comment: https://github.com/helix-editor/helix/pull/11738 https://github.com/helix-editor/helix/pull/11738
- klauserc 1y agoWas using vim for a decade, discovered Helix, installed it on all my systems and haven't looked back (at least not voluntarily; I'm always bewildered by the old-school CAD-like command-then-subject paradigm when I get thrown into vi on a random machine)
- sectoristerkx88 1y agothe percentage of shell scripts that are written in vi as opposed to vim is disproportionate, which is the litmus test for nano and v-studio types
- conaclos 1y agoI tried Helix two years ago, unfortunately the default keymap was a bit frustrating to me. I don't mind changing my habits, however I had difficulty I made sense of the keymap design. For example, typing `w` select the word. However, typing `2w` select the second word and not two words. To select two words you have to enter in visual mode (`v2w`). To remove two words you thus need to type `v2wd` or `wdwd`. In Vim you can type `d2w`. I miss this composability. In Kakoune (one of the main inspiration of Helix), you can type `2Wd` (`2wd` has the same behavior as Helix). I was also hoping that the use of Ctrl/Alt modifiers be completely removed. Why not fully embrace modal editing?
- JohnMakin 1y agoused vim for ten years now. I have wanted to try this out but stuck in my ways with vim. To me one of the great selling points of vim (I use strictly in terminal, I didnt even know there was a gui) is that no matter what machine I am on, I basically always have my code editor available to me. my .vimrc is about 10 lines, growing at a pace of maybe 1 line a year, and it’s in my head. If I need to switch machines, no big deal, just install my favorite flavor of vim and shell and I’m good to go almost instantly, vs the typical fuss a lot of other editors have to feel “just right.” vim out of the box is really good without much fuss, providing you have got past the learning curve - which admittedly, is steep.
- Lyngbakr 1y agoOut of curiosity, what in a broad sense is configured in those 10 lines? (For context: I'm a Helix user trying out terminal-based vim at the moment and I'd like to know what the most important tweaks are.)
- JohnMakin 1y agosome basic ones like: syntax on set number set expandtab set tabstop=4 set modelines=0 set nowrap and then a few related to ctags.
- kuon 1y agoI feel like I am not asking THAT MUCH from my neovim setup, but it is so complicated. My collection of vim config is about 1000 lines, that's insane, but when I try to trim it, everything seems required. My requirements: - language support (syntax, formatting) - lsp (I want the goto definition) - file browser - quick jump (fzf...) - a little bit of eye candy, nice fonts and a few icons to make things clear - auto reload if file changed externally - splits I can manage with the keyboard - persistent undo - in terminal or with excellent SSH remote editing I would love to have an editor with better defaults. I don't mind learning something good and robust if it will serve me for years.
- skydhash 1y agoMy emacs configuration is around 500+ larger, but that's mostly because emacs is a whole ecosystem. My `.vimrc` is 244 lines and I think the lsp settings is around 100 of that. The rest is mostly mapping and a few plugins (vinegar, surround, fzf,...).
- Mond_ 1y agoSo... have you tried Helix? Covers everything you're asking for, and doesn't require any config fiddling for it.
- kuon 1y agoHelix has no file tree.
- wilkystyle 1y agoMy configuration[0] doesn't quite meet all of your requirements, but you might be able to get some ideas from it. If you delete my hacky and very opinionated color theme configuration, it's 418 lines. - I use Neovim in the terminal, so that's where I configure the font (Hack Nerd Font Mono) [1], which I install via homebrew on macOS[2]. - LSP: Can't recommend mason.nvim and mason-lspconfig enough. Install LSP servers with mason.nvim, and then mason-lspconfig handles automatically configuring and enabling whatever you've installed. - I'm using mini.icons[3] - For the file browser, I highly recommend Oil.nvim[4], which I discovered from this video by TJ DeVries[5]. - I was using fzf-lua, but switched back to Telescope because it was a better fit for me personally (I missed C-k to automatically append a file glob to live_grep. I missed being able to toggle the previewer. I missed being able to hit Esc and move around the picker input box with Vim motions) Might be misunderstanding "splits I can manage with the keyboard", but (Neo)vim is pretty configurable here! I actually just use the default keybindings of e.g. - `C-w` then HJKL to move - `C-w C-v` to open a side-by-side (vertical) split - `C-w C-q` to close the current split - `C-w C-o` to close other splits (make current split the only one) - `[NUMBER] C-w C-w` to jump to the [NUMBER]th split. - `C-w o` to jump back to the last split you were at [0] https://github.com/wilkystyle/nvim https://github.com/wilkystyle/nvim [1] https://www.nerdfonts.com/ https://www.nerdfonts.com/ [2] https://gist.github.com/davidteren/898f2dcccd42d9f8680ec69a3a5d350e https://gist.github.com/davidteren/898f2dcccd42d9f8680ec69a3... [3] https://github.com/wilkystyle/nvim/blob/db16245731dea45f0c58d44a1ac67b67a0ecb09a/init.lua#L72 https://github.com/wilkystyle/nvim/blob/db16245731dea45f0c58... [4] https://github.com/stevearc/oil.nvim https://github.com/stevearc/oil.nvim [5] https://www.youtube.com/watch?v=-r1mMg-yVZE https://www.youtube.com/watch?v=-r1mMg-yVZE
- soraminazuki 1y ago> here’s what the vim ripgrep plugin I’ve been using looks like Fun fact, Vim has built-in integration for grep-like tools via the `:grep` command. For Neovim, it checks if ripgrep is available and uses it out of the box. For Vim, you can add this to your .vimrc: if executable('rg') set grepprg=rg\ --vimgrep\ --hidden endif If you don't have ripgrep installed on your system, it'll use plain grep. In that case, the command `:grep -R foo` works just as nicely.
- nyantaro1 1y agoHelix is awesome for Go development. Just install go official LSP running `go install golang.org/x/tools/gopls@latest` and Helix automatically handles the rest with sane defaults. Absolutely awesome
- soraminazuki 1y agoI initially found the noun-verb model of Helix appealing, but I discovered that I prefer verb-noun much better after giving it a try. One major drawback of the noun-verb approach is its inability to support repetition using the `.` command, which is one of my favorite features in Vim. I often find myself doing something along the lines of `dd..`, `dap..`, `<Ctrl-a>..`, or `/foo<Enter>cgnbar<Esc>...un...`. More importantly, noun-verb editors have a shortage of usable keys. Too many common operations require the use of the alt key, and that bothers me a lot. This seems inherent to the noun-verb model. To expand on this, Vim has normal, visual, and insert modes. Noun-verb editors only have visual and insert modes, resulting in fewer options for key assignments. To exacerbate the issue, noun-verb editors have no distinction between motions and text objects. This means they must map text objects in visual mode, whereas Vim only needs to map them after some verbs. So noun-verb editors uses up more keys in less modes.
- joshcsimmons 1y agoVerb-noun changes how you think too. I believe it’s more in line with the mentality required to write code.
- deleted 1y ago[deleted]
- prinny_ 1y agoI recently got into neovim and some things that the author mentions can be found in pre-built configurations like kickstart by default. E.g when hitting "g" I also get a popup with the available follow up keys alongside the final keybind's result. Grepping text provides a preview window with the context of the line that was found
- auraham 1y agoI tried helix a few months ago. Before that, I gave it a try several times. The editor is fine, but I always go back to vim and vscode for these reasons: - In vim, I can use vim-fugitive [1] to easily run git add and git commit. Not sure if helix has that level of integration with Git (I like the gutter, though). I know that we can use tools like lazygit within Helix, but I think :Gw and :Git commit are more ergonomic. - I prefer vscode to code in Rust because of rust-analyzer [2]. That plugin gives me type type annotations along each variable. Helix can also provide some hints, but not that many as rust-analyzer. [1] https://github.com/tpope/vim-fugitive https://github.com/tpope/vim-fugitive [2] https://rust-analyzer.github.io/book/vs_code.html https://rust-analyzer.github.io/book/vs_code.html