Недавно я решил изменить свою переменную 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. Кроме того, вы должны установитьPS1
in.bashrc
, а не in.bash_profile
:.bash_profile
может вообще не выполняться, и настройки могут быть переопределены позже.Ответы:
Ваш PS1 также дает мне черно-белый вывод.
Однако переключение обратно на мое дает мне цвет, так что вы должны быть в состоянии выяснить другое, я использую
git_branch - это функция bash, которая у меня есть:
Твой против Моего:
Это работает так же на OSX и Ubuntu
источник
Мое решение этой проблемы было настройка
force_color_prompt=yes
по моему
.bashrc
. Теперь моя подсказка tmux имеет цвет.источник
tmux
, а затем запустить сеанс tmuxsource ~/.bashrc
. Вы должны сделать это в каждой панели.На моей машине решение состоит в том, чтобы добавить
к
~/.tmux.conf
.источник