暂时禁用vim中的BufWrite脚本

isa*_*men 4 vim vim-plugin

我有vim设置在我写文件时运行Autoformat但是在编辑之前定期忘记在我的黑名单中添加扩展名.现在我无法保存编辑,因为autoformating会弄乱缩进.有没有一种方法可以在不运行BufWrite脚本的情况下进行保存?

我的vimrc中的行是:

au BufWrite * if index(blacklist, &ft) < 0 | :Autoformat

Ing*_*kat 5

有三种选择:

:noa[utocmd] w[rite]
Run Code Online (Sandbox Code Playgroud)

将执行保存而不会触发任何 autocmds.只要您没有使用autocmds的任何其他自定义/插件,那就没问题了.

:set eventignore=BufWrite | write | set eventignore=
Run Code Online (Sandbox Code Playgroud)

将暂时关闭该BufWrite事件.

或者,您也可以在autocmd周围添加条件:

au BufWrite * if ! exists('g:no_autoformat') && index(blacklist, &ft) < 0 | :Autoformat
Run Code Online (Sandbox Code Playgroud)

这将使您能够选择性地禁用该特定的autocmd通过:let g:no_autoformat = 1.

PS:你:autocmd错过了收盘| endif.