0

问题与将子目录添加到加载路径的问题有关。这是一个解决方案。不幸的是 - 它似乎恢复了加载路径。我试图自己修复它,但无法做到并且需要帮助。

所以我的问题是:我如何恢复一个load-path.

我试过(setq load-path (reverse load-path))但失败了——这表明这load-path不是一个列表......

编辑

反转加载路径确实有效 - 我不知道在发布之前尝试它时我做错了什么。

我正面临一个非常奇怪的simple.el阴影问题sunrise-commander.el- 虽然它应该在此之前加载。我想 - 问题在于我在加载路径中有目录的顺序 - 但是现在 - 当我反转load-path-progmodes目录在那个之前sunrise- 问题仍然存在。我很困惑。

然后我将重新提出我的问题:如何确保在核心 Emacs 代码之后加载给定的扩展?

编辑 2

如果影子并不意味着,我认为 - 我的实际问题是许多键绑定sunrise-commandericicles核心 emacs 函数。例如当我使用 iciclesM-p绑定到

M-p runs the command recenter-top-bottom, which is an interactive
compiled Lisp function in `window.el'.

虽然它应该是previous-history-element。同样,当我使用sunrise-commander M-u绑定到

M-u runs the command subword-backward, which is an interactive
compiled Lisp function in `subword.el'.

虽然它确实应该是sr-history-next

编辑 3

哦,我解决了!在过去,我曾经通过突触包管理器在系统范围内安装 emacs 的东西。然后我提出了一个决议——这样就不可能随身携带我的定制。之后我维护了一个本地的 emacs 和 emacs 包。所以我所要做的就是删除所有系统范围的 emacs 东西。

** 编辑 4**:

不,不是这样。它的方式 ErgoEmacs 键绑定扩展。M-n在我评论它之后,我已经M-picicles. 尽管RET在 Sunrise 中,指挥官仍然调用 dired 函数——而不是 sunrise 函数。希望以后能解决。

4

2 回答 2

2

扩展由require或加载loadload-path简单地指定将在其中搜索的文件夹列表require。想象一下,您有一个.emacs.d/vendor充满 Emacs 扩展的目录并将其添加到您的load-path(加载路径中的条目顺序无关紧要,除非相同的扩展位于其中的几个文件夹中 - 称为加载路径阴影,可以是用M-x list-load-path-shadows) 检查。此时您可以执行以下两项操作之一:

(require 'extension)
;; or
(load "~/emacs.d/vendor/extension.el)

require有一个额外的好处,它不会加载一个库两次。因此,要回答您的问题 - 确保在核心之后加载扩展(Emacs 自动加载的东西很少),它只需要在您想要加载的内容之后加载或加载。

在您进行第二次编辑后,我认为您应该看看这篇关于 Emacs 中键绑定的精彩文章

于 2012-03-07T13:06:14.650 回答
1

不确定它是否重要,但关于“我如何在 simple.el 之前加载一些东西”:你不能因为 simple.el 预加载在 `emacs' 可执行文件中,所以它在加载 .emacs 之前很久就加载了。

于 2012-03-18T03:26:11.410 回答