Wie man in Vim Suchvorgänge durchführt

Obwohl wir bisher bereits einige Funktionen von Vim behandelt haben, ist der Funktionsumfang des Editors so umfangreich, dass, egal wie viel man lernt, es nicht genug zu sein scheint. Im Anschluss an unsere Vim-Tutorialreihe werden wir in diesem Beitrag die verschiedenen Suchtechniken, die der Editor anbietet, diskutieren.

But before we do that, please note that all the examples, commands, and instructions mentioned in this tutorial have been tested on Ubuntu 14.04, and the Vim version we've used is 7.4.

Grundlegende Suchvorgänge in Vim

Wenn Sie eine Datei im Vim-Editor geöffnet haben und nach einem bestimmten Wort oder Muster suchen möchten, müssen Sie zunächst aus dem Einfügemodus herauskommen (wenn Sie dieser Modus gerade aktiv ist). Geben Sie anschließend ‚/‚ (ohne Anführungszeichen) gefolgt von dem Wort bzw. Muster ein, das Sie suchen möchten.

Wenn das Wort, nach dem Sie suchen möchten, beispielsweise’linux‘ ist, wird es unten in Ihrem Vim-Fenster angezeigt:

Suche nach Wörtern in vim

Danach drücken Sie einfach die Eingabetaste und Sie werden sehen, dass Vim den Cursor auf die erste Zeile (die das Wort enthält) setzt, auf die er trifft, beginnend mit der Zeile, in der sich der Cursor im Einfügemodus befand. Wenn Sie gerade eine Datei geöffnet und mit der Suche begonnen haben, beginnt der Suchvorgang in der ersten Zeile der Datei.

Um zur nächsten Zeile mit dem gesuchten Wort zu gelangen, drücken Sie die Taste‘n‚. Wenn Sie alle Zeilen durchlaufen haben, die das gesuchte Muster enthalten, drücken Sie erneut die Taste’n‘, damit der Editor die Suche wiederholt und Sie gelangen wieder zum ersten gesuchten Ereignis zurück.

Zum nächsten Suchtreffer wechseln

Wenn Sie beim Durchlaufen der gesuchten Vorkommen zum vorherigen Vorkommen zurückkehren möchten, drücken Sie ‚N‚ (shift+n). Es ist auch erwähnenswert, dass Sie zu jedem Zeitpunkt ‚ggn‚ eingeben können, um zum ersten Spiel zu springen, oder ‚GN‚, um zum letzten zu springen.

Wenn Sie sich am Ende einer Datei befinden und rückwärts suchen möchten, dann sollten Sie die Suche nicht mit der Taste /, Verwendung?. Hier ist ein Beispiel:

rückwärts suchen

 

Passen Sie Ihre Suche an

1. Hervorhebung der Suche

Während der Sprung von einem Vorkommen des gesuchten Wortes/Musters zum anderen mit ’n‘ oder ‚N‘ einfach ist, wird es benutzerfreundlicher, wenn die gesuchten Vorkommen hervorgehoben werden. Sehen Sie sich beispielsweise den folgenden Screenshot an:

Hervorhebung der Suche in VIM

Dies kann durch das Setzen der Variablen’hlsearch‘ ermöglicht werden, was Sie tun können, indem Sie folgendes im Normal-/Befehlsmodus schreiben:

:set hlsearch

hlsearch einstellen

 

2. Die Groß-/Kleinschreibung bei der Suche wird nicht berücksichtigt.

Standardmäßig wird bei der Suche in Vim zwischen Groß- und Kleinschreibung unterschieden. Das bedeutet, dass, wenn ich nach ‚linux‘ suche, dann wird ‚Linux‘ nicht abgeglichen. Wenn Sie jedoch nicht danach suchen, können Sie die Groß-/Kleinschreibung der Suche mit dem folgenden Befehl unempfindlich machen:

:set ignorecase

Nachdem ich also die Variable’ignorecase‘ mit dem oben genannten Befehl gesetzt und nach’linux‘ gesucht habe, wurden auch die Vorkommen von’LINUX‘ hervorgehoben:

Suche unabhängig von Groß-/Kleinschreibung

3. Smartcase-Suche

Vim bietet Ihnen auch eine Funktion, mit der Sie den Editor bitten können, die Groß-/Kleinschreibung nur dann zu berücksichtigen, wenn das gesuchte Wort bzw. Muster ein Großbuchstabenzeichen enthält. Dazu müssen Sie zuerst die Variable’ignorecase‘ und dann die Variable’smartcase‘ setzen.

:set ignorecase
:set smartcase

Wenn eine Datei beispielsweise sowohl’LINUX‘ als auch’linux‘ enthält und Smartcase eingeschaltet ist, werden nur Vorkommen des Wortes LINUX gesucht, wenn Sie mit’/LINUX‘ suchen. Wenn die Suche jedoch ‚/linux‘ ist, dann werden alle Vorkommen übereinstimmen, unabhängig davon, ob sie in Großbuchstaben geschrieben sind oder nicht.

4. Inkrementelle Suche

Genau wie z.B. Google, das die Suchergebnisse anzeigt, während Sie Ihre Suchanfrage eingeben (Aktualisierung mit jedem von Ihnen eingegebenen Alphabet), bietet Vim auch eine inkrementelle Suche. Um auf die Funktion zuzugreifen, müssen Sie den folgenden Befehl ausführen, bevor Sie mit der Suche beginnen:

:set incsearch

Einige andere coole Vim-Suchtipps und -tricks

Es gibt noch einige andere Tipps zur Suche, die Sie nützlich finden können.

Wenn Sie zunächst nach einem Wort suchen möchten, das sich in der Datei befindet, aber nicht eingeben möchten, können Sie einfach den Mauszeiger darunter bewegen und * (oder shift+8) drücken. Und wenn Sie eine Teilsuche starten möchten (z.B. sowohl in‘ als auch in‚ Terminal‘ suchen), dann können Sie den Cursor unter das Wort (in unserem Beispiel in) bringen und suchen, indem Sie g* drücken (einmal g‘ drücken und dann weiter * drücken) auf der Tastatur.

Hinweis: Drücken Sie # oder g#, wenn Sie rückwärts suchen möchten.

Als nächstes können Sie, wenn Sie möchten, eine Liste aller Vorkommen des gesuchten Wortes/Musters mit den entsprechenden Zeilen und Zeilennummern an einer Stelle erhalten. Dies kann durch den Typ[I] erfolgen, nachdem Sie die Suche gestartet haben. Nachfolgend ein Beispiel dafür, wie die Ergebnisse gruppiert und am unteren Rand des Vim-Fensters angezeigt werden:

gruppierte Suchergebnisse

Wie Sie vielleicht schon wissen, wird die Vim-Suche standardmäßig umgebrochen, d.h. nach Erreichen des Dateiendes (oder bis zum letzten Auftreten des gesuchten Wortes), wenn Sie auf „Weiter suchen“ drücken, wird der Cursor wieder zum ersten Auftreten gebracht. Wenn Sie möchten, können Sie diese Suchumschließung deaktivieren, indem Sie den folgenden Befehl ausführen:

:set nowrapscan

Um den Wrap-Scan wieder zu aktivieren, verwenden Sie den folgenden Befehl:

:set wrapscan

Angenommen, Sie möchten eine kleine Änderung an einem bereits vorhandenen Wort in der Datei vornehmen und dann den Suchvorgang durchführen, dann ist eine Möglichkeit, dieses Wort einzugeben / gefolgt von diesem Wort. Aber wenn das Wort lang oder kompliziert ist, dann kann es einige Zeit dauern, es einzugeben.

Ein einfacher Ausweg ist es, den Cursor unter das Wort zu bringen, das Sie leicht bearbeiten möchten, dann drücken Sie ‚/‘ und dann Strg-r gefolgt von Strg-w. Das Wort unter dem Cursor wird nicht nur kopiert, es wird auch nach ‚/‘ eingefügt, so dass Sie es leicht bearbeiten und mit dem Suchvorgang fortfahren können.

Weitere Tricks (einschließlich der Frage, wie Sie Ihre Maus verwenden können, um die Dinge in Vim zu erleichtern) finden Sie in der offiziellen Vim-Dokumentation.

Fazit

Natürlich erwartet niemand, dass Sie alle hier genannten Tipps/Tricks ausrauben. Was du tun kannst, ist, mit dem zu beginnen, von dem du denkst, dass es für dich am vorteilhaftesten ist, und es regelmäßig zu praktizieren. Sobald es in dein Gedächtnis eingebettet ist und zur Gewohnheit wird, komm wieder hierher und sieh, welches du als nächstes lernen solltest.

Kennst du noch mehr solche Tricks? Möchten Sie es mit allen in der HTF-Community teilen? Dann hinterlasse es als Kommentar unten.

Das könnte dich auch interessieren …