如何让Emacs重新加载我在.emacs中更新的所有定义而不重新启动Emacs?
当前回答
其他人已经回答了你的问题,但我发现我通常想执行我刚刚写的行。
为此,Elisp部分的Ctrl + Alt + X工作得很好。
其他回答
除了M-x eval-buffer或M-x load-file这样的命令,您还可以从命令行重新启动一个新的Emacs实例:
emacs -q --load "init.el"
使用示例:GNU Emacs中的公司后端
C-x C-e ;; current line
M-x eval-region ;; region
M-x eval-buffer ;; whole buffer
M-x load-file ~/.emacs.d/init.el
解决方案
M-(加载user-init-file)
笔记
你在Eval: prompt中输入它(包括括号) User-init-file是一个保存~/的变量。Emacs值(指向配置文件路径) (load)是(load-file)的较短、较旧且非交互式的版本;它不是一个Emacs命令(要在M-x中输入),而仅仅是一个Elisp函数
结论
M-: > M-x
您可以使用命令load-file (M-x load-file,然后按Return两次以接受默认文件名,即当前正在编辑的文件)。
你也可以把这个点移动到任何性别p的末尾,然后按C-x, C-e来执行那个性别p。如果您只是更改一两行,通常不需要重新加载整个文件。
你可以像这样为Emacs设置键绑定:
;; Reload Emacs configuration
(defun reload-init-file ()
(interactive)
(load-file "~/.emacs"))
(global-set-key (kbd "C-c r") 'reload-init-file)