在Emacs中使用python-mode
时,我首先通过 C-x 3 拆分屏幕。
我希望能够 C-c!在其他窗口中启动py-shell
,而不是在当前活动的窗口中启动。如何配置Emacs来实现这一点,而无需在启动shell之前使用 C-x o 切换窗口?
我正在使用Emacs 24.3.1,我已经在~/.emacs.d
中获得了所有配置文件。
我刚刚使用python-mode
将package-install
软件包与Marmalade存储库一起安装,我还没有编辑任何与.el
相关的python-mode
文件。
答案 0 :(得分:0)
建议可让您即时重新定义其他库中的代码。
(defadvice py-shell (around auto-split activate)
(split-window-right)
(other-window)
,ad-do-it
(other-window))
变更适用。
答案 1 :(得分:0)
正如@BleedingFingers所说,你可以简单地使用一个宏并将其绑定到一个键。是否要重新使用宏的 C-c!绑定或将其绑定到另一个键,取决于您。
如果你决定使用宏选项,从Emacs开始只显示一个窗口,这里是如何继续:
F3
C-x 3
C-x o
M-x py-shell
RET
C-x o
F4
M-x name-last-kbd-macro
RET py-shell-other-window
RET
您可以将py-shell-other-window
替换为您要用于宏的任何名称。
打开配置文件,将点(光标)移动到空行并执行
M-x insert-kbd-macro
RET
这会将宏定义插入到配置文件中。
将以下代码添加到配置文件中,以将宏绑定到python-mode
中的键:
(require 'python-mode) ; Make sure python-mode-map is available
; for modification
(define-key python-mode-map (kbd "C-c !") nil) ; Unset default binding
; for C-c !
; (not necessary if you choose an
; unused binding)
(define-key python-mode-map (kbd "C-c !") 'py-shell-other-window) ; Bind macro to C-c !
标记上一步中添加的行并运行 M-x eval-region
RET ,或者只需重新启动Emacs。