如何在启动时加载上次关闭时的多窗口布局?

35 个回复
ChaosMage
黑暗混沌大法师 2015-09-14

嗯,问题可能不在于desktop-after-read-hook,而在于整个frame的大小。

如果不使用maxframe,且启动emacs之后,不调整emacs的大小,那么启动之后就能够恢复window configuration。

但只要emacs的大小稍有调整,restore-window-configuration这个命令执行起来就会出错。

有什么办法先让整个大frame恢复到current-window-configuration-printable保存的状态,然后再做frame的拆分?

【 在 OrionNebula (nebula) 的大作中提到: 】

: 你应该研究研究desktop.el...

: 我试了一下desktop-after-read-hook是可行的

: 但你需要关闭desktop-restore-in-current-display 和desktop-restore-frames

: ...................

ChaosMage
黑暗混沌大法师 2015-09-14

关电脑,emacs总要退出吧?我的电脑不能一直开着啊。

【 在 flonk (flonk) 的大作中提到: 】

: 一个声音高叫着,放弃吧:D

: 前面有个兄弟说过,你可以试一下不要退出Emacs,我觉得这个建议比较靠谱,Emacs是我见过能无问题运行时间最长的程序之一(只比Linux Kernel稍差一点:D)

: 我以前也把窗口设置保存下来,后来觉得比较鸡肋,就放弃了

OrionNebula
nebula 2015-09-14

把desktop的frame restore关掉

然后自己手动加载frame size或者fullscreen

【 在 ChaosMage 的大作中提到: 】

: 嗯,问题可能不在于desktop-after-read-hook,而在于整个frame的大小。

: 如果不使用maxframe,且启动emacs之后,不调整emacs的大小,那么启动之后就能够恢复window configuration。

: 但只要emacs的大小稍有调整,restore-window-configuration这个命令执行起来就会出错。

: ...................

ChaosMage
黑暗混沌大法师 2015-09-14

是这么关吗?

(setq desktop-restore-in-current-display nil)

(setq desktop-restore-frames nil)

怎么手动加载frame size?我是想让emacs自动从config文件里面读入数据,然后自动加载frame size,有什么办法?

【 在 OrionNebula (nebula) 的大作中提到: 】

: 把desktop的frame restore关掉

: 然后自己手动加载frame size或者fullscreen

OrionNebula
nebula 2015-09-14

help set-frame-size

全屏的话 toggle frame fullscreen(linux/mac)

【 在 ChaosMage 的大作中提到: 】

: 是这么关吗?

: (setq desktop-restore-in-current-display nil)

: (setq desktop-restore-frames nil)

: ...................

ChaosMage
黑暗混沌大法师 2015-09-14

多谢

【 在 OrionNebula (nebula) 的大作中提到: 】

: help set-frame-size

: 全屏的话 toggle frame fullscreen(linux/mac)

OrionNebula
nebula 2015-09-14

不谢

我还是不明白为什么不用desktop恢复布局呢?

【 在 ChaosMage 的大作中提到: 】

: 多谢

ChaosMage
黑暗混沌大法师 2015-09-14

我还没搞明白怎么从desktop保存的session文件中提取信息。

你可以给出你用desktop恢复布局的命令吗?

【 在 OrionNebula (nebula) 的大作中提到: 】

: 不谢

: 我还是不明白为什么不用desktop恢复布局呢?

OrionNebula
nebula 2015-09-14

他有设置啊,直接desktop-restore-in-current-display t

重启就是关闭时候的布局

【 在 ChaosMage 的大作中提到: 】

: 我还没搞明白怎么从desktop保存的session文件中提取信息。

: 你可以给出你用desktop恢复布局的命令吗?

ChaosMage
黑暗混沌大法师 2015-09-14

还是不行。我干脆把.emacs中的所有其他命令都删除了,只留下如下命令,结果还是不能恢复布局。

(desktop-save-mode t)

(setq desktop-restore-in-current-display t)

(setq desktop-restore-frames nil)

【 在 OrionNebula (nebula) 的大作中提到: 】

: 他有设置啊,直接desktop-restore-in-current-display t

: 重启就是关闭时候的布局

OrionNebula
nebula 2015-09-14

setq desktop-restore-frames t试试,我这里并没有问题

【 在 ChaosMage (黑暗混沌大法师) 的大作中提到: 】

: 还是不行。我干脆把.emacs中的所有其他命令都删除了,只留下如下命令,结果还是不

: 能恢复布局。

: (desktop-save-mode t)

: (setq desktop-restore-in-current-display t)

: ...................

ChaosMage
黑暗混沌大法师 2015-09-14

还是不行哦。

是不是还需要其他的设置?

要不就是跟emacs的版本有关?(我的emacs的版本是Emacs 23.2.1)

【 在 OrionNebula (nebula) 的大作中提到: 】

: setq desktop-restore-frames t试试,我这里并没有问题

OrionNebula
nebula 2015-09-14

已经是 24.5 了

【 在 ChaosMage (黑暗混沌大法师) 的大作中提到: 】

: 还是不行哦。

: 是不是还需要其他的设置?

: 要不就是跟emacs的版本有关?(我的emacs的版本是Emacs 23.2.1)

: ...................

ChaosMage
黑暗混沌大法师 2015-09-14

哈哈,换了个版本真的可以了!

【 在 OrionNebula (nebula) 的大作中提到: 】

: 已经是 24.5 了

xuchunyang
xuchunyang 2015-09-14

很难想象到会有人在没有特别原因的情况下用23.x,没有内置的包管理器,Magit都依赖24.4。

【 在 ChaosMage 的大作中提到: 】

: 哈哈,换了个版本真的可以了!

ChaosMage
黑暗混沌大法师 2015-09-14

因为我不大喜欢去更新软件。。

emacs用的也不是很多,Magit我都不知道是什么。。

【 在 xuchunyang (xuchunyang) 的大作中提到: 】

: 很难想象到会有人在没有特别原因的情况下用23.x,没有内置的包管理器,Magit都依赖24.4。