在 vim 中重复最后 n 个命令

在 vim 中重复最后 n 个命令

我注意到 vim 非常直观,但我很难找到重复倒数第二个命令(或倒数第三个、倒数第四个等)的方法。通过在正常模式下键入.,它将重复最后一个命令。按3.将重复最后一个命令 3 次。

假设我oHello<Esc>当时打字A, World!<Esc>。我现在得到

Hello, World!

屏幕上。现在,说我想要得到

Hello, World!
Hello
Hello
Hello

无需输入“Hello”。 vim 是否存储超过一个命令的历史记录,以便我可以键入类似的内容3,2.(即重复倒数第二个命令三次)?

答案1

不,.命令vim没有历史记录,据我所知,正常模式命令也没有任何类型的重复历史记录。对于最少的击键次数,我建议使用4oHello<Esc>3jA, World<Esc>.如果您已经完成了oHello<Esc>A, World<Esc>,您可以按照 进行操作uyy<Ctrl-r>3p

答案2

有一个名为 RepeatLast.vim 的插件,它可以满足您的需求,但需要付出一定的代价:您的 vim 始终处于录制宏模式。您可以像任何其他 vim 软件包一样使用您正在使用的软件包管理器来安装它,或者如果您~/.vim/plugin使用的是 vim 或~/.config/nvim/plguinneovim,则可以简单地克隆并放入它。要重复倒数第二个操作,您应该2\.在正常模式下键入,要重复倒数第二个操作,您应该<n>\.在正常模式下键入。

http://www.vim.org/scripts/script.php?script_id=4381 https://github.com/vim-scripts/RepeatLast.vim

相关内容