如何
'load-file'
当前缓冲区的关联文件?如何为当前缓冲区加载文件?
编辑~/.emacs.d/init.el
后,我想重新加载它,所以我发出命令M-x load-file
。
然而,问题是,有时提示开始于远离~/.emacs.d
的目录,如C:/Users/...
。
为什么此起始位置发生变化,以及如何快速地为当前缓冲区加载相关文件?
如何
'load-file'
当前缓冲区的关联文件?如何为当前缓冲区加载文件?
编辑~/.emacs.d/init.el
后,我想重新加载它,所以我发出命令M-x load-file
。
然而,问题是,有时提示开始于远离~/.emacs.d
的目录,如C:/Users/...
。
为什么此起始位置发生变化,以及如何快速地为当前缓冲区加载相关文件?
如果当前选择的窗口显示被访问的文件缓冲器要加载,那么你应该可以使用:
的Mxload-file
RETRET
load-file
将加载访问文件,如果你没有在提示符下键入一个文件名。
请注意,你所做的不是需要删除默认值(这是一个目录路径);只需键入RET
。
即使您已经做了一些更改缓冲区的default-directory
(在这种情况下,提示符的默认值可能实际上不是访问文件的父目录),情况就是如此。当你只输入RET
Emacs使用绝对路径buffer-file-name
,使得default-directory
无关紧要。
load-file
使用当前缓冲区的值default-directory
作为默认目录。如果当前缓冲区正在访问一个文件,则包含该文件的目录将作为默认文件。
可以通过设置它:
(setq-local default-directory "~/.emacs.d/")
,并将其设置为特定模式(如果有必要):
(setq-mode-local jde-mode default-directory "~/.emacs.d/")
谢谢你,很好的答案。但我希望有一些简单的组合键,如RET RET,可以用当前缓冲区加载相关文件... – Shuzheng
在调用'M-x加载文件'之前,当前选择的窗口是否有访问init.el文件的缓冲区?另外,你能否确认截断的'C:/ Users/...'路径*与'〜/ .emacs.d'不同?因为在Windows上,后者大概会生活在未指定的''' – phils