如何在启动时加载上次关闭时的多窗口布局?
如果上次关闭emacs的时候有多个子窗口,那么怎样才能在下次启动的时候恢复这些子窗口,并保持原来的布局?
是的,用前者现在更好,理由可以参考 http://emacs.stackexchange.com/questions/1/are-there-any-advantages-to-using-emacs-d-init-el-instead-of-emacs
这句指令需要在一个完整的 Emacs Session 中被执行一次,刚刚添加完之后,第一次重启 Emacs(显然)不会有效,之后才会一直有效。当然你也可以手动执行 desktop-save 来保存状态。
【 在 ChaosMage 的大作中提到: 】
: 谢谢啊
: 你说的init.el就是.emcacs吗?
: 我在.emacs中加了(desktop-save-mode),不管用啊
: ...................
我看了一下,其实session我早就装了,能够保存buffer,但是保存不了多窗口的位置。多次启动也没用。我是这么设置的:
(require 'session)
(add-hook 'after-init-hook 'session-initialize)
(setq desktop-path '("~/.emacs.d/"))
(setq desktop-dirname "~/.emacs.d/")
(setq desktop-base-file-name "emacs-desktop")
(desktop-save-mode t)
(setq desktop-restore-eager 5)
(setq desktop-lazy-verbose t)
【 在 xuchunyang (xuchunyang) 的大作中提到: 】
: 是的,用前者现在更好,理由可以参考 http://emacs.stackexchange.com/questions/1/are-there-any-advantages-to-using-emacs-d-init-el-instead-of-emacs
: 这句指令需要在一个完整的 Emacs Session 中被执行一次,刚刚添加完之后,第一次重启 Emacs(显然)不会有效,之后才会一直有效。当然你也可以手动执行 desktop-save 来保存状态。
我没有说需要用到 session.el(一个第三方插件),用 Emacs 自带的 desktop.el 是可以的,方法前面已经说了,之外你还有很多 desktop-* 的配置,我不知道干嘛的(估计也用不到,没兴趣了解)。
P.S. 定制 Emacs 的时候,不要往自己的配置加入自己都看不懂的东西。
【 在 ChaosMage 的大作中提到: 】
: 我看了一下,其实session我早就装了,能够保存buffer,但是保存不了多窗口的位置。多次启动也没用。我是这么设置的:
: (require 'session)
: (add-hook 'after-init-hook 'session-initialize)
: ...................
desktop.el可以保存和恢复窗口被分割的状态吗?也就是current-window-configuration所获得的状态信息。我知道怎么将这个状态信息保存到register中,但是我想知道怎样将这个状态信息保存到一个文件中,并且在启动emacs的时候加载这个信息。
【 在 xuchunyang (xuchunyang) 的大作中提到: 】
: 我没有说需要用到 session.el(一个第三方插件),用 Emacs 自带的 desktop.el 是可以的,方法前面已经说了,之外你还有很多 desktop-* 的配置,我不知道干嘛的(估计也用不到,没兴趣了解)。
: P.S. 定制 Emacs 的时候,不要往自己的配置加入自己都看不懂的东西。
(add-to-list 'desktop-globals-to-save 'foo)
可以在desktop里保存foo变量
直接保存退出时的状态,可以设置
(setq desktop-restore-in-current-display t)
我现在在用revive.el,也可以保存窗口,主要是在不同的project跳来跳去比较方便
提供了两个函数 current-window-configuration-printable和restore-window-config
可以自己写函数保存不同的project分割
【 在 ChaosMage (黑暗混沌大法师) 的大作中提到: 】
: desktop.el可以保存和恢复窗口被分割的状态吗?也就是current-window-configurati
: on所获得的状态信息。我知道怎么将这个状态信息保存到register中,但是我想知道怎
: 样
: 将这个状态信息保存到一个文件中,并且在启动emacs的时候加载这个信息。