Ich habe die Hintergrundfarbe der aktuellen Linie wie folgt auf hellgrau eingestellt:
hi CursorLine cterm=NONE ctermbg=253
(Beachten Sie, dass mein Farbschema Schwarz auf Weiß ist.)
Auf diese Weise werden jedoch alle durch Syntaxhervorhebung festgelegten Hintergrundfarben dadurch überschrieben. Wenn also ein Wort in der aktuellen Zeile hervorgehoben wird, z. B. Weiß auf Rot, wird der Text als Weiß auf Hellgrau angezeigt. Ich sehe nur, dass die Zeile (oder ein Teil davon) rot hervorgehoben werden soll, wenn ich den Cursor auf eine andere Zeile bewege.
Ich möchte, dass nur der Teil der aktuellen Zeile, für den keine spezielle Hintergrundfarbe festgelegt ist, durch die Cursorlinie hellgrau hervorgehoben wird, die Hervorhebung der Cursorzeile jedoch durch die Syntaxhervorhebung überschrieben wird.
Ist das möglich?
PS: Der spezielle Fall, in dem ich auf dieses Problem gestoßen bin, ist die zweite Zeile in einer git commit tmp-Datei, in der der Text in der zweiten Zeile weiß-rot ist (aus welchem Grund auch immer).
quelle
Antworten:
Ich hatte einmal eine Änderung in der Mailingliste vim_dev vorgeschlagen , aber Bram war mit folgenden Gründen dagegen:
Alternative
Mit der
matchadd()
Funktion können Sie eine angeben{priority}
, die bestimmt, ob die Hervorhebung vor oder hinter der Cursorlinie erfolgt. Leider unterscheidet sich dies völlig von der Syntaxhervorhebung und hat sogar einen anderen Umfang. Daher hilft es nicht bei Syntaxproblemen, sondern ermöglicht andere Verwendungen, z. B. Hervorhebungen durch mein Mark-Plugin .Problemumgehung
Sie können die Syntax-Hintergrundfarbe beibehalten, wenn Sie das
reverse
Attribut verwenden. Zum Beispiel anstatt zu definierenmach das:
Leider haben Sie jetzt ein anderes Problem: Die Textfarbe (Vordergrundfarbe) wechselt von Schwarz zur Cursorlinienfarbe. Dies funktioniert gut für den von Ihnen erwähnten Weiß-auf-Rot-Fehler (Hervorheben zu (hell) -Cursorzeile-auf-Rot), in meinem
Todo
Beispiel jedoch weniger gut (Cursorzeile-auf-Gelb). Darüber hinaus wird dasreverse
Attribut nicht in allen Terminals unterstützt.Zusammenfassung
Leider gibt es keine einfache Lösung. Trotz der Mängel verwende ich die obige Problemumgehung (ein großes Lob an @romainl, in dessen Konfiguration ich das zum ersten Mal gesehen habe!)
quelle
:hi link
für vorhandene Gruppen (wieTodo
). Bei meiner Problemumgehung würden Sie Ihr persönliches Farbschema entweder direkt oder in Ihrem ändern.vimrc
.