在vim

时间:2017-08-17 13:53:14

标签: vim

我现在使用vim已经有一段时间了,但每天都有几次因为太早点击ESC而不小心遇到了不便。

假设我正在编辑以下文件:

I want to change 'house' in this line.
'house' should stay like this.
This 'house' should become 'home'
The other 'house' should also change.

我想在除第二行之外的所有行中将house更改为home。 (在这个简单的示例中,编写:s命令并执行任务很容易,但通常任务更具体,手动替换更快,更不容易出错。)我导航到第一次出现{{1 },按house,输入cw,然后点击hone。点击ESC后,我意识到我偶然输入了字母ESC而不是n

  1. 我可以导航到m的下一次出现并点击house以重复错误的替换。在这种情况下,我必须修复所有.,然后将hone替换为n

  2. 我可以立即修复错误,但之后我无法重复相同的m - > house替换,因为home会重复. - > n替换。

  3. 如果我在点击m之前发现了错误,那么所有这一切都没有问题。我的问题是,如果有办法撤消离开插入模式,那么ESC将重复这两个动作?或者类似地,有没有办法告诉.重复最后的操作?

    (当然这听起来像录制一个宏,但由于我错误地结束了这种情况,我还没有开始进行宏录制。)

1 个答案:

答案 0 :(得分:1)

就我而言,没有vim的命令历史,因为你可以重复最后两次操作。

但是,有一个插件可以帮助您实现这一目标。它被称为the RepeatLast.vim plugin来解决这个确切的要求。它提供2\.密钥绑定。使用该插件的成本以及插件实际工作的方式是......它实际上可以一直启用宏录制 。但如果你能忍受这种情况,它应该处理这种情况很好。