Ich hätte gerne eine schöne und süße Darstellung des nachlaufenden Leerraums in meinem Terminal-Vim. Dies würde es mir ermöglichen, sie vor dem Schließen der Datei zu entfernen.
Mir ist bewusst, dass diese Frage sehr beliebt ist und ich habe bereits Dutzende von Antworten auf SO gefunden. Leider habe ich noch keine zufriedenstellende gefunden ...
Also werde ich versuchen, die gesammelten Informationen und die Lösungen, die ich gefunden habe, zusammenzufassen.
Lösung 1: Markieren Sie nachgestellte Leerzeichen manuell
highlight ExtraWhitespace ctermbg=red guibg=red
match ExtraWhitespace /\s\+$/
autocmd BufWinEnter * match ExtraWhitespace /\s\+$/
autocmd InsertEnter * match ExtraWhitespace /\s\+\%#\@<!$/
autocmd InsertLeave * match ExtraWhitespace /\s\+$/
autocmd BufWinLeave * call clearmatches()
Vorteile:
- Einfach zu verwenden
- Schnell
- Kompatibel mit
cursorline
Nachteile:
- Die gewählte Farbe ist nicht mit anderen Farbschemata kompatibel, da die Farbe manuell auf eingestellt wird
red
- Große rote Hintergrundblöcke sind nicht sehr ästhetisch
Lösung 2: Verwenden der Listenfunktion
set list
set listchars+=trail:◦
Vorteile:
- Einfach zu verwenden
- Schnell
Nachteile:
- Problem, wenn
:set cursorline
aktiviert - Die dedizierte Farbe für
list/trail
ist nicht konfigurierbar. Muss mit den anderen Listchars identisch sein
Lösung 3: Verwenden der Verdeckungsfunktion
syn match WhiteSpace "\s\+$" containedin=ALL conceal cchar=◦
set conceallevel=2
set concealcursor=nv
highlight Conceal ctermfg=red
Vorteile:
- Schöner als die erste Lösung
Nachteile:
- Der Hintergrund ist nicht mit dem Hintergrund der Cursorzeile identisch
- Kann andere Verdeckungsregeln stören
- Die gewählte Farbe ist nicht immer mit dem Farbschema kompatibel
- Nicht kompatibel mit älteren Versionen von Vim
Meine Frage
Welche der aufgezählten Lösungen ist hinsichtlich Leistung und Kompatibilität am besten geeignet und wie kann ich alle Vor- und Nachteile erzielen?
Mit anderen Worten, ich möchte eine Lösung finden, bei der:
- Die hervorgehobene Farbe des Glanzlichts stimmt mit dem gewählten Farbschema überein
- Diese Farbe ist deutlich sichtbar, aber für die Augen nicht zu aggressiv
- Kompatibel mit
cursorline
(Hintergrund und Vordergrund) `- Kompatibel mit anderen Plugins, die möglicherweise Conceal verwenden
- Das nachfolgende Zeichen kann auf ein beliebiges Unicode-Zeichen gesetzt werden
:hi link ExtraWhitespace CursorLine
. Siehe:help hi-link
.