Come posso ottenere la modalità shell di Emacs per rendere (o ignorare) i miei colori invece di stampare codici ASCII?
Domanda
Il sintomo del problema è simile a " [0m [27m [24m [J [34; 1 " che su un terminale si traduce nel colore blu.
-A
Soluzione 2
La soluzione che attualmente mi sta dando qualche successo è ridefinire la funzione shell come termine ansi:
;; shell-mode
(defun sh ()
(interactive)
(ansi-term "/bin/zsh"))
Altri suggerimenti
Ho il seguente nel mio .emacs
(add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)
Per " ignora " in alternativa, inserisci qualcosa come " alias ls = ls
" o " unset LS_COLORS
" nel tuo ~ / .emacs_ {bash, tsch, qualunque sia il tuo nome di shell}
. Questo file viene eseguito in tutte le shell subordinate create da emacs.
Emacs invia la nuova shell il contenuto del file
~ / .emacs_shellname
come input, se esiste, doveshellname
è il nome del file da cui è stata caricata la shell. Ad esempio, se si utilizza bash, il file inviato ad esso è~ / .emacs_bash
. Se questo file non viene trovato, Emacs tenta di eseguire il fallback su~ / .emacs.d / init_shellname.sh
.
Quanto segue dovrebbe funzionare nel tuo .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