Como faço uma pesquisa e substituição de blocos com o Vim?

8

Eu tenho texto no Vim

  1. pressione Ctrl+V para colocar VIm no modo de bloco
  2. realce o texto que eu quero
  3. digite : , isso fornece o prompt :'<,'>
  4. eu adiciono ao prompt meu regex s/ /*/g . Isso me deixa com :'<,'>s/ /*/g e o texto realçado
  5. eu apertei enter

Infelizmente, opera na linha inteira do bloco, não apenas no bloco. Existe alguma maneira de fazer uma pesquisa de blocos e substituir?

    
por Evan Carroll 19.02.2010 / 23:56

1 resposta

12

Ao usar ex-comandos no modo de bloco visual, : , eles sempre operam na linha inteira. Existem duas maneiras de contornar isso:

  1. O átomo \%V corresponderá apenas dentro da área visual. Experimente

    :'<,'>s/\%V /*/g
    

    Veja :help %V

  2. Existem versões visuais especiais de alguns comandos, live v_s ou v_r. Veja :help visual-operators
por 20.02.2010 / 00:35

Tags