大家來學VIM(一個歷久彌新的編輯器)[二]

游標的移動

本節所述皆是在 common-mode(c-mode,在 vim 又名 normal-mode)下的移動,原始的 vi 只能在 c-mode 移動游標,在 insert-mode 只做文字的輸入,而不做游標的移動。當然 vim 及 elvis 的方向鍵是不論在那一種 mode 皆可移動自如。

 

 

基本的游標移動

h  左,或 Backspace 或方向鍵
j  下,或 Enter 或 +(要 Shift 鍵),或方向鍵
k  上,或 方向鍵或 -(不必 Shift 鍵)
l  右,或 Space 或方向鍵

  • 使用 hjkl 鍵的移動是為了使手不必離開打字區(鍵盤中央的部位),以加快打字的速度,如果各位不習慣,那就使用方向鍵吧!
  • Backspace 及 Space 的移動方式是到了行首或行尾時會折行,但方向鍵或 hl 鍵的移動則在行首或行尾時您繼續按也不會折行。轉折換行的功能是 vim 的擴充功能,elvis 無此功能。
  • jk 及使用方向鍵的上下移動游標會盡量保持在同一欄位。使用 Enter,+,- 的上下移動,游標會移至上(下)一行的第一個非空白字元處。
  • 好像有點複雜,各位就暫時使用方向鍵來移動就簡單明白了!等您愛上了 vim 後再來講究吧。

 

Ctrl-f    即 PageDown 翻頁。
Crtl-b    即 PageUp 翻頁。

 

 

進階的游標移動

0  是數目字 0 而不是英文字母 o。或是 Hmoe 鍵,移至行首,
   (含空白字元)。
^  移至第一個非空白字元,注意,要 Shift 鍵。
$  移至行尾,或 End 鍵。要 Shift 鍵。

  • 以上兩個按鍵是源自規則表示式(regular expression),在 regexp 中 ^ 是匹配行首,$ 是匹配行尾。

 

G  移至檔尾(最後一行的第一個非空白字元處)
gg 移至檔首(第一行之第一個非空白字元處)

  • gg 是 vim 的擴充功能,在 elvis 或原始 vi 中可用 1G 來移至檔首(是數字 1 不是英文字 l)。
  • G 之原意是 goto,指移至指定數目行之行首,如不指定數目,則預設是最後一行。

 

w  移至次一個字(word)字首。當然是指英文單字。
W  同上,但會忽略一些標點符號。
e  移至前一個字字尾。
E  同上,但會忽略一些標點符號。
b  移至前一個字字首。
B  同上,但會忽略一些標點符號。
H  移至螢幕頂第一個非空白字元。
M  移至螢幕中間第一個非空白字元。
L  移至螢幕底第一個非空白字元。

  • 這和 PageDown,PageUp 不一樣,內文內容並未動,只是游標在動而已。

 

n| 移至第 n 個字元(欄)處。注意,要用 Shift 鍵。n 是從頭起
   算的。
:n 移至第 n 行行首。或 nG。

 


特殊的移動

)  移至下一個句子(sentence)首。
(  移至上一個句子(sentence)首。
}  移至下一個段落(paragraph)首。
{  移至上一個段落(paragraph)首。

  • sentence 是以 . ! ? 為區格。
  • paragraph 是以空白行為區格。

 

%  這是匹配 {},[],() 用的,例如您的游標現在在 { 上
   只要按 %,就會跑到相匹配的 } 上。寫程式時滿好用的。

 

另還有一些 vim 的特殊按鍵,但這得留待最後才來講述,否則各位恐怕會頭昏眼花了。

你可能感兴趣的:(vim)