Ist es möglich, mehrere Wörter gleichzeitig zu bearbeiten, die sich in derselben Zeile befinden?
Angenommen, ich habe Folgendes:
Spam and Eggs is all you need for a healthy breakfast
und ich möchte die Zeile ändern zu:
organic_Spam and organic_Eggs is all you need for a healthy breakfast
Ich möchte "Spam" und "Eier" markieren und gleichzeitig "organic_" vor "Spam" und "Eier" stellen. Ein bisschen wie mit Visual Block, um gleichzeitig in verschiedene Zeilen zu schreiben, aber hier schreibe Zeug in die gleiche Zeile. Ich habe gesehen, wie ein Kollege dies mit Sublime Text getan hat, und habe versucht, zu googeln, aber ohne Erfolg.
cursor-movement
insert-mode
brodrigues
quelle
quelle
Antworten:
Ich stimme Alexander hier zu. In der täglichen Bearbeitung würde ich wahrscheinlich auch den .Befehl verwenden, aber wenn Sie nur einen Befehl ausführen möchten, würde ich den Ersatzbefehl verwenden:
wohingegen das
&
das abgeglichene Muster ist/S\|E/
.quelle
In Vim gibt es keine Multi-Cursor wie in Sublime Text (aber es gibt einige Plugins, an die ich mich erinnere). Aber es scheint nicht so wichtig für Vim zu sein, weil es einen anderen Weg gibt, dies zu erreichen. Zum Beispiel haben Sie diese Zeile
Ich würde so etwas tun: den Cursor im normalen Modus auf den ersten Buchstaben von setzen
Spam
und eingeben iorganic_
Esc, dann zweimal wauf springenEggs
und .(Punkt) drücken , um die letzte Aktion zu wiederholen. Für mich ist das viel produktiver als in Sumlime Text, aber vielleicht nicht so ausgefallen und intuitiv.Auf jeden Fall gibt es in beiden Editoren eine Menge Vorverarbeitungsmaterial für diese Aktion. In Sublime Text können Sie Orte für eine neue Multi-Cursor-Position mit einem Tastenkürzel auswählen und anschließend Wörter gleichzeitig bearbeiten. In Vim geschieht diese Art der "Vorverarbeitung" tatsächlich zum Zeitpunkt der Bearbeitung der Zeile, ich meine all das ww.Zeug.
quelle
Wenn Sie wirklich mehrere Cursor wie Sublime unterstützen möchten, können Sie dieses Plugin verwenden: https://github.com/terryma/vim-multiple-cursors
Es ist nicht der vim Weg , aber ich benutze es oft und es funktioniert gut
quelle