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 kDC5
au 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 + Backspace
ne fonctionne pas
^[[3^
d'urxvt. Ctrl+V
Ctrl+Delete
vous montrerait cela.
'^[[3^' kill-word bindkey
et '^H' backward-kill-word
à mon .zshrc. Maintenant ça marche!
^H
ou ^?
travaillerai pour Ctrl+Backspace
. En fait, il semble qu'une telle liaison ne soit pas possible. Alt+Backspace
ou Ctrl+W
pourraient ê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 .Xresources
ouvrir un terminal, puis appuyez sur ^V
suivi de ^BackSpace
.