如果我在 EMACS 下使用 python 解释器,那么我有多种评估代码的方法,例如只需在 REPL 中输入它(劣质 Python)如果该代码也产生很多输出,然后 EMACS 卡住固体,必须被杀死。
例如,这会做到这一点。
[[[False] * 200 for i in range(3)] for j in range(200)]
如果 python 在终端中运行,则完全没有问题。它只是打印出 False 120000 次,然后返回提示。
有什么方法可以限制劣质 python 进程产生的输出量,或者让 EMACS 在面对大量输出时不会爆炸?
例如,在 clojure 中,我可以使用 *print-length* 和 *print-level* 来解决这个完全相同的问题。
最佳答案
comint-mode 的重复计算被认为是原因。
关于python-mode.el 查了一个WRT的解决方案 https://bugs.launchpad.net/python-mode/+bug/1253907 这使得它在源缓冲区中的打印内部工作,而不是在 shell 中工作。
它带有几个以“py-fast-”为前缀的新命令。
或者,新选项 py-fast-process-p
必须是“t”。
也许试一试:
https://launchpad.net/python-mode
但是,使用 python-mode.el 和 M-x IPython RET 时,它不会发生,运行速度几乎与在控制台中一样快。
顺便说一句,不需要 ipython.el。
关于python - 我可以在使用 Emacs 和 Python 时阻止 REPL 锁定吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20128425/