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

标签 emacs split size screen

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

最佳答案

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

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

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

C-x - (shr​​ink-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 ^.

(shr​​ink-window 没有默认绑定(bind)。)

C-x } (enlarge-window-horizo​​ntally) 水平方向也同样如此。
C-x { (shr​​ink-window-horizo​​ntally) 也是默认绑定(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/

相关文章:

emacs - Emacs 中 C-i 和 tab 是什么关系?

bash - 更改 ls 命令的 emacs bash 颜色

Java 的 String.split() 删除尾随的空条目

arrays - 如何将文件拆分为数组并找到每个数组中的最大值

c# - 用空格和减号拆分字符串

size - 在 mac 上使用 AVFoundation 和 AVCaptureVideoDataOutput 时如何使用自定义视频分辨率

emacs - 检查 Emacs 中的启动错误消息

linux - 什么是最好的 Emacs 工作区插件?

c - C 模块(文件)大小的最佳实践

html - 窗口尺寸小(比页面窄)页面结构出错