Я делаю некоторое программирование на машине коллеги. У него есть версия emacs (23.1.1), я не использовал прежде. Моя проблема состоит в том, что, когда я перехожу к режиму оболочки, моя подсказка удара похожа на это:
^[]0;jay@socrates:~^G[jay@socrates]$
Я имею PS1
набор к '[\u@\h]\$ '
в моем .bashrc
. Это, как предполагается, похоже на это:
[jay@socrates]$
Это - то, как это смотрит в регулярной оболочке. Я также проверил, что PS1 установлен на правильное значение в оболочке emacs, поэтому теперь я вне идей. Как я могу заставить свою подсказку смотреть способ, которым я хочу?
Я видел некоторые предложения для использования term
или eshell
вместо shell
. term
имеет ту же быструю проблему как выше, и eshell
полностью игнорирует мой PS1
таким образом, это действительно не помогает.
Ваша оболочка пытается установить XTerm's (или другая консоль) заголовок/заголовок. Существует много способов, которыми это могло бы делаться.
Сначала удостоверьтесь, что PS1 действительно, что Вы думаете, что это
echo $PS1 | less -E
Это скажет Вам, если будут управляющие символы в подсказке, то меньше заставит их выглядеть забавными. Принятие Вашей подсказки состоит точно в том, как Вы говорите, затем это - вероятно, переменная среды PROMPT_COMMAND. Можно посмотреть на это тот же путь...
echo $PROMPT_COMMAND | less -E
Если быстрая команда является проблемой, то можно просто сбросить ее. В любом случае эти переменные настраиваются где-нибудь и не должны быть установлены обновить заголовок XTerm, если Вы не находитесь в XTerm!
Можно посмотреть в "стандарте" bashrc (/etc/bashrc). Необходимо видеть код, который проверяет на оболочку iteractive (набор PS1), и затем проверяет на xterm (смотрящий на переменную $TERM) и делает что-то другое там, чем для других терминальных типов.
Я подозреваю где-нибудь в инициализации удара, трудно кодированная установка, которая должна только быть сделана на xterm-совместимых консольных программах. Считайте удар человека для нахождения общего списка файлов, которые можно искать и через.
Если все вышеупомянутые сбои, попробовать
printenv | less
И посмотрите, можно ли найти что-то подозрительным там, и затем разыскивать, где это устанавливается. Отправьте его здесь, если Вы не можете разработать его.
Это может быть что-то, чтобы сделать с терминальным типом оболочки emacs по сравнению с Вашей регулярной оболочкой. Проверьте что TERM
переменная среды установлена на в обеих оболочках. Если они отличаются затем, необходимо смочь измениться, emacs окружают терминальный тип или используют другое определение PS1 для emacs терминала, вводят .bashrc
.
Вы могли также попробовать M-x ansi-term
(и ansi-color-for-comint-mode-on
если у Вас есть цветные подсказки).
Этому ответили очень хорошо на stackoverflow сайте. Daniel Poe.
Можно использовать AnsiTerm, который действительно поддерживает цвета, или можно включить AnsiColor для нормальной оболочки:
(autoload 'ansi-color-for-comint-mode-on "ansi-color" nil t)
(add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)