[英]Vim — how to control formatoptions when opening up a file with no filetype?
我在~/.vimrc
設置了我的formatoptions
:
set formatoptions=caq1njw
有時我運行一個腳本,使我可以編輯一個臨時純文本文件,該文件的路徑以//
開頭(它們是perforce文件路徑)。
這會導致vim應用自動換行的注釋段落規則,因此,如果我有一些短文件路徑加起來少於textwidth
字符長,它將在我編輯此文件列表時合並文件路徑! 這將是超級額外的壞處。
現在我知道如何使用.vim/after/ftplugin
使Vim在打開不同的文件類型時應用不同的設置。 例如,如果我希望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
,是的,這是非常規的)
因此,除了我的.vimrc
的caq1njw
之外,捆綁的javascript.vim似乎還應用了l
和r
。 很好,我可以根據需要為JavaScript配置vim的行為。
但是我想要的是普通的,普通的,未檢測到的文件類型文件,不要使用caq1njw
。 並且,對於所有其他公認的文件類型,請使用caq1njw
。
有沒有一種方法可以不向我使用的每個文件類型添加set formatoptions=caq1njw
而set formatoptions=caq1njw
?
基本上,某種ftplugin/vanilla.vim
僅在未檢測到文件類型時運行。
如果臨時純文本文件遵循任何(路徑和/或文件名)模式,我將在其上定義一個autocmd:
:autocmd BufNew,BufRead /tmp/tempfile*.tmp setlocal formatoptions=...
對於一般情況,很難在不引發FileType
事件時觸發。 你不得不使用后自帶另一個事件,例如:
:autocmd BufWinEnter * if empty(&l:filetype) | setlocal formatoptions=... | endif
不過,我會選擇第一種方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.