1

python-mode在 Emacs 中使用时,我首先通过C-x 3. 我希望能够在另一个C-c !窗口中启动,而不是在当前活动的窗口中启动。如何配置 Emacs 来做到这一点,而不必在启动 shell 之前切换窗口?py-shellC-x o

我使用的是 Emacs 24.3.1,我的所有配置文件都保存在~/.emacs.d.

我刚刚python-mode使用 Marmalade 存储库安装了这个包package-install,我还没有编辑任何.elpython-mode.

4

2 回答 2

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。

庆祝 :)

于 2014-01-10T23:50:35.340 回答
0

Advice 让您可以即时重新定义其他库中的代码。

(defadvice py-shell (around auto-split activate)
    (split-window-right)
    (other-window)
    ,ad-do-it
    (other-window))

变化适用。

于 2014-01-10T21:28:47.977 回答