Jak zamienić pojedyncze słowo pod kursorem?


144

Jak zamienić słowo pod kursorem w Vimie.

Więc zamiast używać dwwtedy isłowa, a potem Esc, czy istnieje prostsza kombinacja, która zastąpi słowo pod kursorem?

Odpowiedzi:


251
ciw

(zmień słowo wewnętrzne) zmieni całe słowo pod kursorem. Porównać z

cw

która zmieni tylko słowo z bieżącej pozycji kursora . Aby uzyskać więcej informacji, zobacz to pytanie / odpowiedź SO .


Jak poradzić sobie z sytuacją, gdy słowo zawiera kropki lub ukośniki (np. /usr/bin/bashLub 1222.333)? Wygląda na to, że vim interpretuje /i .jako koniec słowa i nie wybierze całego ciągu.
Alexander Cska

85

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ś.


7
Działa ładnie, ale tylko wtedy, gdy trzeba dokonać wymiany once. Jeśli muszę zamienić kilka second' by pierwszych (w twoim przykładzie), skopiowane słowo stanie się secondpo pierwszej zamianie.
ViFI

32

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

17

Jeśli chcesz zmienić słowo z poprzednio wyszarpanym słowem, istnieje inne rozwiązanie viwp(po wyszarpnięciu pierwszego słowa).

ciwusuwa poprzednie słowo i przełącza cię w tryb wstawiania tam, gdzie było. Ale wtedy możesz użyć ctrl+r, 0do 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ż viwpdlatego, ż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.


1
Nie jestem pewien, co masz na myśli, że nie zmienia trybów, wydaje się, że jest odwrotnie, ale może właśnie tego chciałeś, aby pozostać w trybie wstawiania. Ale dużą zaletą jest to, że (w przeciwieństwie do viwp) można to zrobić kilka razy za pomocą jednego szarpnięcia. Dzięki!
Palo

Och, masz rację, myślałem o wejściu w tryb wizualny, edytowany. Nie zdawałem sobie sprawy, że to ograniczenie viwp- nawet .go nie powiela.
Connor

3
Jest to zdecydowanie najlepsze rozwiązanie, gdy już wyszarpnęliśmy słowo zastępcze.
mljrg,

1
To jest odpowiedź! Możliwość korzystania .z tego jest świetna!
izzy

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.