Come configurare zsh in modo tale che Ctrl+ Backspaceuccida la parola prima del punto? Come raggiungerlo Ctrl+ Deleteuccide la parola dopo punto?
Uso urxvt come emulatore di terminale.
Come configurare zsh in modo tale che Ctrl+ Backspaceuccida la parola prima del punto? Come raggiungerlo Ctrl+ Deleteuccide la parola dopo punto?
Uso urxvt come emulatore di terminale.
Risposte:
Mi concentrerò su Ctrl+ Deleteprima.
Viene chiamato il comando zsh per eliminare una parola intera in avanti kill-word
. Di default è associato a Alt+ D.
Anche come fare Ctrl+ Deletefarlo dipende dall'emulatore di terminale che si sta utilizzando.
Sul mio sistema, funziona con xterm e Gnome Terminal:
bindkey -M emacs '^[[3;5~' kill-word
e per urxvt, dovresti fare:
bindkey -M emacs '^[[3^' kill-word
Se non funziona, prova a digitare Ctrl+ V Ctrl+ Deleteper vedere qual è il valore sul tuo sistema.
Potresti anche aggiungere entrambi quelli al tuo .zshrc
, o usare l'output tput kDC5
invece di codificare hard la sequenza.
Ctrl+ Backspacesembra più difficile.
Sul mio sistema, premere quello equivale a premere solo Backspace.
Se la tua è la stessa, penso che la tua migliore opzione sia usare Alt+ Backspaceo Ctrl+ Winvece.
Ctrl + Backspace
non funziona
^[[3^
di urxvt. Ctrl+V
Ctrl+Delete
ti mostrerei questo.
'^[[3^' kill-word bindkey
e '^H' backward-kill-word
al mio .zshrc. Ora funziona!
^H
o ^?
funzionerà per Ctrl+Backspace
. In effetti sembra che un tale vincolo non sia possibile. Alt+Backspace
o Ctrl+W
potrebbero essere sostituti adeguati.
Ho questo nel mio .Xresources
:
URxvt.keysym.C-BackSpace: \033[33~
e quello nel mio .zshrc
:
bindkey -M main -M viins -M vicmd '^[[33~' backward-kill-word
Questo uccide ogni parola separata da spazi bianchi. Nota che '^ [' è il carattere Escape. Devi xrdb -load .Xresources
, aprire un terminale e poi premere ^V
seguito da ^BackSpace
.