Comment configurer zsh de telle sorte que Ctrl+ Backspacetue le mot avant le point? Comment y parvenir Ctrl+ Deletetue le mot après le point?
J'utilise urxvt comme émulateur de terminal.
Comment configurer zsh de telle sorte que Ctrl+ Backspacetue le mot avant le point? Comment y parvenir Ctrl+ Deletetue le mot après le point?
J'utilise urxvt comme émulateur de terminal.
Réponses:
Je vais me concentrer sur Ctrl+ d' Deleteabord.
La commande zsh pour supprimer un mot entier vers l'avant est appelée kill-word. Par défaut, il est lié à Alt+ D.
Comment faire Ctrl+ le Deletefaire dépend aussi de l'émulateur de terminal que vous utilisez.
Sur mon système, cela fonctionne dans xterm et Gnome Terminal:
bindkey -M emacs '^[[3;5~' kill-word
et pour urxvt, vous devez faire:
bindkey -M emacs '^[[3^' kill-word
Si cela ne fonctionne pas, essayez de taper Ctrl+ V Ctrl+ Deletepour voir quelle est la valeur sur votre système.
Vous pouvez même ajouter ces deux éléments ensemble à votre .zshrc, ou utiliser la sortie de tput kDC5au lieu de coder en dur la séquence.
Ctrl+ Backspacesemble plus difficile.
Sur mon système, appuyer sur cela revient à appuyer sur juste Backspace.
Si le vôtre est le même, je pense que votre meilleure option est d'utiliser à la place Alt+ Backspaceou Ctrl+ W.
Ctrl + Backspacene fonctionne pas
^[[3^d'urxvt. Ctrl+V Ctrl+Deletevous montrerait cela.
'^[[3^' kill-word bindkeyet '^H' backward-kill-wordà mon .zshrc. Maintenant ça marche!
^Hou ^?travaillerai pour Ctrl+Backspace. En fait, il semble qu'une telle liaison ne soit pas possible. Alt+Backspaceou Ctrl+Wpourraient être des remplacements adéquats.
J'ai ceci dans mon .Xresources:
URxvt.keysym.C-BackSpace: \033[33~
et que dans mon .zshrc:
bindkey -M main -M viins -M vicmd '^[[33~' backward-kill-word
Cela tue chaque mot séparé par des espaces. Notez que '^ [' est le caractère d'échappement. Vous devez xrdb -load .Xresourcesouvrir un terminal, puis appuyez sur ^Vsuivi de ^BackSpace.