web-dev-qa-db-fra.com

Comment supprimer des mots dans le terminal avec Ctrl-Backspace, comme dans le reste d'Ubuntu?

Lorsque je suis dans un texte dans n’importe quel programme (navigateur, éditeur de texte, IDE), je peux supprimer 3 mots en maintenant Ctrl et en appuyant Backspace 3 fois.

Cela fonctionne parfaitement dans tous les programmes, à l'exception de pour le terminal. Dans le terminal Ctrl+Backspace supprime simplement une lettre et j'ai besoin de Alt+Backspace supprimer des mots entiers.

Comme je passe constamment du terminal à d’autres programmes, c’est vraiment ennuyant.

J'ai essayé le conseil j'ai trouvé ici (créer ~/.inputrc contenant "\C-?":"\C-W") mais cela ne fonctionne pas pour moi. Maintenant, il supprime la totalité du mot lorsque je presse Backspace, mais Ctrl+Backspace enlève toujours juste une lettre.

Est-ce que quelqu'un sait comment je peux changer ce comportement pour que Ctrl+Backspace supprime le mot à gauche du curseur? Tous les conseils sont les bienvenus!

6
kramer65

Cela n’est généralement pas possible pour bash sans l’aide de l’émulateur de terminal, car Backspace is généralement le même code clé que Ctrl+? (ASCII DEL) (ou Ctrl+H - ASCII retour arrière). (Essayer Ctrl+V ensuite Backspace à vérifier.) Cela fait Ctrl+Backspace essentiellement Ctrl+Ctrl+? ... qui est juste Ctrl+? ou simplement Backspace lui-même. *)

Certains émulateurs de terminal permettent de définir des paramètres permettant d’envoyer des codes personnalisés pour diverses combinaisons de touches. En particulier, beaucoup ont une option pour personnaliser ce que Backspace envoie (pour basculer entre ASCII DEL ou le retour arrière, généralement). Vous voudrez peut-être expérimenter avec de telles options pour voir si l'émulateur de terminal envoie un code différent pour H et Ctrl+Backspace.


* Ceci vaut également pour un certain nombre de touches spéciales - Enter est Ctrl+MTab est Ctrl+IEsc est Ctrl+], etc.

3
muru