A few months ago, I got the itch to learn a new programming tool. Perhaps there was a blog post I read or something like that (I really can’t remember), or maybe my subconcious brought up memories of a former coworker who was an avid Vim user. Regardless of the backstory, one day not too long ago I decided to try out Neovim and see what all the hype was about. Downloading software wasn’t too hard, getting it set up was a bit more of a challenge, but learning how to interact with this tool using all the super-confusing keyboard commands was definitely the tricky part. I still don’t know if I ever even got to the place where I could think in “vim mode”.

But I got some tools set up, read a few articles on how to use Vim, and slowly tried some writing and editing. On a random lunch break, I went through a large chunk of the built-in tutorial (using the :tutor command) and I have to say that was probably the most effective learning mechanism for this tool. After mastering the basics, I started switching my everyday tools to vim-mode wherever possible. The ActualVim plugin for SublimeText was one of the first things I installed, and it (mostly) worked. I also moved over to vim-mode in Obsidian, since that’s my daily writing and journaling tool. But honestly, it all felt a little janky. There were some very helpful editing shortcuts I picked up from a Vim cheatsheet I found online, such as dd to delete an entire line and o to insert a new line below and start editing. A few things like that and combinations like cw entered my memory and helped me to be reasonably effective.

But still something didn’t feel natural. Entering a new document in Obsidian and not being in insert mode always felt really clunky. There were days when my Sublime Text plugin would get borked somehow and I couldn’t make a basic edit to a file, which led me to eventually uninstall ActualVim entirely. I tried VimR[1] as an alternative, but the tool didn’t seem as nice as my beloved Sublime Text. In the end, I got fed up with the experiment. Last week, I turned off vim-mode in Obsidian and felt my muscle-memory give a sigh of relief. So much of me wanted to become this amazing Vim guru who was that much more productive because of my cool tool. But I didn’t arrive there, probalby because I didn’t pick up the mindset. While writing this post, I came across an article where the author claims that Vim’s power isn’t in the tool, but instead in the mindset… which has to do with editing instead of simply writing. Perhaps that’s what made my Obsidian integration so clunky, because I mostly do writing in Obsidian.

I’d still love to go back and try again, to pick up the mindset and become more proficient. But whether it’s because I don’t do enough coding on a regular basis, or because I was trying too hard to make everything about Vim[2], I feel like this experiement took me full circle, back to the old ways I know. I’m still not satisfied with my tooling, especially for coding, writing, and editing, so there is still plenty of room for improvement. Looking back, the silver lining is that I now know how to get into and out of Vi/Vim/Neovim with elegance and I won’t ever be caught flat-footed on a Unix terminal if I have to edit a file. That’s a helpful skill to know.

  1. It’s still installed on my laptop, actually. I might keep it around to play and try to figure things out more. ↩︎

  2. I discovered an app called kindaVim that theoretically makes it possible to use your vim skills everywhere in macOS. But I never got around to using it. ↩︎