Problem z ekranem GNU podczas korzystania z Emacsa Cx Cs (bufor zapisu)


33

Kiedy używam emacsa pod GNU Screen, jeśli wywołam Cx Cs, ekran zawiesza się i nie reaguje na żadne naciśnięcia klawiatury.

Nie mogę tego odtworzyć, ale przynajmniej raz dziennie muszę zabić sesję ekranu i uruchomić ją ponownie.

Jak mogę to rozwiązać?

Dzięki


Który Unix? Istnieje wiele różnic w obsłudze urządzeń końcowych między Linuksem, BSD, Solarisem, ...
grawity

1
Właściwie używam Putty do ssh do instancji Ubuntu Server LTS.
simao

Odpowiedzi:


52

CtrlSto znak kontroli przepływu „Pauza transmisji” (XOFF) . Zwykle jest obsługiwany przez sterownik tty lub w tym przypadku ekran. Przeciwieństwem jest XON lub CtrlQ.

Po uruchomieniu Emacsa zwykle przejmuje on większość znaków specjalnych (na przykład nie tylko kontrolę przepływu, ale także zwykłe CtrlC„Przerwanie”).

  • Użyj, C-a :flow offaby wyłączyć kontrolę przepływu dla tego okna ekranu.

    Potwierdź za pomocą C-a :info(poszukaj -floww wyskakującym okienku).

  • Jeśli to nie pomoże, spróbuj stty -ixonlub stty stop undef.

    (Możesz to zrobić z osobnego okna za pomocą stty -f /dev/tty1lub stty </dev/tty1.)

W moim systemie (Linux), ekran robi zawiadomienie gdy kontrola przepływu jest wyłączona dla tty. Twój system operacyjny może mieć jednak pewne ograniczenia.


:flow offpracował dzięki! w jakiś sposób mogę to zrobić na stałe?
simao

1
@simao: Zobacz defflowna stronie podręcznika screen.
grawity

3
Opracowywanie komentarzy @simao i @ grawity - Aby trwale wyłączyć kontrolę przepływu (zakładam, że jest to pożądany wynik dla większości osób), dodaj wiersz defflow offdo ~/.screenrcpliku lub utwórz go w katalogu domowym, jeśli jeszcze nie istnieje. To wystarczyło, aby mój emacs działał poprawnie w screenoknie. To podejście należy rozważyć przed ponownym powiązaniem jakichkolwiek kluczy.
pscl

2
To rozwiązało problem dla mnie, ale muszę się jeszcze dowiedzieć, dlaczego ekran „nagle” został wprowadzony w ten tryb… być może jest pewne naciśnięcie klawisza ekranowego, które umożliwia kontrolę przepływu, który przypadkowo wpisałem… ?? ?
malcook

1
Mówimy o ekranie GNU i GNU Emacs, a oni nie wymyślili sposobu, aby oba działały płynnie? ...
yves Baumes

4

Miałem te same problemy z zablokowanym ekranem i wieloma innymi, gdy korzystałem z emacsa pod ekranem. Na przykład Ca in emacs, który prowadzi do początku linii, zostaje przechwycony przez ekran i nie działa.

ROZWIĄZANIE:

Utwórz plik .screenrc w swoim katalogu domowym za pomocą:

#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                                                                         

Następnie za każdym razem, gdy otwierasz nowy ekran zamiast Ca, musisz użyć Cu, aby wprowadzić polecenie nowego ekranu. Pozostałe dwie zmiany dotyczą kilku innych rzeczy, które musiałem zmienić, aby móc bez problemu korzystać z emacsa pod ekranem.


C-ujest ważnym kluczem do emacsa. Nie sądzę, że to dobry pomysł, ale pomysł zmiany .screenrc jest lepszą alternatywą.
vfclists
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.