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


当前回答

有很方便

m x eval-buffer

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

其他回答

其他人已经回答了你的问题,但我发现我通常想执行我刚刚写的行。

为此,Elisp部分的Ctrl + Alt + X工作得很好。

键盘快捷键:

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

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

如果你在当前活动缓冲区中打开了.emacs文件:

M-x eval-buffer

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

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

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

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