Using Vim

Oct 30, 2021 · 2 min read · 323 Words · -Views -Comments

I was previously attracted by a colleague’s fast coding operation, and upon asking, I learned it was IdeaVim - a Vim plugin for IntelliJ IDEA. I tried it for a while but felt uncomfortable with it, and there were also a lot of hotkey conflicts, so I gave up.

Recently, I read a book “Practical Vim” and was attracted by Vim’s modal editing and the design philosophy behind all its commands. At the same time, a comment in the book moved me - one-time investment, lifelong benefit.

I think it’s a bit embarrassing as a programmer to have never really used Vim, so I decided to learn it.

Vim Plugins

One of Vim’s strengths is its cross-platform compatibility and well-developed ecosystem. If you are familiar with the entire keyboard workflow, switching platforms will be smooth.

Currently, after sorting, I have included two Vim plugins in my productivity tool system:

  1. IdeaVim

    Used in WebStorm IDE to improve coding efficiency.

  2. Vimium

    Used in Chrome/Safari browsers for web scrolling, bookmark operations, etc., to improve efficiency.

Learning Cost

I didn’t stick with learning Vim before because of the learning cost. However, over the past few years, my persistent efforts in English translation, open-source project development, and self-developed productivity tools have brought me benefits that far exceed the initial costs.

Now I have a new understanding of the so-called “learning cost”: cost is an investment. As long as the probability of high returns is high, then I should try it. So now I realize that it’s a pity I didn’t learn Vim earlier, and I’m no longer afraid, so I’m starting to learn it.

Expectations - Learning Benefits

From now on, it will take a lot of time to master Vim proficiently, and I believe there will be two main gains:

  1. Vim’s functionality itself will further improve my efficiency, just like my previous set of hotkeys.
  2. Vim’s design philosophy will also bring me some reflections on software design.
Authors
Developer, digital product enthusiast, tinkerer, sharer, open source lover