Si j'ai ce texte dans vim et que mon curseur est sur le premier caractère:
www.foo.com
Je sais que je peux faire:
cw
pour changer jusqu'à la première période, car une Word
(minuscule w) se termine à n'importe quelle ponctuation OR espace blanccW
pour changer l’adresse complète, car une Word
(majuscule w) se termine uniquement par des espacesMaintenant, si j'ai ceci:
stupid_method_name
et vous voulez changer cela?
awesome_method_name
cw
et cW
changent le tout, mais je veux juste changer le fragment avant le trait de soulignement.
Ma technique de secours est c/_
, ce qui signifie "changer jusqu'à ce que vous appuyiez sur le trait de soulignement suivant dans une recherche", mais pour moi, tous les traits de soulignement sont également mis en évidence en tant que termes de recherche, ce qui est légèrement gênant.
Existe-t-il un spécificateur tel que w
ou W
qui n'inclut pas de traits de soulignement?
Vous pouvez faire cf_
. f ne mettra pas en évidence le caractère recherché.
Vous pouvez aussi faire ct_
si vous ne voulez pas inclure le _.
Mettez ceci dans votre .vimrc:
set iskeyword-=_
Ensuite, _ sera traité comme une limite de Word (bien que ce ne soit pas une limite de Word), et cw pourrait simplement être utilisé pour changer "génial", et cW pour tout changer.
Voir:
:help iskeyword
et
:help Word
pour plus d'informations.
camelcasemotion est un plugin très pratique qui vous permet de parcourir les mots lorsque vous utilisez la notation soulignement ou camelcase. En utilisant ce plugin, vous pouvez placer une virgule devant la plupart des commandes de mouvement vim traditionnelles, ce qui vous permettra de traiter les mots en caractères de soulignement ou camelcase comme des mots entiers.