Mesclando dois blocos verticais com o vim

4

Eu tenho 2 arquivos

file1.txt
a =
b =

file2.txt
1
2

Posso mesclá-los usando o gvim para que a saída se pareça com: a = 1
b = 2

    
por dharm0us 10.05.2010 / 14:37

4 respostas

7

Arrancar um bloco vertical: Selecione, e. as linhas em file2.txt com CTRL v , arranca com y e cola depois de mover para o final da primeira linha em file1.txt com < kbd> p .

Se você executar vim em uma pilha GNU, também poderá usar o programa paste para fazer o mesmo. Use -d para especificar qual delimitador usar entre os campos dos arquivos.

paste -d "" 1 2 > merged.txt
    
por 10.05.2010 / 15:01
1

também funciona com o vim puro:

 % vim -O file1.txt file2.txt  # open both files vertically splitted

em seguida, no file1.txt, coloque o bloco em um registrador nomeado, digamos 'a':

  • gg vai para o começo do arquivo
  • ctrl v ir para selecionar o modo de bloco
  • G vai para a última linha
  • $ vai para o último caractere na última linha
  • " a y yank para registrar 'a'

depois mude para o arquivo2.txt e faça um:

  • gg vai para o começo do arquivo
  • " a P cola o conteúdo do registrador 'a' antes do texto
por 10.05.2010 / 15:46
0

se você estiver trabalhando com Unix ou Linux, use o comando paste:

:%! paste - file2.txt

isso também funciona no vi clássico, ou direto da linha de comando:

$ colar file1.txt file2.txt > out.txt

Espero que isso ajude

    
por 10.05.2010 / 15:53
0

O Linux também pode usar o comando: read para colar o texto de um arquivo para outro arquivo, por exemplo:

Ambos os casos, primeiro abra um arquivo com o vim, depois de posicionar em uma seção do arquivo e executar:

:read file1.txt

ou

: read! cat file1.txt

É muito útil para juntar conteúdo de dois ou mais arquivos ...

    
por 26.01.2017 / 23:15

Tags