私のワークスペースは通常、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