我只知道一個使用寄存器的實例是經過Ctrl R *的 ,所以我從剪貼板粘貼了文本。 vim
寄存器的其餘用途是什麼? 如何使用它們? less
您所瞭解的關於VI寄存器的全部信息(讓咱們關注vi 7.2)-與咱們分享。 測試
一個很酷的技巧是使用"1p
粘貼上一個刪除/更改(,而後使用.
重複粘貼後續的刪除。 "1p...
換句話說, "1p...
基本上等同於"1p"2p"3p"4p
。 this
您可使用此命令對少數幾行進行反向排序: dddddddddd"1p....
spa
形成混亂的一大緣由是默認寄存器"
。瞭解其工做方式很重要。若是大多數時候都避免使用默認寄存器,那就更好了。Vim文檔中的解釋: 指針
Vim fills this register with text deleted with the "d", "c", "s", "x" commands or copied with the yank "y" command, regardless of whether or not a specific register was used (e.g. "xdd). This is like the unnamed register is pointing to the last used register.
所以,默認寄存器其實是指向最後使用的寄存器的指針。 當您刪除或刪除某些內容時,該寄存器將指向其餘寄存器。 您能夠經過檢查寄存器來測試。 老是有另外一個與默認寄存器徹底相同的寄存器:yank寄存器( "0
),第一個刪除寄存器( "1
),小型刪除寄存器( "-
)或用於刪除或yank的任何其餘寄存器。 code
惟一的例外是黑洞寄存器。 Vim doc說: 排序
An exception is the '_' register: "_dd does not store the deleted text in any register.
一般,直接使用"0
, "-
和"1-"9
默認寄存器或命名寄存器會更好。 ci
Vim中的寄存器使您能夠對其中存儲的文本運行操做或命令。 要訪問寄存器,請在命令前鍵入"a
,其中a
是寄存器的名稱。若是要將當前行復制到寄存器k
,則能夠鍵入 文檔
"kyy
或者,您可使用大寫字母追加到註冊簿中
"Kyy
而後,您能夠瀏覽文檔並將其粘貼到其餘位置
"kp
從Linux上的系統剪貼板粘貼
"+p
從Windows上的系統剪貼板(或Linux上的「鼠標突出顯示」剪貼板)粘貼
"*p
要訪問全部當前定義的寄存器類型
:reg
其餘有用的寄存器:
"*
或"+
-系統剪貼板的內容
"/
-最後一個搜索命令
":
-最後一個命令。
請注意,對於vim宏,您能夠編輯它們,由於它們只是記錄宏時使用的擊鍵列表。 所以,您能夠將宏寫入文本文件(使用"ap
寫入宏a」 )並對其進行編輯,而後使用"ay$
將其加載到寄存器中。 存儲有用宏的好方法。