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

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

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

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

1 ответ

Решение

После того, как вы выполните "Mx shell", а затем "python RET", выполните "Ch 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) файлы инициализации, чтобы попытаться найти виновника. Если после проверки файлов это неочевидно, лучше всего переименовать любые файлы инициализации, которые вы найдете, и постепенно вводить код заново, пока не найдете причину "поломки".

Другие вопросы по тегам