Notez que cela fonctionnera dans le terminal et le mode emacs par défaut (que vous utilisez si Ctrl+ Wsupprime le mot précédent pour vous). Cela ne fonctionnera pas en mode vi de bash et n'affectera pas vi / vim lui-même. Ce n'est donc qu'une réponse partielle mais le meilleur que cet utilisateur d'emacs puisse offrir.
Ce genre de chose est géré par la readlinebibliothèque dont le comportement peut être contrôlé via ~/.inputrc. Modifiez (ou créez, s'il n'existe pas) ~/.inputrcet ajoutez cette ligne:
"\C-H":"\C-W"
Maintenant, ouvrez un nouveau terminal et cela devrait fonctionner.
Explication
C'est en \C-Hfait Control+ BackSpace. Vous pouvez voir les codes clés en appuyant sur Ctrl+ Vpuis sur la touche que vous recherchez. Vous verrez que cela BackSpacerevient ^H.
Maintenant, il devrait être possible de lier Control+ BackSpaceà la fonction bash qui supprime le mot précédent ( backward-kill-wordou unix-word-rubout) en utilisant "\C-H": backward-kill-word. Cependant, je ne peux pas faire fonctionner cela. Cela fonctionne parfaitement avec différentes clés ( "\C-E": backward-kill-word, par exemple, fait Ctrl+ Esupprimer le mot précédent) mais pour une raison quelconque, je ne peux pas le faire fonctionner BackSpace.
Donc, comme solution de contournement, nous mappons simplement Ctrl+ Backspaceà Ctrl+ Wqui est déjà mappé backward-kill-word. Ainsi, lorsque vous appuyez sur Ctrl+ Backspace, cela sera traduit en Ctrl+ Wqui, à son tour, sera envoyé backward-kill-word. J'ai eu l'idée de cette solution de contournement de ce poste SU .