emacs拆分为3个偶数窗口

时间:2010-04-05 07:43:37

标签: emacs

快速提问:如何指定拆分窗口中的字符数? C-x-3将我的窗口均匀地分成两个窗口,但随后的分割会将其中一个窗口分成两半。我想要3个相同大小的窗户。文档说我应该能够将左缓冲区的字符数指定为参数,但我似乎无法使其工作。任何语法的想法?

感谢。

8 个答案:

答案 0 :(得分:240)

C-x 3两次后跟C-x +同等大小的所有窗口。

答案 1 :(得分:21)

要指定拆分窗口中的字符数,请执行以下操作:

C-u 字符数 C-x 3

答案 2 :(得分:15)

我的.emacs中有以下内容:

(defadvice split-window-horizontally (after rebalance-windows activate)
  (balance-windows))
(ad-activate 'split-window-horizontally)

这使得emacs在每次调整大小后调用rebalance-windows(默认情况下绑定的C-x +)。这不是我想要的,但是我想要它比默认行为更频繁。

答案 3 :(得分:10)

添加.emacs。我映射到C-x 4,但是有人有更好的想法吗?

(defun split-3-windows-horizontally-evenly ()
  (interactive)
  (command-execute 'split-window-horizontally)
  (command-execute 'split-window-horizontally)
  (command-execute 'balance-windows)
)

(global-set-key (kbd "C-x 4") 'split-3-windows-horizontally-evenly)

答案 4 :(得分:4)

(defun wenshan-split-window-vertical (&optional wenshan-number)
"Split the current window into `wenshan-number' windows"
  (interactive "P")
  (setq wenshan-number (if wenshan-number
                           (prefix-numeric-value wenshan-number)
                         2))
  (while (> wenshan-number 1)
    (split-window-right)
    (setq wenshan-number (- wenshan-number 1)))
  (balance-windows))

此功能可用于将当前窗口分割为N个窗口,您可以输入“C-u 3 M-x wenshan-split-window-vertical”来实现您想要的效果。

答案 5 :(得分:2)

如果你使用 evil 那么 C-x 3然后C-w =

答案 6 :(得分:0)

我喜欢@quodlibetor的解决方案,但是它不能按书面要求工作。这对我有用(emacs 24.5)

(advice-add 'split-window-right :after #'balance-windows)

答案 7 :(得分:0)

这里使用balance-windows的许多答案的问题之一是,即使之后一切都会好起来,它们也可能由于window-min-widthsplit-width-threshold而不允许窗口分裂重新平衡。例如,我不希望窗口宽度小于100个字符,但是如果我分割了屏幕,则会得到两个160个字符宽度的窗口,并且如果不调整其中一个窗口的大小就无法再次分割。我还没有弄清楚如何确定拆分是否还不错,所以我可能会在拆分时将这些值动态绑定到0,并可能事先做一个window-configuration-to-register以防万一,以便恢复出现问题时使用旧版式。

相关问题