在Emacs中保留窗口布局


69

我已经以某种方式设置了我的窗户。如何保存此设置以供以后调用?

Answers:


27

查看emacs桌面。我没有可用的emacs,但我相信它是安装emacs时获得的标准lisp软件包的一部分。

使用桌面库将Emacs的状态从一个会话保存到另一个会话。保存Emacs桌面(缓冲区,缓冲区的文件名,主要模式,缓冲区位置等)后,随后的Emacs会话将重新加载保存的桌面。


2
我使用桌面保存模式来存储缓冲区,并使用工作组来存储框架和窗口的排列。github.com/tlh/workgroups.el
hekevintran 2012年

3
对于某些人来说,这个答案可能会产生误导,我相信作者将“框架”与“窗口”混淆了。链接的桌面程序包仅支持恢复框架(在emacs范围之外的窗口称为窗口),但实际的emacs窗口不会保留。也被否决,因为作者似乎没有实际尝试过。
罗伯特

不好意思,作者应该在推荐图书馆作为解决方案之前使用它。
指示器

67

有时我仍然C-x r w <register>习惯于将窗口配置存储在寄存器中,并且C-x r j <register>(其中<register>是单个字符)跳回到它。

虽然这是一种存储一些窗口配置的好方法,但您希望在一段时间后返回该窗口配置,但我发现Winner模式在某些方面更加方便。(例如,您不必麻烦命名配置)。

只需放入(winner-mode 1).emacs,绑定winner-undowinner-redo使用便捷的快捷方式(或使用恕我直言的笨拙C-c <left>C-c <right>预定义的快捷方式),您就可以切换回以前的窗口配置。

另请参阅:M-: (info "(emacs) Window Convenience")M-: (info "(emacs) RegConfig")


谢谢你让我知道。很高兴它有所帮助。
danlei 2012年

如何在赢家模式下命名窗口布局,这样您就不必遍历许多级的撤消/重做操作即可返回到想要的状态?
johnbakers 2014年

@OpenLearner嗯,如果您想命名布局,那么使用优胜者模式而不是普通寄存器会有什么好处?
丹雷2014年

31

我知道您已经接受了答案,但是,因为我以另一种方式(关于布局)理解了您的问题,并且当我寻找一些东西来保持我的emacs窗口布局时,这个问题对我出现了,我想提一下:

工作组

目的是保存和恢复方式,布局了emacs窗口等等。


这就是我在Google将我带到这个答案时所要寻找的东西。非常感谢!
保罗

workgroups.el是真棒,但它不与欧洲央行发挥好(全部):所以我仍然使用Escreen(...
jimeh


1

如果要在硬盘驱动器中保留布局,desktop-save则可以选择。

如果您需要在emacs的进程生存期内存储多个布局(例如emacsclient,使用C-x r f <register>来连接到运行时间较长的emacs守护程序),则可以使用将帧布局存储在某些寄存器中并C-x r j <register>进行还原。

由于我不时地远程连接到工作站进行操作,断开连接一会儿再稍后重新连接,所以恢复布局可以帮助我无缝地继续工作(请注意,在这种情况下,存储的窗口布局C-x r w将消失)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.