web-dev-qa-db-ja.com

vimでアクティブウィンドウをより明確にする

私のワークスペースは通常、vimを備えた1つの非常に大きなxtermであり、6つ以上のバッファーに分割されます。どちらがアクティブなバッファであるかがより明確であると、非常に役立ちます。今私はこれに行番号の存在を使用しています:

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

しかし、これは、バッファを変更すると、コードが左または右にジャンプすることを意味します。さらに、非アクティブバッファでも94行目を確認できるようにしたいと思います。それで、アクティブなバッファーの行番号の色を変更する方法はありますか?

24
DrHyde

テンプレートに従って、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

それはすべてあなたの使用法とあなたが我慢して喜んでいるものに帰着します。

29
fgb

ステータスラインの色は、アクティブなウィンドウを確認する最も一般的な方法です。それはあなたの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
12
romainl

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

7
blueyed

これが私がすることです:

augroup BgHighlight
    autocmd!
    autocmd WinEnter * set relativenumber
    autocmd WinLeave * set norelativenumber
augroup END

相対数は、コマンドの繰り返し量を計算するための補助に過ぎず、編集していないウィンドウでは使用できません。

4
saga

非アクティブなウィンドウのカーソルラインを非表示にしたい

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/

2
mickey megabyte

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

highlight StatusLineNC cterm=bold ctermfg=white ctermbg=darkgray

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

enter image description here

1
wisbucky