Learning Vim Again
Why cant I escape the pursuit of needless tool optimization?
(Re)-learning Vim
The intrigue of learning vim for increased productivity isn’t lost on me, and I’ve been swayed by the number of popular software influencers that heavily push vim as the definitive way to edit code. I’ve tried switching from VSCode to vim, neovim and even a set of different Emacs distributions.
Needless Tool Optimization
Needless tool optimization, as I define it, is the tendency to constantly look for new and better tools, even when the ones you have are good enough. It’s a form of procrastination that distracts you from your real work and goals.
I’m one of those fools that seeks out “tool productivity”, which is something I preach against; but the allure of squeezing out that extra 5% productivity is too great. That instinctual desire to maximize productivity coupled with the fact that I’ve developed carpal tunnel in my right wrist by the ripe age of 25 brings me back once again, to the land of keyboard driven editing.
Every time I’ve tried to switch from VSCode to Vim, Neovim, or even Emacs, I ended up frustrated and overwhelmed. I couldn’t remember the commands, I couldn’t customize the settings, and I couldn’t integrate it with my workflow. I wasted hours and hours trying to master Vim, only to go back to VSCode in the end.
Here I am again. Looking for that 5%
There are a number of keyboard driven text-editors some of them more popular than others. This brings me back to square one, which one to choose, how to hit jogging speed, and how to integrate it into my workflow daily to get that extra five percent productivity gain. The way I normally make these decisions is through the use of a decision matrix with some sort of weight set for my personal desire for certain aspects. We’re going to keep it simpler than that and instead integrate Vim motions directly in my current editor.
The Light at the End of the Tunnel
That’s when I discovered the VSCodeVim plugin, which allows you to use Vim motions and commands in VSCode. I had tried it before, but I gave up too soon. This time, I decided to give it another chance and use it for my personal projects, where I had less pressure and more freedom.
This time we’ll attempt to use it outside of work setting, on personal projects to alleviate some pressure from the endeavor and focus on the core set of motions with the goal of getting “up to jogging speed” as quickly as possible. I’ll need a cheat-sheet of sorts for easy reference for important VIM commands. The issue with the number of cheat-sheets online is that their breadth of content is simply too large.
To this end I’ve decided to create a cheat sheet with the most essential Vim commands that I needed to know. I found that most of the online cheat sheets were too comprehensive and overwhelming, so I’ll be making my own with just the basics. It will be appended to the bottom of this post as it’s completed.