How Vim killed Atom and VSCode on my Machine

Aswin Mohan
4 min readNov 3, 2017

--

:%s/\(.*\)^I\(.*\)/\2^I\1/

That was supposed to scare you off.

I had been a long time user of Sublime ever since I learnt to code. I really loved the bump it gave me from using notepad (my first editor). It had awesome plugins, awesome themes, awesome autocomplete and everything else anybody could ask for.

Then came Atom, insanely slow but awesome. It had awesome plugins, awesome themes, awesome autocomplete and everything else anybody could ask for.

Then came VSCode faster than Atom, with all the bells and whistles Atom had plus a couple more.

Then I started using Vim. An editor who wouldn’t let me write anything on my first try, who would make me forcefully close the terminal window because it won’t let me out. But still I fell in love with Vim.

Editing at Speed of Thought

Their is something fundementally wrong about using your mouse when writing code, you have to take your hands off the keyboard. Vim is built around the core idea of reducing keystrokes and the concept of a mouse is as foreign to it as rain at the center of the Earth. You do not ever need a mouse, ever to use Vim and hence your hands always stay on the keyboard

Vim is a modal editor, with three modes. The Normal is well your Normal mode where you navigate around the codebase, the Insert mode is where you actually write your code , and Visual mode is where you select your code for various selecting reasons.

hjkl is the vim equivalent of the arrow keys and they are used for navigation in Normal mode and to type literal hjkl in Insertion mode. This eliminates the need for complex piano like finger manipulation for shortcuts.

Commands can also be chained, cit takes the cursor between two html tags and puts you in Insert mode, and d$ deletes to the end of the line where ever you are.

Once you master Vim you’d be moving around the code base like a ninja on steroids with an iron man suit.

Beat that AtCode. (Atom + VSCode)

Editing at the Speed of CPU

The one thing which absolutely blows the hell out of me is the performance of both the editors. It takes near 10s to load Atom, and around 7s to load VSCode on my 6 year old machine. Yep the hardware is still old, but it’s an i5 with 4 gigs of ram for god’s sake.

The performance lag is both horrible and noticeble. I do understand that the entire editor is running HTML at it’s best, yes I do. But waiting 10s for loading a 60byte file is unacceptable (for me).

Vim is lightweight and does not even have a proper gui, it starts like a ferrari. The startup time is around ms and everything just feels slick and smooth.

No more laggy cursors and delayed input feedback.

This is also the main reason why I don’t use any emulation plugins for AtCode. It’s already slow don’t make it slower.

Memory Footprint

The memory footprint of Vim is a 6 day old, feeble and cute, whereas the memory footprints of Atom and VSCode are that of an oversized Yeti.

I work in React Native, and if I have a browser window and the react native packager running, the easiest way to freeze the computer is to open Atom. It literally freezes up my Computer, and if it doesn’t do that on the first try everything else would be going at the speed of light in a blackhole(slow but unpredictable).

Vim just starts without breaking a sweat and leaves a whole lot of free ram for more browser tabs. Use Vim and save some energy for god’s sake.

Awesome Plugin Ecosystem

The one thing that had made me reluctant to switch to Vim in the first place was that I would miss the awesome plugins of Atom and VSCode, after all what’s the core experience good for.

But then I found https://vimawesome.com/ awesome plugins for everything Atom and VSCode does but better. Never looked back since.

Vim and Tmux

A terminal multiplexer (let’s to split terminal windows) and vim makes the perfect IDE on the planet.

The Bad Parts

This is not a biased guide, I love Atom and VSCode and respect the engineering effort that went into building those. I am also not saying that Vim isn’t without it’s troubles.

A major hurdle is configuration. It takes atleast a day for an inexperienced Vim user to configure Vim to the level of Atom or VSCode, but it’s totally worth it.

It’s like building a car vs buying a car and then painting the car yellow. With Vim you build everything from the transmission to the clip on the dashboard. With Atom and VSCode you kind of get a prebuilt car.

I don’t use Vim

I use https://neovim.io/ the better Vim.

Vim isn’t for everyone but don’t sign it off without giving it a try. It might surprise you, and might make you kick out Atom and VSCode.

:rubydo $_ += ' ' + (1..8).collect{('A'..'Z').to_a[rand 26]}.join

Happy Vimming.

--

--

Aswin Mohan

There are some things in the world that should be left alone, Code is not one of them, neither is Design, nor is writing but grammar is one of those.