vim のアクティブウィンドウをよりわかりやすくする

vim のアクティブウィンドウをよりわかりやすくする

私のワークスペースは通常、vim を備えた 1 つの非常に大きな xterm で、6 つ以上のバッファーに分割されています。どのバッファーがアクティブであるかがもっと明確であれば、非常に便利です。現在、私は行番号の存在を利用してこれを実現しています。

augroup BgHighlight
    autocmd!
    autocmd WinEnter * set number
    autocmd WinLeave * set nonumber
augroup END

しかし、これはバッファを変更するとコードが左または右にジャンプすることを意味し、これは面倒です。さらに、非活性バッファ。アクティブなバッファ内の行番号の色を変更する方法はありますか?

答え1

テンプレートに従って、colorcolumn などのさまざまなプロパティを変更できます。

augroup BgHighlight
    autocmd!
    autocmd WinEnter * set colorcolumn=80
    autocmd WinLeave * set colorcolumn=0
augroup END

これにより、現在のウィンドウの列 80 に色が表示され、他の列では無効になります。行番号の設定/設定解除よりも少し目立たなくなります。

現在の行を強調表示することに慣れている場合 (set cul)、さらに邪魔にならないオプションは、次のとおりです。

augroup BgHighlight
    autocmd!
    autocmd WinEnter * set cul
    autocmd WinLeave * set nocul
augroup END

すべてはあなたの使い方とあなたが我慢できる範囲次第です。

答え2

ステータスラインの色は、どのウィンドウがアクティブであるかを知る最も一般的な方法です。これは、カラー スキームで次の 2 行で定義されます。

hi StatusLine   ctermfg=15  guifg=#ffffff ctermbg=239 guibg=#4e4e4e cterm=bold gui=bold
hi StatusLineNC ctermfg=249 guifg=#b2b2b2 ctermbg=237 guibg=#3a3a3a cterm=none gui=none

1 つ目は現在のウィンドウ用、2 つ目は「非現在の」ウィンドウ用です。

これは以下の抜粋です翻訳者、色をカラースキームに合わせて調整する必要があります。

しかし、次のようなことを試すこともできます (注意: 2 行目の色は完全にランダムです)。

augroup NrHighlight
  autocmd!
  autocmd WinEnter * hi LineNr ctermfg=247 guifg=#9e9e9e ctermbg=233 guibg=#121212
  autocmd WinLeave * hi LineNr ctermfg=274 guifg=#e9e9e9 ctermbg=133 guibg=#212121
augroup END

答え3

非アクティブなウィンドウを暗くするプラグインも参照してください:https://github.com/blueyed/vim-diminactive

答え4

これを に追加する~/.vimrcと、非アクティブ ウィンドウのステータス バーの背景が濃い灰色になり、アクティブ ウィンドウの白いステータス バーと区別できるようになります。

highlight StatusLineNC cterm=bold ctermfg=white ctermbg=darkgray

このスクリーンショットの例をご覧ください。中央のウィンドウはアクティブです (ステータス バーは白)。左と右のウィンドウは非アクティブです (ステータス バーは濃い灰色)。

ここに画像の説明を入力してください

関連情報