根据站点 https://github.com/tpope/vim-repeat,启用 repeat.vim 的过程如下:
silent! call repeat#set("<Plug>MyWonderfulMap", v:count)
但我不明白 repeat#set 函数的第一个参数。 你能举个例子来解释一下吗? 如果我想配置repeat.vim和surround.vim,我应该在.vimrc中包含什么指令? 对于unparaired.vim来说,该指令将如何变化?
环绕声得到repeat
的支持,你不必在你的 vimrc 中做太多事情,如果你检查surround
的代码,重复函数在那里被调用。
对于该功能的解释,您可以在问题中编写的链接中找到它。 在这里阅读:
https://github.com/tpope/vim-repeat/blob/master/autoload/repeat.vim#L19
你显然对 repeat.vim 的工作原理有错误的理解。您不能通过调用repeat#set()
一次来启用此功能(例如在您的~/.vimrc
中);相反,映射本身必须修改,以便在映射的正常工作完成后调用repeat#set()
。
repeat.vim 插件的工作方式是每个映射都必须告诉它:嗨,我<Plug>MyMapping
,我刚刚被执行。repeat.vim 插件钩接到 .
命令,如果最后一个命令来自这样的映射,它会重新执行 = 重复。
因此,repeat.vim 支持需要插件的合作(它定义了一些映射);要么插件有,要么没有(然后你必须要求插件的作者提供 repeat.vim 支持,或者使用外部插件,如我的 repeatableMapping 插件在事后修改映射。
但是,正如Kent已经说过的那样,环绕声插件来自与repeat.vim相同的作者,并且它已经内置了该支持。