Запрос Tmux не соответствует нормальному bash запросу PS1\W

Я немного обновил свой Mac и, похоже, нарушил некоторые мои настройки. У меня есть следующий набор в моем .bash_profile

экспорт PS1 = "\ W $"

Это работает в моем обычном сеансе bash, чтобы показать только текущий каталог, а не весь путь. Однако, когда я переключаюсь в tmux, он снова отображает весь путь. Другие изменения в PS1 в профиле bash, такие как цвет или другие символы, работают нормально и отражены в tmux. Я освободил мой .tmux.conf, чтобы увидеть, вызвало ли это конфликт, но никаких изменений в этом поведении не было.

Я создал нового пользователя в системе и попробовал тот же PS1, и он отлично работал как в обычном сеансе, так и в tmux.

Я в основном смущен, потому что знаю, что у меня все работает, и не могу понять, что изменилось бы в обновлении. Какие файлы помимо .bash_profile и .tmux.conf можно играть здесь? Есть ли способ сказать, где tmux вытаскивает его настройки из?

Дополнительная информация: Такое поведение одинаково для iTerm2 и Terminal Версия Tmux 1.8 Mac OSX 10.9.1

Ответ 1

Добавьте в свой .tmux.conf следующее:

new -n WindowName bash --login

Вы можете заменить WindowName на то, что вы хотите назвать первым окном. Когда bash вызывается таким образом, он ссылается на ваши .bash_profile, .bash_rc, .profile и т.д., Где вы меняете свой $PS1.

Ответ 2

Это работает для меня: В tmux/terminal:

tmux set-option -g default-command bash

Или просто поместите в ~/.tmux.conf:

set-option -g default-command bash

Ответ 3

У меня подобная проблема. Я получаю правильный результат, если я всегда начинаю tmux с приложенной командой bash, например:

tmux new bash

Итак, чтобы упростить это, я просто создал псевдоним в файле ~/.bash_aliases, который я использую все время:

alias tn='tmux new bash'

Это работает только для первого окна. При создании новых окон вам нужно снова запустить bash, выполнив bash в терминале.

Ответ 4

У меня была такая же проблема, и после некоторых исследований я добавил следующую команду в мой ~/.tmux.conf:

set-option -g default-command "reattach-to-user-namespace -l /opt/local/bin/bash --login"

Я использую OSX 10.9.5 с iTerm2 Build 2.0.0.20141103, bash 4.3.30 (1) -release, tmux 1.9a. bash и tmux - из macports.

Ответ 5

При использовании tmux с byobu вы можете попробовать команду byobu-prompt. Он спросит вас, хотите ли вы приглашение цвета bash. После ответа "Да" приглашение изменится на обычный пользовательский хост.

Ответ 6

Добавьте следующую строку в ~/.tmux.conf

set -g default-terminal "screen-256color"

Ответ 7

Добавьте следующее в ваш ~/.tmux.conf

set -g default-terminal "tmux-256color" 

От любимого ArchWiki tmux