Greg Robson

I think I need to learn Vim…

coding, vim

Screenshot of code
tl;dr – Yes, I might become one of “those” people.

But first, the story: here’s the deal, I spilt tea on my keyboard, the Surface Keyboard

Original Surface Keyboard
You served me well…

Not many keys have stopped working, but the letter ‘G’ is among them, which is really annoying for yours truly!

That’s fine, it’s normally a couple of years before I have an excessive “liquid-to-keyboard interaction event“. By which point I’ve normally had a few thousand hours of use and I’ve found the keyboard limiting. So, I decided to burn some of my Nectar points on Microsofts latest and greatest, the Microsoft Designer Compact Keyboard… cue fanfare!🎺

The replacement Surface keyboard
(totally not a copy of the Apple wireless keyboard… okay, maybe a little… okay a lot!)

It was worth a gamble – it means my mouse is closer to the centre line of my body, and being smaller there’s less chance of tea spilling on it!


Despite the knowledge of what I saw, it has become apparent that it’s probably not going to match my expectations (even after I have adjusted to it…). There are a few caveats:

  1. No right CTRL (I could get used to that with time)
  2. VERY tiny up/down arrow keys. The up arrow is the worst as it’s too easy to repeatedly tap shift.
  3. Home/End/PgUp/PgDn are accessible, but it seems a bit of a reach.
  4. Get characters like n-dash, m-dash and copyright without the number pad is very annoying (I have a lot of those numbers memorised)
  5. The rest, I can live with, and I quite like the nice touch of an emoji key 😘

So what now?

What if I could turn this to my advantage?

The impediment to action advances action. What stands in the way becomes the way.

~Marcus Aurelius (not a Vim user to my knowledge)

Firstly, I’m a VS Code user—I switched from Sublime Text last year as it wasn’t keeping up with a modern workflow—and I really like it. I have some of the more popular plugins and it has a decent level of performance to keep everything running sweetly.

VS Code Interface
An example of VS Code’s interface

This got me thinking: my editor is fine and I actually do like this keyboard, but the thing that really annoyed me was the speed of my coding. Despite a 60-70wpm typing speed for prose, I’ve never really mastered the art of mouse-less coding and I am in awe of anyone who can code without a mouse. Opening files, running commands, git commits – I’ll do those from the keyboard: but the actual coding where I spend most of my time… hasn’t really improved in the last 10 years.

Enter Vim

…well, not Vim Editor as such. Vim for VS Code! 😊

It’s not a complete replacement. Some of the more advanced features haven’t been implemented, some are just not possible due to limitations in VS Code’s API.

So I’m going to give it a go, see if I can move past my coding plateau!

For now I’m making some notes using Notion of resources – please feel free to have a look to see if anything is useful.

I aim to update this with notes and hopefully review some of them as I progress!

Wish me luck! (I’ve only got 20+ years of coding habits to relearn!)