web-dev-qa-db-fra.com

Problème avec GNU écran lors de l'utilisation de EMACS C-X C-S (Sauvegarder-tampon)

Lorsque j'utilise EMACS sous GNU écran, si j'appelle C-X C-S Screen se bloque et ne répond à aucune entrée de clavier.

Je ne peux pas reproduire cela, mais au moins une fois par jour, je dois tuer ma séance d'écran et le redémarrer.

Comment puis-je resoudre ceci?

Merci

33
simao

CtrlS est la "transmission pause" (xoff) contrôle de débit caractère. Habituellement, il est géré par le pilote TTY ou dans ce cas. Son opposé est xon, ou CtrlQ.

Lorsque vous lancez EMACS, cela prend normalement la plupart des caractères spéciaux (pas seulement le contrôle de flux, mais aussi l'habituel CtrlC "Interruption", par exemple).

  • Utilisation C-a:flow off Pour désactiver le contrôle du flux de cette fenêtre d'écran.

    Confirmer avec C-a:info (chercher -flow dans la fenêtre contextuelle).

  • Si cela n'aide pas, essayez stty -ixon ou stty stop undef.

    (Vous pouvez le faire à partir d'une fenêtre séparée en utilisant stty -f /dev/tty1 ou stty </dev/tty1.)

Sur mon système (Linux), l'écran est , indique que le contrôle de flux est désactivé pour le TTY. Votre système d'exploitation pourrait cependant avoir des limitations.

54
user1686

J'ai eu les mêmes problèmes avec l'écran verrouillé et beaucoup plus lors de l'utilisation de EMACS sous écran. Par exemple, C-A dans Emacs, qui vous amène au début de la ligne, est intercepté par l'écran et cela ne fonctionne pas.

SOLUTION:

Créez un fichier .Creenrc dans votre annuaire de domicile avec les suivants:

#Change escape character to C-u 
escape "^uu"                                                                    
#unbind ctrl+s from xoff in order to be able to search in emacs                 
bind s                                                                          
bind ^S                                                                         
#unbind ctrl+x from lockscreen in order to be able to save in emacs             
bind x                                                                          
bind ^X                                                                         

Ensuite, chaque fois que vous ouvrez un nouvel écran au lieu d'utiliser C-A, vous devez utiliser C-U pour entrer une nouvelle commande d'écran. Les deux autres changements prennent soin de quelques autres choses que je devais changer afin de pouvoir utiliser des EMACS sous écran sans problème.

4
Panos