当我启动python-shell(或者甚至只是从M-x shell启动python)时,Emacs给出了预期的提示:
bash-3.2$ python
Python 2.7.1 (r271:86832, Jun 16 2011, 16:59:05)
[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
但是当我在提示符下输入内容并按下RET时,光标向下移动一行,但命令不会执行。我可以让子进程响应的唯一命令是中断,如C-C C-c。中断后,会出现另一个提示(>>>),我可以使用M-n和M-p来导航我之前“输入”的行。
>>> test
hmmm, definitely pressed enter there
C-c C-c
KeyboardInterrupt
>>>
奇怪的是,这在Aquaemacs和emacs -nw中都会发生。我试过移动我的.emacs和.emacs.d文件,行为是一样的。关于可能导致这种情况的任何想法?
答案 0 :(得分:3)
执行“M-x shell”然后执行“python RET”后,执行“C-h k RET”,然后显示什么?帮助缓冲区应该说“comint-send-input”是为RET执行的命令。如果它没有显示“comint-send-input”作为“RET”执行的命令,那么你的一个init文件(.emacs文件不是唯一的init文件)中可能存在覆盖此绑定的内容。所以,然后尝试使用“emacs -nw -q -no-site-file”运行emacs并重复上述步骤。如果它之前没有显示“comint-send-input”并且现在正在显示“comint-send-input”,那么它肯定是你的一个init文件中的东西。查看您当地的(http://www.gnu.org/software/emacs/emacs-lisp-intro/elisp/Init-File.html#Init-File)和全站(http://www.gnu) .org / software / emacs / emacs -lisp-intro / html_node / Site_002dwide-Init.html#Site_002dwide-Init)init文件试图找到罪魁祸首。如果在检查文件后不明显,最好的办法是重命名找到的任何init文件,然后逐步重新引入代码,直到找到导致“破损”的原因为止。