我有一个文件夹/var/~/
.在配置中.emacs
我想从这个文件夹中加载一些文件.我尝试使用(load-file "/var/~/foobar.el")
,但emacs提醒File error: Cannot open load file, ~/foobar.el
.此外,我甚至无法打开此文件夹下的文件c-x c-f
.在迷你缓冲区中,路径将自动重定向到我的家.我怎么能加载该文件夹中的文件?
您需要重命名目录.
load-file
是一个简单的包装器load
,它传递给定的文件名substitute-in-file-name
.从substitute-in-file-name
(强调我的)文档字符串:
FILENAME中引用的替换环境变量.`$ FOO'其中FOO是一个环境变量名称意味着替换该变量的值.变量名应以字母而非字母,数字或下划线终止; 否则,将整个变量名称括在大括号中.
如果出现`/〜',那么通过`/'的所有FILENAME都将被丢弃.如果出现"//",则丢弃所有包含第一个"/"的内容.
换句话说,substitute-in-file-name
扔掉之前的一切/~
,变成/var/~/foo.el
了~/foo.el
.
我完全没有看到这种行为的任何原因,但它就是它,你不能(轻松地)解决它,所以重命名是摆脱这种困境的最好方法.
无论如何,这是合理的事情.~
在Unix系统上使用as directory name是个坏主意,不仅仅是针对Emacs.