Я использую run-python
в GNU Emacs 24.3 для его "Inferior python shell" и пытаюсь получить поведение, подобное lisp-send-last-sexp
, которое отправляет и оценивает выражение в работающем интерпретаторе. Я пытаюсь сделать это только для одной строки за раз.
Я сократил приведенные здесь решения до следующей функции:
(add-hook 'python-mode-hook
'my-python-send-statement)
(defun my-python-send-statement ()
(interactive)
(local-set-key [S-return] 'my-python-send-statement)
(end-of-line)
(set-mark (line-beginning-position))
(call-interactively 'python-shell-send-region))
Это работает, на полпути. Когда я запускаю эту команду в несколько строк, я получаю строку из нескольких запросов >>>, и я не могу понять, почему, поскольку должна быть отправлена только одна строка. Кроме того, иногда результат не будет показан сразу, и мне придется выполнить команду дважды. Например:
9+9 # запустите команду в строке 13 .py файла,
======
# result in Python shell.
>>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> 18