6 ms·
How I'm using Helix editor
- scuff3d 1y agoI still prefer Neovim but I'm glad to see Helix getting some love recently. Hopefully it continues to do well. Last I checked they still don't have a plugin system., I bet they'll see a jump in popularity when that gets going.
- mgrandl 1y agoI think the plugin system is close, the author is just busy with other things before doing the final push to get it merged.
- mobilemidget 1y agohttps://github.com/helix-editor/helix/discussions/3806 https://github.com/helix-editor/helix/discussions/3806
- dannyfritz07 1y agoInteresting. What happens when you open a file in the yazi pop-up? Does it create a buffer in Helix?
- jvican 1y agoI'm not sure OP configured it this way, but it's possible. For example, yazelix gives you that functionality.
- dannyfritz07 1y agoI do it using `nvim --server`, but not sure Helix can do it. https://neovim.io/doc/user/remote.html https://neovim.io/doc/user/remote.html
- wilkystyle 1y agoI've recently been on a little side quest to rebuild my editor configurations (20 year Emacs user, 15 year Vim user—in parallel with Emacs because I can't seem to pick a favorite). The goal is to see how quickly I can get to a daily-driving complete setup for enterprise-grade software work largely in Python. My goal for the rebuild is to see how much I can drop as far as reliance on third-party extensions and still have the functionality that I need (or which makes me unreasonably more productive). My Neovim configuration[0] is currently the best it's been IMO, but I ended up having a few more plugins than I thought I would need. I am earlier along in my Emacs rebuild, but what is really interesting to me is that there are a lot of improvements in modern versions of Emacs (30+) that dramatically reduce my dependence on third party plug-ins. Eglot has been fantastic for me, as a former long-time lsp-mode user. Completion preview mode is not quite a replacement for corfu, but it's pretty darn good and only going to get better. So far my list of must have plug-ins for Emacs: - Magit - Expreg (teeesitter expand region) - Multiple cursors - dape (debugging in coordination with Eglot) Thinking I will probably end up adding Consult + orderless, too, as that is a search/navigation superpower. [0] https://github.com/wilkystyle/nvim https://github.com/wilkystyle/nvim edit to add nvim repo link
- dannyfritz07 1y agoThat is quite a lot of nvim plugins to maintain! I just rewrote my nvim last week with 4 plugins (mini.nvim counts as 1). I feel when I stack up too many plugins the stability and reliability of nvim plummets to an annoying level. I envy that with emacs you feel you only need 2 plugins. That probably operates with a ton more stability. https://codeberg.org/dannyfritz/dotfiles/src/commit/b647b4402a9c7c23187ddf3ea4cf32e149b6b20d/mini/init.lua https://codeberg.org/dannyfritz/dotfiles/src/commit/b647b440...
- dannyfritz07 1y agoNewer nvim is also slowly eating into the plugins needed. There is a built in plugin manager, diff viewer, and lsp now.
- petepete 1y agoUndotree functionality was recently merged in too.
- ramon156 1y agoFor people who use helix and want a TUI, why choose this over neovim? I like the defaults in helix until I don't, and then have to change stuff. For people who use helix and want the full IDE experience, why not Zed, or maye even VSC/JetBraind IDE (come to think of it, how's fleet doing?). If i need something simple I fall back to nvim, and if I'm missing features I sometimes boot up WebStorm (or if a colleague wants to navigate through something)
- derleyici 1y agoSpeaking to the second point, it's clear that some folks will avoid quitting the terminal at all costs. I could very well be one of them. :-D
- f311a 1y agoPersonally, I don't like the idea of maintaining 500+ lines of config with tens of plugins. Setting up neovim from scratch is pretty tedious. Using something like lazyvim sets up 50 plugins, which are updated by simply taking the most recent commits from respective git repositories. It’s only a matter of time before someone deploys something malicious to one of those 50 plugins. Language support in JetBrains IDEs is top-notch, but they consume a lot of resources and do not work well for remote development in my experience. I still open them from time to time to do complex refactoring. Also, I just hate the idea of opening Goland, RustRover, and PyCharm at the same time. I have a monorepo at work with multiple languages.
- aidenn0 1y agoHow do people get such large config files? I have been using vim for 20 years and my config has grown to 33 lines, 8 of which are blank or comments. I probably use a dozen plugins, which typically add between 0 and 2 lines of config each (syntastic being an outlier, making up fully half of my non-blank lines)
- linhns 1y agoMost people have to work with multiple languages, each of them takes around 20 lines, and blanks + comments add up as well.
- punkbit 1y agoInteresting that every time Helix comes up, someone just has to mention Neovim. You never see Emacs or Helix users do that the other way around. Almost as if they’re personally offended.
- tiffanyh 1y agoIsn’t the reason more benign. Neovim exist to improve upon concepts in Vim (easier plugin development with Lua). Helix exists to improve upon concepts in Neovim (need for less plugins, more out of box functionality).
- lawn 1y agoNot that surprising to be honest. Helix is more similar to Neovim than Emacs and Helix is newer and less popular than Neovim, so people are predictably curious on why they should choose Helix over Neovim.
- adamors 1y agoVin/Neovim is one of the most popular editors in the world, Emacs and Helix are far from that.
- beanjuiceII 1y agoemacs is far from that? that seems mistaken
- adamors 1y agoHere's just one survey: https://survey.stackoverflow.co/2024/technology#1-integrated-development-environment https://survey.stackoverflow.co/2024/technology#1-integrated... showing how unpopular Emacs is. It has a lot of mindshare among greybeards but very few people actually use it.
- kgwxd 1y agoJeez, do you know what projection is?
- 1y ago
- netshade 1y agoI'm an Emacs -> VS Code -> Helix convert, have enjoyed using it thus far. I've tried to internalize all the existing keybindings and use thus far rather than configuring it much ( I've wanted to have the least amount of config necessary to be effective with it ) One thing I've struggled with is simply remembering everything it can do. I made a Desktop Mat[0] to help remind me ( literally just finished it so will see how helpful it is when the printed version arrives ). [0] https://git.sr.ht/~netshade/helix-deskmat https://git.sr.ht/~netshade/helix-deskmat
- k_bx 1y agoFor how long have you been using Emacs before?
- netshade 1y agoI was an Emacs user for about 3-4 years. I never felt very proficient in it, I always felt like I was cargo culting in config changes that I never felt comfortable with. I liked the power, but never graduated to the point where it felt like it was working with me. AFA why I didn't switch to Vim, there was enough "Vim is great with a great config" which felt so similar to the situation I was already in with Emacs that I just wasn't convinced. Not the greatest rationale, but that's what it was.
- skydhash 1y agoWere you vanilla or some prebuilt configuration like Doom? I started by copying someone's (vanilla) config and get everything that felt right for me. Then I went on to other people's config (also vanilla) to get what they have that was different and the rationale behind it. I'm still editing my config every now and then, but mostly smoothing out interactions with the software. Latest was configuring magit to have a speedier interaction by removing some stuff I don't care about.
- netshade 1y agoStarted vanilla and importing things like projectile, magit, all of that. I didn't like the awkward edges of how they joined tho, and eventually tried switching to Spacemacs with "less" of my own config. None of it was awful, but none of it felt great. When VSCode came about and had great integration for a language I was primarily using at the time ( Typescript ) I switched to that and was happy for the comparatively low config required. My Helix switch came about just because of how VSCode absolutely chewed through battery usage when I was out and about.
- aidenn0 1y agoStill haven't found a way to delete the current line in Helix (even if the current line is blank; "xd" will delete the current non-empty line, but will delete two lines if the current line is empty).
- johnofthesea 1y agoI just use “d” for empty line.
- f311a 1y agox Select current line, if already selected, extend to next line extend_line_below X Extend selection to line bounds (line-wise selection) Just use X.
- aidenn0 1y agoAh, so Xd will always delete the current line and e.g. X2xd will delete 3 lines. Still not as nice as dd/3dd like in vim, but at least I don't have to keep extra state in my head.
- dpc_01234 1y agoAnnoying, isn't it? I am running a trivial fork to change the `x` behavior on an empty line. https://github.com/helix-editor/helix/pull/4847 https://github.com/helix-editor/helix/pull/4847
- aidenn0 1y agoI think I will be using that patch; thanks!
- jiehong 1y agoI'm really not well experience in Vim vs Helix, but could one say that Helix is more like if Vim was in visual mode by default, and stayed in it even after an action? And so, could (Neo)Vim be configured to work more like Helix?
- ctenb 1y agoSee helix.vim on GitHub
- bkrein 1y agoI've been using emacs for the last 10 years or so (used Sublime Text before that). I use vim as well from time to time for quick file edits here and there or on remote servers and thought it's fine for that purpose, but I didn't really see the need to use vim exclusively. I'm pretty well settled on emacs now and have my own carefully written modules and functions to get the right setup for me. I tried helix last month and was immediately hit by how simple it is to get started. It still doesn't come naturally to me, but I managed to quickly get used to the basics: jumping around code, search, yanking/pasting stuff, and switching buffers and windows. I have no idea about its history, but Helix is a very well designed piece of software. Global search is particularly nice, lsp integration just works, it's also exceptionally fast. It feels very nice and comfortable when a software has sane, coherent, and actually-helpful defaults. I'm definitley going to keep using it and getting myself more accustomed to this way of editing, I will keep emacs as my default, but helix is just so fast it might become my go-to over time for editing code.
- rfmoz 1y agoFor those looking beyond Helix, Kakoune and Neovim, Vis is a lightweight and elegant option, worth a look.
- spartanatreyu 1y agoIt looks interesting, but I'd put it more in the "simple, but simple != easy" category. Helix is built around showing you what will change before you commit the change which reduces the accidental change problem that vi, vim, neovim has. In the case of Vis' regex based commands, helix will let you do a regex based find, remove certain matches, then commit a regex replace.
- xigoi 1y agoIs the “accidental change” really that much of a problem if you can undo with a single keypress?
- spartanatreyu 1y agoYes, since most accidental changes aren't noticed until well after they are made.
- bitbasher 1y agoAt this rate, why not use vim? Half of the configuration is re-creating vim inside Helix. Not to mention, Helix has many dependencies (you just don't see them the way you do in neovim). I think I could make a case that my vim setup is more supply chain safe than Helix. My current vim8 setup is very simple and has served me well for 8+ years. I'm currently using vim8 because it's what is available within my LTS distribution. I only use one automatically loaded plugin (`vim-tmux-navigator` to simplify moving between vim splits and tmux splits, it's a passive plugin). I have reviewed the code for the plugin and I don't update it. I only use two "optional" plugins (you can enable them using vim's built in package manager with :packadd!). I use `ale` (lsp, diagnostics and automatic formatting on save) and `vim-fugitive` (git workflow inside vim). Why use ale? Because it works with vim8 and doesn't require any other dependencies like nodejs or python. I have reviewed the code and I'm happy with it. Install it and use it, don't update it without a reason. Why vim-fugitive? It's a productivity booster. You install it once and forget about it. Tim Pope is the man. I don't automatically load plugins (besides tmux-navigator) for a few reasons. Most of the time when I'm using vim it's for quick editing where I don't need the heavy tooling (like git integration or an lsp). If I am working on a project with a long term session I will enable git and lsp. There's no need to automatically run code unless you need it.
- dpc_01234 1y agoHelix's editing model is better.
- bitbasher 1y agoI've tried for 2-3 months and I had no problems with the editing model. My main issues were with the general UX (text moving around with diagnostics, balloon windows covering your input, etc). That's in addition to my other issues (you need to install it, it's not available everywhere, etc).
- deleted 1y ago[deleted]
- tylerdavis 1y ago
- ngruhn 1y agoNice! I didn't know about: :reset-diff-change I've been using git checkout -p But doing this inside Helix is much more convenient.
- arresin 1y agoI tried helix and I liked it but it’s not usable for me without the ability to author plugins
- spartanatreyu 1y agoPlugins, coming to a release near you: https://github.com/helix-editor/helix/pull/8675#issuecomment-3373458990 https://github.com/helix-editor/helix/pull/8675#issuecomment... Or you could check out the branch where the plugin system and the community's plugins have been kicking around for a while now
- inatreecrown2 1y agoI need the ability to run the current file with a shell script / program. Like Vim offers with :!whatever % Last time I checked Helix did not offer this. Has this changed?
- mechanicum 1y agoThese have been available since mid-2022: :insert-output Run shell command, inserting output before each selection. :append-output Run shell command, appending output after each selection. :pipe, :| Pipe each selection to the shell command. :pipe-to Pipe each selection to the shell command, ignoring output. :run-shell-command, :sh, :! Run a shell command The placeholder for the current file is %{buffer_name} (not as bad as it looks, the command line has tab completion for basically everything).
- cosmic_quanta 1y agoCo-incidentally, I started learning neovim (via lazyvim) this week. I just gave Helix a try, and I think the selection and motion logic is much more natural to me. I might try to learn this instead of neovim for a while.
- torben-friis 1y agoI’m checking out helix for the first time, and two serious drawbacks come to mind: - if a main point is modal editing, vim lets you use your muscle memory everywhere, since vim mode is pretty common (plus extensions like vimium, and almost certainly having vim on any machine you ssh to). - helix seems to be both opinionated about simplicity (no terminal integration) and not very extensible with plugins (no linting unless it comes from the lsp)? That seems to be a limited combination, forcing you to have your whole setup built upside the editor (tmux etc). I’m not saying this to disparage the project, just wondering: what are the big upsides that balance those cons?
- spartanatreyu 1y ago> - if a main point is modal editing, vim lets you use your muscle memory everywhere, since vim mode is pretty common (plus extensions like vimium, and almost certainly having vim on any machine you ssh to). There's not a lot of devs who want to directly use the basic vim experience (without any plugins/config). Even with similar keybinds, most devs aren't going to want to switch between editors. Instead, most devs are going to want to use an editor with a personalised setup and set of capabilities. The exception are those few devs who are actually sshing between many machines with a raw-dogged editor experience because it's a hard requirement, in which case they can continue to use nano, vim, vi, emacs, ed, etc... > - helix seems to be both opinionated about simplicity (no terminal integration) and not very extensible with plugins (no linting unless it comes from the lsp)? That seems to be a limited combination, forcing you to have your whole setup built upside the editor (tmux etc). Helix was actually built with the intention of having a whole setup built inside the editor, but that's not what the community wanted. So helix has been transitioning into adding a plugin system so the community can turn it into an all-in-one editor. The plugin system is not enabled in the main releases yet, but it's been in it's own branch for a while with a community of plugins already developed and with devs using them now. But all things considered it is the right move to hold back the release and get the shape of the plugin system as good as possible, because if it were released then needed to be changed, you'd be negatively affecting all the plugins that were released before the change. --- The biggest upside is fixing the poor UX decision that's been baked into vi and carried into vim and neovim. That being, the order of operations which make it harder to see your changes before you commit them, making unintended side-effects easier to occur.
- rmrf100 1y ago"There are a lot of emerging supply-chain attacks, and I simply don't like the idea of installing tens of plugins to Vim/Neovim to make the editor usable." This is exactly what I’m concerned about.
- arcxi 1y agothis used to be a valid selling point for helix until neovim added LSP and treesitter support to the editor, which happened years ago. modern neovim is quite capable out of the box.
- commandersaki 1y agoNever really considered supply chain attacks with neovim, but that is a bit worrisome as I use around 15 plugins. I can see why the author switched to something with a reduced attack surface.
- submeta 1y agoI have a very extensive neovim setup, and was reluctant to try out Helix, but this morning I installed it, and I am totally amazed what this editor delivers out of the box! Woooow! This is unbelievable. Totally fast, smooth, and has all the settings I had configured over days in lua and with the telescope plugin. How did the makers of Helix know what us hackers need, want, as if they reviewed my config file :D
- lukaslalinsky 1y agoI've really tried using Helix, I've forced myself to learn the flow, I'm even efficient in it by now. But I came to the realization, that while the reversed flow is easier to implement and easier to learn, it's just slower to use. I came back to Vim, and eventually to Zed (in Vim mode).
- rmrf100 1y agoI give a try of helix today, it's really good design editor, but mising many quick operations of vim like y2$, dw.
- f311a 1y agoThey are not missing: y2$ is 2xy, dw is just wd.