2011-06-28 23 views
3

.vim、.htm、.html、.xml、または_vimrcファイルを開いたときに、Vimでcolorschemeを変更することはできますか?ファイルタイプが変更されたときの色の変更

ファイル= TXTまたは新しい(保存されません)バッファ:colorscheme1(デフォルト は

これは私が私のvimが何をしたいです(私は上記の拡張子を持つ、既に開いているファイルに切り替えたときにもカラースキームを変更します)私はvimですべてのファイルタイプを検出していないことにも気がつきました。
テキストファイルがテキストファイルとして認識されません。

ps:
これができない場合は、別のcolorschemeに切り替えて、VIMを再起動すると(vimrcで何も変更しないで)保存することは可能でしょうか?


編集

augroup filetype_colorscheme 
    au BufEnter * 
    \ if !exists('b:colors_name') 
     \ | if &ft == "vim" || &ft == "html" 
      \ | let b:colors_name = 'colorscheme 2' 
     \ | else 
      \ | let b:colors_name = 'colorscheme 1' 
     \ | endif 
    \ | endif 
    \ | exe 'colorscheme' b:colors_name 
augroup END 

まだ一つの問題
上記のコードは、分割されたウィンドウ内のすべてのファイルのカラースキームを変更するautocmdと解決策が見つかり

バッファをクリックしたとき
ありますか?ショートカットキーを使用してautocmdを非アクティブ化(および再アクティブ化)する方法?

colo <colourscheme1> "default 
autocmd! BufEnter,BufNewFile *.html,*.vim,*xml colo <colourscheme2> 
autocmd! BufLeave *.html,*.vim,*xml colo <colourscheme1> 

をそして、あなたが望むように、もちろん、あなたはファイル拡張子のリストを変更できます。

+0

vimはテキストファイルをどのように認識しますか? – dave

+0

@black、それは私の場合ではありません – Reman

+0

はい、それを得ました...私はテキストの代わりにどのようなタイプのvim 'を使用しているのか尋ねたかったのです。 – dave

答えて

9

あなたは、次の自動コマンドで欲しいものに近いものを達成することができるはずです。指定したタイプを開く(または切り替える)と、デフォルトで<colourscheme1>、または<colourscheme2>になり、Vimセッション内で他のタイプを開く(または切り替える)ときに<colourscheme1>に戻ります。

これが役に立ちます。

関連する問題