Maksud saya salin dan tempel baris 4, ke baris 12.
Lazer
Diedit. Apakah ini yang anda inginkan?
Umang
2
Yang lain telah menyebutkan metode paling langsung untuk melakukan ini, yaitu :4y , tetapi saya ingin menambahkan dua catatan tentang hal ini yang mungkin berguna:
Satu, jika Anda mengetik :help rangeAnda akan mempelajari semua tentang menggunakan rentang untuk menerapkan perintah Ex style. SANGAT berguna dalam banyak kasus, dan jauh lebih fleksibel daripada menggunakan nomor baris. Misalnya, jika Anda ingin menarik baris pertama dimulai dengan "menarik" setelah awal dokumen (bahkan jika itu ada di baris pertama), gunakan:0/^yank/y . Bagian paling kuat dari rentang adalah kemampuan untuk menggabungkannya, misalnya,:./^Chapter/+50?Pete?d berarti "Temukan baris berikutnya untuk memulai dengan Bab kata (mencari maju dari baris saat ini), kemudian melompat maju 50 baris, dan mencari mundur untuk kata Pete, dan hapus baris pertama yang Anda temukan. " Kecuali bahwa itu tidak benar-benar memindahkan kursor, itu hanya melakukan apa yang kamu katakan.
(Saya telah menggunakan jenis kisaran spesifikasi ini untuk mengotomatiskan pembuatan dokumentasi fiddly yang melibatkan pencarian nama fungsi di bawah kursor, lalu mencari baris berikutnya yang bertuliskan "Deskripsi" dan menariknya ke register tertentu ... dll.)
Tip lainnya, adalah bahwa Anda harus tahu tentang melompat. Ketik :help jump-motionsuntuk mempelajarinya sepenuhnya, tetapi cara berhubungan di sini adalah bahwa Anda dapat melompat ke baris 4, menariknya dan kemudian KEMBALI dengan 4Gyy''(atau menggunakan backticks alih-alih apostrof untuk melompat kembali ke posisi awal yang tepat, daripada hanya LINE yang sama Anda mulai.)
Jawaban:
Jika kursor sudah di jalur 12, maka sederhana
melakukannya untuk saya.
sumber
x
? Ketika saya mencoba,:4x
saya mengertiE140: Use ! to write partial buffer
. Terima kasih!:4d
Bagaimana dengan ini: Kursor ada di jalur 11, Anda dalam mode "vi".
Anda juga bisa melakukannya dengan sebuah pola:
Anda bisa menggunakan "mo" (pindah) bukan "co" (salin) untuk hanya memindahkan garis, bukan mencabut dan meletakkan.
sumber
:4t.
Coba ini:
sumber
Mencoba:
Anda dapat menggunakan argumen
0
untuk menempelkan ke baris1
. Ini juga akan bekerja dengan rentang:akan menyalin garis
m
melaluin
garisk+1
. Selain itu, tidak masalah di mana Anda berada di buffer. Themove
perintah,m
, bekerja mirip.sumber
Ini harus dilakukan:
sumber
Yang lain telah menyebutkan metode paling langsung untuk melakukan ini, yaitu
:4y
, tetapi saya ingin menambahkan dua catatan tentang hal ini yang mungkin berguna:Satu, jika Anda mengetik
:help range
Anda akan mempelajari semua tentang menggunakan rentang untuk menerapkan perintah Ex style. SANGAT berguna dalam banyak kasus, dan jauh lebih fleksibel daripada menggunakan nomor baris. Misalnya, jika Anda ingin menarik baris pertama dimulai dengan "menarik" setelah awal dokumen (bahkan jika itu ada di baris pertama), gunakan:0/^yank/y
. Bagian paling kuat dari rentang adalah kemampuan untuk menggabungkannya, misalnya,:./^Chapter/+50?Pete?d
berarti "Temukan baris berikutnya untuk memulai dengan Bab kata (mencari maju dari baris saat ini), kemudian melompat maju 50 baris, dan mencari mundur untuk kata Pete, dan hapus baris pertama yang Anda temukan. " Kecuali bahwa itu tidak benar-benar memindahkan kursor, itu hanya melakukan apa yang kamu katakan.(Saya telah menggunakan jenis kisaran spesifikasi ini untuk mengotomatiskan pembuatan dokumentasi fiddly yang melibatkan pencarian nama fungsi di bawah kursor, lalu mencari baris berikutnya yang bertuliskan "Deskripsi" dan menariknya ke register tertentu ... dll.)
Tip lainnya, adalah bahwa Anda harus tahu tentang melompat. Ketik
:help jump-motions
untuk mempelajarinya sepenuhnya, tetapi cara berhubungan di sini adalah bahwa Anda dapat melompat ke baris 4, menariknya dan kemudian KEMBALI dengan4Gyy''
(atau menggunakan backticks alih-alih apostrof untuk melompat kembali ke posisi awal yang tepat, daripada hanya LINE yang sama Anda mulai.)sumber
Terpendek:
:1t.
menyalin baris pertama di bawah arus.Dengan rentang:
:1,4t.
salinan baris 1 hingga 4 (inklusif) di bawah ini.Juga dimungkinkan dengan nomor garis relatif:
:-1t.
menyalin baris sebelumnya di bawah arus.Dalam contoh Anda,
:4t-1
salin baris keempat di bawah baris yang diinginkan.Catatan:
:t
adalah sinonim untuk:co[py]
perintah.sumber