^[]
Szumów pochodzących z różnych terminali znaków sterujących w wierszu powłoki. Spróbuj echo $PS1
zobaczyć pełną sekwencję i spróbuj np. export PS1='$ '
Zobaczyć, że prostszy ciąg zachęty usuwa ten konkretny problem.
W przypadku kodowania możesz spróbować ustawić utf-8 jako preferowane kodowanie:
(prefer-coding-system 'utf-8)
Konfigurowanie monitu
Emacs ustawia zmienną INSIDE_EMACS, dzięki czemu można utworzyć .bash_profile, który ustawia PS1 tylko podczas działania w Emacsie.
Testując na moim komputerze, pierwsza linia zachęty zawiera problematyczne znaki kontrolne. Za pomocą tego utworzyłem profil ~ / .bash_profile.
if [ -n "$INSIDE_EMACS" ]; then
export PS1='\[\033[32m\]\u@\h \[\033[33m\]\w\[\033[36m\]`__git_ps1`\[\033[0m\]\n$ '
fi
To ustawia monit na podstawie domyślnego ustawienia git-bash, ale usunąłem pierwszą linię (do \ n podziału linii). Usunąłem także $ MSYSTEM, który wyświetla MINGW64 w monicie - nie muszę tego widzieć. Pozostaje użytkownik @ host, bieżący katalog i repozytorium git. Znaki kontrolne ustawiają kolory, które Emacs wyświetla mi poprawnie. (Szczegółowe informacje na temat konfigurowania pytania znajdują się w podręczniku bash ).
W Emacsie ustawiłem powłokę na git-bash:
(setq explicit-shell-file-name "C:/git-for-windows/bin/bash.exe")
(setq explicit-bash.exe-args '("--login" "-i"))
Przy tej konfiguracji nadal widzę początkowy komunikat o błędzie ioctl, ale poza tym wszystko działa zgodnie z oczekiwaniami, a kodowanie to utf-8.
MĂĄrton
należy przeczytaćMárton
)