como encontrar um padrão e um substituto no vim

1

panorama atual;

P12104001;example_01_01,
P12104002;example_02_01,
P12104003;example_03_01,
P12104004;example_04_01,

Eu quero ter;

<example_01_01>,
<example_02_01>,
<example_03_01>,
<example_04_01>,

Por favor, sugira opções usando o substituto no gvim (para que eu possa substituir as strings apenas em regiões marcadas. Exemplo como este :'a,'b s \*******\<******> )

    
por Nayak 25.05.2018 / 08:59

2 respostas

4

Para ir de

P12104001;example_01_01,
P12104002;example_02_01,
P12104003;example_03_01,
P12104004;example_04_01,

para isso

P12104001;example_01_01,
<example_02_01>,
<example_03_01>,
P12104004;example_04_01,

use

:/002/,/003/s/.*\(example_.._..\)/<>/

que lê como

: Command
 /Start of section/,/End of section/
            s/    substitute
             .*   all chars up to 
                \(string to remember . for wild chars\)
             /<   with 
                put in the remember string
                 >/  rest of replacement.

Use: ajude o endereço no Vim para ver outras formas de abordar os intervalos de linha.

    
por 25.05.2018 / 10:12
0

Fred Gannett já respondeu suas perguntas, mas respondeu seus comentários:

%s/.*\(example_\d\+_\d\+\).*/<>,/

substitui o arquivo inteiro sem codificar os dígitos por trás do "exemplo". Se você deseja restringir o intervalo, use a seleção visual ou algo parecido com .,3s/.*\(example_\d\+_\d\+\).*/<>,/ (linha atual até a linha três).

Você deve ter certeza de que todas as linhas que contêm o regex devem ser substituídas.

    
por 29.05.2018 / 12:55

Tags