Como procurar uma linha contém N caracteres / padrões alvo no vim?

2

Hoje eu preciso pesquisar se as linhas contêm 4% cota ' .

Mas g/'\{4,4\} só pode capturar quatro cotações contínuas.

Então, faço meu código em algo como :g/\[^'\]\?'\[^'\]\?'\[^'\]\?'\[^'\]\?'\[^'\]\? .

O que não funciona e parece feio.

Existe uma maneira bonita, ou pelo menos uma maneira viável de pesquisar uma linha cujo padrão de destino apareceu Nth vezes?

Ou melhor, podemos especificar o padrão mínimo apareceu vezes e padrão máximo apareceu vezes?

    
por Zen 16.04.2015 / 11:35

1 resposta

1

Isso fará:

/^[^']*\%('[^']*\)\{4}$

Ele procura por uma cotação seguida por quaisquer não-cotações ( '[^'] ) quatro vezes ( \{4} ; aqui, você também pode especificar intervalos como \{2,5} ). Para garantir que o número exato corresponda na linha, o padrão é ancorado para iniciar ( ^[^']* , com aspas opcionais na frente) e final ( $ , as não cotações finais incluídas já incluídas na repetição).

    
por 16.04.2015 / 13:29

Tags