最近、私はPS1変数を変更して、端末を表示する楽しみのためにいくつかのかなりのソラリゼーション色に対応することにしました。 tmuxセッションにいないときは、すべてが素晴らしいです!虹、ポニー、ユニコーン、そして際立ったプロンプト!涼しい!
ただし、問題はtmux内にあります。 PS1の値が期待どおりであり、tmuxが実行されていないときと同じであること、つまり\[\033]0;\w\007\]\[\[\]\]\u\[\]@\[\[\]\]\h\[\]:\[\]\W\[\]$ \[\]
であることを確認しました。
.bash_profile内のすべてのエイリアスなども期待どおりに機能しています。 echo -ne "\033[1;33m hi"
はgls --color
と同様に正常に動作するため、tmuxも問題なく色を表示しています。
私の.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の現在の自作バージョンとシステムbash(現在自作を使用しています)tmux 2.4の両方を試しました。
また、2つのペインを使用したtmuxセッションでtouch testing_touch_from_bash_profile
を.bash_profileに配置し、1つのペインを強制終了し、ペインを開いて、ファイルが実際に作成されたことを確認しました。
echo $TERM
はxterm-256color
を返します。
設定変更をテストするためにtmuxを終了するときに、tmuxを終了したこと、およびps -ax | grep tmux
を介してシステム上で現在tmuxプロセスが実行されていないことを確認しました。
奇妙なことに、.bash_Promptスクリプトを読み込むと、各tmuxペイン内で色を変更する限り、色も変わります。
私は https://stackoverflow.com/questions/21005966/tmux-Prompt-not-following-normal-bash-Prompt-ps1-w を見て、後に--loginフラグを追加してみました.tmux.confの最初の行のbash呼び出し。 tmux new bash
を指定してtmuxを起動すると、最初のペインは色付けされますが、後続のペインは色付けされません。
$ PS1変数は、フィールドの色付けを除いて、一見すべての面で尊重されています。
誰かアイデアはありますか?
あなたのPS1はまた私に白黒の出力を与えます。
しかし、私のものに戻すと色が変わるので、あなたは違うものを理解できるはずです、私は
$ echo $PS1
\[\033[01;31m\]\t \[\033[01;32m\]durrantm \[\033[02;36m\]\h \[\033[01;34m\]`pwd | sed "s#\(/[^/]\{1,\}/[^/]\{1,\}/[^/]\{1,\}/\).*\(/[^/]\{1,\}/[^/]\{1,\}\)/\{0,1\}#\1_\2#g"` \[\033[00;33m\]$(git_branch)\[\033[00m\]\n\$
git_branchは私が持っているbash関数です:
git_branch () {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/'
}
これはOSXとUbuntuで同じように動作します
この問題の私の解決策は
force_color_Prompt=yes
私の.bashrc
。今、私のtmuxプロンプトに色があります。
私のマシンでは解決策は追加することです
set -g default-terminal "xterm-256color"
~/.tmux.conf
。