我有vim设置在我写文件时运行Autoformat但是在编辑之前会定期忘记在我的黑名单中添加扩展名。现在我无法保存编辑,因为autoformating会弄乱缩进。有没有一种节省方法而不运行BufWrite脚本?
我的vimrc中的行是:
au BufWrite * if index(blacklist, &ft) < 0 | :Autoformat
答案 0 :(得分:5)
有三种选择:
: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
。