我将 emacs 水平分割 - 顶部是我编辑 Perl 代码,底部是 shell。默认情况下,emacs 使两个窗口大小相等,但我希望 shell 缓冲区更小(也许是一半大小?)。我想知道我怎样才能做到这一点。
最佳答案
使用鼠标,您可以拖动窗口大小。
单击模式行上非“事件”的任意位置(缓冲区名称是安全的,或右侧任何未使用的区域),然后可以向上或向下拖动。
左右拖动需要非常精确地单击两条模式线的连接点。
C-x - (shrink-window-if-larger-than-buffer
) 将缩小窗口以适应其内容。
C-x + (balance-windows
) 将使窗口具有相同的高度和宽度。
C-x ^ (enlarge-window
) 将高度增加 1 行或前缀参数值。负参数会缩小窗口。例如C-- C-1 C-6 C-x ^ 缩小 16 行,C-u - 1 6 C-x ^.
(shrink-window
没有默认绑定(bind)。)
C-x } (enlarge-window-horizontally
) 水平方向也同样如此。
C-x { (shrink-window-horizontally
) 也是默认绑定(bind)的。
按照这些命令之一进行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"))
这有点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-c left 反复“撤消”对窗口配置的任何更改(无论是更改是窗口的大小/数量/排列,或者只是显示哪个缓冲区)。 C-c 右键 返回到最新配置。使用 (winner-mode 1)
关于emacs - 如何更改分屏 emacs 窗口的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4987760/