Vimscript:光标在行之间移动时触发

时间:2013-12-19 14:54:50

标签: vim autocmd

当光标在行之间移动时,我需要一个autocmd触发器。

现在我正在使用:

:autocmd CursorMoved * call MyFunc()

有了它,MyFunc会在每个光标移动中执行,但只有当光标向上或向下移动(不是向右和向左)时我才需要触发器

编辑:

使用最后记录的行检查光标线对我有效。

if line(".") != s:recordedLine
 let s:recordedLine = line(".")
 ....

1 个答案:

答案 0 :(得分:3)

我认为你无法完全按照自己的意愿行事。您可能需要每次都调用MyFunc(),但在函数中设置一个条件来决定是否执行操作。也许您可以使用getchar()来确定是否按下了 j k 。或者您可以记录当前行号(let line=getline('.'))并将其与前一行号进行比较。