Di Linux, mengedit file_B
dalam vim saya ingin menambahkan baris 10-25 dari file_A
. Contoh: Seseorang memiliki seluruh set Dokumen-HTML dengan header yang sama dan ya, orang dapat membuat template dan mulai dari sana, tetapi tetap:
Saya mencari cara [dan elegan] sederhana untuk menyisipkan berbagai baris dari satu file dan menambahkannya ke file yang sedang saya edit. Dalam vim.
Solusi yang saya temukan sejauh ini tetapi tidak persis apa yang saya cari, adalah
- di
file_B
dalam perintah:read file_A
akan menambahkan * seluruh file_A * ke file_B. Terlalu banyak - ada copy & paste di dalam vim - tetapi untuk ini harus dibuka
file_A
- di dalam file_A
:10,25w! file_B
akan 'mengirim' rentang garis yang diberikan kefile_B
.
Ini sepertinya cukup dekat dengan salin & tempel - seseorang dapat membuka banyak jendela dalam vim
Tetapi ketika saya bekerja pada layar 8 inci, banyak jendela membuat orientasi menjadi sulit
Karena saya tidak dapat menemukan solusi yang nyaman, saya bertanya-tanya apakah saya hanya salah memahami sesuatu atau cara yang saya temukan sejauh ini biasa digunakan dan diambil sebagai cara standar.
linux
vim
copy-paste
erch
sumber
sumber
vim
. Tapi ini sepertinya di luar jangkauan. Dan saya benar-benar bertanya-tanya apakah ini hanya dapat dicapai melalui perintah luar, karena sejauh yang saya dapatkanvim
sekarang, saya sampai pada batasan kecil di sini.Jawaban:
Solusi terbaik yang bisa saya dapatkan, adalah dengan memanggil
sed
dan menggabungkannya secara eksternal:read !
sumber
:r
kependekan dariread
vim. Saya tidak memiliki pengetahuan tentangsed
dan bagaimana menggunakannya. Tentu saja, saya digantifileB
dengan file yang sebenarnya :):10r
dll. Akan menempatkan konten dari baris sepuluh di [selama ini ada]. Bekerja seperti jimat sekarang. Bagus. Terima kasih banyak!:r!sed 10,25\!d
. Perhatikan bahwa Anda tidak memerlukan-e
atau kutipannya, sehingga Anda dapat menuliskannya juga:r!sed -n 10,25p
secara singkat.:r sed '10,$\!d;25q'
untuk menghindari membaca seluruh file.