我使用pymacs在.emacs文件中加载ropemacs和rope,如here所述。

(autoload 'pymacs-load "pymacs" nil t)
(pymacs-load "ropemacs" "rope-")

但是,由于加载ropemac需要一段时间,因此它会显著减慢emacs的启动速度。
我尝试了下面的行,但是每次打开Python文件时都会加载ROPMACS。
(add-hook 'python-mode-hook (lambda () (pymacs-load "ropemacs" "rope-")))

打开python文件时是否有方法执行pymacs-load操作,但前提是尚未加载ropemac和rope?

最佳答案

在我的.emacs中,我有:

(autoload 'python-mode "my-python-setup" "" t)

在一个单独的文件my-python-setup.el中保存:
(require 'python)
(add-to-list 'auto-mode-alist '("\\.py\\'" . python-mode))
;; Initialize Pymacs
(autoload 'pymacs-apply "pymacs")
(autoload 'pymacs-call "pymacs")
(autoload 'pymacs-eval "pymacs" nil t)
(autoload 'pymacs-exec "pymacs" nil t)
(autoload 'pymacs-load "pymacs" nil t)
;; Initialize Rope
(pymacs-load "ropemacs" "rope-")
(setq ropemacs-enable-autoimport t)

这样,pymacs和ropemacs将只加载一次。当打开第一个.py文件时会发生这种情况。

08-24 18:58