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
edit to add nvim repo link
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/b647b440...
Of course, there are other reasons to build your own configuration but I found purely from "IDE as means to an end" perspective getting into Neovim rabbit hole is a bit of waste of a time
But because Vim-like keys and modes seem to be so much better integrated in all other editors these days (no good Emacs mode in VSCode for example), seems like it won, and it'll soon be time to accept that.
But every time I tried – I never had enough patience to use it until my fingers have the memory, and didn't see the point enough to keep smashing the editor.
So, very interested in reports of actual hardcore Emacs users about the switch.
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)
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.
Part of it for me is that I really don't like the massive plugin / config wall that is the modern neovim/spacemacs experience. I truly appreciate the extensibility and the fact that those plugins allow for things helix just can't do right now (e.g. emacs is effectively the IDE for any lisp language and you can't load up a repl in helix). But the problem with that becomes not only do I need to learn the application itself, but now I need to learn a whole bunch of plugins, and often learn about the differences between them because everyone has their own preferences in combinations, so looking up how to do something covered by a plugin often leads you to multiple incompatible answers. And even if you bite the bullet on trying to build your own config from scratch (which I did with emacs) you're still often just taking on faith other people's recommendations on stuff, or spending a lot of time learning about a plugin to make a decision and that time is time you're not spending on whatever you want to be doing.
Helix benefits from being new and not carrying generations of legacy decisions behind it. As a result, helix can make decisions and defaults that fit "modern" expectations. It's not perfect by any stretch of the imagination, but it's also probably what I would recommend for someone "new to the TUI" as a place to start when you just need something with a good chunk of modern conveniences and don't want to spend the next few weeks getting the editor configured.
I used neovim for 20 years and still like it a lot. But after some plugins broke I wanted to give helix a try. I am missing a plugin system in helix.
However, for me, helix comes with the nearly perfect amount of functionality, while being extremely responsive. It also made me appreciate stuff like multicursor, which I haven’t tried before.
I tried multiple out of the box nvim solutions, but never liked one of those.
I looked into zed, but don’t see much of a reason to use it. Maybe I should give it a try.
EDIT: for context I'm a hobbyist who use n/vim for 12 years or so before switching to helix for the last couple of years. There are several things about nvim behavior that I still miss quite a bit and still feel more natural, but the instant startup of helix vs a second or two for nvim configured to a similar level of functional makes it totally worthwhile for me.
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).
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.
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 ).
x 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.And so, could (Neo)Vim be configured to work more like Helix?
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.
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.
:reset-diff-change
I've been using git checkout -p
But doing this inside Helix is much more convenient.
scuff3d•3h ago
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•3h ago