Недавно я решил изменить свою переменную PS1, чтобы она соответствовала некоторым довольно солнечным цветам для моего удовольствия от просмотра терминала. Когда нет сессии tmux, все отлично! Радуга, пони, единороги и отличительная подсказка! Круто!
Проблема в Tmux, однако. Я проверил, что значение PS1 - это то, что, как я ожидаю, будет таким же, как и в случае, когда tmux не работает, а именно \[\033]0;\w\007\]\[\[\]\]\u\[\]@\[\[\]\]\h\[\]:\[\]\W\[\]$ \[\].
Все мои псевдонимы и т. Д. В моем .bash_profile также работают как положено. tmux также отображает цвета без происшествий, так же, echo -ne "\033[1;33m hi"как и ожидалось gls --color.
Текущая соответствующая строка в моем .bash_profile такова export PS1="\[\033]0;\w\007\]\[\[\]\]\u\[\]@\[\[\]\]\h\[\]:\[\]\W\[\]$ \[\]", хотя изначально я искал сценарий, расположенный в файле .bash_prompt, для обработки некоторых условий и т. Д. Я попытался вернуться к более простой версии.
Выполнение bashзаставит приглашение раскраситься, но должно быть сделано на каждой панели. export PS1=[that long string I've already posted]не будет.
Мой .tmux.conf выглядит следующим образом:
set-option -g default-command "reattach-to-user-namespace -l /usr/local/bin/bash"
set -g default-terminal "xterm-256color"
set-window-option -g automatic-rename on
bind '"' split-window -c "#{pane_current_path}"
bind % split-window -h -c "#{pane_current_path}"
bind c new-window -c "#{pane_current_path}"
Соответствующие части .bash_profile:
export TERM="xterm-256color"
if which tmux >/dev/null 2>&1; then
test -z "$TMUX" && (tmux attach || tmux new-session)
fi
Я использую macOS Sierra, iTerm 2, я пробовал как текущую версию bash, основанную на homebrew, так и системную версию bash (в настоящее время она использует homebrew), tmux 2.4.
Я также поместил touch testing_touch_from_bash_profileв свой .bash_profile во время сеанса tmux с двумя панелями, убил одну панель, открыл панель и проверил, что файл действительно создан.
echo $TERMвозвращается xterm-256color.
Я удостоверился, что при выходе из tmux для проверки изменений настроек я вышел из tmux и что в настоящее время в системе не выполняется процесс tmux ps -ax | grep tmux.
Как ни странно, использование сценария .bash_prompt также меняет цвет, пока я делаю это на каждой панели tmux.
Я посмотрел на /programming/21005966/tmux-prompt-not-following-normal-bash-prompt-ps1-w и попытался добавить флаг --login после вызова bash в первой строке моего .tmux.conf. Запуск tmux с помощью tmux new bashзаставит первую панель окраситься, но последующие панели не будут.
Переменная $ PS1 приветствуется за кажущиеся все аспекты, кроме раскрашивания любого из полей.
У кого-нибудь есть идеи?
PS1вами параметр не имеет команды для изменения цвета. Опубликовать фактическую настройку, которая работает вне tmux. Кроме того, вы должны установить PS1in .bashrc, а не in .bash_profile: .bash_profileможет вообще не выполняться, и настройки могут быть переопределены позже.
