나는 팔로우한다https://unix.stackexchange.com/a/94508/674사용된 색상을 변경합니다 ls
. 이것은 bash에서 작동합니다.
Emacs(Mx 쉘)의 "쉘" 모드에서 버퍼를 열면 변경 사항이 작동하지 않습니다. Emacs "Shell" 모드에 동일한 변경 사항을 적용하는 방법이 궁금합니다.
답변1
일부 버전에서는 ls
터미널이 지원하는 색상 코드를 terminfo 데이터베이스에서 알아야 합니다.
먼저 다음 파일(dumb-emacs-ansi.ti)을 만듭니다.
dumb-emacs-ansi|Emacs dumb terminal with ANSI color codes,
am,
colors#8, it#8, ncv#13, pairs#64,
bold=\E[1m, cud1=^J, ht=^I, ind=^J, op=\E[39;49m,
ritm=\E[23m, rmul=\E[24m, setab=\E[4%p1%dm,
setaf=\E[3%p1%dm, sgr0=\E[m, sitm=\E[3m, smul=\E[4m,
이것은 Emacs의 자체 브랜드 ANSI 코드를 지원하는 내가 만든 Terminfo 항목입니다(굵게, 기울임꼴 및 밑줄을 별도의 속성으로 사용하여 8가지 색상만 지원). 으로 컴파일하세요 tic dumb-emacs-ansi.ti
.
그런 다음 .bashrc에 추가하십시오.
if [ "$TERM" = dumb ] && [ "$INSIDE_EMACS" ]; then
export TERM=dumb-emacs-ansi COLORTERM=1
fi
Bash를 다시 시작하지 않고도 기존 쉘 세션에서 내보내기 라인을 실행하여 업데이트할 수 있습니다.
답변2
Emacs shell
모드는 셸과 문자열만 교환하는 멍청한 터미널입니다. 색상 설정과 같은 터미널 이스케이프 시퀀스를 허용하지 않습니다. emacs에서 전체 터미널을 원하면 를 사용하십시오 M-x term
. (이 작업을 완료한 후에는 C-c k
; 을 사용하여 종료 term
하고 전체 터미널 에뮬레이터이므로 모든 일반 키를 얻을 수 있습니다.)
편집: 대괄호가 제안되었지만 색상을 허용하는 term
것 같고 어떻게 든 그 사실을 인정하지 않습니다.shell-mode
ls