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


当前回答

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

M-x eval-buffer

其他回答

我目前使用的是Ubuntu 15.04 (Vivid Vervet);我喜欢为它定义一个键。

[M-insert]在我的键盘上翻译成Alt + Ins。

把这个放在你的emacs文件中:

(global-set-key [M-insert] '(lambda() (interactive) (load-file "~/.emacs")))

下面就应该做到了…

M-x load-file

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

M-x eval-buffer

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

解决方案

M-(加载user-init-file)


笔记

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


结论

M-: > M-x