加载Emacs init文件

时间:2017-06-16 15:17:56

标签: emacs filenames

在Emacs中,我在菜单上添加一个项目来加载init.el文件,因为我几乎每天都在那里。 菜单代码工作正常,但文件没有加载。 所以在缓冲区中,为了排除故障,我输入:

(load user-init-file)

并使用C-x C-e执行它。

如果失败则结果是因为它在路径中需要双反斜杠。 user-init-file解析为"c:\steve\emacs\init.el" 但应该是`

"c:\\steve\\emacs\\init.el"

是否有一个函数已经转换为双反斜杠? 或者我如何通过搜索/替换来做到这一点?

这与我发现的其他搜索问题类似,不过这是用于替换字符串而不是缓冲区。

1 个答案:

答案 0 :(得分:2)

我想你可能只想要(load-file user-init-file) load-file 不使用load-path,并且不会尝试追加.elc.el

(如果您使用MS Windows表示法作为文件名,那么您可以通过调用file-truename来查看Emacs真正认为文件名是什么。)

如果您确实想使用load,请尝试(load user-init-file nil nil t)

load尝试展开其FILE arg,自动添加.elc.el。第四个参数是NOSUFFIX,如果非零则阻止该行为。

C-h f load

  

** load-** is a built-in function in C源代码`。

     

(load FILE &optional NOERROR NOMESSAGE NOSUFFIX MUST-SUFFIX)

     

执行名为FILE的Lisp代码文件。

     

首先尝试附加FILE的{​​{1}},然后尝试使用.elc,   然后尝试.el未修改(确切顺序的确切后缀是   由FILE确定。环境变量引用   通过调用load-suffixesFILE替换为其值。   此功能搜索substitute-in-file-name中的目录。

     

如果可选的第二个arg load-path不是NOERROR,   如果nil不存在,则报告没有错误。   在加载开始和结束时打印消息,除非   可选的第三个arg FILE不是NOMESSAGE(但是nil   覆盖那个)。

     

如果第四个arg force-load-messages 的选项不是NOSUFFIX,请勿尝试添加   指定名称nil的后缀.elc.el

     

如果第五个arg FILE的选项不是MUST-SUFFIX,请坚持   后缀nil.elc;不要只接受.el   它以其中一个后缀结尾或包含目录名。

     

如果 FILE NOSUFFIX,那么如果找不到文件,请尝试查找   通过添加非空后缀来对文件进行不同的表示   它的名字,在尝试另一个文件之前。 Emacs使用此功能查找   启用自动压缩模式时压缩的文件版本。

     

如果 nil 不是NOSUFFIX,请停用此功能。

     

nil NOSUFFIX时,此功能尝试的后缀是   由nil的返回值和列出的值给出   在get-load-suffixes。如果load-file-rep-suffixes不是MUST-SUFFIX,则只有nil   使用get-load-suffixes的返回值,即文件名是   要求具有非空后缀。

     

搜索后缀时,此功能通常在第一个时停止   一个存在的。如果选项load-prefer-newer为非零,   但是,它会尝试所有后缀,并使用最新的文件。

     

加载文件会记录其定义及其provide和   require调用load-history中的load-history元素   car是加载的文件名。请参阅load-in-progress

     

当文件正在加载时,变量   nil不是load-file-name而变量t   绑定到文件的名称。

     

如果文件存在并且加载成功,则返回pip3 install tsne