Don't be scared. Switch to vim.

608 words, 3 minutes to read

I'm currently sitting at the most boring meetup I've probably ever attended in Delhi. It's about chatbots. I don't care about chatbots, I care about free stickers and pizza. So I'll take this opportunity to open up about a subject that's dear to my heart: vim.

I used to believe vim was exclusive to this superior race of developers who gulp coffee like it's water and seem to only read HN and nothing else. (Hi, if you're coming from HN). Architecture and Software design comes naturally to them, they never run into bugs and they can recognize the most obscure of algorithms at a glance (Shout out to Shashank, one of my mentors).

Shanky is a good, productive developer. Shany uses vim. I want to be like Shanky. I want to use vim.

There are a million reasons why you should jump ship and join the cult. In the next paragraphs, I will detail some of these reasons.

It's not (that) hard

There's a learning curve to vim. But it's worth the trouble. And if you're on Linux or MacOS, there's a built-in tool called vimtutor (just fire it up from a terminal, I am not sure about Windows though) and a wide variety of online tools to learn vim. Namely openvim, vim adventures, and vim genius.

Personally, The way I learned was by using it on small, fun side projects of mine during the weekends, mostly to become familiar with the new mental model. And just like everything in life, shit takes time, and practice makes perfect. So keep at it and you'll eventually come to your "aha" moment. As you get more and more comfortable using vim, it will become harder and harder to go back to a regular editor / IDE.

It's Fast and Customisable

Because it runs on the terminal, you'll never have to wait 20 seconds to get on with your work. (Atom anyone ?)

And if you like pretty things, there's a large selection of colorschemes for you to choose from. On top of that, there's a plugin for just about anything you might need. And if there isn't, you can program your own.

Ubiquity

Not really, but I wanted to place a complicated word to sound smart. Seriously though, it's everywhere. On Mac OS, Windows and of course Linux/Unix. If you work on remote servers you can quickly edit files on the fly without having to use nano. (Don't use nano)

Say for example a coworker/friend is running into a bug, you come to help and they're using an IDE you're not familiar with, well you can just access the files from their terminal and start debugging right away.

Or if you're like me, and you spill water on your Macbook keyboard and it becomes toast, you can spin up a VPS on Digital Ocean or AWS, and pick up where you left off (almost) right away.

Bonus: Some of my favorite plugins

My color scheme of choice (at the time of writing) is afterglow.

And here's a list of my favorite plugins:

  • Nerdtree (A tree explorer much like the sidebar in traditional IDEs)
  • Airline (A sleek, customizable status bar)
  • Surround (Helpful tool that helps with "surrounding" words with brackets etc)
  • CtrlP (A fuzzy finder for vim)
  • UtilSnips (Snippet utility for many languages)
  • Vim Markdown (Markdown syntax highlighting)
  • Goyo (Allows for distraction-free editing)

I'll end this article with a quote from a Chamillionaire:

They see you vimmin', they hatin'. Patroling they tryna catch me coding dirty