我已经开始在一台30英寸的显示器上编码了,想知道是否可以将 Emacs 中的 minibuffer 移动到屏幕顶部?我在谷歌搜索中没有找到任何信息。
祝好, Nimai Etheridge
祝好, Nimai Etheridge
default-minibuffer-frame
和initial-frame-alist
变量的文档。听起来你也许能够为你的minibuffer(你可以将其放置在屏幕顶部)拥有一个单独的frame,然后生成使用它的没有minibuffer的frames。initial-frame-alist
中,它说明“如果该值调用了没有minibuffer的frame,并且您没有自己创建一个minibuffer frame,则根据minibuffer-frame-alist
创建一个minibuffer frame”,这似乎正是所需的。(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的将modeline移动到顶部的方法相结合。
这可能可以在window-setup-hook
中处理?
您还应该查看内置的frame.el和dframe.el库。像dframe-reposition-frame
这样的函数可以提供一种方便的方式来保持minibuffer框架与活动编辑框架顶部'连接'。
变量minibuffer-auto-raise
也可以配置为在激活minibuffer时提升minibuffer框架,这可能会减轻需要在其余时间内使其可见的需要。
我相信你无法移动迷你缓冲区本身,但你可以将模式行“更或多或少”置于顶部:
(setq-default header-line-format mode-line-format) ; Copy mode-line
(setq-default mode-line-format nil) ; Remove mode-line
在卡住这些问题一段时间后,我发现clemera's answer对于emacs 26+很有用:
对于Emacs 26及更高版本,您可以使用emacs-maple-minibuffer或ivy-posframe(如果您正在使用ivy)。
这些软件包允许您配置弹出式迷你缓冲区框架的任何位置,包括当前窗口的顶部/底部。这些软件包的文档描述了如何设置它们。