eshell의 컬러 자식 출력


10

cygwin의 박하 (xterm-256color라고 구성되어 있음) 터미널에서 emacs를 사용하고 있습니다. list-colors-display잘 작동합니다. 색상이 다른 목록에 표시됩니다. 이제 git branch현재 분기 의 색상을로 설정했습니다 yellow reverse. 그러나 쉘 창이나 쉘 창 모두 올바른 색상을 표시하지 않습니다. 대신 현재 분기가 기본 색상으로 표시됩니다. 에서 ansi-term이맥스의 창 또는 외부 동일한 단말기 내부 그것이 정상적으로 표시한다.

나는 이것을 내 안에있다 .emacs:

(add-hook 'eshell-preoutput-filter-functions  'ansi-color-apply)

이 색상을 쉘 또는 eshell 창 안에 표시하는 방법은 무엇입니까?


1
git config --global color.ui alwaysrunning 을 설정 한 그래픽 Emacs가있는 eshell에서 이것을 재현 할 수 없습니다 git diff. 더 자세한 단계를 제공 할 수 있습니까?
rekado

아래의 답변이 도움이되거나 불분명합니까?
rekado

답변:


5

Eshell과 shell-mode둘 다 ansi-color.elansi 색상 코드를면으로 변환 하는 데 사용 합니다. ansi-color.el다음 얼굴을 지원합니다 :

Parameter  Description        Face used by default
  0        default            default
  1        bold               bold
  2        faint              default
  3        italic             italic
  4        underlined         underline
  5        slowly blinking    success
  6        rapidly blinking   warning
  7        negative image     error

"네거티브 이미지"는 "역방향"이며 error얼굴에 매핑됩니다 . 저장소를 구성하면 ...

[color]
        ui = always
[color "branch"]
        current = yellow reverse

... 그리고 git branch로컬 분기를보고 현재 분기는 굵은 노란색으로 렌더링됩니다. 노란색 텍스트를 가리키고 실행 describe-face하면 실제로 error얼굴로 렌더링 되는 것을 볼 수 있습니다 .

"네거티브 이미지"/ "리버스" ansi-color-faces-vector이외의 다른 얼굴을 할당하도록 사용자 정의 할 수 있습니다 error.

(add-hook 'eshell-preoutput-filter-functions 'ansi-color-apply)eshell에서 ansi 색상을 사용할 필요는 없습니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.