我有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

10-08 16:17