비활성 미니 버퍼의 배경색을 변경할 수 있습니까?


9

비활성 미니 버퍼

다음 설정으로 시도했습니다.

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

(set-face-background 'minibuffer-prompt "blue")

그러나 활성 미니 버퍼에만 영향을 미쳤습니다.

액티브 미니 버퍼


1
나는 그것이 에코 영역이라고도 믿습니다.
Malabarba

1
@Malabarba : 그것은입니다 에코 영역이라고합니다 (미니 버퍼가 비활성 상태 일 때).
Drew

답변:


6

minibuffer-setup-hook 미니 버퍼가 설정되어있을 때만 (즉, 비활성화되었을 때가 아닌) 활성화됩니다.

minibuffer-exit-hook미니 버퍼가 종료 될 때 적용됩니다. 또한 있습니다 minibuffer-inactive-mode-hook.

그러나 (debug)훅 기능의 시작 부분 에 추가 한 다음로 디버거를 단계별 로 표시하여 색상 변경을 시작하더라도 추가 된 색상이 어느 시점에서 제거되는 d것처럼 보입니다 kill-local-variables. 더 이상 확인해야 할 시간이 없지만 가능하거나 다른 사람이 빠른 해결책을 찾을 수 있습니다. 불완전한 정보 만 제공하여 죄송합니다.

이제 가야하지만 빨리, 나는 당신이 전혀 후크로 바이올린을 칠 필요가 없으며, 이름이 일치하는 모든 버퍼에 대해 얼굴을 다시 매핑 할 수 있다고 생각합니다 \` \*Minibuf-[0-9]+\*\'.


FWIW, 나는 별도의 미니 버퍼 프레임을 사용하고 이것을 minibuffer-exit-hook프레임 배경에 채색하기 위해 착용했습니다 .

(defun 1on1-color-minibuffer-frame-on-exit ()
  "Change background of minibuffer frame to reflect the minibuffer depth.
Use this when reducing the minibuffer recursion depth."
  (when 1on1-minibuffer-frame
    (save-window-excursion
      (select-frame 1on1-minibuffer-frame)
      (cond ((= (minibuffer-depth) 2)
             (set-background-color 1on1-active-minibuffer-frame-background))
            ((< (minibuffer-depth) 2)
             (set-background-color 1on1-inactive-minibuffer-frame-background))
            (t
             (set-background-color (hexrgb-increment-hue ; Change bg hue slightly.
                                    (frame-parameter nil 'background-color)
                                    1on1-color-minibuffer-frame-on-exit-increment)))))))

당신의 분석을 감안할 때, face-remapping-alist 영구적으로 만드는 것이 효과가 있다고 생각 합니까? 코드 마크 업의 역 따옴표에 대해서는 이 답변을 참조하십시오 .
Gilles 'SO- 악마

귀하가 제공 한 링크는 404의 결과입니다.
Compro Prasad

@ComproPrasad : 수정되었습니다. 고마워.
Drew

3

시도해 볼 수 있습니다 :

(dolist (buf '(" *Echo Area 0*" " *Echo Area 1*"))
  (with-current-buffer (get-buffer buf)
    (make-local-variable 'face-remapping-alist)
    (add-to-list 'face-remapping-alist '(default (:background "green")))))
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.