Некоторое время я использую emacs, но не очень хорошо знаком с Lisp-программированием. Буквально через пару дней я начал писать Python на emacs. Я обнаружил, что режим python весьма полезен, и я хочу изучить его дальше. Я нашел несколько функций emacs lips в Интернете, немного подправил их, чтобы сделать интерфейс более удобным для пользователя. Я пытаюсь выполнить следующие действия
Обычно я запускаю emacs с двумя вертикальными окнами, одно с исходным кодом Python, а другое - оболочкой. Я должен иметь возможность делать следующее, используя привязки клавиатуры
- переключение между буферами (рабочий)
- выполнить регион (рабочий), но заменяет исходный буфер буфером оболочки. Я хочу выполнить выбранную область в исходном буфере оболочки.
- выполнить строку (рабочая), но та же проблема, что и выше. когда я нажимаю, строка должна выполняться в оболочке python без замены каких-либо буферов. поэтому скопируйте строку, переключитесь на оболочку python, выполните строку, вернитесь к исходному буферу python.
Я не могу выполнить действие переключения, указанное выше. Ниже приведен мой код из моего файла init.el
(defun goto-python-shell ()
"Go to the python command window (start it if needed)"
(interactive)
(setq current-python-script-buffer (current-buffer))
(if (boundp 'current-python-shell-buffer)
(switch-to-buffer-other-window current-python-shell-buffer)
(py-shell))
(end-of-buffer)
)
(defun goto-python-source ()
"switch back to source window"
(interactive)
(setq current-python-shell-buffer (current-buffer))
(switch-to-buffer-other-window current-python-script-buffer)
)
(defun py-execute-statement-and-step ()
"select a statement, submit as a region and then step forward"
(interactive)
(beginning-of-line 1)
(let ((beg (point)))
(py-next-statement 1)
; if last statement.
(if (= (point) beg) (end-of-buffer ))
; (switch-to-buffer-other-window current-python-shell-buffer)
(py-execute-region beg (point))
(switch-to-buffer-other-window current-python-script-buffer)
)
)
; some key bindings
(define-key python-mode-map (quote [f9]) 'py-execute-statement-and-step)
;(define-key python-mode-map (quote [f10]) `py-execute-region)
;py-shell-switch-buffers-on-execute
(define-key python-mode-map (quote [f10]) `py-shell-switch-buffers-on-execute)
(define-key python-mode-map (quote [f11]) `py-execute-buffer)
(define-key python-mode-map (quote [f12]) `goto-python-shell)
(define-key py-shell-map (quote [f12]) `goto-python-source)
Пожалуйста посоветуй.
Кроме того, поскольку я новичок в режиме Python, может ли кто-нибудь поделиться хорошими инициализациями для использования режима Python, аналогичными приведенным выше?
Большое спасибо за помощь.
С уважением, AJ