vi / vim, como posso escrever um número de linhas para um novo arquivo

26

Eu tenho um monte de linhas que eu quero escrever em um arquivo diferente.
Como posso fazer isso?

    
por Michael Durrant 19.07.2012 / 15:14

5 respostas

37

Você pode fazer

:100,200w filename

É claro que 100.200 é o intervalo de linhas que você deseja escrever.

    
por 19.07.2012 / 15:21
17

O mais geral:

  1. Mova o cursor para a primeira linha do grupo que você deseja escrever. % De m e a sequencial. Isso é "set mark chamado 'a'".

  2. Mova o cursor para a última linha do grupo, pressione 'm' e 'b'. '

  3. Mudar para o modo de comando hit: como uma seqüência, execute :'a,'b w filename e, em seguida, pressione Enter.

Isso funcionará no vi, nvi e vim.

Outro método, funciona no vim mais moderno:

  1. Coloque o cursor na primeira linha do grupo de linhas que você deseja escrever. Acertar V , para "iniciar bloco visual de linhas".

  2. Mova o cursor para a parte inferior do grupo de linhas. O Vim irá destacar com vídeo reverso cada linha.

  3. Escreva. Pressione : para entrar no modo de linha de comando. Isso lhe dará um prompt na parte inferior da tela que se parece com: :'<,'> Isso significa desde o início do bloco visual até o final. Digite w e o nome do arquivo e clique em retornar.

Você pode adicionar linhas simples ao final do arquivo, conforme necessário, colocando o cursor na linha que deseja escrever e digitando: :.w >> filename e pressionando return.

Os comandos "escrever um grupo de linhas" também funcionam com "> > nome do arquivo" em vez de apenas "nome do arquivo". O "> >" faz com que o vi ou o vim sejam anexados ao arquivo, em vez de apenas escrevê-lo.

    
por 19.07.2012 / 15:28
6

Para adicionar a resposta de Bernhard, você também pode selecionar uma região usando o modo visual e, em seguida, inserir :w filename .

    
por 19.07.2012 / 15:51
4

Se você souber os números de linha que deseja gravar, poderá fazê-lo a partir da linha de comando:

vim -c "100,200w new_file.txt" -c wq original_file.txt
    
por 17.02.2017 / 03:13
0

um pequeno truque é usar o número da linha relativa. Por exemplo: : + 0, + 99w nome do arquivo escreva as próximas 100 linhas no nome do arquivo.

    
por 20.06.2018 / 08:54