Bagaimana cara memotong seluruh baris dalam vim dan menempelkannya?

198

Saya tahu cara menggunakan vperintah di vim, tapi saya butuh sesuatu yang akan menghapus seluruh baris dan harus memungkinkan saya untuk menempelkan baris yang sama di tempat lain.

VivekVarade123
sumber

Jawaban:

84

Menekan Shift+ vakan memilih seluruh baris itu dan menekan dakan menghapusnya.

Anda juga dapat menggunakan dd, yang tidak mengharuskan Anda masuk ke mode visual.

Programmer123123
sumber
38
Atau Anda dapat menekan vv, atau dd, yang setara tanpa mengaktifkan mode visual yang mengganggu.
jaked122
13
ddlebih mudah daripada shift + v->d
Kolob Canyon
1
bagaimana dengan membatalkan ... Saya mencoba dokumen saya dan tidak dapat membatalkannya.
Abhishek saharn
19
Bagaimana dengan pasta ??
becko
1
Biasanya saya tidak memberikan komentar tetapi fakta bahwa orang ini tidak memberi tahu cara menempel dan masih mendapat jawaban yang diterima membuat hari saya
Cristian E.
422

dddalam mode perintah (setelah menekan escape) akan memotong baris, pdalam mode perintah akan menempel.

Memperbarui:

Untuk bonus, ddan kemudian sebuah gerakan akan memotong setara dengan gerakan itu, jadi dwakan memotong kata, d<down-arrow>akan memotong garis ini dan baris di bawah, d50wakan memotong 50 kata.

yyadalah copy line, dan berfungsi seperti dd.

D memotong dari kursor ke ujung garis.

Jika Anda telah menggunakan v(mode visual), Anda harus mencoba V(mode garis visual) dan <ctrl>v(mode blok visual).

DaedalusFall
sumber
13
Jawaban yang bagus. Saya akan menambahkan Puntuk menempelkan baris sebelum kursor dalam mode perintah. Dan <Ctrl-R>"untuk menempelkan baris dalam mode insert.
Birei
13
Dan ]pmenempel dengan indentasi yang benar. Tetapi kita harus berhati-hati untuk tidak memposting seluruh manual vim di sini :).
DaedalusFall
16

Ada beberapa cara untuk memotong garis, semua dikontrol oleh dtombol dalam mode normal. Jika Anda menggunakan mode visual ( vtombol) Anda bisa menekan dtombol begitu Anda telah menyoroti wilayah yang ingin Anda potong. Pindah ke lokasi yang ingin Anda tempel dan tekan tombolp tombol untuk menempel.

Perlu juga disebutkan bahwa Anda dapat menyalin / memotong / menempel dari register. Misalkan Anda tidak yakin kapan atau di mana Anda ingin menempelkan teks. Anda dapat menyimpan teks hingga 24 register yang diidentifikasi dengan huruf alfabet. Tambahkan saja perintah Anda dengan '(kutipan tunggal) dan huruf daftar (a sampai z). Misalnya Anda dapat menggunakan mode visual ( vtombol) untuk memilih beberapa teks dan kemudian mengetik 'aduntuk memotong teks dan menyimpannya dalam register 'a'. Setelah Anda menavigasi ke lokasi di mana Anda ingin menempelkan teks Anda akan mengetik 'apuntuk menempelkan isi register a.

dsummersl
sumber
14

Hapus baris saat ini dan salin ke clipboard:

d + d

Tempel konten clipboard Anda :

(Tahan) Shift+P

Ngarai Kolob
sumber
12

Katakanlah Anda ingin memotong garis bbbdan menempelkannya di bawah garis---

Sebelum:

aaa
bbb
---

Setelah:

aaa
---
bbb
  1. Letakkan kursor Anda di telepon bbb
  2. Tekan d+d
  3. Letakkan kursor Anda di telepon ---
  4. tekan p

masukkan deskripsi gambar di sini

customcommander
sumber
11
  1. tekan 'V' dalam mode normal untuk memilih seluruh baris
  2. lalu tekan 'y' untuk menyalinnya
  3. pergi ke tempat yang ingin Anda tempel dan tekan 'p' untuk menempel setelah kursor atau 'P' untuk menempelkannya sebelumnya.
ojas mohril
sumber
7

Cara tercepat yang saya temukan adalah melalui mode edit:

  1. Tekan yyuntuk menyalin garis.
  2. Kemudian dduntuk menghapus garis.
  3. Lalu puntuk menempelkan garis.
Vadoff
sumber
4

Hanya tiga langkah.

  1. Dalam mode perintah, buka posisi awal teks yang ingin Anda salin dan tekanv
  2. Pergi ke posisi akhir teks dan, tekand
  3. Buka tempat yang ingin Anda tempel dan, tekanp
menyimpulkan dia
sumber