VIM — The Speed comes from its limitations.

Cristian Vasquez
3 min readJun 21, 2023

TLDR: Vim allows you to navigate and edit at the speed of your thought.

The goal of this post is to answer the question: why is worth going through the “pain” and work of properly setting the Vim ?, and I’m going to do it by explaining how our tools affect our train of thought and as a consequence our productivity.

Your mind is way faster than your navigation/editing speed.

When we are trying to understand an issue, create an idea, or learn something, what is happening within our brain is that we are having a conversation with ourselves asking questions, creating hypotheses, guessing, making assumptions, etc; to properly conduct this process we need two things:

(1) No interruptions.

When we are creating or debugging some code we are building a structure in our mind, to hold on to that “image” is very important to avoid distractions.

(2) Tools that can keep up with our thoughts.

To properly develop an idea we need to be able to just focus, and your tools should quickly provide your brain with answers or data without distracting you with bloated UIs, load times, context switching, a ton of tabs, overcomplicated ways to find things or notifications, so you can iteratively improve your idea or comprehension.

To protect your train of tough you need a set of tools that allow you to achieve high speed at the moment of:

  • Navigate your files and code
  • Run scripts/commands/queries/ etc.
  • Use your version control system.
  • Share content.
  • Search documentation.
  • Take notes.
  • Sketch diagrams or draw concepts.
  • etc.

Edition/Navigation Speed == Keyboard Shortcuts

As you can imagine a lot of the tasks listed above are done with your code editor, so you need it needs to be really fast, and also you should be very proficient using it, both speeds came from different places:

Editor Speed => Your code editor should be lightweight and able to get the job done quickly, but this is not the speed that has the highest impact on your productivity, a couple of extra seconds on load time or some extra milliseconds to open a file will not make a huge difference at the end.

User Speed => The majority of the productivity comes from the way that you use your editor, and that productivity comes from using the shortcuts that allow you to quickly navigate and edit your code, the good news is that EVERY code editor has shortcuts.

So, if almost all editors have decent performance and all of them have keyboard shortcuts why learning to use VIM is going to provide you with more speed?

VIM — The Speed comes from its limitations.

I know it sounds counterintuitive but bear with me for a moment, let’s discuss how limitations provide speed and productivity at the end of the day:

1. No mouse and keyboard mods.

Maybe the first big change when you are trying to use Vim is the impossibility to use your mouse to do things, but this limitation forces you to learn Vim movements, shortcuts and, modes, once you learned them there is no turning back, and you end up developing a lot of muscle memory with keys that allows you to go exactly where you want to go and change things without thinking.

2. Lack of UI, tabs, panes, and toolbars.

This is going to help in two areas, the first one is that you are going to have a very minimalistic view that allows you to focus your attention on the actual code, on the other hand, this limitation forces you to learn commands to navigate between your buffers, marks, and windows, so you can jump back and forth without thinking.

3. Lack of pre-configured environment

For starters this is probably the most annoying thing about Vim, it forces you to think about your editor, and what you want from it and to find ways to set it up, this is a journey but once you start is fun to find new plugins, shortcuts, and commands that enable you to do things fluently.

The result

Once you have learned Vim movements, and customized Vim to your needs, with a lot of muscle memory at your disposal, you are going to move around your code, files, git, etc. really fast and as a consequence have more room in your head to develop your ideas and understanding.

And that’s why it is worth doing the effort to learn and use Vim ;)

--

--