我的.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选项,因此会出现此错误。但是,如果不删除其他文件的功能,最简单的方法就是摆脱它?
是否有办法有条件地应用/不应用帮助缓冲区的自动命令?
谢谢。
答案 0 :(得分:3)
'fileformats'
是全局设置,只需在.vimrc中设置一次就足够了:
set fileformats=unix,dos
任何其他不可修改的文件都会发生错误,而不仅仅是帮助文件。因此,最好以'modifiable'
缓冲区设置为条件进行设置:
au BufRead,BufNewFile * if &l:modifiable | setlocal fileformat=unix | endif
(或者,您也可能只是:silent!
错误,但我认为条件更清晰。)