2012-07-09 88 views
1

我在.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選項,這個錯誤是可以預期的。但是,如果不刪除其他文件的功能,最乾淨的方法是什麼?

有沒有辦法對幫助緩衝區有條件地應用/不應用自動命令?

謝謝。

回答

2

'fileformats'是一個全局設置,它應該足以把它只有在你的.vimrc一次:發生

set fileformats=unix,dos 

錯誤任何其他不可修改的文件,而不僅僅是幫助文件。因此,最好使的'modifiable'緩衝區設定的設定條件:

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

(或者,你也可以只:silent!的錯誤,但我認爲有條件的清潔劑。)