编写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快速地将它拼凑起来,所以说实话,我并不感到惊讶。有人可以告诉我这是否是处理此问题的首选方式,如果是,您将如何进行此操作?
答案 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文件。
仅供参考:不要求将您的代码段放在该目录中。您可以将它们放在其他地方,版本的更改不会影响它们的位置。