Perhatikan bahwa ini akan bekerja di terminal dan mode emacs default (yang Anda gunakan jika Ctrl+ Wmenghapus kata sebelumnya untuk Anda). Ini tidak akan berfungsi dalam mode vi bash dan tidak akan memengaruhi vi / vim itu sendiri. Karena itu, ini hanya sebagian jawaban tetapi yang terbaik yang dapat ditawarkan oleh pengguna emacs ini.
Hal semacam ini dikelola oleh readline
perpustakaan yang perilakunya dapat dikendalikan melalui ~/.inputrc
. Edit (atau buat, jika tidak ada) ~/.inputrc
dan tambahkan baris ini:
"\C-H":"\C-W"
Sekarang, buka terminal baru dan seharusnya berfungsi.
Penjelasan
The \C-H
sebenarnya Control+ BackSpace. Anda dapat melihat kode kunci dengan menekan Ctrl+ Vlalu, tombol yang Anda cari. Anda akan melihat itu BackSpacekembali ^H
.
Sekarang, itu harus mungkin untuk mengikat Control+ BackSpaceuntuk fungsi bash yang menghapus kata sebelumnya ( backward-kill-word
atau unix-word-rubout
) dengan menggunakan "\C-H": backward-kill-word
. Namun, saya tidak bisa melakukannya. Ini berfungsi dengan baik dengan tombol yang berbeda ( "\C-E": backward-kill-word
, misalnya, membuat Ctrl+ Emenghapus kata sebelumnya) tetapi untuk beberapa alasan, saya tidak bisa membuatnya bekerja BackSpace.
Jadi, sebagai solusinya, kita hanya memetakan Ctrl+ Backspaceke Ctrl+ Wyang sudah dipetakan ke backward-kill-word
. Jadi, ketika Anda menekan Ctrl+ Backspace, itu akan diterjemahkan ke Ctrl+ Wyang, pada gilirannya, akan dikirim backward-kill-word
. Saya mendapat ide untuk penyelesaian ini dari pos SU ini .