tmux 不著色 PS1 提示
我最近決定更改我的 PS1 變數以適應一些漂亮的 Solarized 顏色,以滿足我的終端觀看樂趣。當不在 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 和系統 bash(它目前正在使用自製軟體),tmux 2.4。
我還在
touch testing_touch_from_bash_profile
我的 .bash_profile 中放置了兩個窗格的 tmux 會話,殺死了一個窗格,打開了一個窗格並驗證了該文件實際上是創建的。
echo $TERM
返回xterm-256color
。我已經確保在退出 tmux 以測試設置更改時,我已經退出了 tmux,並且目前沒有 tmux 程序正在通過
ps -ax | grep tmux
.奇怪的是,只要我在每個 tmux 窗格中執行,採購 .bash_prompt 腳本也會改變顏色。
我查看了https://stackoverflow.com/questions/21005966/tmux-prompt-not-following-normal-bash-prompt-ps1-w並嘗試在第一行的 bash 呼叫之後添加 –login 標誌我的 .tmux.conf。啟動 tmux
tmux new bash
將導致第一個窗格著色,但後續窗格不會。除了為任何欄位著色之外,$PS1 變數似乎在所有方面都受到尊重。
有人有想法麼?
在我的機器上,解決方案是添加
set -g default-terminal "xterm-256color"
到
~/.tmux.conf
.
我對這個問題的解決方案是設置
force_color_prompt=yes
在我的
.bashrc
. 現在我的 tmux 提示有顏色了。