Vimのアクティブウィンドウのみに背景色を設定する方法は?


16

小さくても視覚的に楽しい機能であり、使いやすさを少し高めて、Vimでアクティブウィンドウに異なる背景色を使用したいと思います。

ここに私が望んでいるもののスケッチがあります:

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

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

回答:


8

ヘプタイト、アイデアをありがとう。

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

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

どのウィンドウがアクティブであるかを追跡できるようになりました。


これはカッコいい。残念ながら、行番号をあまり空想していないので、あまりにも見た目が悪いです。
unperson325680

3

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

ただし、これは本当に見苦しい例です。

augroup BgHighlight
    autocmd!
    ハイライトActiveWindow guibg = lightblue
    autocmd WinEnter * call matchadd( 'ActiveWindow'、 '。*'、
    10、1682 )autocmd WinLeave * call matchdelete(1682)
augroup END

doautocmd BgHighlight WinEnter-

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

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


いい考えですが、パターン.*はファイルのテキストにのみ一致します。背景の残りの部分からは何も。さらに、私はそれがctermbgプロパティを持つターミナルでのみ動作するようにしました。奇妙な...
unperson325680

申し訳ありませんが、答えはもっと明確にすべきでした。編集しました。
ヘプタイト
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.