¿Cómo puedo obtener el modo de shell de Emacs para procesar(o ignorar) mis colores en lugar de imprimir códigos ASCII?
colors (4)
Lo siguiente debería funcionar en su .bash_profile o .bashrc
case $TERM in
xterm-color)
export PS1=''/[/e]0;/W/007/]/[/e[34;1m/]/W/[/e[0m/]/$ ''
;;
*)
export PS1=''/W/$ ''
;;
esac
El síntoma del problema parece "[0m [27m [24m [J [34; 1"] que en un terminal se traduce en el color azul.
-UN
Para la alternativa "ignorar", ponga algo como " alias ls=ls
" o " unset LS_COLORS
" en su ~/.emacs_{bash,tsch,whatever-your-shell-is-called}
. Este archivo se ejecuta en todas las shells subordinadas creadas por emacs.
Emacs envía al nuevo shell el contenido del archivo
~/.emacs_shellname
como entrada, si existe, dondeshellname
es el nombre del archivo desde el que se cargó el shell. Por ejemplo, si usa bash, el archivo enviado a él es~/.emacs_bash
. Si no se encuentra este archivo, Emacs intenta~/.emacs.d/init_shellname.sh
en~/.emacs.d/init_shellname.sh
.
Tengo lo siguiente en mis .emacs
(add-hook ''shell-mode-hook ''ansi-color-for-comint-mode-on)
La solución que actualmente me da cierto éxito es redefinir la función shell como un término ansi:
;; shell-mode
(defun sh ()
(interactive)
(ansi-term "/bin/zsh"))