Vertigo.vim is a Vim plugin is based on a simple idea: that moving up and
down using relative line numbers (e.g.,
15k) is a very simple and
precise way of moving around vertically, and shouldn't require your hands to
leave home row.
To show how Vertigo works, let's look an example: say you want to go to some
line that you can see (with
relativenumber) is 14 lines down.
With this plugin, you'd press
<Space>j to activate "jump mode." Vim then waits
for two home-row keypresses representing a two-digit number, mapping
1234567890. You then press
af for 14, and just like
that, you're 14 lines down. Easy! For one-digit numbers, just hit shift.
<Space>jF goes four lines down)
If you use a keyboard layout other than QWERTY, that's not a problem! Dvorak
users: just add
let g:Vertigo_homerow = 'aoeuidhtns' to your .vimrc file.
Other keyboards should work too. (see
Can't I just use
22j when I need to? And doesn't EasyMotion
cover this, and more? Yes! But:
- It's lightning fast: You never have to leave home row.
- It's easy to learn, because your fingers already know where all the numbers are.
- Why not?
Important note: Regardless of what installation method you use, Vertigo requires you to add some mappings to your .vimrc file. (see below)
I use Pathogen:
cd ~/.vim git clone https://github.com/prendradjaja/vim-vertigo.git bundle/vertigo
Alternatively, with Pathogen, using a git submodule:
cd ~/.vim git submodule add https://github.com/prendradjaja/vim-vertigo.git bundle/vertigo
I haven't personally used other plugin managers, but this should work with any of the ordinary plugin managers.
For manual installation, copy into
~/.vim, so plugin/vertigo.vim goes to
~/.vim/plugin and doc/vertigo.txt goes to
After installing, you'll have to put in a few mappings into your .vimrc.
Here's one option: (though of course you can change
to whatever works for you.
nnoremap <silent> <Space>j :<C-U>VertigoDown n<CR> vnoremap <silent> <Space>j :<C-U>VertigoDown v<CR> onoremap <silent> <Space>j :<C-U>VertigoDown o<CR> nnoremap <silent> <Space>k :<C-U>VertigoUp n<CR> vnoremap <silent> <Space>k :<C-U>VertigoUp v<CR> onoremap <silent> <Space>k :<C-U>VertigoUp o<CR>
One last thing. Make sure you've got
the examples above used relative numbering, Vertigo works just as well with
absolute line numbers) turned on, and you're good to go!
- Emacs port by noctuid (I have not tried it)