捕获yank事件并触发vimscript中的方法
Catching yank event and trigger a method in vimscript
我想知道是否可以在 vim 中复制文本时触发方法。
该方法应该在所有的 yank 事件上触发,所以覆盖 "yy" 和 "yiw" 的键盘映射不是我的答案(因为你知道,我们不能像 [=16= 这样写无限数量的键盘映射], "y3l" 等)
对于知道答案的各位,我还想再问一个问题。在yank事件的回调方法中,可以知道是哪条文字被yank了吗? (例如第 10 行,从第 3 个字符到第 8 个字符)
我认为您需要为您的插件采用替代方法。
最后一次抽取存储在 @0
寄存器中,因此如果您监视该寄存器的变化,您可以检测到什么时候有新的抽取。
使用 CursorHold,CursorHoldI and/or CursorMoved autocmd 将 @0
的当前值与存储值进行比较,并更新存储值并在发生更改时突出显示。
请注意,如果用户为他们的抽取指定一个特定的命名寄存器,这将不起作用。您也可以监控所有这些;或映射 y 以捕获从 v:register
使用的寄存器并对其进行监视;然而,这些寄存器通常用于宏、删除等以及 yanks。
我想知道是否可以在 vim 中复制文本时触发方法。 该方法应该在所有的 yank 事件上触发,所以覆盖 "yy" 和 "yiw" 的键盘映射不是我的答案(因为你知道,我们不能像 [=16= 这样写无限数量的键盘映射], "y3l" 等)
对于知道答案的各位,我还想再问一个问题。在yank事件的回调方法中,可以知道是哪条文字被yank了吗? (例如第 10 行,从第 3 个字符到第 8 个字符)
我认为您需要为您的插件采用替代方法。
最后一次抽取存储在 @0
寄存器中,因此如果您监视该寄存器的变化,您可以检测到什么时候有新的抽取。
使用 CursorHold,CursorHoldI and/or CursorMoved autocmd 将 @0
的当前值与存储值进行比较,并更新存储值并在发生更改时突出显示。
请注意,如果用户为他们的抽取指定一个特定的命名寄存器,这将不起作用。您也可以监控所有这些;或映射 y 以捕获从 v:register
使用的寄存器并对其进行监视;然而,这些寄存器通常用于宏、删除等以及 yanks。