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 kDC5
alih-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 + Backspace
tidak bekerja
^[[3^
urxvt. Ctrl+V
Ctrl+Delete
akan menunjukkan ini padamu.
'^[[3^' kill-word bindkey
dan '^H' backward-kill-word
ke .zshrc saya. Sekarang berhasil!
^H
atau ^?
akan bekerja untuk Ctrl+Backspace
. Sebenarnya ikatan seperti itu tidak mungkin. Alt+Backspace
atau Ctrl+W
mungkin 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 ^V
diikuti oleh ^BackSpace
.