【问题标题】:Emacs: How do I reverse `load-path`?Emacs:如何反转“加载路径”?
【发布时间】:2012-03-07 11:50:03
【问题描述】:

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

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

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

编辑

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

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

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

编辑 2

如果影子并不意味着,我认为 - 我的实际问题是许多 sunrise-commandericicles 键绑定到核心 emacs 功能。例如当我使用 icicles M-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-nM-picicles 工作正常。尽管 Sunrise 指挥官中的 RET 仍然调用 dired 函数——而不是日出函数。希望以后能解决。

【问题讨论】:

  • 这个问题的revertreverse 之间有错字吗?否则,您能否说明问题。我不明白。
  • 您的帖子中缺少右括号,是拼写错误还是您的问题的解释?否则,load-path 是一个列表,你的表达式应该有效(它对我有用)。也许您可以发布更多上下文:错误消息,load-path 的当前值(您可以使用 C-h v load-path 获取)
  • 顺便说一句,nreverse 值得了解。
  • 我不认为影子意味着你似乎认为它意味着什么。你的实际问题是什么?

标签: emacs elisp load-path icicles


【解决方案1】:

扩展由requireload 加载。 load-path 只是指定require 将在其中搜索的文件夹列表。想象一下,你有一个充满 Emacs 扩展的 .emacs.d/vendor 目录,它被添加到你的 load-path (加载路径中的条目顺序无关紧要,除非相同的扩展存在于那里的几个文件夹中 - 称为加载 -路径阴影,可以使用M-x list-load-path-shadows 进行检查)。此时您可以做以下两件事之一:

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

require 有一个额外的好处,它不会加载库两次。所以,回答你的问题 - 确保在 core 之后加载扩展(很少有东西是由 Emacs 自动加载的)它只需要在你想要加载的东西之后被加载或加载之后。

在您进行第二次编辑后,我认为您应该看看 this great article on keybindings in Emacs

【讨论】:

  • +1 不同的模式有不同的键绑定,M-u 绑定应该只发生在 Sunrise 缓冲区中(或者,更痛苦的是,主要模式使用 Sunrise 键映射的缓冲区)。
  • Sunrise 的按钮在 Sunrise 中对我不起作用。不在文本模式下。同样在 icicles 中 - 当我在 minibuffer 中时 - M-n 调用键盘退出 - 在 messages 中可以看到...我开始歇斯底里地开始所有这些加载路径业务。实际上我一直认为在加载路径中放置 dirs 并不重要。无论如何感谢您的回复。 Sunrise 和 Icicles 被遮住了 - 即使我将相应的行放在 .emacs 的最末端
  • 您可能应该将您的.emacs 缩减为仅日出和冰柱配置以查明确切的问题 - 坦率地说,我不明白这些问题。主要或次要模式似乎不太可能将某些东西绑定到 M-p 或 M-u 并且它将是一些常规的 Emacs 命令而不是模式中的某些东西......
  • 请参阅问题的编辑 3。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2011-08-14
    • 1970-01-01
    • 2016-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多