如何为autocmd设置一个不匹配命令行缓冲区的文件模式



我有一个au命令来检查文件是否被更改:

autocmd CursorHold * checktime

但是当我使用q:q/启动命令行窗口时,我会得到以下错误:

Error detected while processing CursorHold Auto commands for "*":
E11: Invalid in command-line window; <CR> executes, CTRL-C quits: checktime
Press ENTER or type command to continue

我的问题是,是否有可能设置autocmd的模式来排除命令行缓冲区和其他只读缓冲区?

最简单的修复方法就是将错误静音:

autocmd CursorHold * silent! checktime

或者,您也可以将其包装在trycatch /:E11:/。或者,您可以尝试检查命令行窗口:

autocmd CursorHold * if expand('%') !=# '[Command Line]' | checktime | endif

相关内容

  • 没有找到相关文章

最新更新