Ответ 1
Решение, которое в настоящее время дает мне некоторый успех, заключается в переопределении функции оболочки как ansi-термина:
;; shell-mode
(defun sh ()
(interactive)
(ansi-term "/bin/zsh"))
Симптом проблемы выглядит как "[0m [27m [24m [J [34; 1", который на терминале преобразуется в синий цвет.
-A
Решение, которое в настоящее время дает мне некоторый успех, заключается в переопределении функции оболочки как ansi-термина:
;; shell-mode
(defun sh ()
(interactive)
(ansi-term "/bin/zsh"))
В моем .emacs
(add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)
Для альтернативы "игнорировать" поместите в файл ~/.emacs_{bash,tsch,whatever-your-shell-is-called}
что-то вроде "alias ls=ls
" или "unset LS_COLORS
". Этот файл выполняется во всех подчиненных оболочках, созданных emacs.
Emacs отправляет новой оболочке содержимое файла
~/.emacs_shellname
в качестве ввода, если оно существует, гдеshellname
равно имя файла, из которого была загружена оболочка. Например, если вы используете bash, файл, отправленный ему,~/.emacs_bash
. Если этот файл не найден, Emacs пытается отступить на~/.emacs.d/init_shellname.sh
.
Следующее должно работать в вашем .bash_profile или .bashrc
case $TERM in
xterm-color)
export PS1='\[\e]0;\W\007\]\[\e[34;1m\]\W\[\e[0m\]\$ '
;;
*)
export PS1='\W\$ '
;;
esac