Problem mit dem GNU-Bildschirm bei Verwendung von Emacs Cx Cs (Puffer sichern)

33

Wenn ich Emacs unter GNU Screen benutze, hängt der Cx Cs-Bildschirm und reagiert nicht auf Tastatureingaben.

Ich kann das nicht reproduzieren, muss aber mindestens einmal pro Tag meine Bildschirmsitzung beenden und neu starten.

Wie kann ich das lösen?

Vielen Dank

simao
quelle
Welches Unix? Es gibt viele Unterschiede im Umgang mit Endgeräten zwischen Linux, BSD, Solaris, ...
grawity
1
Ich verwende Putty, um in eine Ubuntu Server LTS-Instanz zu sshen.
Simao

Antworten:

52

CtrlSist die "Pause transmission" (XOFF) Flusskontrolle Charakter. Normalerweise wird dies vom tty-Treiber oder in diesem Fall vom Bildschirm erledigt. Das Gegenteil ist XON oder CtrlQ.

Wenn Sie Emacs starten, übernimmt es normalerweise die meisten Sonderzeichen (nicht nur die Ablaufsteuerung, sondern auch den üblichen CtrlC"Interrupt").

  • Dient C-a :flow offzum Deaktivieren der Flusssteuerung für dieses Bildschirmfenster.

    Bestätigen Sie mit C-a :info(suchen Sie -flowim Popup).

  • Wenn es nicht hilft, versuchen Sie stty -ixonoder stty stop undef.

    (Sie können dies in einem separaten Fenster mit stty -f /dev/tty1oder tun stty </dev/tty1.)

Auf meinem System (Linux), Bildschirm tut Mitteilung , wenn Flusssteuerung für den tty deaktiviert. Ihr Betriebssystem kann jedoch einige Einschränkungen aufweisen.

Grawity
quelle
:flow offhat funktioniert. Vielen Dank! Wie kann ich es dauerhaft machen?
Simao
1
@simao: Siehe defflowin der Manpage von screen.
Grawity
3
Bearbeitung der Kommentare von @simao und @ grawity - Um die Flusskontrolle dauerhaft zu deaktivieren (ich gehe davon aus, dass dies für die meisten Menschen das gewünschte Ergebnis ist), fügen Sie die Zeile defflow offzu Ihrer ~/.screenrcDatei hinzu oder erstellen Sie eine Zeile in Ihrem Ausgangsverzeichnis, falls sie noch nicht vorhanden ist. Dies war ausreichend, damit mein Emacs in einem screenFenster richtig funktionieren konnte . Dieser Ansatz sollte vor dem erneuten Binden von Schlüsseln berücksichtigt werden.
PSCL
2
Dies löste das Problem für mich, aber ich muss erst noch lernen, warum der Bildschirm "ganz plötzlich" in diesen Modus versetzt wurde. Vielleicht gibt es einen Tastenanschlag auf dem Bildschirm, der die Flusskontrolle ermöglicht, die ich versehentlich eingetippt habe. ?
Malcook
1
Wir sprechen über GNU-Bildschirm und GNU-Emacs, und sie haben keine Möglichkeit gefunden, beide nahtlos arbeiten zu lassen? ...
yves Baumes
4

Ich hatte die gleichen Probleme mit dem gesperrten Bildschirm und viele mehr, wenn ich Emacs unter dem Bildschirm verwendete. Zum Beispiel wird Ca in Emacs, das Sie an den Anfang der Zeile bringt, vom Bildschirm abgefangen und funktioniert nicht.

LÖSUNG:

Erstellen Sie eine Datei .screenrc in Ihrem Ausgangsverzeichnis mit den folgenden Angaben:

#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                                                                         

Dann müssen Sie bei jedem Öffnen eines neuen Bildschirms anstelle von Ca Cu verwenden, um einen neuen Bildschirmbefehl einzugeben. Die beiden anderen Änderungen kümmern sich um ein paar weitere Dinge, die ich ändern musste, um Emacs unter dem Bildschirm problemlos verwenden zu können.

Panos
quelle
C-uist ein wichtiger Schlüssel für Emacs. Ich halte es nicht für eine gute Idee, aber die Idee, .screenrc zu ändern, ist die bessere Alternative.
vfclists