小编典典

如何更改分屏emacs窗口的大小?

all

我有 emacs 水平拆分 - 在顶部我正在编辑 Perl 代码,底部是外壳。默认情况下,emacs 使两个窗口的大小相等,但我希望 shell
缓冲区更小(也许是一半?)。我想知道我怎么能做到这一点。


阅读 154

收藏
2022-08-02

共1个答案

小编典典

使用鼠标,您可以拖动窗口大小。

单击模式行上非“活动”的任意位置(缓冲区名称是安全的,或右侧任何未使用的区域),您可以向上或向下拖动。

左右拖动需要非常精确地单击两条模式线连接的位置。

C-x-( shrink-window-if-larger-than-buffer) 将缩小窗口以适应其内容。

C-x+( balance-windows) 将使窗口具有相同的高度和宽度。

C-x^( enlarge-window) 将高度增加 1 行,或前缀 arg 值。负 arg
缩小窗口。例如,听听C--和听听一样缩小了16行。C-1``C-6``C-x``^``C-u``-``1``6``C-x``^

(没有默认绑定shrink-window。)

C-x}( enlarge-window-horizontally) 水平方向也是如此。
C-x{( shrink-window-horizontally) 默认也是绑定的。

repeat使用(C-x启动z,并仅用于继续重复)执行这些命令之一z可以很容易地达到您想要的确切大小。

如果您经常想使用特定值执行此操作,您可以录制一个键盘宏来执行此操作,或使用类似的东西
(global-set-key (kbd "C-c v") (kbd "C-u - 1 6 C-x ^"))

或这个:
(global-set-key (kbd "C-c v") (kbd "C-x o C-x 2 C-x 0 C-u - 1 C-x o"))

这是一个smidgen hacky,所以这会更好:

(defun halve-other-window-height ()
  "Expand current window to use half of the other window's lines."
  (interactive)
  (enlarge-window (/ (window-height (next-window)) 2)))

(global-set-key (kbd "C-c v") 'halve-other-window-height)

切线地,我也喜欢winner- mode它可以让您反复“撤消”对窗口配置的任何更改C-cleft无论更改是窗口的大小/数量/排列,还是仅显示哪个缓冲区)。C-c返回right到最新配置.
全局设置它(winner-mode 1)

2022-08-02