Getting Started With Vim
Last night at Tech Nottingham, I was chatting with my friend Mitchell who mentioned he may be looking to give Vim a go, partly to see what the fuss is about, and to get some minor experience using it.
He's not the first person I've spoken to about this, but it made me think I should write something about getting started with it, if you're so inclined.
How I Got Started
How I got started with Vim is a funny story.
I was watching one of the Destroy All Software screencasts, and found that Gary Bernhardt was moving so fluidly around the screen, and performing such keyboard magic I knew I wanted to be half that productive.
But I found out that he was using Vim, a notoriously hard to use (and if the memes were to be believed, hard to exit) tool. I decided that instead of going all in with a difficult tool I'd use something easier.
I, of course, decided that Emacs was an easier tool to work with. I don't know how I got to that decision, but it was a bit foolish, although it gave me some good experience with it, and to play around with Elisp.
After a while of fighting against needing to install ~180MB of packages every time I wanted to edit a file on a new machine, I decided that I'd look at Vim, because at least Vi is installed on every POSIX-compliant machine, so it's a safe bet to learn it.
As I started to use it I started to get more experience, but the below practices made a big difference:
With many distributions of Vim, you will receive the
vimtutor command, which provides an interactive Vim tutorial, using Vim and a text file. It helps you learn by doing, which is probably an easier way to work.
It's worth playing with it as it's quite a well-guided journey through the process.
Vim keybindings in the browser
When starting with Vim, I wasn't finding that things were sinking in too easily, especially around navigation of files.
It wasn't until I was using a browser extension to add Vim keybindings that I really found the effectiveness of Vim, because I was able to navigate the Web almost completely via the keyboard.
Vim Adventures is a web-based game that uses the Vim keybindings to navigate, and is a great way to gamify the learning process, where you progress by learning new commands that allow you to overcome new obstacles.
It's especially useful for showing how to navigate with
hjkl, and giving you some experience with other navigation / editing.
Use it every day
Honestly, "forcing" yourself to use it all day, every day, in any apps that you can add the keybindings to, is a great way to learn. It'll help you get more experience and comfort with it, and over time you'll find you're doing better with it.
Remember you don't need to be a masterful user of it, even just knowing how to move around the file, add text and maybe delete lines, you'll be fine.