Menggunakan Crtl + Backspace atau Ctrl + Del menambahkan teks yang dihapus ke cincin pembunuhan.
Bagaimana saya bisa mencegah hal ini terjadi? Saya tidak perlu meminta setiap bagian teks dikirim ke ring bunuh ketika terhapus.
Pertanyaan sampingan: Apa tujuan dari pengaturan default ini? :)
undo
. Tapi tebakan liar.Jawaban:
Menurut dokumentasi:
Sekarang, mari kita telusuri kode sumber:
Kemudian, di dalam dokumentasi untuk
kill-region
fungsi yang kami temukan:Sekarang, jika Anda ingin melangkah lebih jauh, ini adalah beberapa fungsi yang dapat Anda gunakan, untuk menghapus tanpa menyalin ke kill-ring:
Atas perkenan ErgoEmacs
sumber
Karena Emacs 24, tanpa konfigurasi apa pun, Anda dapat menghapus teks apa pun tanpa menambahkannya ke cincin bunuh dengan memilihnya lalu menekan Backspaceatau Delete. Ketika tanda aktif, tombol-tombol ini menghapus wilayah alih-alih hanya menghapus karakter sebelum / sesudah kursor.
Yaitu, pindah ke salah satu ujung teks yang ingin Anda hapus, tekan Ctrl+ Space, pindah ke ujung lainnya, dan tekan Backspace(atau Delete) hapus wilayah yang disorot. Atau pindah ke satu ujung, tahan Shiftsaat Anda menggunakan tombol gerakan untuk pergi ke ujung lainnya, dan tekan Backspace.
sumber
Saya memiliki masalah yang sama dan menyelesaikannya dengan lebih mudah dengan cara ini:
Memanggil
(backward-delete-char-untabify 1 nil)
memberitahu Emacs untuk mundur-menghapus satu karakter (itu1
parameternya) dan tidak menyalin ke cincin (itunil
parameternya). Anda memerlukan fungsi lambda (yaitu anonim) karena Anda mengikat fungsi dengan parameter ke kunci.sumber