当光标在行之间移动时,我需要一个autocmd触发器。
现在我正在使用:
:autocmd CursorMoved * call MyFunc()
有了它,MyFunc会在每个光标移动中执行,但只有当光标向上或向下移动(不是向右和向左)时我才需要触发器
编辑:
使用最后记录的行检查光标线对我有效。
if line(".") != s:recordedLine
let s:recordedLine = line(".")
....
答案 0 :(得分:3)
我认为你无法完全按照自己的意愿行事。您可能需要每次都调用MyFunc()
,但在函数中设置一个条件来决定是否执行操作。也许您可以使用getchar()
来确定是否按下了 j 或 k 。或者您可以记录当前行号(let line=getline('.')
)并将其与前一行号进行比较。