6

Pythonインタープリターでコマンドを誤って入力すると、時々表示されます...。たとえば、help(random.unif入力してEnterキーを押すと、新しいコマンドを入力できません。emacsを終了し、Pythonとインタープリターを再度起動する必要があります。これを修正する方法はありますか?

4

2 に答える 2

7

Pavel Anossovが説明しているように、PythonにCTRL-Cを送信して割り込みをかけたいと考えています。

しかし、emacsでは、デフォルトでCTRL-Cはプレフィックスキーです。

幸い、python-modeやその他のモードを含むほとんどのインタラクティブシェルモードでは、CTRL-C2回続けてヒットすると、ctrl-Cがインタープリターに送信されます。または、より技術的にCTRL-CCTRL-Cは、にバインドされていcomint-interrupt-subjobます。META-X comint-interrupt-subjob(もちろん、本当に必要な場合でも、他の方法で実行できます。)結果は次のようになります。

Python 2.7.2 (default, Jun 20 2012, 16:23:33) 
[GCC 4.2.1 Compatible Apple Clang 4.0 (tags/Apple/clang-418.0.60)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> help(f
...   ^C ^C
KeyboardInterrupt
>>> 

もう1つの方法はquoted-insert、通常はにバインドされているコマンドを使用してからCTRL-Q、を押すことCTRL-Cです。ただし、これによって通常の行入力が中断されることはないため、通常は改行を続ける必要があります。結果は次のようになります。

Python 2.7.2 (default, Jun 20 2012, 16:23:33) 
[GCC 4.2.1 Compatible Apple Clang 4.0 (tags/Apple/clang-418.0.60)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> help(f
... ^C
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyboardInterrupt
>>> 
于 2013-03-04T20:36:55.330 に答える
1

通常CTRL-Cは動作します。emacsに埋め込まれたインタプリタについてはよくわかりません。または、インタプリタに待機しているもの(この例では))を提供するだけです。

于 2013-03-04T20:28:22.890 に答える