Bagaimana saya bisa menghapus garis tanpa memasukkannya ke dalam buffer default saya?
Contoh:
line that will be copied.
line that I want to be substitued with the previous one.
Apa yang saya coba lakukan:
yy
dd
p
Tetapi Vim menggantikan string yang baru-baru ini disalin dengan yang dihapus (terpotong). Saya tahu bahwa saya dapat menggunakan buffer seperti, "1yy
, dd
kemudian "1p
, tapi aku selalu lupa untuk menempatkan string disalin dalam buffer maka saya perlu paste isi pertama saya (baris yang akan disalin) dan kemudian menghapus apa yang saya inginkan (baris yang saya inginkan untuk diganti dengan yang sebelumnya.)
Bagaimana saya bisa benar-benar menghapus teks di Vi (m) tanpa menyalinnya?
Pertanyaan terkait lainnya adalah bagaimana saya bisa meneruskan menghapus kata dalam mode penyisipan? Saya ingin sesuatu yang mirip dengan Ctrl+ w.
sumber
Jawaban:
Gunakan "hitam lubang mendaftar",
"_
untuk benar-benar menghapus sesuatu:"_d
.Gunakan
"_dP
untuk menempelkan sesuatu dan tetap tersedia untuk menempel lebih lanjut.Untuk pertanyaan kedua, Anda bisa menggunakan
<C-o>dw
.<C-o>
digunakan untuk menjalankan perintah normal tanpa meninggalkan mode sisipkan .Anda dapat mengatur pemetaan Anda sendiri untuk menyimpan pengetikan, tentu saja. Saya punya ini:
sumber
d
masih "memotong" danp
masih "pasta", sementara<leader>d
menghapus nyata dan<leader>p
membuang teks yang dipilih dan menempel konten dari register default.<leader>p
memungkinkan saya untuk menempelkan teks yang sama beberapa kali tanpa harus menggunakan register bernama.Daftar lubang hitam
"_
akan melakukan trik, tetapi ada solusi yang lebih baik:Ketika Anda memasukkan baris kembali dengan
p
perintah Anda menempelkan isi register default (volatile)""
, yang telah ditimpa olehdd
. Tetapi Anda masih dapat menempel dari register yank (non volatile)"0
, yang tidak akan ditimpa oleh perintah deletedd
.Jadi ini adalah perintah yang ingin Anda gunakan sesuai contoh Anda:
sumber
Itulah salah satu hal yang saya tidak suka tentang vim ... Saya akhirnya memetakan
dd
ke register lubang hitam di .vimrc saya dan hidup sudah baik sejak:sumber
v/V
denganx
juga dipotong. Dan memotong denganx
juga koheren denganCtrl + x
OS apa pun.pemetaan berikut akan menghasilkan:
Selain itu, praktik yang baik untuk menyetel kunci "leader" menjadi koma, misalnya:
2 snippet ini akan menjadikan ", d" menjadi perintah cut baru Anda.
Jika Anda ingin menggunakan pemetaan ini untuk bersama dengan konfigurasi clipboard sistem bersama, lihat detail lebih lanjut di https://github.com/pazams/d-is-for-delete
sumber
yydd
yang agak tidak berkelanjutan di jari saya;-)
.,dd
. Setelah menambahkannyannoremap <leader>dd ""dd
mulai bekerjaAnda dapat menggunakannya
"_d
untuk mencegah hal-hal yang menimpa teks yang Anda tarik. Anda dapat menyimpan teks yang ditarik atau dihapus dalam register apa pun yang Anda inginkan"
, dan_
merupakan register 'lubang hitam', tempat Anda mengirim barang yang tidak Anda pedulikan.Untuk informasi lebih lanjut, Anda dapat mengetik
:help "_
atau:help deleting
sumber
Ketika dalam mode visual,
x
akan menghapus pilihan, jadi jika Anda ingin menghapus seluruh baris, pertama tekanV
untuk memilih garis dalam mode visual dan kemudian tekanx
untuk menghapus pilihan.sumber