30

Когда я использую emacs в GNU Screen, при вызове Cx Cs экран зависает и не реагирует на ввод с клавиатуры.

Я не могу воспроизвести это, но по крайней мере один раз в день мне приходится убивать сеанс экрана и перезапускать его.

Как я могу решить это?

Спасибо

2 ответа2

49

Ctrl S - символ управления потоком "Пауза передачи" (XOFF). Обычно он обрабатывается драйвером tty или в данном случае Screen. Его противоположность - XON или Ctrl Q.

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

  • Используйте Ca :flow off чтобы отключить управление потоком для этого окна.

    Подтвердите с помощью Ca :info (ищите -flow во всплывающем окне).

  • Если это не помогает, попробуйте stty -ixon или stty stop undef .

    (Вы можете сделать это из отдельного окна, используя stty -f /dev/tty1 или stty </dev/tty1 .)

В моей системе (Linux) Screen не замечает, когда управление потоком отключено для tty. Ваша ОС может иметь некоторые ограничения.

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 под экраном.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .