Baru-baru ini saya membaca tentang register lubang hitam "_
yang merupakan register tulis saja.
Dokumentasi Vim menggambarkannya seperti ini:
- Daftar lubang hitam "_
Saat menulis ke register ini, tidak ada yang terjadi. Ini dapat digunakan untuk menghapus teks tanpa mempengaruhi register normal. Saat membaca dari daftar ini, tidak ada yang dikembalikan.
Dalam semua artikel dan buku yang saya baca penulis selalu menggunakan contoh yang sama yaitu menggunakan register ini ketika kita perlu menghapus beberapa teks tanpa menghapus apa yang sebelumnya kita tarik.
Saya mengerti penggunaan ini tetapi saya terkejut dengan kenyataan bahwa saya tidak dapat menemukan kasus penggunaan lain dari register ini, yang membawa saya ke 2 pertanyaan:
Apakah register ini berguna dalam beberapa kasus penggunaan lainnya ? Jika ya, yang mana?
Jika satu-satunya tujuan register ini digunakan dalam use case yang saya kutip sebelumnya, mengapa pencipta Vim memutuskan untuk menyelesaikan masalah ini dengan register seperti itu ? Maksud saya jawaban ini menunjukkan solusi untuk masalah yang menyiratkan lebih sedikit penekanan tombol daripada menggunakan
"_
. Menggunakan"0
juga dapat menghindari penggunaan register lubang hitam, jadi mengapa mereka membuatnya?
sumber
Selain menghapus teks, Anda dapat menggunakan register lubang hitam untuk menghapus register lain. Contoh:
Ini adalah salah satu cara kliring register
"a
.sumber
:call setreg('a', [])
," seperti yang saya lakukan: sayangnya, jawabannya adalah tidak. Kerjanya seperti:call setreg('a', '')
(meninggalkan"a
output dari:registers
perintah."a
output:registers
untuk yang belum tahu?Satu penggunaan praktis dalam satu fungsi. Dalam fungsi di bawah ini komentar python
#
ditambahkan dan dihapus tergantung pada hasilgetline('.')[0]
. Jika baris memiliki komentar, char#
dihapus, tetapi dalam hal ini kami tidak ingin mengacaukan dengan register default kami.sumber