我如何在Vim中重复任何命令,如emacs中的“Cx z”?

在Vim中,有没有什么办法可以重复上一个命令,不pipe是不是编辑,也没有先见之明的macros?

比如说我input:bn ,并且想再次执行(这是错误的文件)。 按下. 显然不这样做。 或者,也许我在做gE ,想重复一遍(有一个击键,因为显然gE有点痛苦)。

也许有一些插件? 类似于这个问题 。

(更酷的是将一些命令追溯地绑定到macros,所以可以键入5qa@a或者重复最后5个命令)

要重复命令行命令,请尝试@:要重复正常/插入模式命令,请尝试.

添加下面的映射到你的.vimrc如果你想快捷相同: –

:noremap <CP> @:<CR> – 这将把Ctrl + P映射到之前的命令行命令。 你可以映射任何其他组合。

:help repeating将提供典型的重复命令(如。,@:等)。 你可以尝试repeat.vim 。 这可能会让你更接近你正在寻找的东西。

对于运动命令,Vim中没有内置的机制。 Find和To命令( f / F / t / T )有; 并重复和颠倒。 有几个插件扩展了这些绑定来重复其他的运动命令:

http://www.vim.org/scripts/script.php?script_id=2174

http://www.vim.org/scripts/script.php?script_id=3665

后者应该支持重复使用gE ;

你可以使用“。”

例如:你的文件中有10个地方有“abc”,你想用5个地方的“def”replace它。

步骤1:通过键入命令“/ abc”查找abc的第一次发生
步骤2:一旦光标在“abc”上,用命令“cw”replaceabc取出单词“abc”
第三步:input“def”作为replace,按回车键进入命令模式
第四步:重复这个操作,只需input命令“n”进入下一个abc ,input命令“。”。该命令记得你上次用“def”replace了“abc”,并且在这里执行相同的操作。

您可以将@:映射到某个键以获得更多便利:

 :map <F2> @: 

然后重复使用它就更容易了。