2017-09-26 29 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两次会显示/重复您在第一行所做的更改。