如何让Emacs重新加载我在.emacs中更新的所有定义而不重新启动Emacs?


当前回答

你通常可以重新计算改变的区域。标记~/区域。然后使用M-x eval-region RET。这通常比重新评估整个文件更安全,因为很容易编写一个.emacs文件,在加载两次后就不能正常工作。

其他回答

有很方便

m x eval-buffer

它立即计算缓冲区中的所有代码。如果你的。emacs文件是幂等的,这是最快的方法。

如果你碰巧在Emacs内部打开了一个shell,你还可以这样做:

. ~/.emacs

这样可以节省一些按键。

除了M-x eval-buffer或M-x load-file这样的命令,您还可以从命令行重新启动一个新的Emacs实例:

emacs -q --load "init.el"

使用示例:GNU Emacs中的公司后端

键盘快捷键:

(defun reload-init-file ()
  (interactive)
  (load-file user-init-file))

(global-set-key (kbd "C-c C-l") 'reload-init-file)    ; Reload .emacs file

解决方案

M-(加载user-init-file)


笔记

你在Eval: prompt中输入它(包括括号) User-init-file是一个保存~/的变量。Emacs值(指向配置文件路径) (load)是(load-file)的较短、较旧且非交互式的版本;它不是一个Emacs命令(要在M-x中输入),而仅仅是一个Elisp函数


结论

M-: > M-x