制御文字のシェル傍受を無効にする方法?
質問
私はUNIXの下で、Pythonでのcursesアプリケーションを書いています。私はキルリングラのEmacsからヤンクするC-Yを使用するユーザーを有効にしたい。
トラブルはC-Yが、その後、私のプロセスにSIGTSTPを送信し、私のシェルでキャッチされていることを、もちろん、です。加えて、C-ZもSIGTSTPが送信さになるので、信号を捕捉する(でも、このことなく、私が考えることができる唯一のソリューションは非常にハックされているが)C-YとC-Zは区別できないことを意味する。
私は、Emacsはそれをしないので、私が求めていることは、(Cでない場合はPythonで)可能である知っています。どのように私は、キーボードから送られた特定の制御文字のシェルの特別な処理を無効にし、問題の文字は、プロセスの標準入力に現れる持つことができますか?
解決
termios
モジュール、およびtermios(3)
のmanページを参照してください。
他のヒント
基本的な機能については、 tty
のを使用しています。例えば、tty.setraw(sys.stdin)
を呼び出すと、rawモードに標準入力の端末を配置します。
より一般的なケースでは、Pythonはのtermiosライブラリに付属していますが、あなたおそらく、それを使用する方法を知っているのtermiosといくつかの経験を必要とします。
あるいは、安価な方法でのtermiosコマンド行インターフェースであるstty
に支払うことである。
所属していません StackOverflow