需要输入时,更改迷你缓冲区的背景颜色

时间:2012-09-29 16:59:18

标签: emacs background-color minibuffer

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

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

除非以上情况仅在迷你缓冲区处于自己的框架中时才有效。

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

我的elisp还不够强大,无法自行解决这个问题,所以非常欢迎任何意见。

修改

我可以更改整个缓冲区的背景,执行以下操作:

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

我不知道用一些“黑客”来改变迷你缓冲区的背景是否容易。

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

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

2 个答案:

答案 0 :(得分: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")))))

答案 1 :(得分:1)

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

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