web-dev-qa-db-fra.com

Comment dissocier un raccourci dans un terminal

Ubuntu 18.04

J'utilise un terminal intégré dans mon IDE et il existe une liaison IDE Ctrl8 ce qui est très utile et pratique et je ne voudrais pas le relier. Cependant, le Ctrl8 raccourci fonctionne comme Backspace quand le terminal IDE-embedded est focalisé, ce qui est vraiment ennuyeux. de plus Ctrl8 pour le caractère en arrière, supprimer me semble inutile.

J'ai essayé d'ouvrir un terminal puis ouvert à Edit -> Préférences, puis Raccourcis mais je n'ai pas trouvé le Ctrl8 dedans là. Alors, comment simplement le désactiver? Y a-t-il un fichier de configuration?

1
St.Antario

Ctrl8 n'est pas un raccourci au sens habituel. De nombreux émulateurs de terminaux envoient classiquement ^? (alias Ctrl?) pour Ctrl8 (voir ce post U & L pour plus de détails). Ceci est pas le comportement généralement configurable, à moins de modifier le code source.

^? est le code de contrôle pour ASCII Del et ^H (aka CtrlH) pour ASCII Backspace (voir cet article informatif pour en savoir plus).

Donc, si vous ne voulez pas Ctrl8 pour supprimer un caractère, vous devrez peut-être changer:

  • le code de contrôle que votre terminal envoie pour la Backspace clé. La valeur par défaut du terminal GNOME est ^? (SUPPR. ASCII), IIRC. Vous devez donc le définir sur ^H. Dans le terminal GNOME, cela se trouve dans Modifier -> Préférences de profil -> Compatibilité :

    enter image description here

    Si votre terminal n'a pas l'option de le configurer et envoie ^? pour Backspace, alors les deux étapes suivantes seront interrompues Backspace.

  • le code de contrôle que le pseudo-TTY utilise pour erase

    Vérifiez ce que c'est maintenant:

    $ stty -a | grep erase
    intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = M-^?; eol2 = M-^?;
    swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W;
    

    Si c'est erase= ^?, vous devrez changer cela:

    stty erase '^H'
    
  • le code de contrôle que votre shell utilise pour effacer le caractère précédent. Dans bash, la valeur par défaut est les deux ^H et ^? si ^? est le caractère erase du TTY de contrôle.

    Vérifiez ce que c'est maintenant:

    $ bind -p | grep backward-del
    "\C-h": backward-delete-char
    "\C-?": backward-delete-char
    

    Supprimez la liaison \C-? et ajoutez une liaison \C-h si nécessaire:

    bind -r '\C-?'
    bind '\C-h: backward-delete-char'
    

    Ajoutez-les à votre .bashrc pour enregistrer ces paramètres.


Ou vous pouvez modifier votre raccourci IDE.

3
muru