First of all I will assume that you are using a QWERTY keyboard. My answer isn't based on my personal preference, I am simply reformulating a part of the amazing Practical Vim written by Drew Neil.
TL;DR Vim is optimized for the touch typists so your hands should stay where you learned to put them: left hand on asdf and right hand on jkl;
Neil says that putting your right hand on hjkl is a really bad thing to do. The main reason is that moving your cursor with the keys hjkl is something that should be very occasional because vim provides much faster word-wise movements or character search motion (w
, b
, f
, t
, /
...).
I'll also directly quote this part:
I use the h and l keys for off-by-one errors, when I narrowly miss my target.
Apart from that, I hardly touch them. Given how little I use the h key, I’m
happy to have to stretch for it on a Qwerty keyboard. On the flip side, I use
the character search commands often, so I’m pleased
that the ; key rests comfortably beneath my little finger.
Bonus: Even if that doesn't seems to be your case here is a tip to get rid of the beginners bad habit consisting in using the arrow keys to move: Simply add the following lines to your .vimrc
to disable totally the arrow keys:
noremap <Up> <Nop>
noremap <Down> <Nop>
noremap <Left> <Nop>
noremap <Right> <Nop>
(<Nop>
stands for "No Operation")
j,k,l,;
. For one, you'll learn to hith
in no time. Secondly, when you know vim better, you won't be usingh
all that much really. Thirdly, keybinds are mostly defined with that hand position in mind, so you'll just trade one problem for another set of problems in the long run.hjkl
. See:help navigation
.