3 votes

Configuration de GNU screen pour une reconnaissance optimale des codes clés

Actuellement, GNU screen va perturber certaines touches, par exemple CTRL pressé en combinaison avec les touches fléchées, de sorte que par exemple lorsque vous êtes en mode insertion de vim, CTRL-PGUp va mettre en majuscule le mot suivant/courant (ou quelque chose comme ça). J'aimerais que cela fonctionne de manière assez transparente, de sorte que la fonctionnalité soit la même que lorsque ce n'est pas en cours d'exécution (à l'exception évidente des séquences de contrôle CTRL-a)... est-ce possible?

Aussi — et je soupçonne que cela soit plus ou moins un problème distinct — j'aimerais que la molette de défilement fasse défiler en arrière le journal de session plutôt que de faire défiler l'historique comme c'est le cas actuellement. Est-ce réalisable? Ou peut-être pourrait-il être configuré pour émuler une taille d'écran beaucoup plus grande que l'application de terminal sous laquelle il s'exécute pourrait conserver ce texte dans son journal de session. Dans tous les cas, l'objectif serait de pouvoir utiliser la molette de la souris et/ou Maj-fleche vers le haut pour faire défiler en arrière dans le journal de session.

2voto

raphink Points 10967

Vous pouvez changer les touches par défaut dans screen, mais vous rencontrerez le même genre de problèmes, juste avec d'autres touches. Byobu facilite la configuration des touches de base pour screen. Dans byobu, le retour en arrière dans le journal de session avec la molette de la souris est également activé, vous pouvez donc l'utiliser ou voir comment c'est configuré dans /usr/share/byobu/profiles/common.

0voto

Phil P Points 3020

Pour la roulette de défilement, vous voulez ceci dans votre fichier ~/.screenrc:

# scrollback by inhibiting switching to terminal emulator's alternate screen
termcapinfo xterm*|rxvt*|kterm*|Eterm*|putty ti@:te@
# then turn on alternate windows within screen
altscreen on

Pour les touches de curseur, cela dépend de la précision de l'émulation de votre terminal, pour le type de terminal revendiqué dans la fenêtre où vous invoquez screen, afin qu'il puisse faire son mappage correctement. De nombreux émulateurs de terminal prétendent, via $TERM, être "xterm". Mais ce n'est pas le cas et ils n'émulent pas suffisamment xterm pour revendiquer cela légitimement. Souvent, passer à quelque chose comme vt220 a été suffisant pour améliorer les choses pour moi, mais je ne me souviens pas de la situation avec screen - j'utilise directement xterm. Il existe divers tests de torture que vous pouvez exécuter pour voir dans quelle mesure votre émulateur de terminal fait semblant d'être xterm quand ce n'est pas le cas.

Pour corriger les choses après coup, utilisez la commande bindkey de screen. C'est documenté dans screen(1), et si vous utilisez ^A: (ou ce que vous avez mappé comme échappement pour screen, si ce n'est pas ^A (j'utilise ^])) alors vous pouvez taper ^A:bindkey -d pour voir la carte actuelle.

0voto

Asherah Points 141

Pas idéal, mais vous pouvez mettre ceci dans votre .vimrc en tant que solution immédiate :

nmap [5;5~ 
nmap [6;5~ 

Issu de ce rapport de bug.

Alternativement, vous pouvez dire à vim de changer sa reconnaissance de PgUp/PgDn :

set t_kN=[6;*~
set t_kP=[5;*~

Le premier est mieux, d'une certaine manière, car cela signifie que votre PgUp/PgDn fonctionnera toujours en dehors de screen.

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