我的 .emacs 文件(emacs 23.4.1)包含 python 和 latex 相关代码。两者都有 eval-after-load(我希望在 emacs 启动时只执行一次的代码)和钩子。其中一个相关的部分是:
(setq py-install-directory "~/.emacs.d/python-mode.el-6.1.3")
(add-to-list 'load-path py-install-directory)
(require 'python-mode)
(defun my-eval-after-load-python()
(setq initial-frame-alist '((top . 48) (left . 45) (width . 142) (height . 57)))
(split-window-horizontally (floor (* 0.49 (window-width)))))
(eval-after-load "python-mode" '(my-eval-after-load-python))
所有钩子都可以正常工作,但 my-eval-after-load-python 不能,这会导致每次 emacs 为每个扩展名启动时,框架都会分成两个窗口(例如:emacs file.py、emacs file.tex、emacs文件)。我试图将其更改为:
(eval-after-load "python-mode"
'(progn
(setq initial-frame-alist '((top . 48) (left . 45) (width . 142) (height . 57)))
(split-window-horizontally (floor (* 0.49 (window-width))))
,但它仍然不起作用。这里可能有一个初学者错误,但我找不到它。如何在第一次打开 python 脚本(emacs file.py)而不是每次打开新的缓冲区 file2.py 时拆分窗口?