About this post
Do you know Vim? This lightweight, but weird-feeling, editor you might (need) to use on a server shell for looking through files etc.?
I never got comfortable with it, but I also did not spend time looking into it...
Neovim to Vim is like Yarn to NPM?
Neovim is an implementation of Vim, but focused on extensibility and usability. The key feature is asynchronous plugins (mostly) compatible with Vim, which significantly improves performance for things like code-completion and linting. -- console.dev
How did I get there?
Well, VSCode is based on Electron and in the end with dozens of extensions enabled, you basically use a Chromium browser with extensions under the hood that keep any fans - except the M1 ones - busy. Due to RAM memory limitations on my machine, I ended up in constant memory (swap) management recently.
Thus, my primary motivation to try out Neovim was: reducing load on my machine.
Mouse is lava
One of the key concepts of (neo)Vim is to not waste any time moving your fingers away from keyboard (e.g. for using your mouse to interact with the editor's UI).
It is all about your muscle memory to optimize your workflow by using default keyboard navigation, custom shortcuts, but also plugins you can install as you can do in VSCode.
Thus after many, many years of training, your Neovim muscle memory is huge enough to fight against The Primeagen who is typing and navigating faster within Vim than coconut oil is dripping - pun intended.
Where to start
You may say:
"I am overwhelmed! Help me!"
Calm down - I have been there before. Due to the steep learning curve, you need to have some kind of motivation to start looking into the Vim ecosystem - in my case it was due to hardware limitation reasons.
Without any kind of motivation, you will open and close it frustratingly after half a minute of question marks popping up inside your brain. I did this for many years, piling up a little more frustration on every occasion when I failed doing basic work and navigation within Vim (e.g. while ssh'ing on a server).
As Vim was introduced in 1991 which is maybe even before your own "release" date, you can imagine that there are A LOT of resources out there on the web.
Here are just a few that I collected over time (tbc.):
- Beginner guide
- Online-version of the help page
- Tips Wiki
- Plugin Database
- (Unpublished) Book "Learning to play Vim"
The first one I came across is ThePrimeagen. I randomly landed on one of his streams.
No, seriously. He works at Netflix and thus he is a pretty smart guy. But at the same time he is a born entertainer which results in a stream with hundreds watching him working on a C++ implementation of a network layer for Netflix. I am not kidding!
And his Vim skills are crazy as he is - but in a good way. If you have prepared yourself with enough coconut oil, you are safe to watch his streams. :)
If you know ThePrimeagen, you most probably also know TJ. TJ is actually a core maintainer of Neovim! So he is building the thing I try you to tell about. But he can do probably hundred times better than me and knows all the insights.
At the 29th to the 30th of October 2021 there will be a second version of VimConf happening online. I think this event will be a good opportunity to get in contact with the community and learn new, awesome stuff.
Dotfiles, Plugins, Configurations...
Take your time!
Altogether it is important that you start your vim journey on your own with the help of others. But it is all about your workflows, your needs and your muscle memory!
Over time you will find out which settings you want to (un)set, which plugins might be helpful for your work and which configurations you might want to copy paste from someone else or you want to write on your own.
All this needs some decent amount of time you will need to invest, but you should not care about that at the very beginning.
I just started this journey mid 2021 and thus I see myself at the very beginning of this process after a few months now.
In case you really want to dig into some dotfiles and vim configurations, watch ThePrimeagen's YT videos and dig into other people's dotfiles.
Shameless plug: I have my dotfiles public, but be aware those are my dotfiles, they fit my needs and I consider themself "Work in progress". So I am not sure how much value they might bring to you.
And now I wish you an awesome start with your very own Vim journey!