4

当期望用户活动时,是否可以更改迷你缓冲区的背景颜色?例如,当函数需要参数或函数名称不完整时,或者当您开始输入“Cx”并且需要更多键时等。

我正在考虑这样的事情:http : //emacswiki.org/emacs/Dedicated_Minibuffer_Frame (请参阅“Minibuffer 背景颜色指示用户活动”,有很多截图)

除了上述仅在迷你缓冲区位于其自己的帧中时有效。

当迷你缓冲区是“常规”迷你缓冲区时,我想让它工作,其他缓冲区在同一帧中。

我的 elisp 还不够强大,无法自己破解解决方案,因此非常欢迎任何输入。

编辑

我可以通过以下方式更改整个缓冲区的背景:

(add-hook 'minibuffer-setup-hook 
  (function (lambda ()
              (set-background-color "black"))))

我不知道是否很容易使用一些“hack”来改变 minibuffer 的背景。

我也不知道如何改回以前的颜色。我不确定这样做的正确方法是什么。

如果我不能只更改迷你缓冲区的背景,那么更改整个背景就可以了。

4

2 回答 2

3

您可以简单地尝试face-remap-alist通过minibuffer-setup-hook. 就像是:

(add-hook 'minibuffer-setup-hook
          (lambda ()
            (make-local-variable 'face-remapping-alist)
            (add-to-list 'face-remapping-alist '(default (:background "green")))))
于 2012-09-30T02:30:52.450 回答
1

它并不完美,因为它没有涵盖您的所有条件,但您可以使用M-x customize-face..minibuffer-prompt并打开反向视频或进行其他自定义。它只改变文本的背景而不是整个小缓冲区。

这不会改变C-x或任何其他前缀命令

于 2012-09-29T18:26:52.367 回答