在我的init.el文件中避免使用elpa的版本号

时间:2013-09-05 15:02:17

标签: regex emacs elpa

编写init.el文件时,如何避免硬编码version numbers in my load paths

每次我浏览并更新我的软件包时,我都必须在init.el文件中执行相同的操作。

如果我可以做这样的事情,那就太棒了:

(setq yas-snippet-dirs
      '("~/.emacs.d/snippets/"
       (regexp-quote "~/.emacs.d/elpa/yasnippet-[.*]/snippets/"))

这对我来说不起作用,但是我再一次尝试从this example快速地将它拼凑起来,所以说实话,我并不感到惊讶。有人可以告诉我这是否是处理此问题的首选方式,如果是,您将如何进行此操作?

2 个答案:

答案 0 :(得分:3)

我认为你正在寻找这样的东西:

(setq yas-snippet-dirs
    '("~/.emacs.d/snippets/"
     (file-expand-wildcards "~/.emacs.d/elpa/yasnippet-*/snippets"))

但我认为你不需要它......

对于load-path变量... package-initialize应自动更新,因此不需要这样做。

对于安装了elpa的yas-snippet-dirs ...只需执行M-x yas-global-mode就可以将该变量的值设置为您想要的值。

答案 1 :(得分:0)

一个选项是更改elpa目录中的文件夹名称,然后查看。 。 。 autoload.el以确保没有对具有版本号的文件夹的特殊引用。 注意:您可能需要专门添加autoload.el文件,以便在启动时加载 - 在init.el文件中定义加载路径后应调用该文件。

或者,设置一个类似于Emacs源中使用的subdirs系统,以便所有指定的子文件夹都在加载路径中,但您仍需要添加新的文件夹名称,特别是在定义加载路径后调用autoload.el文件。

仅供参考:不要求将您的代码段放在该目录中。您可以将它们放在其他地方,版本的更改不会影响它们的位置。