维姆: 重复之前的动作?

假设我处于视觉模式,输入“ aw”来扩展视觉区域以包括下一个单词。接下来我想说几个词。有没有一个单一的键,我可以按重复上一个议案(包括文字对象的议案) ?

我知道重复以前的变化,’n’重复以前的搜索,以及其他‘ repeat’命令,但是我不知道有任何命令要重复以前的动作(不管它是什么)。

21558 次浏览

有一些插件提供了这种功能:

  • Vim : 给出计数的重复动作
  • 可重复的动作。 vim : 使大多数动作可重复
  • Vim : 为 vim 提供重复运动操作(k,j,h,l,w,b,W,B,e,E,gE,gE)的支持

代替重复的运动,有一个插件扩展区域通过 +和收缩 _: https://github.com/terryma/vim-expand-region

有一个命令可以重复用 f,t,F 或 T 做的每个动作 记住这一点
Fx 带到字符 x 的下一个匹配项
Fx 需要先前出现的 x
Tx 将您带到下一次出现 x 之前的字符
Tx 将您带到前面出现 x 之后的字符
重复这些动议

;

向后(在相反的方向)按

,

没有插件使用 ;.

下面是一个详细的例子:

int function1(){
some code here;
...
...
return 0;
}


int function2(){
some code here;
...
...
return 0;
}

现在我们假设要为 function 1和 function 2重写 {}内部的部分。

  • 将光标放在 {}中的某个位置
  • 从正常模式(ESCctrl+c) ,按 di}(为“删除”“内部”{”)
  • 现在您已经删除了函数中的所有内容
  • 现在把光标放到函数2的 {}
  • ;.

对于视觉模式,我认为宏是你唯一的选择(对于 aw来说可能有点过了)

  • 要开始录制宏,请按 q + q(最后一个 q可以是任何字母)。它是您的宏将被保存的地方)
  • 做你想做的事。
  • 再次按 q 停止录制

重放这些动作(即使在可视模式下) :

  • @q(或者任何你保存它的字母)

重复这些动作99次:

  • 99@q(或者任何你保存它的字母)