GNU/Linux >> Tutoriels Linux >  >> Linux

changer les touches de raccourci bash telles que Ctrl-C ?

Ce ne sont pas des fonctionnalités de bash, ce sont des fonctionnalités du pilote de terminal. En tant que tels, ils sont spécifiés par stty(1) .

$ stty -a
speed 38400 baud; rows 24; columns 80; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = M-^?; eol2 = M-^?;
swtch = M-^?; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W;
lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 hupcl -cstopb cread -clocal -crtscts
-ignbrk brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff
-iuclc ixany imaxbel iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
echoctl echoke

C'est presque complètement résolu maintenant. Une partie de la solution a d'abord été portée à mon attention par MTK358 sur http://www.linuxquestions.org/questions/linux-software-2/change-bash-shortcut-keys-such-as-ctrl-c-818170/ . Il a souligné le fait (plutôt évident, à mon grand embarras) que les touches de raccourci copier-coller peuvent facilement être modifiées par les paramètres de menu de konsole. Une fois que j'ai vu cela, il a fallu environ 1 minute pour configurer Ctrl-C et Ctrl-V pour copier et coller avec le terminal.

L'autre partie de la solution aurait dû être claire à partir de la page de manuel stty, mais ce n'était pas le cas (pour moi). J'ai fini par expérimenter sur la base de divers indices, tels que ceux publiés ci-dessus.

J'ai décidé quelle touche non numérique je voulais remplacer Ctrl-C comme commande de fin. (J'ai utilisé "k"). Je n'ai jamais trouvé d'informations sur la façon de transmettre un modificateur de décalage à stty, alors j'ai abandonné cela. Avec cela décidé, tout ce que j'avais à faire était d'entrer ce qui suit sur la ligne de commande :

stty intr \^k

J'ai vérifié que tout fonctionnait comme souhaité.

Maintenant, je n'avais plus qu'à placer la seule commande ci-dessus (stty intr \^k) dans un script de démarrage. Je ne sais pas lequel est le "bon". J'aimerais que ce changement s'applique à l'ensemble du système et soit permanent.

Des suggestions quant au script dans lequel je devrais placer la commande ?

Et enfin, quant aux réponses moralisatrices, elles sont inutiles et inutiles.


Certains d'entre eux peuvent être définis à l'aide du mécanisme de raccourci clavier normal de KDE. Dans le menu "Paramètres" de Konsole, cliquez sur "Configurer les raccourcis" et vous obtiendrez une boîte de dialogue que vous pourrez utiliser pour modifier les raccourcis clavier des fonctions gérées par KDE. Cela vous permettra de remapper Ctrl + C pour copier et Ctrl + V pour coller - mais gardez à l'esprit qu'une fois que vous aurez fait cela, ces séquences de touches ne seront plus transmises au terminal, vous ne pourrez donc pas utiliser Ctrl+C pour interrompre un programme, par exemple.

Les autres fonctions sont contrôlées par le readline bibliothèque, que vous pouvez configurer en éditant le fichier ~/.inputrc . Pour obtenir Ctrl + Z pour annuler les modifications apportées à la ligne actuelle, vous voudriez ajouter

C-z: revert-line

mais cette séquence de touches est probablement déjà piégée par le terminal, vous devrez donc peut-être utiliser stty pour le délier avant qu'il ne fonctionne. Cherchez d'abord ^Z dans la sortie de stty -a (comme indiqué dans la réponse d'Ignacio) puis, par exemple, s'il apparaît dans susp = ^Z , cours

stty susp ^-

pour dissocier ce mappage de touches.

Les autres modifications que vous demandez devraient être effectuées avec stty comme le dit Ignacio, puisque ce sont des fonctions terminales, mais je ne sais pas exactement comment. Le problème est que je ne sais pas si le terminal reconnaît Shift, ou si c'est le cas, comment transmettre cette information à stty .


Linux
  1. Touches de raccourci indépendantes de la disposition du clavier ?

  2. Comment changer le shell Cron (sh en bash) ?

  3. Comment changer le raccourci Word précédent / suivant dans Bash?

  4. Conseils sur le shell Unix :modifier le shell de connexion de Bash à d'autres

  5. Comment puis-je modifier l'achèvement de l'historique bash pour terminer ce qui est déjà en ligne?

Comment changer automatiquement l'arrière-plan de GNOME par intervalles à l'aide de BASH

Modifier le raccourci clavier de l'obturateur pour prendre des captures d'écran

source conda désactiver :bash :désactiver :aucun fichier ou répertoire de ce type

clés ssh ssh-agent bash et ssh-add

Comment changer la résolution du Bash pour une VM Debian ?

Comment changer rapidement le premier mot d'une commande Bash ?