如何防止 emacs 在启动时加载已保存的桌面?

如何防止 emacs 在启动时加载已保存的桌面?

我知道我们可以在不打开上一个会话的文件和状态的情况下启动 emacs,通过以下方式启动它:

emacs --no-desktop

但是我们如何在init.el文件中做到这一点?

答案1

只需确保desktop-save-mode在 init 文件中将其关闭即可。如果 Emacs 启动时该模式处于开启状态,则会加载您保存的桌面文件。如果该模式处于关闭状态,则不会加载。

然后,您可以随时打开该模式,以启用自动保存。或者,您也可以M-x desktop-save随时使用它来手动保存。

来自的文档字符串desktop-save-mode

当启用桌面保存模式时,Emacs 的状态会从一个会话保存到另一个会话。特别是,Emacs 将在退出时保存桌面(这可能会提示您;请参阅选项“desktop-save”)。 下次 Emacs 启动时,如果此模式处于活动状态,它将恢复桌面。


是的,我认为这种自动加载与自动保存相结合的设计有点奇怪。但这并不是desktop.el设计中最奇怪的部分。

这种区别反而属于这样的假设(内置于函数签名中),即每个目录最多有一个桌面文件。

用户可能觉得每个目录最多只有一个这样的文件很方便,这是一回事。但让函数依赖于这个假设就太疯狂了。

例如,看一下函数desktop-read。然后想象一下,你想用它来读取可能位于任何地方的桌面文件,并传递绝对文件名。我必须自己编写函数来做到这一点(bmkp-desktop-read,它以文件名作为参数)。

相关内容