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


当前回答

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

emacs -q --load "init.el"

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

其他回答

M-x load-file
~/.emacs

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

你可以像这样为Emacs设置键绑定:

;; Reload Emacs configuration
(defun reload-init-file ()
  (interactive)
  (load-file "~/.emacs"))

(global-set-key (kbd "C-c r") 'reload-init-file)

下面就应该做到了…

M-x load-file

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