Le ^[]
bruit provient de divers caractères de contrôle de terminal dans votre invite de shell. Essayez echo $PS1
de voir la séquence complète, et essayez par exemple export PS1='$ '
de voir qu'une chaîne d'invite plus simple supprime ce problème particulier.
Pour l'encodage, vous pouvez essayer de faire de utf-8 votre encodage préféré:
(prefer-coding-system 'utf-8)
Configuration de l'invite
Emacs définit la variable INSIDE_EMACS afin que vous puissiez créer un .bash_profile qui définit PS1 uniquement lors de l'exécution dans Emacs.
En testant sur ma machine, la première ligne de l'invite présente les caractères de contrôle problématiques. J'ai créé un ~ / .bash_profile avec ceci.
if [ -n "$INSIDE_EMACS" ]; then
export PS1='\[\033[32m\]\u@\h \[\033[33m\]\w\[\033[36m\]`__git_ps1`\[\033[0m\]\n$ '
fi
Cela définit l'invite en fonction de ce que git-bash définissait par défaut, mais j'ai supprimé la première ligne (jusqu'au \ n saut de ligne). J'ai également supprimé le $ MSYSTEM qui met MINGW64 dans l'invite - je n'ai pas besoin de voir cela. Il ne reste que l'utilisateur @ host, le répertoire courant et le dépôt git. Les caractères de contrôle définissent les couleurs qu'Emacs affiche correctement pour moi. (Pour plus de détails sur la configuration de votre invite, reportez-vous au manuel bash .)
Dans Emacs, j'ai défini le shell sur git-bash:
(setq explicit-shell-file-name "C:/git-for-windows/bin/bash.exe")
(setq explicit-bash.exe-args '("--login" "-i"))
Avec cette configuration, je vois toujours le message d'erreur ioctl initial, mais sinon les choses fonctionnent comme prévu et l'encodage est utf-8.
MĂĄrton
lireMárton
)