Procura e substitui duas palavras pelo comando ex

1

Eu quero pesquisar e substituir duas palavras por duas outras palavras com um comando g/.../s/.../.../g . Por exemplo, para substituir a palavra 'carro' por 'caminhão' e 'gato' por 'cão' com um comando ex no Vim.

    
por Alexander 03.02.2015 / 16:38

4 respostas

1

Você pode usar a substituição especial \= , que permite executar vim code:

Por exemplo, para trocar foo e bar :

%s/foo\|bar/\=submatch(0) == "foo" ? "bar" : "foo"/g

Ou pelo seu exemplo:

%s/ca[rt]/\=submatch(0) == "car" ? "truck" : "dog"/g

Veja:

:h sub-replace-expression

para detalhes.

    
por 03.02.2015 / 16:58
2

O plug-in SwapStrings.vim permite fazer isso de maneira elegante:

:%SwapStrings car truck
:%SwapStrings cat dog

Mais alternativas podem ser encontradas aqui .

    
por 03.02.2015 / 17:13
0
:%s/foo/bar/gc 

Este comando muda foo com bar!

:% s é um substituto do vim

    
por 03.02.2015 / 16:43
0

Você pode fazer vários comandos em uma linha usando | , como um delimitador de comando.

%s/cat/dog/g|%s/car/truck/g
    
por 03.02.2015 / 18:39