yy 復制游標所在行整行。或大寫一個 Y。
2yy 或 y2y 復制兩行。ㄟ,請舉一反三好不好!:-)
y^ 復制至行首,或 y0。不含光標所在處字符。
y$ 復制至行尾。含光標所在處字符。
yw 復制一個 word。
y2w 復制兩個字。
yG 復制至檔尾。
y1G 復制至檔首。
p 小寫 p 代表貼至光標后(下)。
P 大寫 P 代表貼至光標前(上)。
· 整行的復制,按 p 或 P 時是插入式的貼在下(上)一行。非整行的復制則是貼在游標所在處之后(前)。
"ayy 將本行文字復制到 a 緩沖區
· a 可為 26 個英文字母中的一個,如果是小寫的話,原先的內容會被清掉,如果是大寫的話是 append 的作用,會把內容附加到原先內容之后。
· " 是 Enter 鍵隔壁的那一個同上符號(ditto marks)。
"ap 將 a 緩沖區的內容貼上。
·
緩沖區的術語在 vim 稱為 registers,vim 擴充了相當多的功能,有興趣深入的朋友請 :h registers。您用
d、c、s、x、y 等指令改變或刪除的內容都是放在 registers 中的。例如:您用 dd 刪除的一行,也是可以使用 p
來貼上的。只要是在緩沖區的內容都可以使用 p 來貼上,不是一定要 y 起來的內容才能用 p。因此您認為 p 是 paste 也可以,認為是
put 可能較正確。
5"ayy 復制五行內容至 a 緩沖區。
5"Ayy 再復制五行附在 a 內容之后,現在 a 中有十行內容了!
· ㄟ!不要我一直用 a 您就認為只有 a 可以用喔。26 個英文字母都可以的,交叉運用下,您會發覺 vi(m) 肚量不小。
·
問題來了!忘記誰是誰的時候怎么辦? :reg(冒號命令)就會列出所有 registers
的代號及內容。您現在就試著按看看。咦!怎么還有數目字、特殊符號的緩沖區,原來您剛剛刪除(復制)的內容就預設放在 " 這個緩沖區,然后依序是
0,1,2,...9。也就是說您按 p 不加什么的話,是取出 " 緩沖區的內容的。% 指的是目前編輯的檔案,#
指的是前一次編輯的檔案。還有其它的呀!因為沒什么重要,就請 :h registers 吧!registers 有個 "s"
結尾,不要搞錯了,而且 Tab 的補全鍵 vim 也支持的,也就是說您鍵入 :h regi 再按 Tab 鍵,vim 就會幫您補全,按了
Tab 后發現不是您要的,那就繼續按,總會出現您要的。:-)
· Tab 補全的功能,elvis 也有,但叫出 registers 列表的命令則沒有,您得自行記憶在您的腦袋瓜子里。而且 elvis 的補全能力并沒 vim 強。
另外,按下v鍵,可以進入可視模式,這個時候可以更自由更靈活的選取要復制的段落,區塊了.
VI是越用越順手了.
想過學Emacs,怎么說是GNU出品,
和gcc還有gdb很好的集成還是很有誘惑力的,不過也確實太過復雜了,先學好VI了,
其實VI還是很好用的.
我是越來越喜歡它了:)