vim: use string da pesquisa no comando replace

15

Costumo usar o comando vim / search para verificar minhas expressões regulares (apenas para ver o que corresponde). Depois disso, costumo usar o comando :%s replace, em que uso essa regexp da pesquisa como uma string a ser substituída, por exemplo, Eu primeiro procuro por essa string:

/TP-\(\d\{5\}\)-DD-\d\{3\}

Ele corresponde exatamente ao que eu quero, então eu faço a minha substituição:

:%s/TP-\(\d\{5\}\)-DD-\d\{3\}//g

Mas eu tenho que escrever novamente todo o regexp aqui. Normalmente esse regexp é muito mais longo, é por isso que estou procurando uma solução:

Existe algum atalho ou script vim existente para colar esse padrão de pesquisa diretamente no comando replace?

Eu uso o vim no terminal (sem gvim).

    
por kars7e 13.03.2011 / 00:18

2 respostas

20

Em geral, uma expressão regular vazia significa usar a expressão regular inserida anteriormente, portanto :%s///g deve fazer o que você deseja.

    
por 13.03.2011 / 00:33
4

Outra boa maneira de ver as pesquisas de expressões regulares anteriores, bem como os comandos Ex e fazer alterações nelas, é editá-los no modo normal. Deste modo, você terá todos os seus poderes, incluindo copiar e colar.

  • Pesquisa: em vez de ? ou / para pesquisa, experimente q/ ou q?
  • para comandos ex, em vez de : try q:
  • para sair deste modo use Ctrl C

Para ler mais, consulte :help q: .

    
por 20.03.2013 / 06:57