Wie gehe ich mit der Situation um, wenn das Wort Punkte oder Schrägstriche enthält (z. B. /usr/bin/bashoder 1222.333)? Es sieht aus wie vim interpretiert /und .als Ende des Wortes und wählt nicht die gesamte Zeichenfolge aus.
Alexander Cska
85
Ich möchte oft ein Wort durch ein anderes ersetzen, das ich von einem anderen Ort gezogen habe. Das Problem mit den anderen Lösungen besteht darin , dass , wenn Sie versuchen , ein Wort zu ändern, dann die nächste Paste wird sein , dass Wort , dass Sie mit gelöscht cw.
Versuche Folgendes:
1 "This first word should overwrite the second"
yiw yank inner word (copy word under cursor, say "first").
... Move the cursor to another word (say "second").
viwp select "second", then replace it with "first".
Es funktioniert gut, aber nur, wenn ein Austausch erforderlich ist once. Wenn ich ein paar second' by zuerst ersetzen muss (in Ihrem Beispiel), wird das kopierte Wort secondnach dem ersten Ersetzen.
ViFI
32
ciw
c change
iw inner word
Dadurch wird das Wort unter dem Cursor gelöscht (auch wenn sich der Cursor irgendwo in der Mitte des Wortes befindet) und der Einfügemodus aktiviert.
Siehe auch die Dokumentation von Vim als Referenz:
Wenn Sie ein Wort durch ein zuvor gezogenes Wort ändern möchten, gibt es eine andere Lösung viwp(sobald Sie das erste Wort gerissen haben).
ciwEntfernt das vorherige Wort und versetzt Sie in den Einfügemodus, in dem es sich befand. Aber dann können Sie ctrl+r, 0den Inhalt von Register 0 (das das zuvor gerissene Wort enthält) einfügen.
So:
yiw
[move to next word]
ciw
ctrl+r
0
Dies funktioniert besser als viwpweil Sie nach dem ersten Gebrauch den Austausch mit wiederholt wiederholen können .. Es wechselt auch nicht in den visuellen Modus und hebt kurz hervor.
Sie sind sich nicht sicher, was Sie damit meinen, dass der Modus nicht geändert wird. Das Gegenteil scheint der Fall zu sein, aber vielleicht wollten Sie genau das, um im Einfügemodus zu bleiben. Ein großer Vorteil ist jedoch, dass dies (im Gegensatz zu viwp) mehrmals mit nur einem Ruck durchgeführt werden kann. Vielen Dank!
Palo
Oh, du hast recht, ich dachte daran, in den visuellen Modus zu wechseln, bearbeitet. Ich wusste nicht, dass dies eine Einschränkung von ist viwp- auch wenn .es nicht dupliziert wird.
Connor
3
Dies ist bei weitem die beste Lösung, wenn wir das Ersatzwort bereits weggerissen haben.
mljrg
1
Das ist die Antwort! Die Fähigkeit, damit zu arbeiten, .ist großartig!
/usr/bin/bash
oder1222.333
)? Es sieht aus wie vim interpretiert/
und.
als Ende des Wortes und wählt nicht die gesamte Zeichenfolge aus.Ich möchte oft ein Wort durch ein anderes ersetzen, das ich von einem anderen Ort gezogen habe. Das Problem mit den anderen Lösungen besteht darin , dass , wenn Sie versuchen , ein Wort zu ändern, dann die nächste Paste wird sein , dass Wort , dass Sie mit gelöscht
cw
.Versuche Folgendes:
Ich hoffe, das haben Sie gesucht.
quelle
once
. Wenn ich ein paarsecond' by
zuerst ersetzen muss (in Ihrem Beispiel), wird das kopierte Wortsecond
nach dem ersten Ersetzen.ciw
Dadurch wird das Wort unter dem Cursor gelöscht (auch wenn sich der Cursor irgendwo in der Mitte des Wortes befindet) und der Einfügemodus aktiviert.
Siehe auch die Dokumentation von Vim als Referenz:
quelle
Wenn Sie ein Wort durch ein zuvor gezogenes Wort ändern möchten, gibt es eine andere Lösung
viwp
(sobald Sie das erste Wort gerissen haben).ciw
Entfernt das vorherige Wort und versetzt Sie in den Einfügemodus, in dem es sich befand. Aber dann können Siectrl+r, 0
den Inhalt von Register 0 (das das zuvor gerissene Wort enthält) einfügen.So:
Dies funktioniert besser als
viwp
weil Sie nach dem ersten Gebrauch den Austausch mit wiederholt wiederholen können.
. Es wechselt auch nicht in den visuellen Modus und hebt kurz hervor.quelle
viwp
) mehrmals mit nur einem Ruck durchgeführt werden kann. Vielen Dank!viwp
- auch wenn.
es nicht dupliziert wird..
ist großartig!Versuchen Sie
cw
- wie in "Wort ändern".Verwenden Sie http://linuxmoz.com/vi-commands-cheat-sheet/ oder einen anderen Spickzettel als Referenz.
quelle