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 kDC5invece 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 + Backspacenon funziona
^[[3^di urxvt. Ctrl+V Ctrl+Deleteti mostrerei questo.
'^[[3^' kill-word bindkeye '^H' backward-kill-wordal mio .zshrc. Ora funziona!
^Ho ^?funzionerà per Ctrl+Backspace. In effetti sembra che un tale vincolo non sia possibile. Alt+Backspaceo Ctrl+Wpotrebbero 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 ^Vseguito da ^BackSpace.