我有一个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模式以排除命令行缓冲区和其他只读缓冲区?
答案 0 :(得分:4)
最简单的解决办法就是让错误无声:
autocmd CursorHold * silent! checktime
或者,您也可以将其包含在try
... catch /:E11:/
中。或者,您可以尝试检查命令行窗口:
autocmd CursorHold * if expand('%') !=# '[Command Line]' | checktime | endif