Angenommen, die Suche von vim findet 5 Übereinstimmungen in meiner Datei. Ich sehe alle 5 dieser Übereinstimmungen gelb hervorgehoben. Ich wechsle zwischen ihnen, indem ich drücke n
. Aber wenn mein Cursor von einer Übereinstimmung zur nächsten geht, behalten die Markierungen alle die gleiche Farbe. Dadurch ist es schwierig zu erkennen, auf welcher Übereinstimmung sich mein Cursor befindet. Gibt es eine Möglichkeit, vim anzuweisen, alle Übereinstimmungen mit einer Farbe hervorzuheben und, wenn ich eine Übereinstimmung mit aufrufe n
, die aktuell aufgerufene Übereinstimmung anders einzufärben?
Antwort1
Es gibt keine integrierte Option, mit der man das Aktuelle auf andere Weise hervorheben kann. Beim Erstellen der Suche haben Sie diese 'incsearch'
Option, aber das war es auch schon.
Sie können zusätzlich zur Suchhervorhebung noch eine weitere Hervorhebung verwenden, z. B. mit :match
; das spezielle \%#
reguläre Ausdrucksatom beschränkt die Übereinstimmung auf die aktuelle Cursorposition:
:execute 'match IncSearch /\%#' . @/ . '/'
Das Problem dabei ist, dass die Hervorhebung jedes Mal angepasst werden muss, wenn sich das aktuelle Suchmuster ( @/
) ändert (oh, und Suchoffsets wie werden nicht verarbeitet /foo/e-1
). Sie müssten also alle suchbezogenen Befehle ( /
, *
, usw.) überschreiben, um den Befehl darin einzubinden :match
. Das würde ich nicht empfehlen.