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