Odpowiedzi:
Często mam ochotę zastąpić jedno słowo innym, które wyszarpnąłem z innego miejsca. Problem z innych rozwiązań jest to, że jeśli spróbujesz zmienić słowo, wówczas obok pasta będzie się to słowo, które zostało usunięte z cw
.
Spróbuj wykonać następujące czynności:
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".
Mam nadzieję, że tego właśnie szukałeś.
once
. Jeśli muszę zamienić kilka second' by
pierwszych (w twoim przykładzie), skopiowane słowo stanie się second
po pierwszej zamianie.
ciw
c change
iw inner word
Spowoduje to usunięcie słowa pod kursorem (nawet jeśli kursor znajduje się gdzieś w środku słowa) i przejście do trybu wstawiania.
Zobacz także dokumentację Vima w celach informacyjnych:
:help c
:help text-objects
Jeśli chcesz zmienić słowo z poprzednio wyszarpanym słowem, istnieje inne rozwiązanie viwp
(po wyszarpnięciu pierwszego słowa).
ciw
usuwa poprzednie słowo i przełącza cię w tryb wstawiania tam, gdzie było. Ale wtedy możesz użyć ctrl+r, 0
do wstawienia zawartości rejestru 0 (który zawiera poprzednio wyszarpane słowo).
Więc:
yiw
[move to next word]
ciw
ctrl+r
0
Działa to lepiej niż viwp
dlatego, że po pierwszym użyciu możesz wielokrotnie dokonywać wymiany za pomocą .
. Nie przełącza się również w tryb wizualny i na krótko wyróżnia.
viwp
) można to zrobić kilka razy za pomocą jednego szarpnięcia. Dzięki!
viwp
- nawet .
go nie powiela.
.
z tego jest świetna!
Spróbuj cw
- jak w przypadku „zmień słowo”.
Użyj http://linuxmoz.com/vi-commands-cheat-sheet/ lub dowolnego innego ściągawki jako odniesienia.
/usr/bin/bash
Lub1222.333
)? Wygląda na to, że vim interpretuje/
i.
jako koniec słowa i nie wybierze całego ciągu.