Wie kann ich mit der vim-Syntax eine ganze Zeile hervorheben?

8

Ich hätte gerne vim, um ganze Linien zu markieren, die bestimmten Mustern entsprechen. Ich kann den gesamten Text in einer Zeile markieren, indem ich syn match MyMatch "^.*text-to-match.*$" mache, aber es bleibt immer am Ende des Textes stehen. Ich würde gerne bis zum Ende des Semesters fortfahren, wie CursorLine hervorheben.

Ich habe versucht, $ durch ein \n^ zu ersetzen, in der Hoffnung, dass es das Ganze umschließt. Keine Änderung. (Ich habe nicht erwartet, dass das funktionieren würde, aber es kann nicht schaden, es zu versuchen.) Ich habe auch versucht, den syn-pattern-offset (den ich hier gelesen habe) zu überprüfen: Ссылка ). Lange Rede, kurzer Sinn: Wenn Sie he=he-5 hinzufügen, werden 5 Zeichen weniger hervorgehoben, aber he=he+5 zeigt keine zusätzlichen Zeichen an, da keine Zeichen hervorgehoben werden müssen.

Dies ist mein erster Versuch, eine vim-Syntax zu erstellen, und ich bin relativ neu in vim. Bitte seien Sie sanft und fügen Sie Erklärungen hinzu.

Danke!

(Bearbeiten: Vergessen, es einzuschließen, dies ist eine mehrzeilige Hervorhebung. Das erhöht wahrscheinlich die Komplexität etwas.)

    
valadil 27.01.2010, 21:02
quelle

2 Antworten

8

Aus der Dokumentation zu syn-pattern :

  

Der markierte Bereich wird niemals sein   außerhalb des übereinstimmenden Textes.

Ich würde mich selbst überraschen, wenn du das zum Laufen bringst, aber andererseits ist Vim immer voller Überraschungen.

    
Jay 27.01.2010, 21:36
quelle
10

Es ist nicht sehr anpassungsfähig, da der Dateiname (Puffer) und die Zeile bis zur vollen Zeilenmarkierung explizit identifiziert werden müssen, aber anscheinend sign kann verwendet werden:

  

Es ist möglich, ein ganzes zu markieren   Zeile mithilfe des : sign -Mechanismus.
  Ein Beispiel finden Sie unter :help sign-commands
  Kurz gesagt:

%Vor%
  

Offensichtlich sollten Sie ein highlight wählen   Gruppe, die die Farbe der ändert   Hintergrund für das Argument linehl.

Quelle: Erik Falor, vim-Mailingliste

    
matt wilkie 12.12.2010 10:40
quelle