ib.*_*ib. 17
一个简单而有效的解决方案是定义一个自动命令匹配可能错误输入的文件名,它会发出警告并终止保存.
:autocmd BufWritePre [:;]* throw 'Forbidden file name: ' . expand('<afile>')
Run Code Online (Sandbox Code Playgroud)
请注意,该:throw
命令是使Vim停止写入缓冲区内容所必需的.
为了避免E605
因未捕获的异常而导致错误,可以使用块中:echoerr
运行的命令发出错误try
.(:echoerr
从try
构造内部调用时,将其错误消息作为异常引发.请参阅:help :echoerr
.)
:autocmd BufWritePre [:;]*
\ try | echoerr 'Forbidden file name: ' . expand('<afile>') | endtry
Run Code Online (Sandbox Code Playgroud)
如果需要保存名称与上述自动命令中使用的模式匹配的文件,可以相应地添加一个写入命令:noautocmd
或相应地设置该eventignore
选项(参见:help :noautocmd
并:help
eventignore
获取更多详细信息),例如
:noa w :ok.txt
Run Code Online (Sandbox Code Playgroud)