2013-10-24 54 views
2

我在我的~/.vimrcformatoptions一套這樣的:Vim - 如何在打開沒有文件類型的文件時控制formatoptions?

set formatoptions=caq1njw 

有時候我運行一個腳本,它可以讓我編輯的有打頭的路徑臨時純文本文件//(他們是Perforce的文件路徑)。

這會導致vim應用包裝註釋段落規則,所以如果我有幾個短文件路徑加起來長度小於textwidth個字符,它會在編輯此文件列表時合併文件路徑!這將是非常糟糕的。

現在我知道如何讓Vim使用.vim/after/ftplugin打開不同的文件類型時應用不同的設置。舉例來說,如果我想formatoptions特異於JavaScript文件的東西我會編輯一些ftplugin/javascript.vim文件,該證明:

:verbose set formatoptions 
    formatoptions=a1njwcroql 
     Last set from ~/bin/share/vim/vim73/ftplugin/javascript.vim 
Press ENTER or type command to continue 

(我的Vim是~/bin下安裝的,是的,這是非常規)

所以它看起來像捆綁的javascript.vim除了我的.vimrccaq1njw之外還應用lr。這很好,我可以配置vim的JavaScript行爲,但我想。

但我想要的是普通,普通,未檢測到的文件類型文件不使用caq1njw。並且,對於所有其他已識別的文件類型,請使用caq1njw

有沒有辦法做到這一點,而不是將set formatoptions=caq1njw添加到我使用的每種文件類型?

基本上某種ftplugin/vanilla.vim僅在未檢測到文件類型時才運行。

回答

0

在的情況下臨時的純文本文件如下任何(路徑和/或文件名)圖案,我定義上,一個自動命令:

:autocmd BufNew,BufRead /tmp/tempfile*.tmp setlocal formatoptions=... 

對於一般的情況下,很難在其上觸發FileType事件不是被拋出。你必須後使用自帶另一個事件,例如:

:autocmd BufWinEnter * if empty(&l:filetype) | setlocal formatoptions=... | endif 

我去的第一選擇,雖然。

+0

美妙的解決方法! –