我可能会走错路,所以让我知道我是不是。我正在尝试构建一个与Vim's ctrlp和其他插件使用的用户界面类似的用户界面,从而为用户提供一个提示,当他们输入时,结果显示在上面迷你缓冲提示线。
我已经使用minibuffer-with-setup-hook
和本地post-command-hook
(简单)使迷你缓冲区命令处理部分正常工作,并且可以获得我想要显示的结果(仅通过(message)
验证他们现在。)
如果我想在迷你缓冲区提示行上方显示10行结果,我应该以某种方式将文本添加到迷你缓冲区,或者使用单独的缓冲区,一旦命令完成,我将关闭它?有关本手册部分的任何指示,我应该阅读这篇文章的正确轨道吗?
答案 0 :(得分:2)
“迷你缓冲区”是普通缓冲区,因此您可以通过以正常方式插入/删除文本来修改它。这就是说,在“之前”添加文本意味着基本上修改可能导致问题的提示。做一些像
这样的事情可能会好得多(let ((ol (make-overlay (point-min) (point-min))))
(overlay-put ol 'before-string (format "%s\n" myresults)))
答案 1 :(得分:1)
我开始把它写成评论,但它有点太长了......
TBH,我觉得有更轻量级的掌舵的空间。但现实是掌舵足够好,其他人已经写好了。我和其他任何人(到目前为止)都没有足够的动力重写它。你所描述的“上帝”方面确实没有吸引力。但它可以加载它(现在很大,使用现代计算机,它确实不是问题),并且更改设置以使其极简主义。
ido是一种更简单的替代方案,但UI的风格并不完全是你所描述的。