Emacs:如何轻松创建一个跨越两个现有水平窗口的新窗口?

时间:2014-06-03 12:49:55

标签: emacs

我经常有一个Emacs框架被分成两个窗口,如下所示:

--------------------------------
|                              |
|          Window 1            |
|                              |
|------------------------------|
|                              |
|          Window 2            |
|                              |
--------------------------------

然后我发现自己需要一个长的垂直窗口,它可以在框架的整个高度上运行,如下所示:

--------------------------------
|         |                    |
| W'dow 3 |      Window 1      |
|         |                    |
|         |--------------------|
|         |                    |
|         |      Window 2      |
|         |                    |
--------------------------------

然而,使用 Cx 3 它只能分割窗口1或窗口2.创建长垂直窗口3的唯一方法是再次使用单个窗口填充整个框架,并将其水平分割(然后将其中一个窗口再次垂直拆分)。这很烦人。

我想我要做的就是拆分整个框架,而不仅仅是活动窗口。我用Google搜索了解决方案,但没有成功。是否可以创建一个在Emacs框架的整个长度上运行的新窗口,无论其中是否存在任何窗口?

2 个答案:

答案 0 :(得分:1)

这有效:

(defun complex-split ()
  (interactive)
  (let (
        (thisBuffer (buffer-name))
        otherBuffer
        )
  (other-window 1)
  (setq otherBuffer (buffer-name))
  (delete-other-windows)
  (split-window-horizontally)
  (other-window 1)
  (split-window-vertically)
  (switch-to-buffer thisBuffer)
  (other-window 1)
  (switch-to-buffer otherBuffer)
  )
)

答案 1 :(得分:1)

另一个快速提示 - 记住使用C-x r w拆分窗口(运行命令窗口 - 配置到注册)。