Initialisieren der Suche in vi vor dem Start

Initialisieren der Suche in vi vor dem Start

Ich verwende ein kleines Programm, das ich geschrieben habe, das ein reguläres Ausdrucksmuster als Parameter verwendet und über 2000 Dateien durchsucht. Die Dateien befinden sich in einer Verzeichnishierarchie.

Das Muster kann in mehreren Dateien und in jeder Datei mehrfach vorkommen. Nachdem die Dateinamen und die Zeilen gefunden wurden, in denen das Muster vorkommt, ruft das Programm die erste Zeilennummer und alle gefundenen Dateinamen viauf .+line

Jetzt funktioniert alles, aber einmal habe ich versucht, +linefür jede Datei ( vi +2 x1 +5 x2) anzugeben, aber dadurch landet der Cursor auf Zeile 5 in x1und auf Zeile 1 in x2, was nicht das war, was ich wollte, also habe ich die Idee verworfen.

Die Muster sind oft komplex und ich möchte sie nicht zweimal eingeben, daher verwende ich jetzt manchmal Kopieren und Einfügen, um nach der nächsten Zeile zu suchen vi. Toll wäre es, den viSuchverlauf mit dem Muster einzurichten, dann könnte ich /+ + verwenden Return, ohne erneut einzugeben oder zu kopieren/einzufügen, um alle Muster zu finden. Ich kann dann verwenden, :n!um zur nächsten Datei zu gehen und mit dem Muster weiterzumachen.

.viminfoEs sieht so aus, als wäre das Muster in meinem Verzeichnis gespeichert . Kann ich diese Datei einfach vor dem Start aktualisieren vioder gibt es dafür eine Bibliothek oder ein Befehlszeilenprogramm?

Antwort1

Es ist nicht erforderlich, die ~/.viminfoDatei zu patchen.

Wie bei Verwendung vimkönnen Sie die +/patternBefehlszeilenoption verwenden, um den Cursor auf die Zeile des Musters zu setzen. Danach können Sie verwenden, num zu den folgenden Vorkommen zu gelangen (wenn nicht am Anfang der Zeile, ist es das erste, andernfalls das zweite Vorkommen).

Auf der Manpage steht, dass der Cursor beim ersten Vorkommen des Musters steht, aber meiner Erfahrung nach steht er beim ersten Zeichen der Zeile mit diesem Muster. Von der vim manSeite:

+/{pat}     For  the  first  file the cursor will be positioned on the
            first occurrence of {pat}.  See ":help search-pattern" for
            the available search patterns.

verwandte Informationen