我有vim设置,可以在写入文件时运行自动格式设置,但是定期忘记在我的黑名单上添加扩展名,然后再对其进行编辑。现在,我无法保存修改内容,因为自动格式化会弄乱缩进。有没有一种方法可以在不运行BufWrite脚本的情况下进行保存?
我的vimrc中的行是:au BufWrite * if index(blacklist, &ft) < 0 | :Autoformat
最佳答案
共有三个选项:
:noa[utocmd] w[rite]
将执行保存而不会触发任何autocmds。只要您没有使用autocmds的其他自定义项/插件,就可以了。
:set eventignore=BufWrite | write | set eventignore=
将暂时关闭
BufWrite
事件。另外,您也可以在autocmd周围添加一个条件:
au BufWrite * if ! exists('g:no_autoformat') && index(blacklist, &ft) < 0 | :Autoformat
这将使您能够通过
:let g:no_autoformat = 1
有选择地禁用特定的autocmd。PS:您的
:autocmd
缺少结尾的| endif
。