режим оболочки emacs (оболочка Mx)

Когда я использую режим оболочки emacs Mx, я вижу странные символы на моем экране, которые, я считаю, связаны с моей подсказкой (включая End-Of-Line) и использованием цветов.

Итак, вот что я вижу на терминале:

mperdikeas@thorin:~# $ 

И вот что я вижу в буфере оболочки Emacs:

 ^[]0;mperdikeas@thorin: ~^Gmperdikeas@thorin:~# $ 

Вот относительный раздел моего .bashrc :

 if [ "$color_prompt" = yes ]; then PS1='${debian_chroot:+($debian_chroot)}\[\033[1;32m\]\u@\h\[\033[00m\]:\[\033[1;33m\]\w\[\033[00m\]#\n$' else PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w#\n$ ' fi 

Как настроить emacs для правильного отображения приглашения в буфере оболочки ?

Возможно, это более элегантное решение, но это работает для меня. После любых связанных с подсказкой строк в .bashrc вставьте следующее, отрегулировав значение PS1, чтобы оно соответствовало:

 # Keep it simple if running in emacs. case "$TERM" in dumb) PROMPT_COMMAND= PS1="\u@\h:\W$ " esac 

Я думаю, вам лучше включить ansi-color в настройках вашего режима.

  (eval-after-load 'shell '(progn (autoload 'ansi-color-for-comint-mode-on "ansi-color" nil t) (add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on t) t)) 

Далее, основываясь на ответе Дейвема, вот что я, наконец, положил в свой .bashrc чтобы все было просто:

 case "$EMACS" in t) PROMPT_COMMAND= PS1="[\u@\h:\w]$ " esac 

Опора на значение $TERM не работала в моем случае, тогда как Emacs требуется установить переменную среды $ EMACS в true для любых оболочек, которые она порождает.