2

私は.vimrcにこれを持っています:

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

動作: .vim ページ
を 開くと、暗い色のスキーム「color_dark.vim」 が開きます。他のページを開くと、明るい色のスキーム「color_light.vim」 が開きます。

これはとても良いことですが、分割ウィンドウではあまり良くありません。
テキストファイルを使用して分割ウィンドウをクリックするたびに、すべての分割ウィンドウが明るい配色で明るい色になります (.vim ファイルも)。
分割ウィンドウでvimファイルに切り替えると、他の分割ウィンドウの他のすべてのファイルも暗くなります。

分割ウィンドウですべてのファイルタイプの独自の配色を保持することは可能ですか?
上記のコードで何を変更する必要がありますか?

編集
これが不可能な場合、分割ウィンドウに入ったときに上記のコードを無効にすることは可能ですか? (すべての分割ウィンドウで同じように、自分で配色を選択できるようにするため)

4

1 に答える 1

2

Colorschemes は常に vim インスタンス全体に影響します。分割ウィンドウごとに異なる配色を設定することはできません。

編集 1: 編集で 2 番目の質問に答えるには、おそらく&& winnr('$') == 1最初ifに追加して、複数の分割ウィンドウを開いているときにこれが発生しないようにすることができます。

編集 2: おっと、上記の編集は機能しませんが、すべてを別の方法でラップする必要があると思いますif

編集 3: いくつかのパイプを逃した。

augroup filetype_colorscheme
        au BufEnter *
        \ | if winnr('$') == 1
                \ if !exists('b:colors_name')
                    \ | if &ft == "vim"
                        \ | let b:colors_name = 'color_dark'
                    \ | else
                        \ | let b:colors_name = 'color_light'
                    \ | endif
                \ | endif
                \ | exe 'colorscheme' b:colors_name
        \ | endif
augroup END 
于 2012-04-19T09:19:43.077 に答える