Emacs / Slime / 硬编码垂直分割比

4 emacs slime

我目前处于模式:Cx 2

通常,我不太关心垂直拆分。但是,我在 13" 显示器上编码,这使得垂直空间相当宝贵。

我想要一些设置,当我执行 Cx 2 时,我的窗口不是 50/50,而是 70/30 [这样我就可以将 repl 发送到屏幕的底部,并且会看到很多代码.]

垂直分割

提出:

垂直拆分窗口,垂直拆分表

但是,我怀疑有一些参数会改变/控制分流比。

什么 emacs 选项告诉我的计算机拆分 70/30 而不是 50/50?

谢谢!

phi*_*ils 5

您可以使用前缀参数来告诉 Emacs 给两个窗口中的每一个分配多少行。

见:C-hk C-x2
或C-hf split-window-below RET

如果可选参数 SIZE 被省略或为零,则两个窗口的高度相同或接近。如果 SIZE 为正数,则上方(选定的)窗口将获得 SIZE 行。如果 SIZE 为负数,则较低的(新)窗口将获取 -SIZE 行。

所以你可以给上面的窗口 20 行和下面的窗口剩余的:(C-u 20 C-x2
或M-2M-0C-x2,等等......)

你可以给下面的窗口 10 行和上面的窗口剩余的:(C-u -10 C-x2
或M--M-1M-0C-x2,等等......)

请参阅如何更改分屏 emacs 窗口的大小?有很多方法可以在拆分后修改窗口的大小。

编辑:

您可以使用以下功能来执行您想要的操作:

(defun my-split-window-below (&optional arg)
  "Split the current window 70/30 rather than 50/50.
A single-digit prefix argument gives the top window arg*10%."
  (interactive "P")
  (let ((proportion (* (or arg 7) 0.1)))
    (split-window-below (round (* proportion (window-height))))))

(global-set-key (kbd "C-c x 2") 'my-split-window-below)
Run Code Online (Sandbox Code Playgroud)

默认比率为 70/30,但您可以提供一位数的前缀参数,以 10% 的增量指定顶部窗口的大小。

如果您将此命令绑定到C-x2然后C-9C-x2将给顶部窗口 90% 和底部 10%。


编辑 2:我最终使用了它的一个变体作为我自己的C-x2绑定。此版本默认为正常的 50/50 拆分,但提供与其他函数相同的前缀 arg 功能,以防我想要不同的东西。

(defun my-split-window-below (&optional arg)
  "Split the current window 50/50 by default.
A single-digit prefix argument gives the top window ARG * 10%
of the available lines."
  (interactive "P")
  (let* ((proportion (and arg (* arg 0.1)))
         (size (and proportion (round (* proportion (window-height))))))
    (split-window-below size)))
Run Code Online (Sandbox Code Playgroud)