1

我正在尝试在 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时,显示的文本会偶尔出现和消失,以后必须手动删除。我也测试了这里给出的解决方案,它似乎对我也不起作用。不工作的解决方案都做同样的事情;显示文本

  #("test" 0 4 (face highlight))

在小缓冲区中。

万一这很重要,我在 Debian Wheezy 上运行 Emacs 23.4.1。

4

1 回答 1

2

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

于 2013-07-29T03:07:26.387 回答