我已开始在30英寸显示器上编码,我想知道是否可以将迷你缓冲区移到emacs的屏幕顶部?谷歌搜索没有显示任何内容。
干杯 Nimai Etheridge
答案 0 :(得分:9)
查看default-minibuffer-frame
和initial-frame-alist
变量的文档。听起来你可以为你的迷你缓冲区(你可以在屏幕的顶部放置一个单独的框架),然后生成利用它的迷你无框架。
请注意,在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)
)))
当然,您也可以将此与scottfrazer将模式线移动到顶部的方法结合起来。
这可以在window-setup-hook
?
您还应该查看内置的frame.el和dframe.el库。像dframe-reposition-frame
这样的函数可以提供一种方便的方法来将迷你缓冲帧“连接”到活动编辑框的顶部。
变量minibuffer-auto-raise
也可以配置为在迷你缓冲区被激活时提升迷你缓冲帧,这可以减少在其余时间让它显示的需要。
答案 1 :(得分:8)
我很确定你不能移动迷你缓冲器本身,但是你可以将模式线放在最上面:
(setq-default header-line-format mode-line-format) ; Copy mode-line
(setq-default mode-line-format nil) ; Remove mode-line
这将覆盖使用标题行的Info之类的内容,但它可能会在没有黑客攻击C源的情况下尽可能接近。
答案 2 :(得分:2)
使用独立的迷你缓冲框架。这说明了:
http://www.emacswiki.org/emacs/Dedicated_Minibuffer_Frame
http://www.emacswiki.org/emacs/oneonone.el
要么查看该代码以获得想法,要么直接使用它。您只需自定义迷你缓冲帧位置设置:
1on1-minibuffer-frame-left
- 迷你缓冲帧左边缘的位置,以像素为单位。
1on1-minibuffer-frame-top/bottom
- 迷你缓冲框架顶部(或底部)的位置(以像素为单位)。