Como eu mudo até o próximo sublinhado em VIm?

53

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?

    
por Nathan Long 10.02.2011 / 15:26

3 respostas

74

Você pode fazer cf_ . f não destacará o caractere pesquisado.

Você também pode fazer ct_ se não quiser incluir o _.

    
por 10.02.2011 / 15:44
58

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.

    
por 10.02.2011 / 16:19
1

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.

    
por 25.08.2015 / 01:17

Tags