Você pode fazer cf_
. f não destacará o caractere pesquisado.
Você também pode fazer ct_
se não quiser incluir o _.
Se eu tiver este texto no vim e meu cursor estiver no primeiro caractere:
www.foo.com
Eu sei que posso fazer:
cw
para mudar para o primeiro período, porque word
(letra minúscula w) termina em qualquer pontuação OU espaço em branco cW
para alterar o endereço completo, porque Word
(maiúscula w) termina apenas no espaço em branco Agora, e se eu tiver isso:
stupid_method_name
e quer mudá-lo para isso?
awesome_method_name
Tanto cw
como cW
mudam a coisa toda, mas eu só quero mudar o fragmento antes do sublinhado.
Minha técnica de fallback é c/_
, significando "mudar até você atingir o próximo sublinhado em uma pesquisa", mas para mim isso também faz com que todos os sublinhados sejam destacados como termos de pesquisa, o que é um pouco chato.
Existe um especificador como w
ou W
que não inclui sublinhados?
Coloque isso no seu .vimrc:
set iskeyword-=_
Então _ será tratado como um limite de palavra (embora não seja um limite de WORD), e cw poderia ser usado apenas para alterar "impressionante", e cW para mudar a coisa toda.
Veja:
:help iskeyword
e
:help word
para mais informações.
camelcasemotion é um plug-in vim muito útil que permite que você se mova por palavras ao usar sublinhado ou notação de camelcase. Usando este plugin você pode colocar uma vírgula na frente de muitos dos comandos tradicionais de movimento do vim, que lhe permitirão tratar palavras em sublinhado ou notação de camelcase como palavras completas.
Tags vim