spacemacs如何加载本地的elpa库?

公司的代理不能连接elpa:443。 我尝试把子龙的elpa库同步到了本地。 然后我在defun dotspacemacs/user-init () 里添加了如下代码,是可以的。

(setq configuration-layer–elpa-archives '((“melpa-cn” . “~/mirror-elpa/melpa/”) (“org-cn” . “~/mirror-elpa/org/”) (“gnu-cn” . “~/mirror-elpa/gnu/”)))

但是如果我换成绝对路径,这个方法就失效了:

(setq configuration-layer–elpa-archives '((“melpa-cn” . “D:/mirror-elpa/melpa/”) (“org-cn” . “D:/mirror-elpa/org/”) (“gnu-cn” . “D:/mirror-elpa/gnu/”)))

怎么样才能用绝对路径呢

#--------------------已解决------------------# 改成这样就OK了。 参考文档 https://en.wikipedia.org/wiki/Path_(computing)

(setq configuration-layer--elpa-archives
    '(("melpa-cn" . "//?/f:/elpa-mirror/melpa/")
      ("org-cn"   . "//?/f:/elpa-mirror/org/")
      ("gnu-cn"   . "//?/f:/elpa-mirror/gnu/")))

你贴出的两段代码是一摸一样的,估计是贴错了吧?

没看明白。

~/mirror-elpa/melpa/ 这样的路径还不好?

改了,第二个是用的D:/ C:/这样的绝对路径,spacemacs是不识别的

额,主要是电脑是公用的,c盘占太大的地方不好。elpa也有700M左右的大小呢

那我就不清楚了。不知道用 file:// 这样的协议行不行?

Windows 的路径分隔符好像是 \,而不是 /,所以你可以试试

D:\mirror-elpa\melpa\

另外,~/mirror-elpa/melpa/ 也是绝对路径,无论当前的工作目录在哪,这个路径都表示的是同一个目录。像 ../mirror-elpa\melpa 才是相对路径。

1 个赞

多谢。看了你提供的文档,解决这个问题了 里面提到要换成这种形式的:

long UNC or UNCW, such as \?\C:\File or \?\UNC\Server\Volume\File

我该成这样就OK了。

(setq configuration-layer--elpa-archives
    '(("melpa-cn" . "//?/f:/elpa-mirror/melpa/")
      ("org-cn"   . "//?/f:/elpa-mirror/org/")
      ("gnu-cn"   . "//?/f:/elpa-mirror/gnu/")))

但是\?\UNC\Server\Volume\File 这种用法该怎么用?没闹明白

用来在 Windows 上访问远程共享文件的。