如何设置autocmd的文件模式与命令行缓冲区不匹配?

时间:2014-08-18 12:18:36

标签: vim 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模式以排除命令行缓冲区和其他只读缓冲区?

1 个答案:

答案 0 :(得分:4)

最简单的解决办法就是让错误无声:

autocmd CursorHold * silent! checktime

或者,您也可以将其包含在try ... catch /:E11:/中。或者,您可以尝试检查命令行窗口:

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