如何在Vim中重复任何命令,例如emacs中的"Cx z"?

joh*_*ohv 50 vim command repeat

在Vim中,有没有办法重复最后一个命令,无论是否是编辑,并且没有先见之明来首先录制宏?

比如说我输入:bn,并想再次这样做(这是错误的文件).按压.显然不会这样做.或者也许我正在做gE并且想要重复一遍(通过一次击键,因为显然gE有点痛苦).

也许有一些插件?与此问题类似.

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

Rav*_*ran 69

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

如果要快捷方式,请将以下映射添加到.vimrc: -

:noremap <C-P> @:<CR> - 这会将Ctrl + P映射到上一个命令行命令.您可以映射任何其他组合.

  • ctr + P用于自动完成代码,因此您可能不会将其重新映射到该代码 (3认同)
  • Ctrl + P也映射到众所周知的插件CtrlP (3认同)

Mat*_*ver 13

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


jpn*_*pnp 10

对于动作命令,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使用;


Man*_*nan 8

你可以使用"."

示例:您的文件中有10个位置的"abc",并且您希望在其5个位置用"def"替换它.

步骤1:通过键入命令"/ abc"找到第一次出现的abc
步骤2:一旦光标在"abc"上,用命令"cw"替换abc取出单词"abc"
步骤3:输入"def"作为替换然后按Enter进入命令模式
步骤4:要重复此操作,只需键入命令"n"即可转到下一次出现的abc 并输入命令"." .该命令记住您上次用"def"替换了"abc",并在此处执行相同的操作.