bash shell에서 프롬프트 정의한 것을 이멕스 shell모드에서 잘 쓸려면....

yuni의 이미지

bash shell에서 프롬프트 정의한 것을 이멕스 shell모드에서 잘 쓸려면 어떻게 하면 될까요?

얼마전 야동꿀님의 "어느 귀염둥이가 내 컴을 껏어..." 라는 글이 있었습니다.
그때 한분이 아이디어가 기억에 남아서 저도 남의 것을 배껴서 한번 해 보았습니다.
터미널 창에서 색을 주는 것인데, 이걸로 했더니 이멕스의 쉘모드에선 엉망이 됩니다.
설명이 부족해서 그림파일을 올립니다.

이런 경우는 어떻게 해결하세요? 보시면 위의 터미널 창은 이멕스를 반 쪼개서 오른쪽은 ~/.bashrc중의 일부이고, 왼쪽은 엉망으로 나온 이멕스 쉘모드입니다.
그리고 밑에 열린 터미널은 그냥 그놈 터미널입니다. 이와 같은 꼴로 이멕스 쉘모드에서도 나오면 좋겠습니다.

늘 감사하는 마음으로 물러갑니다. 꾸벅.

File attachments: 
첨부파일 크기
Image icon Screenshot-2.png138.49 KB
cinsk의 이미지

Emacs 내부의 shell은 dummy terminal을 사용합니다. 다음과 같이 M-x shell 안에서 실험해 볼 수 있습니다:

$ echo $TERM
dumb
$ _

따라서, $HOME/.bashrc 같은 곳에서, dumb 터미널일 경우, 여러 변수를 바꿔 주면 됩니다. 예를 들면:

case "$TERM" in
    dumb*)                          # emacs terminal
        export LANG=ko_KR.UTF-8
        export LC_MESSAGES=C
        PS1='\h:\w\$ '
        alias ls='ls -F --color=no'
        ;;
    emacs*)                        # XEmacs terminal
        export LANG=C
        PS1='\h:\w\$ '
        alias ls='ls -F --color=no'
        ;;
    *)
        alias ls='ls -F --color=auto'
        ;;
esac
irondog의 이미지

shell 대신 term 을 쓰면 색이 잘 작용되지 않나요?