Нещодавно я вирішив змінити свою змінну 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, я спробував як поточну версію basbre bash, так і системну 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
в .bashrc
, а НЕ .bash_profile
: .bash_profile
не могли б бути виконані на всіх, і настройки можуть бути перевизначені пізніше.