VIM Super Fast Navigation
besides vim's motion command, I find a vim plugin named EasyMotion is pretty useful to navigate, if you are familiar with vimperator or pentadactyl, EasyMotion just bring hint mode back to vim. here is a animated demo and here is the video tutorial. Hope it's helpful for you.
Try $ vimtutor
, it will teach you everything you need to know to get started.
hjkl
are the tip of the top of the iceberg and very rarely used, at least in my case.
wWEe
and BbgegE
all allow to move word by word:
w
ande
go forward,W
andE
take whitespace and punctuation into account" here the * marks the default location of the cursor " and each letter shows where you jump when you hit the key. Latin: Lorem ipsum dolor sit amet. * e e e * E E E * w w w w w w w * W W W W W W
b
andge
go backward,B
andgE
take whitespace and punctuation into accountLatin: Lorem ipsum dolor sit amet. b b b b * B B B * ge ge ge* ge gE gE gE*
fFtT
are used to reach for a particular character on the current line and ;,
are used to repeat that motion, in the same direction for ;
and in the opposite direction for ,
:
fm
jumps ON the nextm
forward,F
goes backwardLatin: Lorem ipsum dolor sit amet. * fm ; ; ; Fm *
tm
jumps BEFORE the nextm
forward,T
goes backwardLatin: Lorem ipsum dolor sit amet. * tm ; ; ; Tm *
/?
are used to jump to the first occurrence of a pattern from the current cursor position:
/pattern
goes forwardLatin: Lorem ipsum dolor sit amet. * /ips
?pattern
goes backwardLatin: Lorem ipsum dolor sit amet. ?Lat *
0$
are used to jump to the first and last character of the line.
(whitespace)Latin: Lorem ipsum dolor sit amet.(whitespace)
0 * $
^g_
are used to jump to the first and last printable character of the line.
(whitespace)Latin: Lorem ipsum dolor sit amet.(whitespace)
^ * g_
Single and combined ()[]{}
are used to move phrase by phrase or paragraph by paragraph or code block by code block.
<C-b>
and <C-f>
are used to scroll by screen backward and forward.
<C-u>
and <C-d>
are used to scroll by half-screen backward and forward.
H
, M
and L
move the cursor to the top, middle, bottom of the viewport, respectively.
zt
, zz
and zb
move the line under the cursor to the top, middle, bottom of the viewport, respectively.
And so on.
:help motion.txt
will blow your mind.
There are a zillion ways to move around in vim, this is one of its really strong areas. I use { and } a lot, which move up and down to the next blank line in that direction. % is useful for moving back and forth to a matching bracket (of any kind). W and B move forward and back by a "word".
It might be worthwhile reviewing the Moving around section of the Vim manual.