在Daemon上保存和恢复布局

问题描述:

我知道使用lisp的功能window-configuration-to-register和jump-to-register,还有desktop.el和winner-mode之类的软件包。在Daemon上保存和恢复布局

这些都可用于在会话期间保存布局并在稍后恢复。我可以让这些工作很好地工作。

但是,如果我在守护进程模式下运行并通过emacsclient进行连接 - 例如,如果尝试将布局保存到寄存器,例如 - 我似乎无法在单独的emacsclient中恢复此布局守护进程使用上述任何方法 - 即使它们共享完全相同的窗口。

任何人都可以提出一个lisp函数或任何其他方法来允许在关闭原始emacsclient会话后保持客户机窗口布局吗?

我应该加我没有选择,只能在控制台中使用emacs。

更新:

要半回答我的问题 -

保存帧配置寄存器似乎工作:

C-x r f – frame-configuration-to-register 
C-x r j – jump-to-register 

这是一个有点沙基 - 当你跳回到注册表中,您似乎必须使用'Cx 5 0'退出该框架....在此之后,您仍然留下一个底层客户机框架,您可以使用'Cx Cc'存在而不会终止守护进程。

如果您尝试使用其他方法直接退出寄存器存储帧,它将根本无法工作,否则您将完全终止守护进程!

所以它看起来像我跳跃到注册似乎有点拿到守护进程的所有权。

所以后续问题: 1)有没有一种方法可以让守护进程使这个游戏变得更好? 2)当emacs客户端退出或死亡时,是否有办法自动将帧保存到寄存器(这将保留在守护进程中)?

月2日更新

实际上不必用它一天 - 上面并没有真正在所有的工作 - 恢复窗口时的行为是随机的 - 有时它的工作原理,它往往是不可能退出emacsclient使用任何命令!

我经常发现自己在emacsclient上运行kill - 这反过来杀死了守护进程以及客户端!

为了回答我自己的问题,并尝试了很多方法来实现上述目标,我只找到了一种方法,即使在使用守护进程时,至少到目前为止它已证明是稳定/可靠的 - 这是使用workgroups2 pacakge可以在Melpa上找到。

我还注意到,原始的工作组包(其中workgroups2是一个更新的分叉)也适用,但具有更有限的功能。这也可以从Melpa获得。

上workgroups2关键默认命令,将你感兴趣的是:

C-c z c - create 
C-c z v - view 

我是指你的手册了解更多详情 - 我已经包括下面的2包的参考链接

https://github.com/tlh/workgroups.el http://workgroups2.readthedocs.io/en/latest/

+1

尽管此链接可能会回答问题,但最好在此处包含答案的基本部分,并提供供参考的链接。如果链接页面更改,则仅链接答案可能会失效。 - [来自评论](/ review/low-quality-posts/17876263) – OmG