vi [m] lê o intervalo de linhas de outro arquivo

9

No Linux, editando file_B no vim, quero adicionar a linha 10-25 de file_A . Exemplo: Um tem todo um conjunto de documentos HTML com o mesmo cabeçalho e, sim, pode-se criar um modelo e começar de lá, mas ainda assim:

Estou procurando uma maneira simples [e elegante] de inserir um intervalo de linhas de um arquivo e adicioná-lo ao arquivo que estou editando no momento. No vim.

As soluções que encontrei até agora mas não são exatamente o que estou procurando, são

  • dentro file_B o comando :read file_A adicionará * todo o arquivo_A * ao arquivo_B. Demais
  • há copiar e colar dentro do vim - mas para isso, é necessário ter aberto file_A
  • dentro file_A :10,25w! file_B 'enviará' o intervalo de linhas dado para file_B .
    Isso parece bem perto de copiar e colar
  • pode-se abrir várias janelas no vim
    Mas como eu trabalho em uma tela de 8 polegadas, várias janelas tornam a orientação difícil

Como não consegui encontrar uma solução confortável, pergunto-me se eu apenas entendi mal alguma coisa ou as formas que encontrei até agora são comumente usadas e tomadas como o modo padrão.

    
por erch 20.04.2013 / 12:22

1 resposta

11

A melhor solução que posso usar é chamar externamente sed e combinar isso com :read !

:r !sed -n -e '10,25p' fileB
    
por 20.04.2013 / 13:25