大家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 的特殊按,但得留待最後才述,否各位恐怕昏眼花了。