web-dev-qa-db-ja.com

Vimのアクティブウィンドウのみの背景色を設定するにはどうすればよいですか?

小さいながらも視覚的に心地よい機能であり、使いやすさが少し向上しているので、Vimにアクティブウィンドウに異なる背景色を使用させたいと思います。

これが私が求めているもののスケッチです:

enter image description here

通常、そのvimの背景はすべて黒ですが、アクティブなウィンドウだけがユーザーの注意を強調するための独自の色を持っている場合。ステータスバーだけを強調表示するだけでは不十分です。

16
nperson325681

ヘプタイト、アイデアありがとうございます。

WinEnterとWinLeaveautocmdを置き換えて、各行の前に行番号を追加/削除します。

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

どのウィンドウがアクティブであるかを追跡するのがよりスタイリッシュになりました。

8
t0d0r

デフォルトの背景色を制御するハイライトグループは、「Normal」と「NonText」です。残念ながら、これらは「グローバル」なハイライトであり、ウィンドウごとに「ローカライズ」することはできません。

ただし、これは本当に醜い厄介な例です。

augroup BgHighlight
autocmd!
ActiveWindow guibg = lightblueを強調表示します
autocmd WinEnter * call matchadd( 'ActiveWindow'、 '。*'、10、1682)
autocmd WinLeave * call matchdelete(1682)
augroup END

doautocmd BgHighlightWinEnter-

これは単なる例であるため、ctermbg = ...ハイライトをguibg = ...とともに追加するなど、個々のニーズに合わせてこれを変更する必要があります。

欠点は、行/ウィンドウ全体ではなく、ファイル内の既存のテキストの背景のみが強調表示されることです。 (私が言ったように、醜くて不器用です。)

3
Heptite