Você pode fazer
:100,200w filename
É claro que 100.200 é o intervalo de linhas que você deseja escrever.
Eu tenho um monte de linhas que eu quero escrever em um arquivo diferente.
Como posso fazer isso?
O mais geral:
Mova o cursor para a primeira linha do grupo que você deseja escrever. % De m
e a
sequencial. Isso é "set mark chamado 'a'".
Mova o cursor para a última linha do grupo, pressione 'm' e 'b'. '
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:
Coloque o cursor na primeira linha do grupo de linhas que você deseja escrever. Acertar V
, para "iniciar bloco visual de linhas".
Mova o cursor para a parte inferior do grupo de linhas. O Vim irá destacar com vídeo reverso cada linha.
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.
Para adicionar a resposta de Bernhard, você também pode selecionar uma região usando o modo visual e, em seguida, inserir :w filename
.
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
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.