Vim Tip: Remapping `jj` to Escape

The Escape key is probably one of the more important keys for a Vim user. Whenever in insert mode, the Escape key kicks you back to normal mode. But here’s the thing, the Escape key is soooooo far away.

Alright, it’s not that bad, but when you are typing away, breaking away from the home row isn’t optimal. I have a small mapping in my .vimrc file where, while in insert mode if I hit jj it will take me back to normal mode

Edit your .vimrc file

vi ~/.vimrc

Add the following entry

imap jj <Esc>

note: you can see I have a similar mapping for kk but I honestly rarely use it

Save it and that’s it :wq

Relaunch Vim and you should now be able to hit jj while in insert mode

Gotcha

One this to remember with this shortcut, if you make use of recording macros when with your Vim, the jj shortcut will not work in the recording. You have to remember to actually hit the Escape key.

Bonus

I’ve manage to duplicate this behavior while using various Vim Plugins in other tools.

PHPStorm

Edit ~/.ideavimrc and add imap jj <Esc>

Sublime

Honestly, I think I had this working in Sublime with the Vintage plugin however I don’t use Sublime anymore and when I tried to launch it, Sublime just stops responding and I honestly don’t care enough about Sublime to worry about getting it working again. If I do happen to get it working in the future I will try to remember to check and update this post what the mapping looked like.

Atom

Have not gotten this working in Atom yet using the vim-mode. If you find a solution, tweet it at me (@shocm)

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.