Como faço para obter o modo de shell Emacs, quer render (ou ignorar) as minhas cores em vez de imprimir códigos ASCII?
Pergunta
O sintoma dos olhares problemáticas como "[0m [27m [24m [J [34; 1". Que em um traduz terminais para a cor azul
-A
Solução 2
A solução que está me dando algum sucesso é redefinir a função shell como um termo ansi:
;; shell-mode
(defun sh ()
(interactive)
(ansi-term "/bin/zsh"))
Outras dicas
Eu tenho o seguinte no meu .emacs
(add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)
Para a "ignorar", colocar algo alternativa como "alias ls=ls
" ou "unset LS_COLORS
" em seu arquivo ~/.emacs_{bash,tsch,whatever-your-shell-is-called}
. Este arquivo é executado em todas as conchas subordinados criados por emacs.
Emacs envia o novo shell o conteúdo do ficheiro
~/.emacs_shellname
como entrada, se ela existe, ondeshellname
é o nome do ficheiro que o escudo foi carregado a partir de. Por exemplo, se você usar o bash, o enviado arquivo para ele é~/.emacs_bash
. Se este arquivo não for encontrado, o Emacs tenta fallback em~/.emacs.d/init_shellname.sh
.
A seguir deve funcionar no seu .bash_profile ou .bashrc
case $TERM in
xterm-color)
export PS1='\[\e]0;\W\007\]\[\e[34;1m\]\W\[\e[0m\]\$ '
;;
*)
export PS1='\W\$ '
;;
esac