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

Ced*_*tin 4 emacs background-color minibuffer

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

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

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

我希望当迷你缓冲区是“常规”迷你缓冲区且其他缓冲区位于同一帧中时它可以工作。

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

编辑

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

(add-hook 'minibuffer-setup-hook 
  (function (lambda ()
              (set-background-color "black"))))
Run Code Online (Sandbox Code Playgroud)

我不知道使用一些“hack”来更改迷你缓冲区的背景是否很容易。

我也不知道如何变回以前的颜色。我不确定执行此操作的正确方法是什么。

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

Ste*_*fan 5

您可以简单地尝试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")))))
Run Code Online (Sandbox Code Playgroud)