1 votes

Emacs Shell problème de mode

Alors que emacs Shell mode quand je lance

ls

J'obtiens ce qui suit

   [0m[01;32mmanage.py[0m     [01;34mtemplates[0m

il doit s'agir de manage.py et de templates. Pourquoi est-ce que c'est comme ça et comment le réparer ?

5voto

vaske Points 2468

Ce sont des codes vt100 pour l'affichage en couleur (qui est généralement activé par défaut sur la plupart des distros Linux aujourd'hui). Emacs Shell ne gère pas les codes d'échappement vt100.

Vérifiez si votre ls est un alias de la commande.

which ls

Est-ce que cela ressemble à ce qui suit ou à quelque chose de similaire ?

ls: alias to ls --color=tty

Si c'est le cas, vous devrez trouver où cet alias est défini et le désaliaser ou changer la façon dont il est appelé.

Votre Shell sait qu'elle s'exécute dans un Shell emacs si le paramètre d'environnement EMACS est défini sur t . Vous pouvez faire quelque chose comme ce qui suit pour définir des fonctions alternatives. J'utilise zsh, donc ceci contient quelques éléments spécifiques à ce Shell.

## for emacs
if [[ $EMACS = "t" ]] then
   PROMPT="%# "  # make the prompt simple
   unsetopt zle  # turn off advanced line editting

   ls_pager=( cat ) # ls is simple piped to cat
   ls_flags=( -A )  # default ls flags
fi

Pour bash vous pouvez simplement aliaser ls

alias ls='ls -A'

1voto

open-collar Points 752

J'ai mis ~/.emacs

(add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)

et cela a résolu mon problème. En tout cas, merci de m'avoir répondu. Le lien qui a résolu mon problème.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X