2013-06-03 1 views
4

특정 이맥스 창의 배경색을 설정할 수 있습니까?이맥스 : 특정 창의 배경색 설정

"전용 창"기능을 사용하여 이맥스 버퍼를 프레임에 고정합니다. 그러나이 창을 전용 창으로 인식 할 수도 있습니다.

현재 약간 어두운 배경색으로 버퍼 특정 기본 글꼴을 설정하려면 buffer-face-mode을 사용하고 있습니다. 그러나이 형식은 같은 버퍼를 보는 창에도 적용되며 버퍼에만 적용되지는 않습니다. 글꼴 단위로 창 단위로 설정할 수 있으면 해당 문제가 제거됩니다.

답변

3

하나의 특정 창에 대해 수행하는 것은 현재 Emacs가 지원하는 기능이 아닙니다. OTOH를 사용하면 특정 프레임에 대해 작업을 수행 할 수 있으므로 창이 전용 프레임의 프레임 내부에있는 경우 (전용 윈도우의 경우처럼) 배경색 프레임 매개 변수를 확실히 설정할 수 있습니다. display-buffer-alist 또는 special-display-regexps에서 직접 설정합니다.

+0

감사합니다, 그 도움이됩니다. 그런 다음 해당 프레임에서 다른 창을 표시하지 못하게 할 수 있습니까? – kdb

+0

추가적으로 분리 할 수 ​​있습니다 (설명서에서'splittable '을 찾으십시오). – Stefan

+0

내 생각에 당신은 다른 창을 표시하지 못하도록 신경 쓰지 않아도됩니다. 내 생각 엔 그냥 다른 버퍼를 표시하는 것을 원하지 않는다는 것입니다. 이는 새 창이 프레임에서 팝업되지 않는다는 것을 의미합니다 (예 : 분할). 이것은 이미 "특수 디스플레이"--- IOW를 선언함으로써 처리되었습니다. 문제는 아닙니다.'C-x 2 '또는 무엇이든 사용하지 못하도록하고 싶다면, 그렇게 할 수 있습니다. – Drew

0

당신이 원하는 것은 "특별한 디스플레이"로서 버퍼를 지정하는 것입니다. 즉, 당신이 원하는대로로한다.

당신은 이러한 옵션 중 하나 또는 모두를 사용자 정의 할 수 있습니다 (변수) :

  • special-display-regexps
  • special-display-buffer-names

쉬운 방법입니다. Emacs는 릴리스 24.3 이후로 이러한 옵션을 쓸데없는 것으로 생각하고 있으며, 매우 복잡한 옵션 display-buffer-alist을 사용하는 것이 좋습니다.

이 내가 자신의 전용 프레임에 표시하기 시작하고 *로 끝나는 이름을 가진 모든 버퍼가하는 모든 일이다

(setq special-display-regexps '("[ ]?[*][^*]+[*]")) 

서로 다른 특성을 가지고 특수 디스플레이 프레임을 얻으려면을 (즉, 프레임 매개 변수) (예 : 다른 색상 배경, 사용자 정의 옵션 special-display-frame-alist).

이것은 본질적으로 내가 사용하는 정의입니다 :

(setq special-display-alist 
     '((font . "-*-Lucida Console-normal-r-*-*-14-*-*-*-c-*-iso8859-1") 
     (width . 80) 
     (height . 14) 
     (mouse-color . "Yellow") 
     (cursor-color . "Yellow") 
     (menu-bar-lines . 1) 
     (foreground-color . "Black") 
     (background-color . "LightSteelBlue") 
     (top . 0) 
     (left . 0) 
     (unsplittable . t) 
     (user-position . t) 
     (vertical-scroll-bars . right))) 

하지만 난 당신이 이러한 모든 옵션의 값을 설정 사용자 지정을 사용하는 것이 좋습니다.

0

나를 위해 Emacs 25.1.1에서 작동하는 방법은 face-remapping-alist 변수를 사용했습니다. 버퍼가 초기화되면 default면의 :background 특성을 원하는 색으로 수정하십시오. 예를 들어, 내 Treemacs의 배경색 내 .emacs 파일에 이런 식으로 뭔가를 추가하여 다른 모든 것들과는 다른 버퍼합니다

(defun treemacs-mode-handler() 
    (set (make-local-variable 'face-remapping-alist) 
     '((default :background "#303030")))) 

(add-hook 'treemacs-mode-hook 'treemacs-mode-handler) 
+0

이 버퍼를 같은 프레임이나 다른 프레임의 둘 이상의 창에 표시하면 영향을받는 버퍼 *가 표시되며 반드시 * 창이 *는 아닙니다. 또한 이맥스 매뉴얼은'face-remap-add-relative'라는 내장 함수를 사용하여'face-remapping-alist' 변수를 관리 할 것을 제안합니다. [그러나, 나는'face-remap-add-relative'를 사용하지 않고'face-remapping-alist '를 직접 관리하는 것을 선호합니다. 그러나 다른 사람들은이 쓰레드를 읽을 것이기 때문에, Emacs가 선택한 변형에 추가하여 항상 일을하는 방법을 항상 언급하는 것이 일반적입니다.] – lawlist