重置定义并重新加载.emacs而不关闭,或重新启动Emacs并重新打开缓冲区

时间:2011-10-04 20:31:18

标签: emacs

据我了解,以下命令序列

M-x load-file ENTER
~/.emacs
ENTER

会重新加载我的.emacs文件。但是,根据我在其他论坛上阅读的内容,他们无法保证给我一个完全修改的配置,即他们会强制Emacs解析新配置文件并重新加载修改后的变量和函数定义,但是他们不会删除以前加载的定义。

有了这个,我的问题是:

  1. 是否可以在内存中清除Emacs的定义并重新加载.emacs而无需完全重启Emacs?
  2. 如果无法解决上述问题,是否有办法重新启动Emacs(以便我从头开始解析.emacs文件),要求它重新打开我打开的所有缓冲区?

2 个答案:

答案 0 :(得分:11)

撤消.emacs中可能已完成的所有操作是不可能的。

您可以使用desktop保存和恢复emacs会话。退出M-x desktop-save RET C-x C-c,然后使用emacs -f desktop-read恢复。

有关详细信息,请参阅(info "(emacs) Saving Emacs Sessions")。 (您也可以customize desktop-save-mode,以便此行为是默认行为。)

答案 1 :(得分:5)

这个问题是重复的,但由于它有一个已接受的答案,我将重复我对桌面库的评论,即它存储了一定数量的状态(模式和局部变量)以及它保存的每个缓冲区,以及然后在重新加载这些文件时恢复相同的状态

在你的情况下,当然,这正是你想要发生的事情。

有关恢复(重新加载)所有缓冲区的简单方法,请参阅Reload .emacs for all active buffers

结合这两种方法可以让你重启Emacs,桌面恢复文件,此时你可以恢复所有文件。