如何让Emacs重新加载我在.emacs中更新的所有定义而不重新启动Emacs?
当前回答
我建议你一开始不要这样做。相反,启动一个新的Emacs会话并测试您所做的任何更改,以查看它们是否正常工作。这样做的原因是为了避免让您处于无法操作.emacs文件的状态,该文件无法加载或无法干净地加载。如果在原始会话中进行所有的编辑,在新会话中进行所有的测试,那么总有一些可靠的东西可以注释掉有问题的代码。
当您最终对更改感到满意时,继续使用其他答案之一重新加载。我个人倾向于只计算您添加/更改的部分,要做到这一点,只需突出显示添加/更改代码的区域,并调用M-x eval-region。luapyad指出,这样做可以最大限度地减少所评估的代码,最大限度地减少任何无意的副作用。
其他回答
下面就应该做到了…
M-x load-file
除了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
我目前使用的是Ubuntu 15.04 (Vivid Vervet);我喜欢为它定义一个键。
[M-insert]在我的键盘上翻译成Alt + Ins。
把这个放在你的emacs文件中:
(global-set-key [M-insert] '(lambda() (interactive) (load-file "~/.emacs")))
如果你在当前活动缓冲区中打开了.emacs文件:
M-x eval-buffer