Wann immer Sie in vim nach Text suchen möchten, geben Sie /und dann die Zeichenfolge ein, nach der Sie suchen.
Wenn die Zeichenfolge jedoch lang ist und Sie dies mehrmals tun möchten, gibt es eine Möglichkeit, dies zu tun, sodass Sie nicht /andthisreallylongstring
mehr als einmal eingeben müssen?
Antworten:
Drücken Sie "n", nachdem Sie eine Suche abgeschlossen haben, dann wird die vorherige Aktion (Suche) wiederholt.
quelle
N
wird zum vorherigen Ergebnis gewechselt./
q/
wird ein bearbeitbares Fenster mit allen aktuellen Suchbegriffen angezeigt./
Sie die Eingabetaste drücken, wird die vorherige Suche wiederholt. Wenn?
Sie drücken und die Eingabetaste drücken, wird die vorherige Suche rückwärts wiederholt./Ctrl-F
ist eine Alternativeq/
, die eine einfachere Gedächtnisstütze sein kann (Strg-F == Finden). Wie q funktioniert es auch im Befehlsmodus.Befindet sich die von Ihnen gesuchte Zeichenfolge unter dem Cursor, können *Sie vorwärts oder #rückwärts danach suchen.
quelle
Wie ich normalerweise suche, ist so etwas wie;
Vim speichert einen Verlauf Ihrer Suchanfragen. Wenn Sie frühere Suchanfragen benötigen, können Sie '/' drücken und die Tasten AUF und AB oder <Strg-P> <Strg-N> verwenden, um den Suchverlauf zu durchsuchen.
Sie können auch '?' statt '/' rückwärts suchen.
Ich benutze auch gerne:
Bei der Suche wird nur zwischen Groß- und Kleinschreibung unterschieden, wenn die Suchzeichenfolge Großbuchstaben enthält.
quelle
Zwei zusätzliche Tipps, die Ihre Suche effizienter machen können, sind
set hlsearch
undset incsearch
.set hlsearch
hebt Ihre Suchergebnisse hervor. Tippe:noh
, um sie auszuschalten, wenn du sie nicht mehr brauchst.set incsearch
Aktiviert die inkrementelle Suche.Extrahiert aus
:help incsearch
Ohne
incsearch
werden Ihre Ergebnisse erst angezeigt, wenn Sie<CR>
auf Ihren Suchbegriff klicken.Beispiel:
Sie möchten suchen nach
wildignore
Sie tippen
/wild
und die erste Übereinstimmung wird automatisch hervorgehoben.Dann tippe
i
und es geht weiter zum nächsten korrekten Spiel.quelle
Ein weiterer Tipp, der noch nicht behandelt wurde: Wenn Sie die Zeichen
q
und dann drücken/
, wird eine Liste Ihrer vorherigen Suchbegriffe angezeigt. Sie können sie wie jede andere Zeile in einem Dokument bearbeiten und anschließend die Eingabetaste drücken, um sie für eine neue Suche erneut zu verwenden.quelle
Nachdem Sie gedrückt haben /, um die Suche zu starten, können Sie mit dem Aufwärtspfeil durch den Suchverlauf blättern.
Sie können einen regulären Ausdruck eingeben, um zu vermeiden, dass Sie den gesamten Suchbegriff eingeben müssen:
and.*longstring
quelle
Funktioniert es bei Ihnen nicht, einfach nur / ohne Argumente zu treffen? Auf allen unseren Systemen wird die zuletzt durchgeführte Suche wiederholt.
quelle
Es gibt ein schönes Muster, dem Sie folgen können, um nach Text mit Ruck zu suchen . Dann müssen Sie nicht einmal das Wort selbst eingeben, wenn Sie mit anderen Mitteln als einer Suche dorthin navigiert haben. Zusammenfassend gesagt, wenn Sie das erste Zeichen des Wortes haben, nach dem Sie suchen möchten:
(dann weiter mit n oder N)
Allerdings
*
(oder#
) erfüllt so ziemlich die gleichen wie all diese Befehle. Der einzige Unterschied besteht darin, dass Sie flexibel sein können, indem Sie festlegen, wie viel von dem Wort Sie angeben (statt e können Sie bis zum Ende des Wortes so viel auswählen, wie Sie möchten, z. B. 9 l).quelle
/string
- Vorwärts nach Zeichenfolge suchen?string
- Suchen Sie zurück nach Zeichenfolgen
- Suchen Sie nach der nächsten Instanz der ZeichenfolgeN
- Suchen Sie nach der vorherigen Instanz der Zeichenfolgequelle
Viel Zeit beim Programmieren werde ich suchen wollen
aVeryLongVariableNameInTheProgram
.In vim können Sie sehr einfach Text in einen Puffer / ein Register ziehen und danach suchen:
"Byw
um TextaVeryLongVariableNameInTheProgram
in den Buffer zu ziehen (wähle deinen Favoriten, ich habe B benutzt)/^RB
(Schrägstrich, Strg-R, B), um Puffer B in die Suchzeile einzufügenNatürlich können Sie auch bis zum Zeilenende usw. ziehen, anstatt ein einzelnes Wort zu ziehen - ich verwende einfach die oben genannte Sequenz die ganze Zeit.
quelle
Zusätzlich können Sie den Inhalt eines Registers in die Suchabfrage einfügen, indem Sie Ctrl+ Rund dann den Namen des Registers drücken , z. B. / Ctrl+ R0 Enter.
quelle
Entspricht die lange Zeichenfolge, die Sie eingeben, einem Variablennamen? Oder eine lange Zeichenfolge, die in Ihrem Text enthalten ist? Drücken Sie dann
*
, um nach dem Wort / der Zeichenfolge unter Ihrem Cursor zu suchen.quelle