Utilisation de Ctrl ou Alt ET retour arrière pour supprimer le dernier mot dans Bash

17

Sous Linux, j'ai l'habitude d'appuyer sur Ctrl- Backspacepour supprimer le dernier mot mais je ne sais pas comment le faire dans le terminal Bash.

Dans OS XI, utilisez Alt- Backspacepour faire la même chose.

Existe-t-il un moyen de faire reconnaître à Bash la combinaison Ctrl- ou Alt- de Backspacetouches pour supprimer le dernier mot?

Sous Linux, j'utilise terminatorcomme émulateur de terminal, sous OSX j'utilise iTerm2.

licorna
la source
1
Alt-⌫ alias Alt- ← alias Alt-Backspace fonctionne parfaitement bien pour moi. J'utilise Terminator 0.93.
Teddy

Réponses:

31

Vous pouvez toujours utiliser Ctrl- W. Il supprime le mot avant le curseur et fonctionne dans chaque Bash.

Voir ici pour une liste des raccourcis clavier Bash .

slhck
la source
1
Wow, cela peut avoir changé la façon dont j'utilise le terminal pour toujours. Merci!
David
4
Cela ne répond pas à la question
Sel
5

Il vous suffit de définir Option comme clé Meta dans les préférences d'iTerm ( Profils »Clés ).

backward-kill-wordest lié à Meta-Rubout(c'est-à-dire Opt-Backspace) par défaut.

La même option existe (bien que moins flexible) dans Terminal.app d'Apple.

Daniel Beck
la source
2
En fait, vous devez utiliser le paramètre "+ Esc". Le fait de le définir sur "agit comme: Meta" entraîne l' ?impression au lieu de supprimer le mot.
slhck
@slhck Pas pour moi. Mais comme les développeurs le recommandent quand même, cela ne peut pas être une mauvaise chose.
Daniel Beck
2

Dans terminator, vous pouvez utiliser le " plugin " suivant, avec

[keybindings]
    kill_word = <Control>BackSpace

dans votre fichier de configuration. Cela mappera Ctrl- Backspacevers ESCDEL, un autre raccourci pour supprimer le dernier mot.

OlivierBlanvillain
la source
Malheureusement, cela a cessé de fonctionner dans le terminateur 1.9. Pourriez-vous fournir un correctif par hasard?
Sel
1
Désolé, j'ai cessé d'utiliser terminator il y a longtemps ...
OlivierBlanvillain
2

Vous pouvez créer un fichier .inputrcdans votre répertoire personnel et ajouter ce contenu à l'intérieur:

"\C-h": backward-kill-word
Sel
la source
1
Notez que ceci et C-wdans la réponse acceptée diffèrent par ce qui est considéré comme un "mot". C-wsupprimera de la position du curseur jusqu'à ce qu'il rencontre des caractères non-espace puis un espace (c'est-à-dire, "this is a/se=weird |test"où les |marques la position du curseur donnera "this is test"). En revanche, la C-hliaison ici (qui peut être liée à l'aide bind '"\C-h": backward-kill-word"de a .bashrc) donnerait "this is a/se= test", car elle délimite essentiellement des mots sur ce qu'une variable bash ferait, pas seulement des espaces.
jeremysprofile
0

Vous pouvez simplement utiliser Alt- DELau lieu de la normale Strg- DEL.

Luca Steeb
la source