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