3

私はUNIXのPythonでcursesアプリケーションを書いています。ユーザーがCYを使用してEmacsのキルリングからヤンクできるようにしたい。

もちろん、問題はCYが私のシェルに捕らえられ、それがSIGTSTPを私のプロセスに送信することです。さらに、CZはSIGTSTPも送信されるため、信号をキャッチすると、CYとCZを区別できなくなります(これがなくても、私が考えることができる唯一の解決策は非常にハックです)。

Emacsがそれを行うので、私は私が求めていることが可能であることを知っています(Pythonではない場合はCで)。キーボードから送信された特定の制御文字のシェルの特別な処理を無効にして、問題の文字をプロセスのstdinに表示するにはどうすればよいですか?

4

2 に答える 2

2

termiosモジュールとtermios(3)マニュアルページを参照してください。

于 2010-01-13T05:27:45.833 に答える
1

基本的な機能については、を使用してttyください。たとえば、呼び出すtty.setraw(sys.stdin)と、標準入力の端末がrawモードになります。

より一般的なケースでは、Pythonにはtermiosライブラリが付属していますが、使用方法を知るには、おそらくtermiosの経験が必要です。

あるいは、安価な方法は、sttytermiosへのコマンドラインインターフェイスであるにシェルアウトすることです。

于 2010-01-13T05:26:30.190 に答える