47 votes

Écran Bash vs. Gnu : Remplacer Ctrl-A par Ctrl-Shift-A

Je suis un nouvel utilisateur de GNU Screen. J'utilise Bash depuis très longtemps, et je veux essayer GNU Screen.

Comme vous le savez, GNU Screen utilise 'C-a' (Control-A) comme caractère de commande. Le problème est que cela interfère avec la fonction d'édition de ligne de Bash (et de GNU Readline), car Control-A dans Bash se déplace au début de la ligne".

Je sais que je peux définir le caractère de commande sur une autre séquence de touches J'ai l'impression que l'on peut utiliser une séquence de touches comme "^Q" ou "``" (Backtick), mais j'ai du mal à trouver une autre séquence de touches qui ne soit pas déjà utilisée (^Q est utilisé par le terminal, backtick est utilisé lors de l'écriture de Shell Shell). Il semble que le caractère de commande ne puisse comporter qu'un ou deux caractères. Puis-je définir le caractère de commande de l'écran GNU comme "Contrôle-Maj-A" ?

(Je ne peux pas encore utiliser plus d'un hyperlien, donc je ne peux pas faire de lien vers la documentation de Bash)

19voto

Chris Johnsen Points 36743

Le problème avec Control - Shift - A est que la plupart des programmes d'émulation de terminal n'envoient pas un code différent de celui envoyé par Control - A Il n'y aurait donc aucun moyen pour les écran pour faire la différence.

Vous pourrez peut-être utiliser C-q si vous le faites stty -ixon pour désactiver le "contrôle de flux logiciel" sur le tty. Je le fais généralement pour pouvoir utiliser C-s pour effectuer des recherches sur la ligne de commande.

Vous pourriez envisager le C-^, car il semble être généralement non consolidé. Il s'agit de Control - Shift - 6 sur les claviers américains, mais il peut être difficile à taper sur d'autres claviers.

La plupart des gens n'utilisent jamais le caractère de contrôle tty C-\ pour envoyer SIGQUIT. Pour l'utiliser, il faut désactiver la fonctionnalité tty avec stty quit undef et la lier en tant que clé de préfixe. C'est cependant un peu risqué, car si vous appuyez sur C-\ sur un tty où la touche quit n'a pas été désactivée avec stty vous risquez de tuer le processus d'avant-plan au lieu d'activer la fonction écran .

Je suis passé à tmux il y a quelque temps. Sa valeur par défaut est C-b parce qu'il a été développé dans le cadre de écran et n'a pas interféré avec écran L'option par défaut de la . J'ai trouvé que C-b fonctionne assez bien pour moi (j'utilise généralement les touches fléchées pour le déplacement d'un seul caractère sur la ligne de commande Shell, bien que j'utilise M-b et M-f pour me déplacer par mots).

Par ailleurs, l'auteur de tmux utilise C-a lors de ses sessions primaires et tape toujours deux fois C-a (que ce soit dans un tmux ou non). Si vous êtes prêt à adopter cette habitude, cela semble être un bon compromis puisque le second C-a devrait être interdit dans la plupart des contextes d'édition de type Emacs. Cela ne fonctionnera pas aussi bien si vous utilisez souvent des programmes/contextes en dehors de écran où le deuxième C-a ne serait pas un no-op.

Par défaut, C-a C-a est lié à l'élément autres (passage à l'écran actif le plus récent) dans la rubrique écran . Pour que C-a C-a envoie un C-a réel et que C-a o change de fenêtre, mettez ce qui suit dans votre .screenrc :

escape ^A^A
bind o other

3voto

Adam Points 69

J'utilise C-\ pour Screen et je ne peux pas recommencer.

2voto

John Points 11

J'utilise ce . screenrc

escape ^bb

Exemple : Pour se détacher, il faut taper ctrl-b d

0voto

Arcege Points 2033

J'utilise ctrl-z la plupart du temps, mais aussi ctrl-x pour certains. Je n'utilise pas souvent l'interruption "stop", mais lorsqu'elle est nécessaire, je peux taper ^zz. Cela me permet également de démarrer des sessions d'écran secondaires sur des serveurs distants qui utilisent la touche ctrl-a par défaut. Et si je démarre une troisième session (sur un troisième serveur), je peux utiliser ctrl-x. Ctrl-x est la fonction de verrouillage de l'écran, ce qui, dans de nombreux environnements, n'est pas très habituel (puisque screen est souvent exécuté dans un émulateur de terminal).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X