it-swarm-id.com

Gandakan seluruh baris di Vim

Bagaimana cara menduplikasi seluruh baris dalam Vim dengan cara yang mirip dengan Ctrl+D dalam IntelliJ IDEA/Resharper atau Ctrl+Alt+/ dalam Eclipse?

1492
sumek

yy atau Y untuk menyalin garis
atau
dd untuk menghapus (memotong) garis

kemudian

p untuk menempelkan teks yang disalin atau dihapus setelah baris saat ini
atau
P untuk menempelkan teks yang disalin atau dihapus sebelum baris saat ini

2555
Mark Biek

Mode normal: lihat jawaban lain.

Cara Ex :

  • :t. akan menduplikasi baris,
  • :t 7 akan menyalinnya setelah baris 7,
  • :,+t0 akan menyalin baris saat ini dan selanjutnya di awal file (,+ adalah sinonim untuk kisaran .,.+1),
  • :1,t$ akan menyalin baris dari awal hingga posisi kursor hingga akhir (1, adalah sinonim untuk kisaran 1,.).

Jika Anda perlu memindahkan alih-alih menyalin, gunakan :m alih-alih :t.

Ini bisa sangat kuat jika Anda menggabungkannya dengan :g atau :v

  • :v/foo/m$ akan memindahkan semua baris yang tidak cocok dengan pola "foo" ke akhir file.
  • :+,$g/^\s*class\s\+\i\+/t. akan menyalin semua baris selanjutnya dari bentuk class xxx tepat setelah kursor.

Referensi: :help range, :help :t, :help :g, :help :m dan :help :v

375
Benoit

YP atau Yp atau yyp.

279
Linulin

copy and paste in vim

Tidak ada yang lebih sederhana dari ini! Dari mode normal:

yy

kemudian pindah ke baris yang ingin Anda tempelkan di dan

p
229
Adam

yy

akan menarik garis saat ini tanpa menghapusnya

dd

akan menghapus baris saat ini

p

akan put sebuah baris yang diambil oleh salah satu metode sebelumnya

49
pjz

Melakukan hal ini:

Pertama, yy untuk menyalin baris saat ini, lalu p untuk menempel.

38
Eric Z Beard

Jika Anda ingin cara lain :-)

"ayy ini akan menyimpan baris dalam buffer a

"ap ini akan meletakkan isi buffer a pada kursor.

Ada banyak variasi dalam hal ini.

"a5yy ini akan menyimpan 5 baris dalam buffer a

lihat http://www.vim.org/htmldoc/help.html untuk lebih banyak kesenangan

38
Kwondri

yyp - ingat itu dengan "yippee!"

Beberapa baris dengan angka di antaranya:

y7yp

37
theschmitzer

yyp - tempel setelah

yyP - tempel sebelumnya

22
yemu

Anda juga dapat mencoba <C-x> <C-l> yang akan mengulangi baris terakhir dari mode penyisipan dan membawa Anda jendela penyelesaian dengan semua baris. Ini berfungsi hampir seperti <C-p>

11
nikolavp

Saya suka: Shift+v (untuk memilih seluruh baris dengan segera dan membiarkan Anda memilih jalur lain jika Anda mau), y, hlm

10
Gabe

Untuk seseorang yang tidak tahu vi, beberapa jawaban dari atas mungkin menyesatkannya dengan frasa seperti "tempel ... setelah/sebelumnya garis saat ini".
Ini sebenarnya "tempel ... setelah/sebelumnya kursor".

yy atau Y untuk menyalin garis
atau
dd untuk menghapus garis

kemudian

p untuk menempelkan teks yang disalin atau dihapus setelah  kursor
atau
P untuk menempelkan teks yang disalin atau dihapus sebelum  kursor


Untuk ikatan lebih lanjut, Anda dapat mengunjungi situs ini: vi Lengkapi Daftar Pengikat Kunci

10
Michael

1 gotcha: ketika Anda menggunakan "p" untuk meletakkan baris, ia meletakkannya setelah baris kursor Anda aktif, jadi jika Anda ingin menambahkan baris setelah baris yang Anda tarik, jangan pindahkan kursor satu baris sebelum meletakkan baris baru.

3
cori

Defaultnya adalah yyp, tapi saya sudah menggunakan rebinding ini selama setahun atau lebih dan menyukainya:

" set Y to duplicate lines, works in visual mode as well. nnoremap Y yyp vnoremap Y y`>pgv

2
Chris Penner

Bagi mereka yang mulai belajar vi, berikut adalah pengantar vi yang baik dengan mendaftar perintah berdampingan vi untuk gerakan kursor Windows GUI Editor dan tombol pintas khas. Ini mencantumkan semua perintah dasar termasuk yy (salin baris) dan p (tempel setelah) atau P(tempel sebelumnya).

vi (Vim) untuk Pengguna Windows

1
ap-osd

Aku tahu aku terlambat ke pesta, tapi apalah; Saya memilikinya di .vimrc saya:

nnoremap <C-d> :copy .<CR>
vnoremap <C-d> :copy '><CR>

perintah :copy hanya menyalin baris yang dipilih atau rentang (selalu seluruh baris) di bawah nomor baris yang diberikan sebagai argumennya.

Dalam mode normal yang dilakukan adalah copy . salin baris ini tepat di bawah baris ini .

Dan dalam mode visual berubah menjadi '<,'> copy '> salin dari awal seleksi ke akhir seleksi ke baris di bawah akhir seleksi .

1
DarkWiiPlayer

Jika Anda ingin menduplikasi baris dan menempelkannya langsung di bawah seperti saat ini, seperti di Sublime Ctrl+Shift+D, maka Anda dapat menambahkan ini ke file .vimrc Anda.

imap <S-C-d> <Esc>Yp

0
jedi

Saya suka menggunakan pemetaan ini:

:nnoremap yp Yp

karena itu membuatnya konsisten untuk digunakan bersama perintah YP asli.

0
yolenoyer