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 ?
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 ?
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'
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.
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.