Comment gérer la situation si le mot contient des points ou des barres obliques (par exemple /usr/bin/bashou 1222.333)? Cela ressemble à vim interprète /et .comme fin du mot et ne sélectionne pas la chaîne entière.
Alexander Cska
85
J'ai souvent envie de remplacer un mot par un autre que j'ai extrait d'ailleurs. Le problème avec les autres solutions est que si vous essayez de changer un mot, alors votre prochaine pâte sera être ce 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".
Cela fonctionne bien mais seulement si le remplacement doit être fait once. Si je dois remplacer le couple du second' by premier (dans votre exemple), le mot copié devient secondaprès le premier remplacement.
ViFI
32
ciw
c change
iw inner word
Cela supprimera le mot sous le curseur (même si le curseur est quelque part au milieu du mot) et entrera en mode insertion.
Voir également la documentation de Vim pour référence:
Si vous voulez changer un mot avec un mot précédemment retiré, il existe une autre solution pour viwp(une fois que vous avez extrait le premier mot).
ciwsupprime le mot précédent et vous met en mode insertion là où il se trouvait. Mais alors vous pouvez utiliser ctrl+r, 0pour insérer le contenu du registre 0 (qui contient le mot précédemment copié).
Alors:
yiw
[move to next word]
ciw
ctrl+r
0
Cela fonctionne mieux que viwpparce qu'après la première utilisation, vous pouvez effectuer le remplacement à plusieurs reprises avec .. Il ne passe pas non plus en mode visuel et ne s'affiche pas brièvement.
Pas sûr de ce que tu veux dire que ça ne change pas de mode, l'inverse semble être le cas, mais c'est peut-être ce que tu voulais, rester en mode insertion. Mais un gros avantage est que cela (contrairement à viwp) peut être fait plusieurs fois avec un seul tirage. Merci!
Palo
Oh tu as raison, je pensais passer en mode visuel, édité. Je n'avais pas réalisé que c'était une limitation de viwp- même .pas la duplication.
Connor
3
C'est de loin la meilleure solution lorsque nous avons déjà retiré le mot de remplacement.
mljrg
1
Voilà la réponse! La possibilité d'utiliser .avec c'est génial!
/usr/bin/bash
ou1222.333
)? Cela ressemble à vim interprète/
et.
comme fin du mot et ne sélectionne pas la chaîne entière.J'ai souvent envie de remplacer un mot par un autre que j'ai extrait d'ailleurs. Le problème avec les autres solutions est que si vous essayez de changer un mot, alors votre prochaine pâte sera être ce mot que vous avez supprimé avec
cw
.Essayez ce qui suit:
J'espère que c'est ce que vous cherchiez.
la source
once
. Si je dois remplacer le couple dusecond' by
premier (dans votre exemple), le mot copié devientsecond
après le premier remplacement.ciw
Cela supprimera le mot sous le curseur (même si le curseur est quelque part au milieu du mot) et entrera en mode insertion.
Voir également la documentation de Vim pour référence:
la source
Si vous voulez changer un mot avec un mot précédemment retiré, il existe une autre solution pour
viwp
(une fois que vous avez extrait le premier mot).ciw
supprime le mot précédent et vous met en mode insertion là où il se trouvait. Mais alors vous pouvez utiliserctrl+r, 0
pour insérer le contenu du registre 0 (qui contient le mot précédemment copié).Alors:
Cela fonctionne mieux que
viwp
parce qu'après la première utilisation, vous pouvez effectuer le remplacement à plusieurs reprises avec.
. Il ne passe pas non plus en mode visuel et ne s'affiche pas brièvement.la source
viwp
) peut être fait plusieurs fois avec un seul tirage. Merci!viwp
- même.
pas la duplication..
avec c'est génial!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.
la source