Unterschiedliche Hintergrundfarbe für mehrere Dateitypen in vim


10

Ist es möglich, unterschiedliche Hintergrundfarben in vim zu haben (dh eine helle, eine dunkle), wenn Dateien mit mehreren Dateitypen (dh :set ft=html.php) bearbeitet werden ? In PHP-Code mit eingebettetem HTML kann es schwierig sein, eine einzelne PHP-Anweisung unter Dutzenden von HTML-Zeilen zu sehen (siehe unten). Ich werde mich mit allem zufrieden geben, sei es mit einer anderen Hintergrundfarbe, einem Marker am Rand, einem zweiten linken Rand (ein Vim-Plugin erledigt dies für Markierungen) und vielleicht <?phpzum Beispiel das Tag hervorheben (obwohl das nicht ideal ist).

PHP im HTML-Code

EDIT: Ich denke nicht, dass dies auf Syntaxebene möglich ist, da die Syntax eine begrenzte Anzahl von Elementen (String, Function, Identifier ...) zu verwenden scheint. Dies ermöglicht zweifellos die einfache Integration in Farbschemata. SyntaxAttr ist ein gutes Plugin, um dies zu demonstrieren. Wenn Sie es über einen beliebigen Teil des Codes legen, erfahren Sie, zu welcher Syntaxgruppe es gehört.


Möglicherweise können Sie dieselbe Lösung wie in diesem Beitrag verwenden. Stackoverflow.com/questions/4167425/… erstellt ein benutzerdefiniertes Farbschema, das alle Zeichenfolgen hervorhebt, die mit sql_ beginnen.

1
Ich werde sehen, ob ich es schaffen kann, Regionen zwischen ?>und <?als Nicht-PHP zu erkennen.
Puk

Antworten:


1

Eine andere mögliche Lösung besteht darin, Ihre bevorzugte Farbschemadatei anzupassen, um die Einstellung "Hintergrund" zu überprüfen. Viele stellen die Einstellung "Hintergrund" auf die eine oder andere Weise ein, aber es kann überprüft werden, um die Hervorhebungsfarben zu ändern.

Beispiel Farbschema


" Search
if &background=="dark"
  hi IncSearch    gui=UNDERLINE guifg= ctermfg=
else " background is light
  hi IncSearch    gui=UNDERLINE guifg= ctermfg=
fi


Gibt es eine Möglichkeit, die Sprache eines Wortes / Zeichens zu überprüfen? dh wenn es HTML v PHP ist?
puk

Art hängt davon ab. Sie können den Hightlighting-Typ für ein bestimmtes Wort überprüfen. Und wenn es zwischen HTML und PHP unterscheidbar ist, würden Sie wissen. Aber ich denke, das ist das Beste, was Sie ohne viel zusätzliche Arbeit bekommen. Verwenden Sie Folgendes, um den Hervorhebungstyp zu erhalten :: echo synIDattr (synID (Zeile ("."), Col ("."), 1), "name")
pottsdl
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.