Terminal EmacClient,在终端中还原帧中的所有窗口

Terminal EmacClient,在终端中还原帧中的所有窗口,terminal,emacs,window,frame,Terminal,Emacs,Window,Frame,对象:在终端中,启动时,在一个帧中,还原emacs工作区。i、 e.将所有“窗口”恢复到C-x C-C之前的状态 描述:通过将(桌面保存模式1)添加到init.el文件,可以在emacs GUI中简单地完成窗口恢复 但是,当作为守护进程运行emacs时,EmacClient的执行方式不同。使用相同的设置,在退出之前,它仍会记住文件的主模式以及其他缓冲区,但不会恢复窗口布局。根据默认设置,仅显示一个主窗口 我做了一些研究,使用elisp内置文档插入了一些函数/变量。我检查了(桌面保存缓冲区1),f

对象:在终端中,启动时,在一个帧中,还原emacs工作区。i、 e.将所有“窗口”恢复到C-x C-C之前的状态

描述:通过将
(桌面保存模式1)
添加到init.el文件,可以在emacs GUI中简单地完成窗口恢复

但是,当作为守护进程运行emacs时,EmacClient的执行方式不同。使用相同的设置,在退出之前,它仍会记住文件的主模式以及其他缓冲区,但不会恢复窗口布局。根据默认设置,仅显示一个主窗口

我做了一些研究,使用elisp内置文档插入了一些函数/变量。我检查了
(桌面保存缓冲区1)
framset保存
framset恢复
,但它们似乎都不起作用。我还检查了之前发布的类似问题,并使用以下脚本找到了某人的答案:

 (setq desktop-restore-forces-onscreen nil)
    (add-hook 'desktop-after-read-hook
     (lambda ()
       (frameset-restore
        desktop-saved-frameset
        :reuse-frames (eq desktop-restore-reuses-frames t)
        :cleanup-frames (not (eq desktop-restore-reuses-frames 'keep))
        :force-display desktop-restore-in-current-display
        :force-onscreen desktop-restore-forces-onscreen)))
然而,这个脚本有缺陷,它会打开一个“GUI”框架,并且无法正确关闭(每当关闭时都会自动重新打开,如果可能的话,我更喜欢在终端中打开框架,这样终端“texteditor”设置就可以了,还有一些其他的小优点)。
很抱歉提出了这个冗长的问题,如果您能提供帮助,我们将不胜感激。

我真的不知道该怎么做,但我能够将GUI框架中创建的框架集恢复到终端框架中。新帧必须足够大,否则将抛出错误。我做了
(setq foo(框架集保存(框架列表))
(pp foo(获取缓冲区“*scratch*”)
将框架集的
可读
表示转储到
*scratch*
缓冲区。然后我手工编辑它,以摆脱
(display.:0.0”)
。这似乎足以让它不强制使用GUI框架。然后我对编辑的框架集执行了
(框架集还原[frameset…])

如果查看
frameset.el
,有一些过滤函数可以通过编程方式编辑框架集。此外,如果查看注释,则会特别处理
display
参数。你应该看看那里的细节