Wie stelle ich die Hintergrundfarbe nur für das aktive Fenster von Vim ein?

13

Als kleines, aber optisch ansprechendes Feature, das die Benutzerfreundlichkeit leicht verbessert, möchte ich, dass Vim eine andere Hintergrundfarbe für das aktive Fenster verwendet.

Hier ist eine Skizze, wonach ich strebe:

enter image description here

Normalerweise würde dieser Vim den gesamten Hintergrund in Schwarz haben, aber wenn nur das aktive Fenster eine eigene Farbe hätte, um die Aufmerksamkeit des Benutzers hervorzuheben. Es reicht nicht aus, nur die Statusleiste hervorzuheben!

souser12345
quelle

Antworten:

6

Heptite, danke für die Idee.

Ich ersetze einfach WinEnter und WinLeave autocmd's, um Zeilennummern vor jeder Zeile hinzuzufügen / zu entfernen:

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

Es ist jetzt stilvoller zu verfolgen, welches Fenster aktiv ist.

t0d0r
quelle
Das ist cool. Schade, dass ich keine großen Lust auf Zeilennummern habe, deshalb ist es zu unästhetisch.
souser12345
3

Die Hervorhebungsgruppen, die die Standardhintergrundfarbe steuern, sind " Normal " und " NonText ". Leider handelt es sich hierbei um" globale "Highlights, die nicht auf Fensterbasis" lokalisiert "werden können.

Hier ist jedoch ein wirklich hässliches kludiges Beispiel:

Augroup BgHighlight
autocmd!
markieren Sie ActiveWindow guibg = hellblau
autocmd WinEnter * call matchadd ('ActiveWindow', '. *', 10, 1682)
autocmd WinLeave * matchdelete aufrufen (1682)
augroup END

doautocmd BgHighlight WinEnter -

Da dies nur ein Beispiel ist, müssen Sie dies an Ihre individuellen Bedürfnisse anpassen, z. B. indem Sie ein ctermbg = ... -Highlight zusammen mit dem guibg = ... -Highlight hinzufügen.

Der Nachteil ist, dass dadurch nur der Hintergrund des vorhandenen Texts in den Dateien hervorgehoben wird, nicht die gesamte Zeile / das gesamte Fenster. (Wie ich schon sagte, hässlich und klobig.)

Heptite
quelle
Nettes Denken, aber das Muster .* Stimmt nur mit dem Text einer Datei überein. nichts vom restlichen Hintergrund. Außerdem habe ich es nur im Terminal mit funktionieren lassen ctermbg Eigentum. Seltsam...
souser12345
Entschuldigung, ich hätte in meiner Antwort klarer sein sollen. Ich habe es bearbeitet.
Heptite