我有 emacs 水平拆分 - 在顶部我正在编辑 Perl 代码,底部是外壳。默认情况下,emacs 使两个窗口的大小相等,但我希望 shell 缓冲区更小(也许是一半?)。我想知道我怎么能做到这一点。
使用鼠标,您可以拖动窗口大小。
单击模式行上非“活动”的任意位置(缓冲区名称是安全的,或右侧任何未使用的区域),您可以向上或向下拖动。
左右拖动需要非常精确地单击两条模式线连接的位置。
C-x听-( shrink-window-if-larger-than-buffer) 将缩小窗口以适应其内容。
C-x
-
shrink-window-if-larger-than-buffer
C-x听+( balance-windows) 将使窗口具有相同的高度和宽度。
+
balance-windows
C-x听^( enlarge-window) 将高度增加 1 行,或前缀 arg 值。负 arg 缩小窗口。例如,听听C--和听听一样缩小了16行。C-1``C-6``C-x``^``C-u``-``1``6``C-x``^
^
enlarge-window
C--
C-1``C-6``C-x``^``C-u``-``1``6``C-x``^
(没有默认绑定shrink-window。)
shrink-window
C-x听}( enlarge-window-horizontally) 水平方向也是如此。 C-x听{( shrink-window-horizontally) 默认也是绑定的。
}
enlarge-window-horizontally
{
shrink-window-horizontally
repeat使用(C-x启动z,并仅用于继续重复)执行这些命令之一z可以很容易地达到您想要的确切大小。
repeat
z
如果您经常想使用特定值执行此操作,您可以录制一个键盘宏来执行此操作,或使用类似的东西 (global-set-key (kbd "C-c v") (kbd "C-u - 1 6 C-x ^"))
(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"))
(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-c(left无论更改是窗口的大小/数量/排列,还是仅显示哪个缓冲区)。C-c返回right到最新配置. 全局设置它(winner-mode 1)
winner- mode
C-c
left
right
(winner-mode 1)