在vimscript中,是否有内部命令触发的事件?

时间:2014-03-15 09:39:32

标签: vim

例如,

在命令模式下,如果我键入":cd / Home" cd命令可以触发事件,我可以获取命令的目标目录(/ Home)的路径。

像这样的东西: autocmd cd *:echo" blabla"

1 个答案:

答案 0 :(得分:3)

不幸的是没有。您可以在:help autocmd-events找到整个活动列表。我看到以下选项:

  • 如果它只是:cd命令,您可以创建一个覆盖:Cd命令,在委派给原始:cd后触发您的附加功能。为避免必须键入大写:Cd,您可以使用cmdalias.vim - Create aliases for Vim commands。我更喜欢这种方法。
  • 虽然Ex命令没有挂钩,但您可以通过挂钩:cmap <CR>并使用getcmdline()拦截所有交互输入的命令,但这需要自己解析并且全局挂钩不能很好地解决其他插件/配置。
  • 由于使用:cd可以观察到getcwd()的效果,如果您有一点延迟,您可以加入其他常规事件,例如CursorHold,CursorMoved