了解emacs/Aquamacs加载哪种python模式以及原因

了解emacs/Aquamacs加载哪种python模式以及原因,python,emacs,python-mode,Python,Emacs,Python Mode,我有Emacs24.1.1,它与GNU的python.el一起以字节编译的形式出现在emacs/24.1/lisp/progmodes上 我下载了Fabian Gallina的python.el(注意相同的名称),并将其放在emacs/site lisp上,这是emacs加载路径的一部分 当我编辑Python文件时,加载的是Gallina的模式,而不是GNU的模式。然而,尽管Gallina的文档建议,我还没有将(require'python)放在我的.emacs文件中 为什么会这样?为什么Gal

我有Emacs24.1.1,它与GNU的python.el一起以字节编译的形式出现在emacs/24.1/lisp/progmodes上

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

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


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

在Emacs中使用的大多数库在启动Emacs时都不会加载。它们是自动加载的,请参见

如果查看
加载路径
变量,您将看到站点lisp出现 在Emacs自己的库之前。因此,当Emacs加载“python.el”时,它会发现 首先是你的版本

请注意,在运行命令之前执行C-HF python模式时, 您将实际看到Emacs版本的命令描述。这 是作者选择相同文件名的不幸副作用


一旦您运行了
python模式
一次,帮助文本将更改为显示您的版本。

要从新位置加载已加载的库,请在Emacs init文件中编写如下内容

(卸载功能


(load FROM-NEW-PLACE…

谢谢!因此,为了澄清:emacs在内部自动加载了python模式下的函数,该模式在python.el中定义,并设置了一个钩子,以便为以.py结尾的文件调用该函数。但是,由于我放置了不同的python.el(定义相同的函数)在我的加载路径中,它位于内部lisp目录之前,首先加载它。