Recently, fate forced me to work on my old personal MacBook from 2015. Over the years of development, I've gotten used to powerful IDEs, such as IntelliJ IDEA, but my laptop couldn't handle it anymore. Having three projects open simultaneously made their development practically impossible. Everything was very laggy. I also noticed the same problems in VSCode. In frustration, I decided to take a radical approach and try out the classic Vim.
After working in Vim for 30 minutes, I realized that this method might be too harsh for me. A lot has to be done through the terminal: finding the necessary files, making edits, and running the linter separately. Additionally, to work comfortably, you need to know a lot of commands. But at least there were no lags anymore. Still, in 2023, I'd at least like to see:
So, my choice fell on NeoVim. Essentially, it's a significantly reworked and improved Vim. It retains almost all of its functionality, but at the same time, it adds rich expansion capabilities. One of the key features is the support for the Language Server Protocol, which allows for syntax highlighting, adding linters, and providing suggestions similar to VSCode. All of this has enabled developers to create a large number of plugins, replicating the functionality of the IDEs we are accustomed to these days.
And here's what I got:
It uses only 170-250 MB of RAM!
The quickest and easiest way to start is to use a pre-made setup. Here are a few great, well-known options to choose from:
Personally, I use LunarVim. It's quick and easy to install, and it has good documentation. There are many more here:
An important note: most likely, the standard terminal won't be enough for full-fledged work. On MacOS, I switched to iTerm.
So, I've downloaded and installed it; what's next?
There's a nuance here. Everything is controlled by keys, and only sometimes by the mouse. Almost any build has a project search, code hints, file explorer, and code hints.
There are numerous plugins available. For instance, this is a Copilot implementation:
Here's a short list of commands that will help you quickly get the hang of it and start playing around:
Navigation:
Space + e
g
+ mouse click
Search
:Telescope
Space + f
Space + s + t
What's needed the most
y
Ctrl + V
i
, default mode: Esc
:w
:q
By default, most of nvim packages have space
or g
and what for a second:
You can attach terminals using:
:ToggleTerm size=8 direction=horizontal
But I personally prefer adding them using native terminal’s functionality. For instance, iTerms can attach several terminal sessions to the current window.
If you want to become thoroughly familiar with the commands of Vim and remember them forever, there is a browser game that can help you achieve this:
And this comprehensive guide:
You can also work conveniently with git from the terminal. For this, you can install
mouse click
on files and foldersd
. It can be applied for lines and for files.p
c
P
I am impressed by how enthusiasts have managed to implement such complex features from modern IDEs inside the terminal using minimal resources. Personally, I find it to be a great choice when you have limited resources on your laptop or when you need to navigate through system files and make edits. It's also a great idea to set it up on a remote server. However, when I switched back to the powerful laptop, I stopped using it as a main IDE.