如果我想将repeat.vim与surround.vim一起使用,那么重复#set函数的第一个参数应该是什么?

时间:2013-12-21 17:20:57

标签: vim vim-plugin

根据网站https://github.com/tpope/vim-repeat,启用repeat.vim的过程如下:

silent! call repeat#set("\<Plug\>MyWonderfulMap", v:count)

但我不明白重复#set函数的第一个参数。你能用一个例子解释一下吗?如果我想配置repeat.vim和surround.vim,我应该在.vimrc中包含哪些指令?对于unmpaired.vim,该指令将如何变化?

2 个答案:

答案 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相同的作者,它已经内置了该支持。