是否可以将emacs微型缓冲区移到屏幕顶部?

是否可以将emacs微型缓冲区移到屏幕顶部?,emacs,Emacs,我已经开始在一个30英寸的显示器上编码了,我想知道是否有可能在emacs中将微型缓冲区移到屏幕顶部?谷歌搜索没有显示任何内容 干杯 Nimai Etheridge我很确定您不能移动微型缓冲区本身,但您可以将模式行置于顶部: (setq-default header-line-format mode-line-format) ; Copy mode-line (setq-default mode-line-format nil) ; Remove mode-line 这将覆盖诸如使用标题行的信息

我已经开始在一个30英寸的显示器上编码了,我想知道是否有可能在emacs中将微型缓冲区移到屏幕顶部?谷歌搜索没有显示任何内容

干杯
Nimai Etheridge

我很确定您不能移动微型缓冲区本身,但您可以将模式行置于顶部:

(setq-default header-line-format mode-line-format) ; Copy mode-line
(setq-default mode-line-format nil) ; Remove mode-line

这将覆盖诸如使用标题行的信息之类的内容,但它可能是在不攻击C源代码的情况下所能获得的最接近的内容。

请查看
默认小缓冲区帧和
初始帧列表
变量的文档。听起来你可能可以为你的迷你缓冲区设置一个单独的框架(你可以将其放在屏幕的顶部),然后生成利用它的迷你无缓冲区框架

请注意,在
initial frame alist
中,它指出“如果该值调用的帧没有minibuffer,并且您没有自己创建minibuffer帧,那么将根据
minibuffer frame alist
创建minibuffer帧”,这听起来正是需要的

有几种方法可以保存和恢复帧配置,因此如果这样做有效,您可能可以在emacs启动时自动重新创建布局

编辑:
下面是使用此框架布置的基本示例/概念证明。在使用minibuffer帧的帧被删除之前,不能删除minibuffer帧。当然,当您执行诸如最大化编辑器框架之类的操作时,您会遇到麻烦,因此,为了使此系统以更无缝的方式工作,当然还有一些工作要做

(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)
         )))
当然,您也可以将其与scottfrazer将模型线移动到顶部的方法相结合

这可能在
窗口设置挂钩中处理

您还应该查看内置的frame.el和dframe.el库。类似于
dframe resposition frame
的功能可以提供一种方便的方法,将小缓冲区帧“连接”到活动编辑帧的顶部


变量
minibuffer auto raise
也可以配置为在激活minibuffer时提升minibuffer帧,这可以减少在剩余时间内使其可见的需要。

使用独立的minibuffer帧。这说明:

要么通过查看代码获得想法,要么直接使用它。您只需自定义小缓冲区帧位置设置:

  • 1on1小缓冲帧左
    ——小缓冲帧左边缘的位置,以像素为单位

  • 1on1小缓冲帧顶部/底部
    ——小缓冲帧顶部(或底部)的位置,以像素为单位


很有趣。我不确定我是否会使用它(minibuffer在windows底部已经存在了20多年了…),但这是一个非常有趣的想法。干杯,伙计,我今晚会查看它,如果我发现任何有用的东西,我会告诉你