如果我在python intepreter中输错了命令,有时我只看到...
。例如,如果我键入help(random.unif
并按Enter键,则无法输入新命令。我必须退出emacs并再次启动python和解释器。有没有办法纠正这个?
答案 0 :(得分:7)
正如Pavel Anossov所解释的那样,你想发送一个CTRL-C来中断它。
但是在emacs中,默认情况下, CTRL-C 是前缀键。
幸运的是,在大多数交互式shell模式中,包括python-mode和替代方案,连续两次命中 CTRL-C 会向解释器发送一个ctrl-C。或者,从技术上讲, CTRL-C CTRL-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
>>>
另一种方法是使用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
>>>
答案 1 :(得分:1)
通常 CTRL-C 有效。不确定emacs嵌入式解释器。或者,只需向口译员提供等待的内容(在您的示例中为)
)。