我知道使用lisp函数window-configuration-to-register和jump-to-register,以及desktop.el和winner-mode等软件包。
这些都可以用于在会话期间保存布局并在以后的某个时间恢复。我可以很好地使用它们。
但是,如果我在守护进程模式下运行并通过emacsclient连接 - 例如,如果我尝试将布局保存到寄存器中 - 我似乎无法在单独的emacsclient上恢复此布局使用上述任何方法的同一个守护进程 - 即使它们共享完全相同的窗口。
在关闭原始emacsclient会话后,是否有人可以建议使用lisp函数或任何其他方法来保留客户端窗口布局?
我应该添加我没有选择,只能在控制台中使用emacs。
更新
半回答我自己的问题 -
将帧配置保存到寄存器似乎有效:
C-x r f – frame-configuration-to-register
C-x r j – jump-to-register
它有点摇摇欲坠 - 当你跳回到寄存器时,你似乎必须使用' Cx 5 0' ....之后你仍然离开了使用基础客户端框架,您可以使用' Cx C-c'没有杀死守护进程。
如果你尝试使用其他方法直接退出寄存器存储的帧,它将完全不起作用,或者你将完全杀死该守护进程!
所以在我看来,跳转到寄存器似乎有点抓住守护进程的所有权。
所以后续问题: 1)有没有办法让守护进程更好一点? 2)当emacs客户端退出或死亡时,有没有办法自动将帧保存到寄存器(将在守护进程中保留)?
第二次更新
实际上已经使用了一天 - 以上并没有真正起作用 - 恢复窗口时行为是随机的 - 有时候它有效,而且通常不可能使用任何命令退出emacsclient!
我经常发现自己在emacsclient上运行kill - 这反过来会杀死守护进程以及客户端!
答案 0 :(得分:0)
为了回答我自己的问题,并尝试了很多方法来实现上述目标,我发现一种方法至少到目前为止已证明稳定/可靠,即使使用守护进程 - 这是使用workgroups2 pacakge Melpa上有售。
我还注意到原始工作组包(其中workgroups2是一个更新的fork)也可以工作,但功能更有限。这也可以从Melpa获得。
您感兴趣的工作组2上的关键默认命令是:
{{1}}
我向您推荐手册以获取更多详细信息 - 我在下面的参考链接中包含了2个包
https://github.com/tlh/workgroups.el http://workgroups2.readthedocs.io/en/latest/