Проблема з екраном GNU при використанні Emacs Cx Cs (збереження-буфер)


33

Коли я використовую emacs під екраном GNU, якщо я дзвоню, екран Cx Cs висить і не реагує на будь-який вклад з клавіатури.

Я не можу це відтворити, але, принаймні, один раз на день мені потрібно вбити сеанс екрана і перезапустити його.

Як я можу це вирішити?

Спасибі


Який Unix? Існує багато відмінностей у роботі з термінальними пристроями між Linux, BSD, Solaris, ...
grawity

1
Я фактично використовую Putty для ssh в екземпляр Ubuntu Server LTS.
simao

Відповіді:


52

CtrlSє символом управління потоком "Пауза передачі" (XOFF) . Зазвичай цим керує драйвер tty, або в цьому випадку Screen. Його протилежність - XON, або CtrlQ.

Коли ви запускаєте Emacs, він, як правило, переймає більшість спеціальних символів (наприклад, не лише контроль потоку, а й звичайний CtrlC"Переривання", наприклад).

  • Використовуйте, C-a :flow offщоб вимкнути контроль потоку для цього вікна екрана.

    Підтвердьте C-a :info(шукайте -flowу спливаючому вікні).

  • Якщо це не допомагає, спробуйте stty -ixonабо stty stop undef.

    (Ви можете зробити це в окремому вікні, використовуючи stty -f /dev/tty1або stty </dev/tty1.)

У моїй системі (Linux), екран робить повідомлення , коли управління потоком відключено для терміналу. Однак у вашої ОС можуть бути деякі обмеження.


:flow offпрацювали. Спасибі! я можу зробити його постійним?
simao

1
@simao: Дивіться defflowна сторінці керівництва від screen.
grawity

3
Робота над коментарями @simao та @ grawity - Щоб назавжди відключити контроль потоку (я вважаю, що це бажаний результат для більшості людей), додайте рядок defflow offу свій ~/.screenrcфайл або створіть його у вашому домашньому каталозі, якщо він ще не існує. Цього було достатньо, щоб мої emacs нормально функціонували всередині screenвікна. Цей підхід слід розглянути перед повторним перенаправленням будь-яких клавіш.
pscl

2
Це вирішило проблему для мене, але я ще не повинен дізнатися, чому "раптом" екран був переведений в цей режим .... можливо, є якийсь обрив клавіші екрана, який дозволяє контролювати потік, я ненароком набрав ... ?? ?
malcook

1
Ми говоримо про екран GNU та GNU Emacs, і вони не знайшли способу змусити обох працювати безперешкодно ?? ...
yves Baumes

4

У мене були ті ж проблеми із заблокованим екраном та багато іншого під час використання emacs під екраном. Наприклад, Ca в emacs, який приводить вас до початку рядка, перехоплюється екраном, і він не працює.

РІШЕННЯ:

Створіть у своєму домашньому каталозі файл .screenrc із наступним:

#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                                                                         

Потім кожного разу, коли ви відкриваєте новий екран замість Ca, вам потрібно використовувати Cu для введення нової команди екрана. Дві інші зміни стосуються ще кількох речей, які мені потрібно було змінити, щоб без проблем користуватися emacs під екраном.


C-uє важливим ключем для emacs. Я не думаю, що це гарна ідея, але ідея зміни .screenrc є кращою альтернативою.
vfclists
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.