Gibt es einen Befehl in Vim/Vi bewegen Sie den cursor an das Ende einer Suche-highlight?
Gibt es irgendwelche Befehle in Vim/Vi zu bewegen in einem ausgewählten segment suchen?
Zum Beispiel, wenn ich nach einem Wort suchen, gibt es irgendwelche Befehle zur Bewegung des Cursors an das Ende des markierten segment? Sagen, ich habe ein Wort, "FishTaco" und ich möchte, dass die Suche nach allen Instanzen von "Fisch" und legen Sie etwas nach. Ich weiß, ich könnte einen globalen ersetzen, aber was ist, wenn möchte ich nur die änderung in ein paar nicht-sequentielle Instanzen?
Konnte ich sehen, wo es wäre praktisch in der Lage sein, um Bewegung des Cursors an das Ende des aktuell markierten segment, um eine Aktion auszuführen.
- Dies ist keine Antwort auf die Frage aber, um erreichen Ihr Ultimatives Ziel, den Austausch aller
Fish
mitFishTaco
Sie tun konnte:%s/Fish\(Taco\)\@!/&Taco/
werden, der jedenFish
nicht schon gefolgt vonTaco
und ersetzen Sie es mitFishTaco
. Kombiniert eine negative lookahead-Suche mit einem ersetzen, die enthält die übereinstimmenden Begriff, gefolgt vonTaco
. - Ich habe keine Ahnung, warum dieser Kommentar nicht mindestens so viele +1 als Antwort. Dies ist ninja level vim.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie es mit diesem:
/Fish/e
Den
/e
am Ende landet Sie den cursor an das Ende der such-region (anstelle des ersten Zeichens standardmäßig./Fish
Suche können Sie springen, um am Ende mit//e
und von Vim 7.4 Sie könnengn
visuell markieren Sie das Gefundene Ergebnis.Wenn Sie nur wollen, setzen Sie den cursor hinter dem letzten Zeichen von Fisch, dann können Sie
wird platzieren Sie den cursor nach der h. (Ohne die
+1
der cursor wird am Ende auf der linken Seite des letzten Zeichens.)Wenn Sie besonders interessieren wenn Sie den cursor nach Fisch, aber nur, wenn es in "FishTaco" dann können Sie versuchen, eine der folgenden Optionen:
Können Sie
und Ihr cursor wird am Ende zwischen Fisch und Taco. Die
/s+4
setzt den cursor auf die 4 stellen nach dem starten der Suche mit dem Begriff.Könnte man ebenfalls verwenden
wird platzieren Sie den cursor 3 Plätze Links neben der linken Seite der letzten (Ende) - Zeichen.
Können Sie auch
weil
/b+4
werden so behandelt, als/s+4
.Wenn Sie bereits gesucht
/Fish
können Sie schnell die Suche gehen, um das Ende des Spiels über//e
, die wiederholt die Letzte Suche, aber fügt diee
- modifier, der bereits erklärt wurde.Sobald Sie eine visuelle Auswahl, die Sie verwenden können
o
zum Umschalten der cursor-position zwischen Anfang und Ende des ausgewählten Blocks. Bei der Selektion line-wise dies schaltet die Linie position, d.h. der cursor bewegt sich zu der Start-und End-Zeile der Selektion, aber nicht auf die Start-oder Ende-Zeichen. Bei der Auswahl ist Charakter-klug, dann die Bewegung ist auch Charakter-klug.Können Sie auch
`<
und`>
zum Umschalten der cursor zwischen dem start und dem Ende der visuelle block, aber dies wirkt sich auf die Auswahl selbst, so dass es verwendet wird, um zurückzusetzen oder anzupassen, die Auswahl ist Grenzenlos.Edit: Ah, aber für die Suche nach highlights wird es nicht funktionieren, weil
o
initiieren eine Zeile einfügen. Ich denke, die Suche highlight ist nicht das gleiche wie eine visuelle Auswahl, sorry 🙂/long-regexp1 \zs long-regexp2 /
.. cursor Stoppt bei \zs finden Sie unter :Hilfe \zsDen "cursor an das Ende des Spiels" Teil Ihrer Frage ist bereits beantwortet.
Können Sie tun
:%s/Fish/FishTaco/c
. Dies gibt Ihnen die Gelegenheit, zu bestätigen oder zu verwerfen jede substitution und springt die ganze "cursor an das Ende des Spiels" business.y
odern
und so weiter, bis es keine Spiele Links. Zu akzeptieren, alle weiteren Ersetzungen, Typa
, Sie ablehnen, geben Sieq
.g
nach der letzten/
so war es nicht weiter in meiner Linie. Danke für den Tipp.