Bagaimana mengkonfigurasi zsh sehingga Ctrl+ Backspacemembunuh kata sebelum point? Bagaimana cara mencapainya Ctrl+ Deletemembunuh kata demi kata?
Saya menggunakan urxvt sebagai terminal emulator.
Bagaimana mengkonfigurasi zsh sehingga Ctrl+ Backspacemembunuh kata sebelum point? Bagaimana cara mencapainya Ctrl+ Deletemembunuh kata demi kata?
Saya menggunakan urxvt sebagai terminal emulator.
Jawaban:
Saya akan fokus pada Ctrl+ Deletepertama.
Perintah zsh untuk menghapus seluruh kata ke depan disebut kill-word. Secara default itu terikat ke Alt+ D.
Cara membuat Ctrl+ Deletemelakukannya juga tergantung pada terminal emulator yang Anda gunakan.
Di sistem saya, ini berfungsi di xterm dan Gnome Terminal:
bindkey -M emacs '^[[3;5~' kill-word
dan untuk urxvt, Anda harus melakukan:
bindkey -M emacs '^[[3^' kill-word
Jika tidak berhasil, coba ketikkan Ctrl+ V Ctrl+ Deleteuntuk melihat nilainya di sistem Anda.
Anda bahkan bisa menambahkan keduanya bersama-sama ke Anda .zshrc, atau menggunakan output tput kDC5alih-alih mengkodekan urutannya.
Ctrl+ Backspacetampaknya lebih sulit.
Di sistem saya, menekan itu sama dengan menekan just Backspace.
Jika milik Anda sama, saya pikir pilihan terbaik Anda adalah menggunakan Alt+ Backspaceatau Ctrl+ Wsebagai gantinya.
Ctrl + Backspacetidak bekerja
^[[3^urxvt. Ctrl+V Ctrl+Deleteakan menunjukkan ini padamu.
'^[[3^' kill-word bindkeydan '^H' backward-kill-wordke .zshrc saya. Sekarang berhasil!
^Hatau ^?akan bekerja untuk Ctrl+Backspace. Sebenarnya ikatan seperti itu tidak mungkin. Alt+Backspaceatau Ctrl+Wmungkin pengganti yang memadai.
Saya punya ini di .Xresources:
URxvt.keysym.C-BackSpace: \033[33~
dan itu di saya .zshrc:
bindkey -M main -M viins -M vicmd '^[[33~' backward-kill-word
Ini membunuh setiap kata terpisah spasi putih. Perhatikan bahwa '^ [' adalah karakter Escape. Anda harus xrdb -load .Xresources, buka terminal dan kemudian tekan ^Vdiikuti oleh ^BackSpace.