Problème avec l'écran GNU lors de l'utilisation d'Emacs Cx Cs (tampon de sauvegarde)

33

Lorsque j'utilise emacs sous GNU Screen, si j'appelle Cx Cs, l'écran se bloque et ne répond à aucune entrée du clavier.

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

Comment puis-je résoudre ça?

Merci

simao
la source
Quel Unix? Il existe de nombreuses différences dans la gestion des terminaux entre Linux, BSD, Solaris, ...
grawity
1
J'utilise actuellement Putty pour ssh dans une instance Ubuntu Server LTS.
simao

Réponses:

52

CtrlSest le caractère de contrôle de flux "Pause transmission" (XOFF) . Habituellement, il est géré par le pilote tty, ou dans ce cas, Screen. Son opposé est XON, ou CtrlQ.

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

  • Utilisez C-a :flow offpour désactiver le contrôle de flux pour cette fenêtre d'écran.

    Confirmez avec C-a :info(recherchez -flowdans le pop-up).

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

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

Sur mon système (Linux), l' écran fait un avis lorsque le contrôle de flux est désactivé pour le téléscripteur. Cependant, votre système d'exploitation peut avoir certaines limites.

Grawity
la source
:flow offtravaillé. Merci! de quelque façon que je puisse le rendre permanent?
simao
1
@simao: Voir defflowdans la page de manuel de screen.
grawity
3
Élaboration des commentaires de @simao et @ grawity - Pour désactiver définitivement le contrôle de flux (je suppose que c'est le résultat souhaité pour la plupart des gens), ajoutez la ligne defflow offà votre ~/.screenrcfichier ou créez-en une dans votre répertoire personnel si elle n'existe pas déjà. C'était suffisant pour permettre à mes emacs de fonctionner correctement à l'intérieur d'une screenfenêtre. Cette approche doit être envisagée avant de relier des clés.
pscl
2
Cela a résolu le problème pour moi, mais je n'ai pas encore appris pourquoi l'écran "tout d'un coup" a été mis dans ce mode .... peut-être qu'il y a un coup de touche d'écran qui permet de contrôler le flux que j'ai tapé par inadvertance ... ?? ?
malcook
1
Nous parlons d'écran GNU et de GNU Emacs, et ils n'ont pas trouvé de moyen de faire fonctionner les deux de manière transparente ?? ...
yves Baumes
4

J'ai eu les mêmes problèmes avec l'écran verrouillé et bien d'autres lors de l'utilisation d'emacs sous écran. Par exemple, Ca 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 .screenrc dans votre répertoire personnel avec les éléments 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 Ca, vous devez utiliser Cu pour entrer une nouvelle commande d'écran. Les deux autres changements prennent en charge quelques autres choses que je devais changer afin de pouvoir utiliser emacs sous écran sans problème.

Panos
la source
C-uest une clé importante pour emacs. Je ne pense pas que ce soit une bonne idée, mais l'idée de changer .screenrc est la meilleure alternative.
vfclists