本節所述皆是在 common-mode(c-mode,在 vim 又名 normal-mode)下的移動,原始的 vi 只能在 c-mode 移動游標,在 insert-mode 只做文字的輸入,而不做游標的移動。當然 vim 及 elvis 的方向鍵是不論在那一種 mode 皆可移動自如。
基本的游標移動
h 左,或 Backspace 或方向鍵 j 下,或 Enter 或 +(要 Shift 鍵),或方向鍵 k 上,或 方向鍵或 -(不必 Shift 鍵) l 右,或 Space 或方向鍵
Ctrl-f 即 PageDown 翻頁。 Crtl-b 即 PageUp 翻頁。
進階的游標移動
0 是數目字 0 而不是英文字母 o。或是 Hmoe 鍵,移至行首, (含空白字元)。 ^ 移至第一個非空白字元,注意,要 Shift 鍵。 $ 移至行尾,或 End 鍵。要 Shift 鍵。
G 移至檔尾(最後一行的第一個非空白字元處) gg 移至檔首(第一行之第一個非空白字元處)
w 移至次一個字(word)字首。當然是指英文單字。 W 同上,但會忽略一些標點符號。 e 移至前一個字字尾。 E 同上,但會忽略一些標點符號。 b 移至前一個字字首。 B 同上,但會忽略一些標點符號。 H 移至螢幕頂第一個非空白字元。 M 移至螢幕中間第一個非空白字元。 L 移至螢幕底第一個非空白字元。
n| 移至第 n 個字元(欄)處。注意,要用 Shift 鍵。n 是從頭起 算的。 :n 移至第 n 行行首。或 nG。
特殊的移動
) 移至下一個句子(sentence)首。 ( 移至上一個句子(sentence)首。 } 移至下一個段落(paragraph)首。 { 移至上一個段落(paragraph)首。
% 這是匹配 {},[],() 用的,例如您的游標現在在 { 上 只要按 %,就會跑到相匹配的 } 上。寫程式時滿好用的。
另還有一些 vim 的特殊按鍵,但這得留待最後才來講述,否則各位恐怕會頭昏眼花了。