禁用帮助缓冲区的自动命令

时间:2012-07-09 10:09:06

标签: vim

我的.vimrc中有以下几行:

" UNIX fileformat
au BufRead,BufNewFile * set fileformats=unix,dos
au BufRead,BufNewFile * set fileformat=unix

这些是使用unix文件格式制作任何打开的文件。

除了帮助消息之外,几乎在所有情况下都能很好地工作。如果我输入,请说:

:h help

Vim首先抱怨说:

"helphelp.txt" [readonly] 350L, 13662C Error detected while processing
BufRead Auto commands for "*": E21: Cannot make changes, 'modifiable'
is off: fileformat=unix

显然,我正在尝试在不可修改的缓冲区上设置fileformat选项,因此会出现此错误。但是,如果不删除其他文件的功能,最简单的方法就是摆脱它?

是否有办法有条件地应用/不应用帮助缓冲区的自动命令?

谢谢。

1 个答案:

答案 0 :(得分:3)

'fileformats'是全局设置,只需在.vimrc中设置一次就足够了:

set fileformats=unix,dos

任何其他不可修改的文件都会发生错误,而不仅仅是帮助文件。因此,最好以'modifiable'缓冲区设置为条件进行设置:

au BufRead,BufNewFile * if &l:modifiable | setlocal fileformat=unix | endif

(或者,您也可能只是:silent!错误,但我认为条件更清晰。)