0

我有 emacs 24.1.1,它在 emacs/24.1/lisp/progmodes 中以字节编译形式随 GNU 的 python.el 一起提供。

我下载了 Fabian Gallina 的 python.el(注意同名)并将其放在 emacs/site-lisp,它是 emacs 加载路径的一部分。

当我编辑 Python 文件时,加载的是 Gallina 的模式,而不是 GNU 的。但是,尽管 Gallina 的文档建议,我没有将 (require 'python) 放入我的 .emacs 文件中。

为什么是这样?为什么 Gallina 的 python.el 优先于 GNU 的?为什么它在没有(需要'python)的情况下被加载?

4

2 回答 2

2

当您启动 Emacs 时,您在 Emacs 中使用的大多数库都不会被加载。它们是自动加载的,请参阅手册

如果您查看您的load-path变量,您会发现 site-lisp 出现在 Emacs 自己的库之前。因此,当 Emacs 加载“python.el”时,它会首先找到您的版本。

请注意,当您C-h f python-mode在运行命令之前执行此操作时,您实际上会看到 Emacs 版本命令的描述。这是作者选择相同文件名的不幸副作用。

运行python-mode一次后,帮助文本将更改以显示您的版本。

于 2012-07-09T12:02:11.303 回答
0

要从新位置加载已经加载的库,请在 Emacs 初始化文件中写入类似

(卸载功能...

(从新地方加载...

于 2013-04-07T17:26:02.017 回答