【问题标题】:Vimscript: Trigger when cursor moved between linesVimscript:当光标在行之间移动时触发
【发布时间】:2013-12-19 14:54:50
【问题描述】:

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

现在我正在使用:

:autocmd CursorMoved * call MyFunc()

有了它,每次光标移动都会执行MyFunc,但我只需要在光标上下移动(不是左右)时触发

编辑:

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

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

【问题讨论】:

标签: vim autocmd


【解决方案1】:

我不认为你可以做你想做的事。您可能需要每次都调用MyFunc(),但在函数中添加一个条件来决定是否执行该操作。也许您可以使用getchar() 来确定是否按下了 jk。或者您可以记录当前行号(let line=getline('.'))并与之前的行号进行比较。

【讨论】:

  • getchar() 不是个好主意,(, ), {, }, 'm, '[
  • 确实如此。有很多方法可以跳过一行或多行。行号比较会是更好的方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-24
  • 1970-01-01
  • 2023-04-09
  • 1970-01-01
  • 2011-12-30
  • 1970-01-01
相关资源
最近更新 更多