Bagaimana saya bisa menggunakan nomor baris untuk menyalin garis ke tempat kursor saya berada?

20

Sering kali saya berada dalam situasi yang mirip dengan ini:

1. <Line 1>
2. <Line 2>
3. <Line 3>
4. <Cursor is here>
5. <I want to copy line 1 here>

Solusi yang mudah adalah mm:1<CR>yy`mp- yaitu membuat tanda pada baris 4, pergi ke baris 1, salin, kembali ke tanda, dan tempel.

Apakah ada solusi cairan yang lebih pendek / lebih untuk ini? Saya cukup sering melakukan ini sehingga saya senang membuat pemetaan untuk itu.

Daniel Kleinstein
sumber

Jawaban:

23

Tampak seperti kasing untuk ex copy ( :help :coatau :help :t):

:1t4

atau, menggunakan posisi kursor Anda:

:1t.

Ini tidak menyalin garis ke daftar yank, yang mungkin atau mungkin tidak seperti yang Anda inginkan.

PhilippFrank
sumber
Saya tidak menggunakan cukup ex copy, saran bagus.
jecxjo
10

Anda dapat mempersingkatnya dengan tidak menggunakan tanda dan menarik garis secara langsung.

:1y<CR>p

Versi perintah dari yank mengambil {range}begitu pilih satu baris atau sekelompok garis.

Selain itu, nilai rentang dapat berupa absolut atau relatif. Garis di atas kursor adalah jarak negatif dan di bawahnya adalah positif. Jadi menarik dua garis di atas adalah :-2ydan menarik dua garis di bawah ini :+2y.

jecxjo
sumber