我正在尝试在Emacs迷你缓冲区中显示一些突出显示的文本。我知道这是可能的,因为SLIME在显示参数提示时会这样做。但是,通过查看slime.el,我无法看到它是如何实现的。根据我在那里阅读的内容,显示的文本不应突出显示(相关部分从第3615行开始)。
我试过
(message "%s" (propertize "test" 'face 'highlight))
(overlay-put (make-overlay (point-min) (point-min)) 'before-string (propertize "test" 'face 'highlight))
(with-current-buffer (window-buffer (minibuffer-window)) (insert (propertize "test" 'face 'highlight)))
最后一个似乎与我想要的最接近,但是当我移动point
时,显示的文本会偶尔显示并消失,并且必须在以后手动删除。我还测试了here给出的解决方案,但它似乎也不适用于我。非工作解决方案都做同样的事情;显示文字
#("test" 0 4 (face highlight))
在迷你缓冲区中。
如果重要,我在Debian Wheezy上运行Emacs 23.4.1。
答案 0 :(得分:1)
您是使用M-:
进行测试的受害者,除了运行代码之外,还会在迷你缓冲区中显示返回的值,从而立即覆盖您的代码所做的任何事情。