Emacs迷你缓冲区中突出显示的文本

时间:2013-07-29 02:34:38

标签: emacs elisp highlight minibuffer

我正在尝试在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。

1 个答案:

答案 0 :(得分:1)

您是使用M-:进行测试的受害者,除了运行代码之外,还会在迷你缓冲区中显示返回的值,从而立即覆盖您的代码所做的任何事情。