私のワークスペースは通常、vimを備えた1つの非常に大きなxtermであり、6つ以上のバッファーに分割されます。どちらがアクティブなバッファであるかがより明確であると、非常に役立ちます。今私はこれに行番号の存在を使用しています:
augroup BgHighlight
autocmd!
autocmd WinEnter * set number
autocmd WinLeave * set nonumber
augroup END
しかし、これは、バッファを変更すると、コードが左または右にジャンプすることを意味します。さらに、非アクティブバッファでも94行目を確認できるようにしたいと思います。それで、アクティブなバッファーの行番号の色を変更する方法はありますか?
テンプレートに従って、colorcolumnなどのさまざまなプロパティを変更できます。
augroup BgHighlight
autocmd!
autocmd WinEnter * set colorcolumn=80
autocmd WinLeave * set colorcolumn=0
augroup END
これにより、現在のウィンドウの列80が色付けされ、他のウィンドウでは無効になります。行番号の設定/設定解除よりも少し不快ではありません。
現在の行を強調表示するのに慣れている場合(設定cul)、さらに邪魔にならないオプションは次のとおりです。
augroup BgHighlight
autocmd!
autocmd WinEnter * set cul
autocmd WinLeave * set nocul
augroup END
それはすべてあなたの使用法とあなたが我慢して喜んでいるものに帰着します。
ステータスラインの色は、アクティブなウィンドウを確認する最も一般的な方法です。それはあなたのcolorschemeでこれらの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つ目は「非現在の」ウィンドウ用です。
これは xoria256 からの抜粋です。色をカラースキームに適応させる必要があります。
しかし、そのようなことを試すことができます(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
非アクティブなウィンドウを暗くする私のプラグインも参照してください: https://github.com/blueyed/vim-diminactive
これが私がすることです:
augroup BgHighlight
autocmd!
autocmd WinEnter * set relativenumber
autocmd WinLeave * set norelativenumber
augroup END
相対数は、コマンドの繰り返し量を計算するための補助に過ぎず、編集していないウィンドウでは使用できません。
非アクティブなウィンドウのカーソルラインを非表示にしたい
augroup CursorLineOnlyInActiveWindow
autocmd!
autocmd VimEnter,WinEnter,BufWinEnter * setlocal cursorline
autocmd WinLeave * setlocal nocursorline
augroup END
(ありがとう https://codeyarns.com/2013/02/07/how-to-show-cursorline-only-in-active-window-of-vim/ )