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


当前回答

有很方便

m x eval-buffer

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

其他回答

在init文件中定义它,并通过M-x reload-user-init-file调用

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

尽管M-x eval-buffer可以工作,但是在切换和其他类似的事情上可能会遇到问题。更好的方法可能是“标记”或突出显示.emacs文件中的新内容(如果只是瞎折腾,甚至可以标记缓冲区),然后是M-x eval-region。

M-x load-file
~/.emacs

您可以使用命令load-file (M-x load-file,然后按Return两次以接受默认文件名,即当前正在编辑的文件)。

你也可以把这个点移动到任何性别p的末尾,然后按C-x, C-e来执行那个性别p。如果您只是更改一两行,通常不需要重新加载整个文件。

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