Zajmuję się programowaniem na komputerze kolegi. Ma wersję emacsa (23.1.1), z której wcześniej nie korzystałem. Mój problem polega na tym, że kiedy przechodzę do trybu powłoki, mój monit bash wygląda następująco:
^[]0;jay@socrates:~^G[jay@socrates]$
Mam PS1
ustawione '[\u@\h]\$ '
w moim .bashrc
. Powinno to wyglądać tak:
[jay@socrates]$
Tak to wygląda w zwykłej powłoce. Sprawdziłem również, czy PS1 ma poprawną wartość w powłoce emacsa, więc teraz nie mam pomysłów. Jak mogę uzyskać monit, aby wyglądał tak, jak chcę?
Widziałem kilka sugestii do użycia term
lub eshell
zamiast shell
. term
ma taki sam problem jak powyżej i eshell
całkowicie ignoruje mój, PS1
więc to naprawdę nie pomaga.
Natknąłem się na dokładnie ten sam problem i wynika to z PROMPT_COMMAND. Podoba mi się tytuł xterm. Więc dodałem następujący wiersz w ~ / .emacs_bash
źródło
Może to mieć coś wspólnego z typem terminalu powłoki emacs vs. Sprawdź, jaka
TERM
zmienna środowiskowa jest ustawiona w obu powłokach. Jeśli są różne, powinieneś być w stanie zmienić typ terminala powłoki emacs lub użyć innej definicji PS1 dla typu terminala emacs w.bashrc
.Możesz także spróbować
M-x ansi-term
(iansi-color-for-comint-mode-on
jeśli masz kolorowe monity).źródło
Odpowiedzi na to bardzo dobrze udzielono na stronie Stackoverflow. autor: Daniel Poe.
Oto jego odpowiedź.
Możesz użyć AnsiTerm, który obsługuje kolory lub możesz włączyć AnsiColor dla normalnej powłoki:
źródło