web-dev-qa-db-ja.com

GNU Emacs C-x C-s(保存バッファー)使用時の画面の問題

GNU Screenでemacsを使用しているときに、C-xを呼び出すと、C-s画面がハングし、キーボード入力に応答しません。

これを再現することはできませんが、少なくとも1日に1回、画面セッションを強制終了して再起動する必要があります。

どうすればこれを解決できますか?

ありがとう

33
simao

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)では、ttyのフロー制御が無効になっていると画面に気づきます。ただし、OSにはいくつかの制限がある場合があります。

54
user1686

画面の下でemacsを使用すると、ロックされた画面で同じ問題が発生しました。たとえば、emacsのC-aは、行の先頭に移動しますが、画面によって傍受され、機能しません。

解決:

次のコマンドを使用して、ホームディレクトリに.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                                                                         

次に、C-aを使用する代わりに新しい画面を開くたびに、C-uを使用して新しい画面コマンドを入力する必要があります。他の2つの変更は、画面下でemacsを問題なく使用できるようにするために、変更が必要ないくつかの変更を処理します。

4
Panos