如何使用vim寄存器?

我只知道一個使用寄存器的實例是經過Ctrl R *的 ,所以我從剪貼板粘貼了文本。 vim

寄存器的其餘用途是什麼? 如何使用它們? less

您所瞭解的關於VI寄存器的全部信息(讓咱們關注vi 7.2)-與咱們分享。 測試


#1樓

一個很酷的技巧是使用"1p粘貼上一個刪除/更改(,而後使用.重複粘貼後續的刪除。 "1p...換句話說, "1p...基本上等同於"1p"2p"3p"4pthis

您可使用此命令對少數幾行進行反向排序: dddddddddd"1p.... spa


#2樓

形成混亂的一大緣由是默認寄存器" 。瞭解其工做方式很重要。若是大多數時候都避免使用默認寄存器,那就更好了。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


#3樓

Vim中的寄存器使您能夠對其中存儲的文本運行操做或命令。 要訪問寄存器,請在命令前鍵入"a ,其中a是寄存器的名稱。若是要將當前行復制到寄存器k ,則能夠鍵入 文檔

"kyy

或者,您可使用大寫字母追加到註冊簿中

"Kyy

而後,您能夠瀏覽文檔並將其粘貼到其餘位置

"kp

從Linux上的系統剪貼板粘貼

"+p

從Windows上的系統剪貼板(或Linux上的「鼠標突出顯示」剪貼板)粘貼

"*p

要訪問全部當前定義的寄存器類型

:reg

#4樓

  • q5將編輯記錄到寄存器5中(下一個q中止記錄)
  • :reg顯示全部寄存器及其中的任何內容
  • @ 5執行寄存器5宏(記錄的編輯)

#5樓

其餘有用的寄存器:

"*"+ -系統剪貼板的內容

"/ -最後一個搜索命令

": -最後一個命令。

請注意,對於vim宏,您能夠編輯它們,由於它們只是記錄宏時使用的擊鍵列表。 所以,您能夠將宏寫入文本文件(使用"ap寫入宏a」 )並對其進行編輯,而後使用"ay$將其加載到寄存器中。 存儲有用宏的好方法。

相關文章
相關標籤/搜索