最大化/恢复emacs中的窗口

时间:2011-10-03 23:18:30

标签: emacs lisp elisp

好吧,也许这对于超级用户网站来说可能更像一个问题,但我认为在stackoverflow上会有更多的emacs用户。

基本上我经常将我的emacs拆分成大约4个窗口,所以我可以同时查看一堆缓冲区..但是我希望能够使用Cx 1(使窗口与emacs的大小相同)然后以某种方式恢复到我刚刚看到的漂亮的4窗口布局。

有没有一种简单的方法可以做到这一点,还是需要一些elisp / lisp(注意:我不知道任何elisp。)

谢谢! 约翰。

6 个答案:

答案 0 :(得分:22)

尝试winner-mode

启用优胜者模式后,您可以使用 C-c < left> 恢复以前的窗口配置。

您可以反复键入它以退回窗口配置历史记录,这样即使存在多个干预更改,您也是安全的。

C-c < right> 将您(直接)返回到最新的配置。

答案 1 :(得分:10)

我确信有一些不同的解决方案,但我使用:

用于存储窗口配置的

Cx rwx 和用于恢复它的 Cx rjx ,其中 x 是用于存储它的寄存器的名称

然后,我也喜欢winner-mode,它允许使用winner-undowinner-redo切换回以前的窗口配置(我绑定到 C - ^ 和< kbd> Cc ^ 因为我无法忍受默认设置的绑定 Cc&lt; left&gt; Cc&lt; right&gt;

答案 2 :(得分:3)

(winner-mode 1)是我首选的通用解决方案(我会敦促任何尚未使用它的人立即将其添加到他们的init文件中),但是也值得指出这个特定问题(最大化单个窗口和然后返回到先前的配置),只需创建一个新框架就可以很好地工作。

  • C-x 5 2 创建新框架。
  • C-x 5 0 删除它并返回原始帧。

在终端中,它完全无缝。使用GUI Emacs,如果您的新帧自动全屏(或者您更喜欢它们),那就没问题了,但如果您手动调整它们的大小,那就没那么好了。

答案 3 :(得分:1)

您还应该在要关闭的窗口中尝试C-x 0,因为它会关闭该特定窗口而不关闭任何其他窗口。我认为大多数人在大多数情况下都会使用C-x 1

答案 4 :(得分:0)

我使用escreen.el进行多个工作区管理,但作为副作用,每个工作区都会记住窗口配置。所以,你可能会发现它是一个有用的包。

其他人建议elscreen而不是escreen,但我还没有使用过这个软件包。所以我不能说它是否也保留了工作空间的窗口配置。

答案 5 :(得分:0)

http://www.emacswiki.org/emacs/frame-cmds.el

请参阅命令maximize-framerestore-frame(又名toggle-frame)。还有命令maximize-frame-horizontallymaximize-frame-verticallyrestore-frame-horizontallyrestore-frame-vertically