捕获猛拉事件并在vimscript中触发方法

时间:2015-01-04 02:15:44

标签: vim

我想知道在vim中复制文本时是否可以触发方法。 应该在所有的yank事件上触发该方法,因此覆盖" yy"的键映射。和" yiw"对我来说不是答案(因为你知道,我们不能写出像#34; yfx"," y3l"等等的无限数量的键映射

对于任何有答案的人,我也想问另一个问题。在yank事件的回调方法中,我可以知道哪个文本被拉出来了吗? (例如,第10行,从第3个字符到第8个字符)

1 个答案:

答案 0 :(得分:2)

我认为你需要为你的插件采取替代方法。

最后一次存储被存储在@0寄存器中,因此如果您监视该寄存器的更改,您可以检测到新的东西被拉出来。

使用CursorHold,CursorHoldI和/或CursorMoved autocmd将@0的当前值与存储值进行比较,并更新存储的值并在发生更改时执行突出显示。

注意,如果用户为他们的猛拉指定了一个特定的命名注册,这将无法工作。你也可以监控所有这些;或映射 y 以捕获v:register使用的寄存器并监视该寄存器;但是这些寄存器通常用于宏,删除等以及抽取。