在 vim 中暂时禁用 BufWrite 脚本
Temporarily disable BufWrite script in vim
我已将 vim 设置为 运行 在我写入文件时自动格式化,但在对其进行编辑之前定期忘记将扩展名添加到我的黑名单。现在我无法保存编辑,因为自动格式化弄乱了缩进。有没有不用 运行 BufWrite 脚本保存的方法?
我的 vimrc 中的行是:
au BufWrite * if index(blacklist, &ft) < 0 | :Autoformat
共有三个选项:
:noa[utocmd] w[rite]
将在不触发 任何 自动命令的情况下执行保存。只要您没有使用 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
。
我已将 vim 设置为 运行 在我写入文件时自动格式化,但在对其进行编辑之前定期忘记将扩展名添加到我的黑名单。现在我无法保存编辑,因为自动格式化弄乱了缩进。有没有不用 运行 BufWrite 脚本保存的方法?
我的 vimrc 中的行是:
au BufWrite * if index(blacklist, &ft) < 0 | :Autoformat
共有三个选项:
:noa[utocmd] w[rite]
将在不触发 任何 自动命令的情况下执行保存。只要您没有使用 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
.
PS:您的 :autocmd
缺少结尾的 | endif
。