如何使 emacs minibuffer 垂直?

如何使 emacs minibuffer 垂直?

我想让 emacs 迷你缓冲区(我们输入 emacs 命令的地方)垂直。就像我们用

C-x 3

有没有办法做到这一点?

答案1

通常,每个框架底部都有自己的迷你缓冲窗口,每当选择该框架时都会使用该窗口。如果框架有迷你缓冲,则可以使用 minibuffer-window 获取它。

好吧,显然有办法。创建一个专用迷你缓冲框架使用 oneonone。在 Emacs 24 上,我尝试使用 ,但这种方法并没有像我预期的那样工作1on1-emacs。您需要hexrgb.el先加载,否则它将不起作用。它显示如下:

在此处输入图片描述

可以看出,它为完成和迷你缓冲区打开了一个新框架。我还没搞明白为什么当我切换到迷你缓冲区时,它不会将范围更改为迷你缓冲区框架,而是尝试重用我下面的框架。也许吧我没有使用正确的库但至少这是一个开始。

然后我用的是新的迷你缓冲窗口。新的迷你缓冲区窗口的可用性相当低,因为我有两个迷你缓冲区(并且还没有找到删除原始缓冲区的方法),并且自动完成是在主框架而不是迷你缓冲区框架中完成的。

这是我去过的最远的距离:

(setq default-minibuffer-frame
      (make-frame
       '((name . "minibuffer")
         (width . 20)
         (height . 80)
         (minibuffer . only)
         (top . 0)
         (right . 0)
         )))
(setq-default mode-line-format nil)

答案2

正如文件中的评论oneonone.el所说,只需将其放入~/.emacs

 (require 'oneonone)
 (1on1-emacs)

您也可以1on1-emacs从命令行调用:

 runemacs -l "oneonone.el" -f "1on1-emacs"

runemacs(您可能需要为或提供绝对文件名oneonone.el,具体取决于您的目录等。)

如果您以启动期间以外的任何其他方式调用1on1-emacs,则为时已晚,因为 Emacs 已经在其初始框架中创建了另一个迷你缓冲区。这就是您上面描述的行为。

提示:如果您使用第三方库,查看源代码注释中的安装/启动说明永远不会有坏处。;-)


回答最初的问题:如果您想要一个位于其他缓冲区一侧的迷你缓冲区,那么不,据我所知,这不可能在同一个框架中。但是是的,您可以使用独立的迷你缓冲区来实现这一点,即单独的迷你缓冲区框架。是的,oneonone.el您可以这样做 --- 只需使用库中的选项自定义迷你缓冲区框架的位置和大小即可。

话虽如此,我却不认为为什么任何人都会想要一个侧面的迷你缓冲区。请记住,文本是水平书写的。因此,通常情况下,让用于键入输入和显示输出消息(回显区域)的窗口/框架宽度大于高度,而不是高度和狭窄是有意义的。

相关内容