fix: evaluation warning - 'system' has been renamed to/replaced by 'stdenv.hostPlatform.system' Signed-off-by: Ryan Yin <xiaoyin_c@qq.com>
Helix Editor
Neovim is really powerful, and have a very active community. I use it as my main editor, and I'm very happy with it. I use it for everything, from writing code to writing this document.
But its configuration is a bit complex, and finding the right plugins, writing configurations, and keeping everything up to date is not easy.
That's why I'm interested in Helix, Helix is similar to Neovim, but it's more opinionated, and it's batteries included. Whether I'll switch my main editor to Helix or not, it gives me a lot of ideas on how to improve my Neovim workflow.
Tutorial
Use :tutor in helix to start the tutorial.
Differences between Neovim and Helixer
- Selecting first, then action.
- Helix: delete 2 word:
2wthenx. You can always see what you're selecting before you apply the action. - Neovim: delete 2 word:
d. then2w. No visual feedback before you apply the action.
- Helix: delete 2 word:
- Helix - Modern builtin features: LSP, tree-sitter, fuzzy finder, multi cursors, surround and
more.
- They're all available in Neovim too, but you need to find and use the right plugins manually, which takes time and effort.
- Helix is built in Rust from scratch. The result is a much smaller codebase and a modern set of
defaults. No VimScript. No Lua.
- Neovim contains a lot of VimScript, and lua is too dynamic, it's hard to debug.
- Personally I'm glad to take a look at a Rust codebase, but not a VimScript/Lua codebase.
- Neovim have a very activate plugin ecosystem, and it's easy to find plugins for almost
everything.
- Helix is still new, and it even don't have a stable plugin system yet. A PR to add a plugin system is still envolving: https://github.com/helix-editor/helix/pull/8675
- Neovim has integrated terminal, and it's very powerful. It's quite similar to VSCode's integrated
terminal. I use it a lot.
- Helix doesn't have a integrated terminal yet, as it's complicated to implement. Users are recommended to use tmux/Zellij or Wezterm/Kitty to implement this feature instead.
- https://github.com/helix-editor/helix/issues/1976#issuecomment-1091074719
- https://github.com/helix-editor/helix/pull/4649
- My Neovim often gets stuck when I switch to toggleterm.nvim, this Helix issue made me consider to switch from this Neovim plugin to Zellij.
- Helix do not have a tree-view panel, it's recommended to use Yazi/ranger/Broot instead, and open
Helix in them.
- a tree-view plugin may be added after the plugin system is stable, but no one knows when it will be.
- and some Helix users stated that they don't need a tree-view plugin, Helix's file picker is useful and good enough.
- It seems Helix lacks a global substitution command, you should run it in another window(via wm or
Zellij).
- https://github.com/helix-editor/helix/issues/196
- Neovim's substitution command allow you to preview the changes before you apply it, and it's very useful. if I switch to Helix, I'll need to find some other tools with similar feature(such as https://github.com/ms-jpq/sad).
- Complexity and Maintenance Costs vs Batteries Included: https://github.com/helix-editor/helix/discussions/6356
I think Use Helix/Neovim within a terminal file manager(Yazi/ranger/Broot) and Zellij is a good idea. It's quite different from the workflow I migrated from VSCode/JetBrains before, I'm very interested in it.
In Neovim I can make the workflow similar to VSCode/JetBrains by using some plugins, but Helix forces me to get out of my comfort zone, and try something new.