2017-09-26 34 views
3

重複的導航指令。鍵可以用來重複上一次插入命令。但是,我們可能會做一些不屬於插入內容的導航,但我們希望重複它。如何在Vim中

想象註釋掉像這樣行:

// line of text 
// line of text 
line of text 
line of text 

插入命令是把兩個正斜槓和一個空格。這可以重複使用。鍵。導航將導航一行,然後留下一些字符。那部分不是被捕獲的。鍵盤命令。

如何才能實現這個功能呢?我讀過幾年前在Vi中沒有的,但我想知道它現在是否存在於最新版本的Vim中。

回答

3
  1. qX,其中X是任何可寫registers的(通常爲:挑選任何小寫字母)。
  2. 你想要的任何操作記錄。
  3. q停止錄製。
  4. @X(其中X是相同的寄存器)回放(計數次,如果與計數一起使用)。
  5. @@重播最近使用的宏(計數次)。

,我讀了它的一些年前Vi無此功能可用,但我想知道,如果它在Vim的最新版本現在已經存在。

如果要相信Vim文檔,Vi不支持錄製(步驟1-3),但確實支持@。然後你必須用"Xy<motion>或其他一些寄存器寫入命令手動將字符拷入到目標寄存器中。這也適用於Vim,但我不能推薦它,因爲它更容易出錯。

+3

'qq'是丟棄錄音的常用選擇。 – romainl

0

如果你有一個大範圍的類似的線,並希望把//在它開始的時候,你可以這樣做:

:15,25norm! I//<space> 

您也可以使用可視面積(VIP選擇整段)

:'<,'>norm! I//<space> 

使用圖案

:g/TODO/norm! I//<space> 
2

另一種方法是「b鎖定選擇則編輯」的方法:

  1. ctrl + v - 塊選擇

  2. 然後再往jdown-arrow

  3. shift + i將讓你在插入模式。在您希望將其反映到您選擇的所有其他行上的位置進行更改。

  4. esc兩次會顯示/重複您在第一行所做的更改。