如何让Emacs重新加载我在.emacs中更新的所有定义而不重新启动Emacs?
当前回答
在init文件中定义它,并通过M-x reload-user-init-file调用
(defun reload-user-init-file()
(interactive)
(load-file user-init-file))
其他回答
其他人已经回答了你的问题,但我发现我通常想执行我刚刚写的行。
为此,Elisp部分的Ctrl + Alt + X工作得很好。
如果你在当前活动缓冲区中打开了.emacs文件:
M-x eval-buffer
尽管M-x eval-buffer可以工作,但是在切换和其他类似的事情上可能会遇到问题。更好的方法可能是“标记”或突出显示.emacs文件中的新内容(如果只是瞎折腾,甚至可以标记缓冲区),然后是M-x eval-region。
我目前使用的是Ubuntu 15.04 (Vivid Vervet);我喜欢为它定义一个键。
[M-insert]在我的键盘上翻译成Alt + Ins。
把这个放在你的emacs文件中:
(global-set-key [M-insert] '(lambda() (interactive) (load-file "~/.emacs")))
你通常可以重新计算改变的区域。标记~/区域。然后使用M-x eval-region RET。这通常比重新评估整个文件更安全,因为很容易编写一个.emacs文件,在加载两次后就不能正常工作。