2012-09-29 16 views
3

在期望用戶活動時,是否可以更改小型緩衝器的背景顏色?例如,當一個功能需要一個參數,或者當一個功能名稱不完整,或者當你開始輸入「Cx」,需要更多的按鍵等等。當需要輸入時更改小型緩衝器的背景顏色

我在想這樣的事情:http://emacswiki.org/emacs/Dedicated_Minibuffer_Frame(參見「Minibuffer Background Color指示用戶活動「,並帶有大量截圖)

除上述僅在小型緩衝器處於其自己的框架中時才起作用。

我希望它在minibuffer是一個「常規」minibuffer,與其他緩衝區(s)在同一幀中的工作。

我的elisp還不夠強大,還沒有解決這個問題,所以我非常歡迎任何輸入。

編輯

我可以改變整個緩衝區的背景做了以下內容:

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

我不知道這是否是容易改變使用一些「黑客」只迷你緩衝區的背景。

我也不知道如何改回以前的顏色。我不確定什麼是正確的方法來做到這一點。

如果我不能只更改小緩衝區的背景,那麼更改整個背景是可以的。

回答

2

你可以簡單地嘗試通過minibuffer-setup-hook設置face-remap-alist。例如:

(add-hook 'minibuffer-setup-hook 
      (lambda() 
      (make-local-variable 'face-remapping-alist) 
      (add-to-list 'face-remapping-alist '(default (:background "green"))))) 
+0

在任何情況下都不起作用(例如「F1 k」,然後我需要描述該鍵,沒有任何反應),但它已在大部分情況下起作用)。非常感謝。 –

+1

@CedricMartin:這是因爲'F1 k'不使用minibuffer(它使用了一個回聲區域)。即它只是顯示消息,給你的印象是使用小型緩衝器。 微型緩衝區和回波區域是正常的緩衝區(你可以在'Cx b'中找到它們作爲'* Echo Area .. *'和'* Minbuffer - .. *'),唯一特別的是它們是通常顯示在框架底部的迷你窗口中。 – Stefan

+0

啊有趣...我想我應該開始一個新的問題,然後問如何「突出」或「更明顯」,應該採取一些行動*「在我的框架底部的迷你窗口*」; ) –

1

這並不完美,因爲它並不包含所有條件,但您可以使用M-x customize-face .. minibuffer-prompt並打開反向視頻或進行其他自定義。它只改變文本的背景,而不是整個小緩衝區。

這不會改變C-x或任何其他prefix命令