Menggabungkan dua blok vertikal dengan vim

4

Saya punya 2 file

file1.txt
a =
b =

file2.txt
1
2

Dapatkah saya menggabungkannya menggunakan gvim sehingga hasilnya terlihat seperti:
a = 1
b = 2

Dharm0us
sumber
Ada pertanyaan serupa (2 blok dari file yang sama) pada SO: Gabungkan beberapa baris (dua blok) di Vim
ThiefMaster

Jawaban:

7

Yank blok vertikal: Pilih misalnya garis di file2.txtdengan CTRLv, yank dengan ydan paste setelah pindah ke akhir baris pertama dalam file1.txtdengan p.

Jika Anda menjalankan vimpada tumpukan GNU Anda juga bisa menggunakan pasteprogram untuk melakukan hal yang sama. Gunakan -duntuk menentukan pembatas apa yang digunakan antara bidang dari file.

paste -d "" 1 2 > merged.txt
Benjamin Bannier
sumber
1

bekerja dengan vim murni juga:

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

lalu di file1.txt, tarik blok ke register bernama, katakanlah 'a':

  • gg pergi ke mulai dari file
  • ctrlv pergi untuk memilih mode blokir
  • G pergi ke baris terakhir
  • $ pergi ke karakter terakhir di baris terakhir
  • "ay terima kasih untuk mendaftarkan 'a'

kemudian beralih ke file2.txt dan lakukan:

  • gg pergi ke mulai dari file
  • "aP rekatkan konten register 'a' sebelum teks
akira
sumber
0

jika Anda bekerja di Unix atau Linux, cukup gunakan perintah tempel:

:%! tempel - file2.txt

ini juga berfungsi di vi klasik, atau langsung dari baris perintah:

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

Semoga ini membantu

kdo
sumber
0

Anda juga dapat menggunakan perintah di Linux: baca untuk menempelkan teks dari satu file ke file lain, misalnya:

Kedua kasus, pertama buka file dengan vim, setelah Anda memposisikan di bagian file dan jalankan:

: baca file1.txt

atau

: Baca baca! cat file1.txt

Ini sangat berguna untuk menggabungkan konten dari dua atau lebih file ...

David Becerra Montellano
sumber
Ini tidak menjawab pertanyaan. Jawaban Anda adalah tentang cut / paste, sedangkan pertanyaannya sangat jelas tentang penggabungan. Harap baca pertanyaan dengan seksama dan hindari memposting informasi yang tidak terkait.
music2myear