是否可以将emacs迷你缓冲区移动到屏幕顶部?

nim*_*mms 26 emacs

我已开始在30英寸显示器上编码,我想知道是否可以将迷你缓冲区移到emacs的屏幕顶部?谷歌搜索没有显示任何内容.

干杯Nimai Etheridge

phi*_*ils 9

看看default-minibuffer-frameinitial-frame-alistvars 的文档.听起来你可以为你的迷你缓冲区(你可以在屏幕的顶部放置一个单独的框架),然后生成利用它的迷你无框架.

请注意,在initial-frame-alist其中声明"如果值要求没有迷你缓冲区的帧,并且您没有自己创建迷你缓冲帧,则会根据minibuffer-frame-alist" 创建一个迷你缓冲帧,这听起来就像所需要的那样.

有一些方法可以保存和恢复帧配置,所以如果这样可行,你可以在emacs启动时自动重新创建布局.

编辑:
下面使用此框架排列的非常基本的示例/概念验证.在删除使用它的帧之前,不能删除迷你缓冲帧.当你做最大化编辑器框架之类的事情时,你会遇到麻烦,所以当然有一些工作要做,试图让这个系统以更加无缝的方式工作.

(setq default-minibuffer-frame
      (make-frame
       '((name . "minibuffer")
         (width . 80)
         (height . 1)
         (minibuffer . only)
         (top . 0)
         (left . 0)
         )))
(setq new-frame
      (make-frame
       '((name . "editor")
         (width . 80)
         (height . 30)
         (minibuffer . nil)
         (top . 50)
         (left . 0)
         )))
Run Code Online (Sandbox Code Playgroud)

当然,您也可以将此与scottfrazer将模式线移动到顶部的方法结合起来.

这可能是在window-setup-hook

您还应该查看内置的frame.el和dframe.el库.类似的功能dframe-reposition-frame可以提供一种方便的方法来将迷你缓冲框架"连接"到活动编辑框架的顶部.

该变量minibuffer-auto-raise还可以被配置为每当迷你缓冲器被激活时升高迷你缓冲器帧,这可以减少在其余时间使其可见的需要.


sco*_*zer 8

我很确定你不能移动迷你缓冲器本身,但是你可以将模式线放在最上面:

(setq-default header-line-format mode-line-format) ; Copy mode-line
(setq-default mode-line-format nil) ; Remove mode-line
Run Code Online (Sandbox Code Playgroud)

这将覆盖使用标题行的Info之类的内容,但它可能会在没有黑客攻击C源的情况下尽可能接近.