$TERM 환경 변수를 기반으로 한 emacs 색상

$TERM 환경 변수를 기반으로 한 emacs 색상

TERM=xtermemacs가 gnu 화면이나 tmux 세션에서 실행될 때와 TERM=screen다른 색상 세트를 사용 하도록 할 수 있는지 알고 싶습니다 TERM=xterm.

예를 들어 의 경우 의 TERM=xterm-256color전경색은 font-lock-comment-face"Firebrick"입니다. 하지만 당시에는 TERM=screen-256color"chocolate1"로 설정되어 있었습니다.

tmux가 제대로 작동하려면 TERM 변수~ 해야 하다화면 또는 일부 파생 항목으로 설정하므로 TERM 재설정은 나에게 옵션이 아닙니다.

답변1

이것정의font-lock-comment-face다양한 색상 지원 케이스에 대한 다양한 변형이 포함되어 있습니다.

  • chocolate1최소 88가지 색상을 사용할 수 있고 배경이 어두운 경우 이 변형을 사용하세요.
  • Firebrick88개 이상의 색상을 사용할 수 있고 배경이 밝은 경우 이 변형을 사용하십시오.

xterm이러한 차이는 , rxvt및 로 dtterm시작하는 TERM 값에 특별한 의미를 부여하는 일부 코드로 인해 발생합니다 eterm. 이는 해당 값을 "밝은" 배경으로 간주합니다.

항상 "밝은" 색상 변형을 사용하려면 frame-background-mode*를 해당 값으로 사용자 정의 할 수 있어야 합니다 .light

귀하의 Emacs가 자신만의 Emacs를 가질 만큼 새롭지 않은 경우 term/screen.el적절한 색상 조정 호출을 수행하기 위해 Emacs를 직접 조정해야 합니다. 당신이 사용할 수있는이맥스 트렁크, 또는 나는 가지고 있다주요 요점.emacs.d/lisp/term/screen.el(수정자를 식별하기 위한 추가 비트 포함 + 화살표/홈/끝 시퀀스 제공)멀티플렉서options xterm-keys) 및 .emacs자동으로 로드하는 데 필요한 수정 사항입니다.

물론 TERM 값을 직접 확인하고 유사한 값에 대해 다른 작업을 수행하는 다른 코드가 여전히 있을 수 screen있습니다 xterm.

* Mx 사용자 정의 변수 프레임 배경 모드

관련 정보