2017-05-15 7 views
0

Linux(Ubuntu 16.04)を使用し、Emacs 24.5.1、Python 3.5.2、およびIPython 5.1.0を使用しています。私はしばしばpython-modeで作業し、ライブIPythonプロンプトをバッファで実行します。私は一般的に関数やループを実行し、データを探索しながら、物事を調べるために早めに分割する必要があります。Emacs:PythonプロセスがCtrl-Cで終了しないようにするには

ただし、初めてCtrl-Cを押すとうまくいき、IPythonプロセスはプロンプトに戻ります。私はCtrlキーを押しながらCキーを押す残念ながら二時間、常にプロセスはメッセージを表示して終了し、

Process Python[myscript.py] interrupt 

その後、私は再び、新しいIPythonプロセスは、同じ緩衝液中で開始されたC-c C-c場合。しかし、私のプロセスは死んでおり、変数を調べることはできず、最初から再実行しなければなりません。これは非常に迷惑です!私は検索しましたが、なぜそれが起こるのかわかりません。second Ctrl-Cを押します。

1つの可能性は、プロセスがEOFとSIGINTを受信して​​いる可能性がありますが、なぜ、どのように確実であるか、または停止する方法がわかりません。 アイデア

編集:Emacsをターミナルエミュレータで使用するのかGUIで使用するのかは関係ありません。通常、私は端末で使うのが好きです。

答えて

0

スクリプトがLinux上で実行されている場合、bashコマンドトラップを使用してシグナルをキャッチします。

+0

私は従いません。もっと説明できますか?私のPythonバッファでは、Python実行可能ファイルのパスの前にコマンド "trap"を置いていますか?それとも、emacsを実行する前にシェルで実行するのですか? – Steve

+0

私はPythonコマンドを "bash -c 'trap" echo miau "2; /home/sinclairs/.local/bin/ipython3 -i --simple-prompt'"に変更しようとしましたが、これはエラー "Warning emacs):Pythonのシェルプロンプトを検出できません。 – Steve

+0

私はそのコマンドをファイルに入れ、実行可能なパーミッションでマークし、Pythonインタプリタをそれを実行するように変更しました。今度は正しく実行されますが、2番目のCtrl-Cでは、インタプリタは "Process Python [myscript.py]がコード130で異常終了しました"というメッセージで終了します。 – Steve

関連する問題