Copia a saída do grep do editor vim

3

Suponha que você tenha algum arquivo de texto (por exemplo, um arquivo de log) e abra em um editor vim e aperte o comando

:g/aaa

Ele produzirá um resultado no qual você pode mover com as chaves j e k e quando você move para o fundo uma frase verde Press ENTER or type command to continue aparecerá.

Eu entendo de alguma forma, que eu posso usar alguns comandos com o resultado, mas não sei como encontrar o que posso fazer com isso.

Uma ação que gostaria de fazer é salvar as linhas no novo arquivo.

Claro que você poderia usar um comando

$ grep aaa file.txt > new_file.txt

mas é possível a partir do editor vim diretamente?

    
por xralf 05.01.2017 / 20:20

2 respostas

10

É possível fazer isso através de um processo de várias etapas.

Dentro de vim :

:redir > new_file.txt
:g/aaa
:redir END

Veja :help redir de dentro de vim .

O comando :redir também pode ser anexado a um arquivo existente, modificando o primeiro comando.

:redir >> new_file.txt
    
por 05.01.2017 / 21:16
1

A maneira como faço isso é inverter o :g para :v e do :v/pattern/d , depois copiar o texto resultante em um registrador com 1GVG"ry e finalmente desfazer o :v com u . Agora as linhas combinadas estão seguramente no registro r .

    
por 14.01.2017 / 14:07

Tags