I have 2 files

file1.txt
a =
b =

file2.txt
1
2

Can I merge them using gvim so that the output looks like :
a = 1
b = 2

link|improve this question

50% accept rate
feedback

3 Answers

up vote 5 down vote accepted

Yank a vertical block: Select e.g. the lines in file2.txt with CTRLv, yank with y and paste after moving to end of the first line in file1.txt with p.

If you run vim on a GNU stack you could also use the paste program to do the same. Use -d to specify what delimiter to use between the fields from the files.

paste -d "" 1 2 > merged.txt
link|improve this answer
feedback

works with pure vim as well:

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

then in file1.txt yank the block to a named register, lets say 'a':

  • gg go to begin of file
  • ctrlv go to select block mode
  • G go to last line
  • $ go to last character on last line
  • "ay yank to register 'a'

then switch over to file2.txt and do a:

  • gg go to begin of file
  • "aP paste content of register 'a' before text
link|improve this answer
feedback

if you're working on Unix or Linux, just use the paste command:

:%!paste - file2.txt

this also works in the classic vi, or direct from the command line:

$ paste file1.txt file2.txt >out.txt

Hope, this helps

link|improve this answer
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.