我想知道在vim中复制文本时是否可以触发方法。 应该在所有的yank事件上触发该方法,因此覆盖" yy"的键映射。和" yiw"对我来说不是答案(因为你知道,我们不能写出像#34; yfx"," y3l"等等的无限数量的键映射
对于任何有答案的人,我也想问另一个问题。在yank事件的回调方法中,我可以知道哪个文本被拉出来了吗? (例如,第10行,从第3个字符到第8个字符)
答案 0 :(得分:2)
我认为你需要为你的插件采取替代方法。
最后一次存储被存储在@0
寄存器中,因此如果您监视该寄存器的更改,您可以检测到新的东西被拉出来。
使用CursorHold,CursorHoldI和/或CursorMoved autocmd将@0
的当前值与存储值进行比较,并更新存储的值并在发生更改时执行突出显示。
注意,如果用户为他们的猛拉指定了一个特定的命名注册,这将无法工作。你也可以监控所有这些;或映射 y 以捕获v:register
使用的寄存器并监视该寄存器;但是这些寄存器通常用于宏,删除等以及抽取。