大家VIM(一久新的器)[三]
基本指令
?
元就始入主了。下指令都是在 commond-mode(c-mode),就是您一入 vim 的模式,只能下指令,不能入文字。如果印象模糊,瞄一下第一元的容。元的是基本的指令,有些比特殊的指令,因太有性了,所以立成一元明。
?
?
入i-mode指令
i 在游所在字元前始入文字(insert)。a 在游所在字元後始入文字(append)。o 在游所在行下一新行入文字(open)。I 在行首始入文字。此之行首指第一非空白字元,要真正的第一字元始人文字,可使用 0i 或 gI(vim)。
A 在行尾始入文字。好用,您不必管游在此行的什地方,只要按 A 就在行尾等著您入文字。
O 在游所在行上一新行入文字。J 下一行整行接至本行(Joint)。相的 split 功能,可在 i-mode 下按 Enter 成,然如果您熟 macro 的,可自行定。 使用 J ,消去本行的 EOL,且上下行接留下一空白字元,符合英文,中文造成困,欲不留空白字元,可使用 gJ(大 J) 指令,但是 vim 的充功能,elvis 不用。 您便找一案看看,光看文字明太抽象了。
?
除指令
x 除游所在之字元。在 vim 及 elvis 亦可用 Del 。X 除游前之字元。不可使用 Backspace 。vim 可以正使用以上指令於中文,去一中文字。elvis 不行,一中文字要次,即使用 xx。
dd 除一整行(delete line)。dw 除一字(delete word)。不能用於中文。dG 至尾。d1G 至首。或 dgg(只能用於 vim)。D 至行尾,或 d$(含游所在字元)。d0 至行首,或 d^(不含游所在字元)。回一下 $ 及 ^ 所代表的意,您就可以理解 d$ 及 d^ 的作,就是 vi(m) 可之。
取代和原
r 取代游所在之字元。vi(m) 很有性的,您在 c-mode 按 了 r 她就停在那等主人入所要替代的字元,希望您 主人的,不要傻呼呼的也楞在那,快入您的新字元 吧!:-)vim 中可用於中文字,也就是可以替一中文字,elvis 不行。然您的 vim 是要在 taiwan 的才行。怎!有有看如此有性的取代方式?ㄚ!r 就是 replace 啦!
R 取代字元至按 Esc 止。cc 取代整行容。或大 S 亦可。cw 替一英文字(word),中文不用。(change)~ 游所在之大小互。然不能用於中文。忘了 Shift!C 取代至行尾,即游所在以後的字都被替。或 c$。c0 取代至行首,或 c^。s 替一字元您所入的字串。和 R 不同,R 是覆式的取 代,s 是插入式的取代,您可自看看。ㄟ!是小的 s。u 太重要了,就是 undo,的 vi 支援一次 undo,vim 及 elvis 就不只了,vim 是有限制的。U 在游本行之前,回所有作。Crtl+r 也是很重要,就是 redo 。
?
加上目字
喔!到 vi(m) 的了,是 vi(m) 一非常包的功能,只此一家分(然同源的 ed,sed 等不在此限)。就是您可以在大部份的指令前加上目字,代表要理次的意思。以下用例明比清楚。
5dd 除游所在(含)起算以下五行容。妙吧!3r 按了 3r 後,您入一英文字,三字元皆被您所 入的英文取代。很抱歉,不能用於中文。5J 五行合成一行。3x 除三字元。抱歉,不能用於中文。5i A 然後按 Ecs,插入五 A。中文也可以!2i system Esc 插入 systemsystem。中文也可以!5G 游移至第五行,是首始起算。5l 移至右第五字元,然 j 是可以用方向取代的。 所有移指令(考第二元)都可以加上目字控制,中 文也通喔!elvis 然是不能用於中文。
其它的指令和目字合,就留待各位去掘吧!最重要的是您自操作看看,使用 vi(m) 常常要筋,有更妙的操作方式。
的重排功能
>> 整行向右移一 shiftwidth(是 8 字元,可重)。<< 整行向左移一 shiftwidth(是 8 字元,可重)。:set shiftwidth? 可得知目前的定值。:set shiftwidth=4 可上重 4 字元。shiftwidth 可成 sw。ㄟ,忘了 Shift !
:ce(nter) 本行文字置中。注意是冒命令!:ri(ght) 本行文字靠右。:le(ft) 本行文字靠左。所置中、靠左右,是考 textwidth(tw) 的定。如果 tw 有定,是 80,就是以 80 字元度置放。然您也可以如 sw 一上重。
gqip 整段重排。中文出槌!:-(gqq 本行重排。重排的依也是 textwidth。的重排是指您入文字有按 Enter ,就一直在 keyin,形成一很的一行(然幕上替您做假性折行),重排後,在每一行最後加入 EOL。gq 重排功能是 vim 才有的功能。