我现在使用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
。
我可以导航到m
的下一次出现并点击house
以重复错误的替换。在这种情况下,我必须修复所有.
,然后将hone
替换为n
。
我可以立即修复错误,但之后我无法重复相同的m
- > house
替换,因为home
会重复.
- > n
替换。
如果我在点击m
之前发现了错误,那么所有这一切都没有问题。我的问题是,如果有办法撤消离开插入模式,那么ESC
将重复这两个动作?或者类似地,有没有办法告诉.
重复最后的操作?
(当然这听起来像录制一个宏,但由于我错误地结束了这种情况,我还没有开始进行宏录制。)
答案 0 :(得分:1)
就我而言,没有vim的命令历史,因为你可以重复最后两次操作。
但是,有一个插件可以帮助您实现这一目标。它被称为the RepeatLast.vim plugin来解决这个确切的要求。它提供2\.
密钥绑定。使用该插件的成本以及插件实际工作的方式是......它实际上可以一直启用宏录制 。但如果你能忍受这种情况,它应该处理这种情况很好。