Comment remplacer un mot sous le curseur dans Vim.
Ainsi, au lieu d'utiliser dw
puis i
puis le mot, puis Esc
, existe-t-il une combinaison plus simple pour remplacer le mot sous le curseur?
ciw
(changer le mot intérieur) changera le mot entier sous le curseur. Comparer avec
cw
ce qui changera seulement le mot de la position actuelle du curseur . Pour plus d'informations, voir this SO question/réponse.
Je me retrouve souvent à vouloir remplacer un mot par un autre que j'ai tiré ailleurs. Le problème avec les autres solutions est que si vous essayez de changer un mot, votre prochain collage sera soit le mot que vous avez supprimé avec cw
.
Essayez ce qui suit:
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".
J'espère que c'est ce que vous cherchiez.
ciw
c change
iw inner Word
Ceci supprimera le mot sous le curseur (même si le curseur est quelque part au milieu du mot) et passera en mode insertion.
Consultez également la documentation de Vim pour référence:
:help c
:help text-objects
Si vous souhaitez modifier un mot avec un mot précédemment extrait, il existe une autre solution à viwp
(une fois que vous avez extrait le premier mot).
ciw
supprime le mot précédent et vous place en mode insertion à l'endroit où il se trouvait. Mais alors vous pouvez utiliser ctrl+r, 0
pour insérer le contenu du registre 0 (qui contient le mot précédemment extrait).
Alors:
yiw
[move to next Word]
ciw
ctrl+r
0
Cela fonctionne mieux que viwp
car après la première utilisation, vous pouvez effectuer le remplacement de manière répétée avec .
. De plus, il ne bascule pas en mode visuel et met en évidence brièvement.
Essayez cw
- comme dans 'changer le mot'.
Utilisez http://linuxmoz.com/vi-commands-cheat-sheet/ ou tout autre aide-mémoire comme référence.