See the parent document: Using the Terminal as a Daily Driver for more about terminal productivity applications.
Neovim is IMHO the premier CLI text editor. It is a worthy successor to VIM and has added lua as a plugin / configuration language that allows many amazing things to be done. I have played around with nvim, but was just learning vim motions along with trying to get things set up in a way that worked for me. Being new at this, it was a daunting task and I felt like I need to have a better understanding of all the plugins before committing to them.
Along the way, I discovered helix. Helix is similar to nvim in that it using the basic vim motions, but there are two major differences. First, it doesn’t currently have any type of plugin support. Second, the way it does selections is different from the vim world. The thing that recommends helix is it comes with a many tools you would want anyway (e.g. multiple cursors, tree-sitter, language servers). This means less initial configuration and I can focus on learning how to use the tool.
Helix
Helix is currently my daily driver text editor.
You will be spending a ton of time in your editor. So, it is worthwhile really learning it. The basic vim motions are not too bad.
The hurdle I’m at now is that there are certain things that I want to do. For example: say I have the phrase Home Page. I want to surround that phrase with parenthesis. How do I do that? There should be some basic way to do that in the editor.
I find this to be a great way to expand what I know. As you are working, notice things where there should be a better way. Stop and take the time to figure out what that better way is for you.
Questions:
What are registers?
They are like multiple clipboards. Access the registers menu by pressing ". There are some predefined registers, but you can also create your own. For example
- select some text
- Press
"jyto create a register named “j” and yank the selected text to the register. - Then to paste the contents of the “j” register, use
"jp.
There are also some predefined default and special registers. Check out the docs for more info.
Neovim
Neovim is extremely customizable with a huge number of plugins. That’s what did me in the first go around. I followed a couple of different YouTube tutorials for setting up nvim, and although the tutorials were great, I was not advanced enough in my nvim knowledge to make good use of them.
Currently, I have set up a one file configuration. All it has is an init.lua. This adds enough features for me to get started with mastering the application. Later on, I will come on in and start adding additional plugins to make it into something that fits my needs better.
The catch here is that my package manager installed version 0.9. Some of the features in the Rad Lectures video recommended below, did not work with that version. So, I uninstalled nvim and reinstalled it with brew install neovim. I could also have installed it using flatpak.