超實用的vim的寄存器操作

一.寄存器分類

1.無名(unnamed)寄存器:"",緩存最後一次操作內容;即複製(yy等)或刪除(dd等)文本存放的地方,如果直接執行粘貼p(未指定任何寄存器),則直接從此寄存器讀取數據並粘貼。

2.數字(numbered)寄存器:"0 ~"9,緩存最近操作內容,複製與刪除有別:

"0 寄存器緩存最近一次不指定寄存器複製(如yy,2yy,3yy…)的內容,(yy,2yy,3yy操作後“”與“0寄存器裏的內容都是相同的

"1-"9寄存器 緩存最近9次刪除內容。1最新,9最舊,由vim自動維護,而且由於超過9個刪除時順序會發生變化。因此我覺得我們一般不必記得”1-“9存了什麼內容,也難以記住。使用前可以通過:reg查一下寄存器的內容再選擇操作。

要讀取這些寄存器進行粘貼,使用“np,如”0p,“1p

3.行內刪除(small delete)寄存器:"-,緩存行內刪除(如x,2x,3x等)內容;
要讀取這些寄存器進行粘貼,使用“-p


4.具名(named)寄存器:"a ~ "z或"A – "0Z,指定時可用;我平時習慣用mk作標記,然後光標移到某行使用”ay'k複製,這裏的a就是寄存器a,然後用“ap粘貼。

(同一個字母的大寫和小寫表示的是同一個寄存器,但是行爲會不同,字母寄存器的名稱大寫時,當使用大寫的寄存器進行復制或者刪除文本時,原先的字母寄存器中的內容會被保留,剛刪除或複製的內容則附加到原來字母寄存器內容的後面。 字母寄存器只有在指定時才被使用。)


5.只讀(read-only)寄存器:":,".,"%,"#,分別緩存最近命令、最近插入文本、當前文件名、當前交替文件名;

": 最近命令
". 最近插入文本,還記得我們用 . 來重複最近操作不?
"% 當前文件名
"# 當前交替文件名,還記得e#不?


6.表達式(expression)寄存器:"=,只讀,用於執行表達式命令;不常用,反正我沒用過。

7.選擇及拖拽(selection and drop)寄存器:"*,"+,"~,存取GUI選擇文本,可用於與外部應用交互,使用前提爲系統剪切板(clipboard)可用;不常用。

8.黑洞(black hole)寄存器:"_,不緩存操作內容(乾淨刪除);不常用

9.模式寄存器(last search pattern):"/,緩存最近的搜索模式。我們用/或?搜索時會將搜索字符串存到此寄存器。

(助記:調用寄存器方式爲“+寄存器名,如”0,"a,"%等)

二. 查看寄存器內容

:reg         查看所有寄存器內容

:reg 寄存器名  查看單個寄存器內容   比如 :reg _        :reg *            :reg 1           :reg 9          :reg a 等等

三. 總結

    命令難以記住,除了摸清規律外,最好的方法是多操作,這樣印象是最深的。好像我自己,有時讓我說用什麼命令我說起來很陌生,但假如要我操作卻可以很熟練地打出來。這就是感覺吧!關於vim寄存器還有很多功能,比如賦值,計算等,但我覺得那些不常用,因此也不寫了,有興趣的同學網上搜搜吧。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章