Ich suche nach einer möglichen Lösung für das Anwenden von zwei verschiedenen Hintergrundfarben in einem einzelnen Vim-Puffer, abhängig vom Kontext, wie in diesem hervorragenden Textbeispiel .
Ein Anwendungsfall besteht darin, Codeausschnitte in Markup-Dateien anders zu färben, damit sie besser zur Geltung kommen.
Ich habe jedoch noch nie ein Beispiel mit einem solchen Setup gesehen.
Ist das überhaupt in vim möglich?
colorscheme
Karolis Koncevičius
quelle
quelle
Antworten:
Weil ich neugierig war, wie gut das funktionieren würde, habe ich so etwas zusammen gehackt.
Wie in den Kommentaren zur früheren Antwort erwähnt, besteht die einzige Möglichkeit darin, Regionen mit Leerzeichen zu füllen. was ist genau das, was wir tun; Bevor Sie schreiben, entfernen wir diese Leerzeichen, sodass Sie niemanden damit belästigen sollten.
Beachten Sie, dass dieses Beispiel sehr spezifisch für den Abschriften-Dateityp ist!
Nebenwirkungen :
'list'
aktiviert istZuerst müssen Sie dies zu Ihrem hinzufügen
~/.vim/after/syntax/markdown.vim
:Sie können die Farben natürlich nach Ihren Wünschen anpassen ;-)
Dann fügen Sie dies zu Ihrem vimrc hinzu:
Ich werde den Code nicht Zeile für Zeile erklären, die Kommentare sollten den allgemeinen Kern klarstellen ;-)
quelle
Es ist durchaus möglich, für syntaktisch hervorgehobene Elemente eine andere Hintergrundfarbe zu verwenden. Definieren Sie einfach die
guibg
undctermbg
Farben in Ihremhilight
Befehl. Ersteres legt die Hintergrundfarbe für GUI Vim und letzteres für Terminal Vim fest.Dies hat jedoch die wichtige Einschränkung, dass nur die Hintergrundfarben für Zeichen festgelegt werden können, die tatsächlich in der Datei vorhanden sind.
Dies hat zur Folge, dass sich die Hintergrundfarbe nicht über das Ende des Texts in einer Zeile bis zum Fensterrand erstrecken kann. Daher ist die Färbung der in Ihrem Beispiel gezeigten Codeblöcke nicht möglich:
Sie können auch die Hintergrundfarbe ganzer Linien mit der Funktion „Signieren“ ändern. (Siehe
linehl
in:help sign.txt
)Beachten Sie jedoch Folgendes:
Dazu muss Code geschrieben werden, um Zeichen in jede Zeile zu setzen, die gefärbt werden müssen, und diese müssen aktualisiert werden, wenn sich der Inhalt der Datei ändert.
Standardmäßig wird beim Platzieren eines Zeichens die Zeichenspalte links im Fenster angezeigt. Es ist möglich, die Farbe der Zeichenspalte mit der Markierungsgruppe zu ändern
SignColumn
, und in neueren Versionen von Vim kann sie vollständig entfernt werden. (Siehe:help 'signcolumn'
.)Um beispielsweise die Carpetsmoker-Lösung so anzupassen , dass sie den ( stabileren ) Zeichenmechanismus verwendet, können Sie Folgendes tun:
Dies vereinfacht den Code etwas und hat weniger Einschränkungen als die Carpetsmoker-Version.
@ChristianBrabandt ‚s DynamicSigns Plugin die Sign - Funktion für diesen Zweck macht die Verwendung einfacher: Er beschreibt , wie es so in tun , verwendet diese Antwort .
quelle
guibg
liege ), funktioniert aber nur für gvim, ist das richtig?ctermbg
wie angegeben verwenden.