Emacs: python-shell не отвечает на RET - PullRequest
       25

Emacs: python-shell не отвечает на RET

2 голосов
/ 26 сентября 2011

Когда я запускаю python-shell (или даже просто запускаю python из Mx shell), 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, курсор перемещаетсявниз по линии, но команда не выполняется.Единственные команды, на которые я могу заставить подпроцесс реагировать, - это прерывания, такие как CC Cc.После прерывания появляется другое приглашение (>>>), и я могу использовать Mn и Mp для навигации по линиям, которые я «ввел» ранее.

>>> test
hmmm, definitely pressed enter there
  C-c C-c
KeyboardInterrupt
>>> 

Любопытно, что это происходит как в Aquaemacs, так и в emacs -nw,Я пытался переместить мои .emacs и .emacs.d файлы, и поведение такое же.Любые идеи о том, что может быть причиной этого?

1 Ответ

3 голосов
/ 27 сентября 2011

После того, как вы выполнили «M-x shell», а затем «python RET», выполните «C-h k RET» и что тогда отображается? в буфере справки должно быть указано, что «comint-send-input» - это команда, которая выполняется для RET. Если он не показывает «comint-send-input» как команду, выполняемую «RET», то, возможно, в одном из ваших файлов инициализации есть файл (файл .emacs не единственный файл инициализации), который переопределяет эту привязку , Итак, попробуйте запустить emacs с "emacs -nw -q -no-site-file" и повторите вышеописанное. Если раньше он не отображал «comint-send-input» и теперь отображает «comint-send-input», то это определенно что-то в одном из ваших файлов инициализации. Посмотрите на свои локальные (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)) файлы инициализации, чтобы попытаться найти виновника. Если после проверки файлов неясно, лучше всего переименовать любые файлы инициализации, которые вы найдете, и постепенно повторно вводите код, пока не найдете причину «поломки».

...