Es ist bekannt, dass der Vim-Editor mit seinen verschiedenen Tastenkombinationen und Befehlen die Produktivität seiner Benutzer verbessert. Diese Tastaturkürzel sind jedoch mit einer gewissen Lernkurve verbunden. Eines der häufigsten Probleme für Anfänger ist die Verwendung von Vim zum Suchen nach Text, da die übliche STRG + F-Methode unter Linux nicht funktioniert. Keine Angst, Freund, denn in diesem Artikel werden wir verschiedene Methoden zur Textsuche in Vim untersuchen.
Vorwärts- oder Rückwärtstextsuche in Vim
Dies ist die gebräuchlichste und grundlegendste Methode zur Textsuche in Vim und jeder Benutzer muss wissen, wie sie funktioniert. Damit können Sie schnell nach Wörtern, Phrasen oder sogar Mustern in der jeweiligen Datei suchen. Befolgen Sie diese Schritte, um in Vim nach Text zu suchen:
1. Positionieren Sie den Cursor
Bewegen Sie den Cursor mit den Tasten h, j, k und l wenn Sie sich im Normalmodus befinden oder mit den Pfeiltasten auf der Tastatur, um den Cursor an der Stelle zu platzieren, an der Sie mit der Suche im Text beginnen möchten.
2. Verwenden Sie den Suchbefehl
In Vim können Sie nach Text entweder in Vorwärtsrichtung mit dem Symbol „/“ oder in Rückwärtsrichtung mit dem Symbol „?“ suchen. Symbol. Verwenden Sie das entsprechende Symbol für Ihre Suchanforderungen.
3. Schreibe das Wort suchen
Geben Sie als Nächstes das Suchwort oder den Suchbegriff ein, nach dem Sie suchen möchten, und drücken Sie die Eingabetaste. Um beispielsweise in Vorwärtsrichtung nach dem Wort „Linux“ zu suchen, verwenden Sie diesen Befehl:
/Linux
Der Cursor bewegt sich an den Anfang des gesuchten Textes. Diese Methode sucht nach Text unter Berücksichtigung der Groß-/Kleinschreibung. Um die Suche unter Berücksichtigung der Groß-/Kleinschreibung und die Suche unabhängig von der Groß-/Kleinschreibung zu ignorieren, verwenden Sie \c mit dem Befehl. Fügen Sie einfach „\c“ vor dem zu durchsuchenden Text hinzu. Zum Beispiel:
/\clinux
4. Navigieren Sie durch die Suchergebnisse
Drücken Sie nun „n“, um vorwärts zum nächsten Suchergebnis zu gelangen, oder drücken Sie „N“, um rückwärts zu gehen. Wenn Sie mit der Textsuche fertig sind, verlassen Sie den Vim-Editor und fahren mit dem nächsten Dokument fort.
Durchsuchen Sie Text mit regulären Ausdrücken in Vim
Die vorherige Methode funktioniert einwandfrei für einfache Wörter oder Phrasen. Aber was ist, wenn es sein muss? Suche nach einem gemeinsamen MusterAngenommen, Sie möchten alle E-Mails im gesamten Text filtern? Machen Sie sich keine Sorgen, denn Sie können reguläre Ausdrücke verwenden, um in Vim nach bestimmten Mustern zu suchen.
Reguläre Ausdrücke sind eine Sammlung von Zeichen, die sowohl aus Sonderzeichen als auch aus alphanumerischen Zeichen bestehen und ein bestimmtes Zeichenfolgenmuster darstellen. Sie können beispielsweise die folgenden regulären Ausdruckssymbole verwenden:
Symbol für reguläre Ausdrücke | Aktion |
---|---|
‚.‘ | um jedem einzelnen Zeichen zu entsprechen |
‚*‘ | um eine beliebige Anzahl von Vorkommen mit dem vorhergehenden Zeichen abzugleichen |
‚+‘ | um mit einem oder mehreren Vorkommen des vorhergehenden Zeichens übereinzustimmen |
‚[]‘ | um mit einem definierten Zeichensatz übereinzustimmen |
‚\w‘ | stimmt mit jedem Wort überein, dessen vorhergehende Zeichen übereinstimmen |
So können Sie im Vim-Editor unter Linux mithilfe regulärer Ausdrücke nach Text suchen.
1. Positionieren Sie den Cursor
Bewegen Sie den Cursor mit den Pfeiltasten, um den Startpunkt für die Suche festzulegen.
2. Verwenden Sie den Suchbefehl
Drücken Sie das Symbol „/“, um in Vorwärtsrichtung zu suchen, oder verwenden Sie das Symbol „?“. in umgekehrter Richtung suchen.
3. Geben Sie das Suchmuster ein
Geben Sie das Suchmuster für reguläre Ausdrücke ein, nach dem Sie suchen möchten. Um beispielsweise nach allen E-Mail-IDs im angegebenen Text zu suchen, verwenden Sie Folgendes:
\<[A-Za-z0-9._%+-]\+@[A-Za-z0-9.-]\+\.[A-Za-z]\{2,\}\>
Scheint kompliziert? Lassen Sie es uns aufschlüsseln –
- \ markieren den Anfang und das Ende der E-Mail-ID und stellen sicher, dass sie als ganzes Wort gefunden wird.
- [A-Za-z0-9._-]\+ wird verwendet, um jedes Vorkommen von alphanumerischen Zeichen, Pluszeichen, Punkten, Unterstrichen und Bindestrichen abzugleichen
- @ entspricht genau dem „@“-Symbol
- [A-Za-z0-9.-]\+ stimmt mit jedem Vorkommen von alphanumerischen Zeichen, Punkten und Bindestrichen überein
- \. entspricht dem Punkt in der E-Mail-ID
- [A-Za-z]\{2,\} stimmt mit dem letzten Teil des Domainnamens überein, z. B. .com, .in usw.
4. Navigieren Sie durch die Suchergebnisse
Um vorwärts zum nächsten Suchergebnis zu gelangen, drücken Sie „n“, oder drücken Sie „N“, um rückwärts zu gehen.
Suchen und ersetzen Sie Text im Vim-Editor
Stellen Sie sich vor, Sie müssten Hunderte von Vorkommen eines bestimmten Wortes ersetzen. Für eine solche Situation verfügt Vim über eine integrierte Such- und Ersetzungsfunktion, mit der Sie je nach Bedarf sowohl einfachen Text als auch reguläre Ausdrücke für Massenänderungen und eine effektive Textverwaltung verwenden können.
So können Sie Text in Vim suchen und ersetzen:
1. Rufen Sie den Befehlsmodus auf
Drücken Sie die Taste „:“ auf der Tastatur, um in den Befehlsmodus zu gelangen, in dem Sie integrierte Vim-Befehle ausführen können.
2. Geben Sie das Such- und Ersetzungsmuster ein
Geben Sie nun das Suchmuster und das Ersetzungsmuster gemäß dieser Syntax ein, um den Vorgang zu starten:
%s/search_pattern/replacement_text/<flags>
In der obigen Syntax gibt das Symbol „%“ an, dass Vim den Vorgang auf die gesamte Datei anwenden soll, und das „s“ gibt an, dass der Ersatzbefehl verwendet werden soll
Hier sind einige Flags, die Sie mit diesem Befehl verwenden können:
- g – steht für „globales“ Flag und wird verwendet, um alle Vorkommen des Suchmusters durch Ersetzung im gesamten Text zu ersetzen.
- c – steht für „Confirm“-Flag und wird als Eingabeaufforderung vor jedem Austausch verwendet.
- i – steht für das Flag „Groß-/Kleinschreibung ignorieren“ und wird verwendet, um in der angegebenen Datei unempfindlich nach Groß- und Kleinschreibung zu suchen.
Wenn Sie beispielsweise das Wort „Linux“ im gesamten Text durch „Unix“ ersetzen möchten, indem Sie vor jeder Ersetzung eine Eingabeaufforderung eingeben, verwenden Sie diesen Befehl:
%s/linux/unix/gc
Unten sehen Sie die folgende Eingabeaufforderung:
replace with Unix (y/n/a/q/l/^E/^Y)?
Drücken Sie entweder „y“, um nur das erste Vorkommen zu ersetzen, „n“, um die aktuelle Ersetzung zu überspringen, „a“, um alle Vorkommen zu ersetzen, „q“, um diesen Vorgang abzubrechen, „l“, um zu ersetzen und zu beenden. Sie können sogar STRG + E drücken, um nach oben zu scrollen, oder STRG + Y, um nach unten zu scrollen.
Sobald Sie fertig sind, erhalten Sie eine Bestätigungsnachricht mit der Anzahl der vorgenommenen Ersetzungen.
Häufig gestellte Fragen
Um in Vim nach mehreren Wörtern zu suchen, verwenden Sie zunächst den Suchbefehl „/“, fügen Sie dann das Flag „\v“ hinzu und schreiben Sie dann die mehreren Wörter getrennt durch die Pipe „|“. Zeichen wie diese Syntax: \v<first_wor>|<second_word>|<third_word>