Se non ti dispiace premere una combinazione diversa rispetto a cw
, allora credo che puoi ottenere facilmente ciò che desideri, definendo una scorciatoia. Quello che puoi fare è posizionare quanto segue
nmap <leader>a "1yiw:let @/=@1^Mciw
nel tuo .vimrc
file. Si noti che ^M
è un'acquisizione della chiave di ritorno e non dei caratteri ^
e M
. Puoi ottenerlo premendo Ctrl+ Vin modalità inserimento seguito da Enter. Ora, con questo definito, premendo <leader>a
farà lo stesso di cw
, ma ora la parola (prima della modifica) sarà nel tuo "ultimo registro di ricerca" (cioè il /
registro), quindi premendo ndopo aver apportato la modifica e restituito in modalità normale ti porterà alla prossima occorrenza. Allo stesso modo, premendo si Naccederà alla ricorrenza precedente.
La scorciatoia Puoi ovviamente scegliere una scorciatoia diversa da quella <leader>a
, ma trovo solo che si tratta di una scorciatoia molto accessibile. Personalmente ho impostato <leader>
su in ,
modo che ho solo bisogno di premere ,seguito da a, ma questo perché non uso una tastiera americana, in modo che la mia \sia nascosta in qualche modo (credo \sia l'impostazione predefinita <leader>
).
Spiegazione L'idea è davvero semplice. Sposta la parola sotto il cursore nel registro di ricerca /
e poi fai cw
. Questo nmap <leader>a "/yciw
era ciò a cui stavo mirando, ma sfortunatamente non penso che tu possa fare uno yank al registro di ricerca, quindi la soluzione è di strappare la parola sotto il cursore al 1
registro, quindi impostare il /
registro uguale a quello, e poi fare cw
. Così "1yiw
è la parte che trasporta la parola interna sotto il cursore nel registro 1
. Se non conosci le parole interiori, puoi dare un'occhiata :help iw
. Successivamente, :let @/=@1
seguito da una cattura di Enterinserisce il contenuto del 1
registro in /
. A questo punto neNfunziona come occorrenza successiva e precedente della parola sotto il cursore, quindi ciw
viene eseguita una a in modo che la parola sotto il cursore sia eliminata e Vim sia messo in modalità inserimento.
parola contro parola interiore Mi sono appena reso conto che supponevo che tu volessi l' intera parola sotto il cursore e non solo dal punto del cursore e in poi. Questo è il motivo per cui ho usato iw
invece che w
ovunque. In caso contrario, è necessario utilizzare
nmap <leader>a "1yw:let @/=@1^Mcw
anziché. Se il cursore si trova sulla prima lettera della parola, non c'è differenza.
dichiarazione di non responsabilità Questa soluzione probabilmente non funzionerà bene se si tenta di usarlo su qualcosa che contiene diverse cose da lettere, per esempio avendo il supporto cursore su una \
o sostituendo iw
con iW
, ib
, is
o ip
o qualcosa del genere (anche se non so perché si farebbe vuoi questa funzione con intere frasi)
*
ricerca. Soprattutto consente di*
selezionare visivamente la parola corrente senza spostare il cursore. Una volta installato, è possibile eseguire*ciw
l'inserimento della parola precedente nel registro di ricerca e modificare la parola. Quindi puoi usaren
e.
.