Syntaxhervorhebung für reguläre Ausdrücke in Vim

8

Immer wenn ich reguläre Ausdrücke beliebiger Komplexität anschaue, beginnen meine Augen zu tränen. Gibt es eine existierende Lösung, um den verschiedenen Arten von Symbolen in einem Regex-Ausdruck unterschiedliche Farben zu geben?

Idealerweise hätte ich gerne eine andere Hervorhebung für Literalzeichen, Escape-Sequenzen, Klassencodes, Anker, Modifikatoren, Lookaheads usw. Offensichtlich ändert sich die Syntax in den einzelnen Sprachen leicht, aber das ist eine Falte, die später behandelt wird.

>

Bonuspunkte, wenn dies irgendwie mit der Syntaxhervorhebung koexistieren kann, die Vim für jede Sprache verwendet, die die Regex verwendet.

Gibt es das irgendwo, oder sollte ich da draußen sein und es machen?

    
Ben Gartner 21.06.2010, 22:43
quelle

3 Antworten

6

Reguläre Ausdrücke sind möglicherweise nicht mit Syntax hervorgehoben, aber Sie können prüfen, ob sie auf andere Weise besser lesbar sind.

Einige Sprachen erlauben es Ihnen, reguläre Ausdrücke über mehrere Zeilen hinweg zu trennen (Perl, C #, Javascript). Sobald Sie dies tun, können Sie es formatieren, damit es für gewöhnliche Augen besser lesbar ist. Hier ist ein Beispiel, was ich meine .

Sie können auch die erweiterte (? x) Syntax hier in einigen Sprachen verwenden. Hier ist ein Beispiel:

%Vor%

BEARBEITEN :

Wie Al darauf hingewiesen hat, können Sie auch String-Verkettungen verwenden, wenn alles andere fehlschlägt. Hier ist ein Beispiel:

%Vor%     
Kimball Robinson 21.06.2010, 23:59
quelle
3

Dieses Vim-Plugin beansprucht Syntax-Highlighting:

Ссылка

Ich glaube nicht, dass es genau das ist, was Sie wollen, aber ich denke, es ist anpassungsfähig für Ihren eigenen Gebrauch.

    
Peter Boughton 21.06.2010 22:47
quelle
2

Vim verfügt bereits über eine Syntaxhervorhebung für reguläre Perl-Ausdrücke. Selbst wenn Sie Perl nicht selbst kennen, können Sie Ihre Regex trotzdem in Perl schreiben (öffnen Sie einen neuen Puffer, setzen Sie den Dateityp auf perl und fügen Sie ' /regex/ ' ein) und die Regex funktioniert in vielen anderen Sprachen wie PHP, Javascript oder Python, wo sie die PCRE-Bibliothek verwendet oder die Perl-Syntax kopiert haben.

In einer vimscript-Datei können Sie die folgende Codezeile einfügen, um die Syntaxhervorhebung für regex zu erhalten:

%Vor%

Sie können mit der Regex in Anführungszeichen spielen, bis Sie es fertig haben.

Es ist sehr schwierig, Syntax-Highlighting für Regex in einigen Sprachen zu schreiben, da die Regex in Anführungszeichen geschrieben sind (im Gegensatz zu Perl und Javascript, wo sie Teil der Syntax sind). Um Ihnen eine Idee zu geben, hebt dieses Syntaxskript für PHP Regex in Double- und Single-Tags hervor. Strings in Anführungszeichen, aber der Code, der nur die Regex hervorhebt, ist länger als die meisten Syntaxskripte der meisten Sprachen.

    
too much php 22.06.2010 01:16
quelle