Когда я запускаю код из буфера в python-mode
, чтобы он оценивался в выделенном нижнем ipython-процессе, emacs зависает. Он зависает, если, пока код оценивает, я пытаюсь отредактировать буфер, из которого я отправил код. Я не могу переместить точку, я не могу изменить буферы, не могу напечатать, а время в строке режима не обновляется.
Что я могу сделать, чтобы это не произошло? Может ли это быть связано с настройками моего интерпретатора python-shell?
Вот мой python init
(use-package python
:mode ("\\.py\\'" . python-mode)
:interpreter ("ipython" . python-mode)
:demand
:config
(setq python-shell-interpreter "ipython"
python-shell-interpreter-args "-i"))
Спасибо!
Хорошо, поэтому я понял, в чем проблема! Я спросил об этом месяц назад и недавно решил. Если кто-то еще сталкивается с этой проблемой, я хочу, чтобы они знали, что есть решение.
Проблема возникает из eldoc-mode
и/или global-eldoc-mode
. Global-eldoc-mode
включен по умолчанию в emacs 25, и поэтому это не проблема в emacs 24, несмотря на то, что это была долговременная ошибка. Проблема заключалась в том, что emacs автоматически запрашивал документацию из процесса из-за eldoc-режима, но затем зависал, если интерпетент был занят. Эта проблема теперь исправлена в ветке emacs-25 на git, и она будет включена в следующий предварительный тест и в выпуске emacs.
Что emacs теперь делает это просто тайм-аут и останавливает режим eldoc от запроса документации, если он когда-либо истекает. Эта функция может быть сконфигурирована с помощью python-eldoc-function-timeout
python-eldoc-get-doc
и python-eldoc-function-timeout-constant
.
ура