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

6

我经常使用一个被分成两个窗口的Emacs窗口框架,如下:

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

那么我发现我需要一个长的垂直窗口,可以延伸到整个框架的高度,就像这样:

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

然而,使用C-x 3只能拆分窗口1或窗口2。创建长竖形的窗口3的唯一方法是重新开始,用一个填满整个框架的单个窗口水平分割(然后再将其中一个窗口垂直分割)。这很烦人。

我想做的是拆分整个框架,而不仅仅是活动窗口。我已经搜索了解决方案,但没有成功。是否有可能创建一个新窗口,沿着Emacs框架的整个长度运行,而不考虑已经存在的任何窗口?


你尝试过终结者吗?(如果在Ubuntu上的话)?https://apps.ubuntu.com/cat/applications/precise/terminator/ - Sandeep Rajoria
@SandeepRajoria - 谢谢,但我使用 tmux 来实现那种效果。我正在寻找的是在 Emacs 内部实现这个效果的方法。 - FixMaker
3个回答

2
(split-window 
  (frame-root-window) 
  nil 'left)

1
另一个快速提示 - 记住使用C-x r w(运行命令window-configuration-to-register)分割窗口。

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)
  )
)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接