Home About Articles zoomlogo's site

Using vs. Utilizing a tool.

This article is more of a rant than anything else.

The using.

When I first switched to Vim for my primary editor, I switched to it from IDLE, which is shipped by default with Python. I learnt how to navigate files using the standard h/j/k/l motions, and felt pretty cool doing moves like "ggdG" to delete an entire file, and then undoing it using "u" (keep in mind, I was 13 years old at the time). I flexed on my friends that I didn't touch the arrow keys (or the mouse) for editing text whereas they used things like Notepad to get the job done.

I did realize at the time that holding "j" to go down a few lines is slow but by that time I had been using Vim for a week and had this habit basically in my muscle memory.

I like to call this phase, "using" the tool. You have the basics down, but you are a beginner. You have all the bad habits with you (like holding down "j" in Vim to go down multiple lines, instead of using something like "8j" or even "C-d" or more extremely: "C-f"). It takes quite a bit of effort to get rid of these habits.

A few weeks in, I thought Vim was confusing and was slow and then spent the next 2 years hopping between various IDEs. I however, kept coming back to Vim, because I really liked its modal editing and keybinds. They felt natural.

Realizing the what, why and how.

The third time of using Vim, I was still using relatively basic commands. However slowly one starts realising why a particular tool exists. Slowly I realized the point of Vim: Editing... Editing fast.

I started incorporating more complex commands (relatively speaking) by reading forums and discussions and reading other people's dotfiles. I started using things like regex searching, f/F/t/T, page up/page down and immediately felt an improvement in the speed at which I edit text/code. Because you fundamentally edit code more often than you write code, Vim's normal mode started to make sense. At this point I decided to stick with Vim.

I installed a lot of plugins by looking at other people's dotfiles, but most didn't fit in my workflow. I still felt like I had a speed gap. But one day, I decided to stop and relearn Vim. I realized that Vim (without any plugins) offers a lot of builtin motions, and most importantly, I learnt how to read: Vim has a very navigable help page. Use it.

The utilizing.

I realized I don't need that many plugins anymore. And I wrote some plugins myself, which I thought would be useful. I started changing my workflow to incorporate more Vim motions, which streamlined my workflow. Recently I started using Vim for a lot of things like taking my notes (instead of using Obsidian), and managing my files (instead of using a file manager).

TIL

I still learn new things about Vim everyday. I recently incorporated ";" (repeat last f/F/t/T search) into my muscle memory.

The next thing I would like to incorporate into my workflow are marks. Use "ma" to set a mark called "a" and then go somewhere else in the file and make some changes. When you are done, use "`a" (or "'a") to go right back to the mark. Once I incorporate this into my workflow, I will perhaps realize that I never needed another editor, I just needed to master the one I knew.