我和提問者有同樣的問題tmux 中 vim 背景支援 256 色。
在我的普通終端中zsh
,我沒有背景顏色問題vim
,但是當我在裡面運行它時tmux
,我遇到背景顏色問題。
screen
顯然,使用而不是有問題xterm
:
外部 Tmux:echo $TERM
導致screen
內部 Tmux:echo $TERM
導致xterm
在我的 .zshrc 和 .tmux.conf 中我設定了
TERM=screen-256color
但它沒有任何影響。 (我也嘗試過TERM=screen
)
怎樣才能強制tmux
使用呢screen
?
編輯:感謝 htor,我在 .tmux.conf 和 .zshrc 中添加set -g default-terminal "screen"
(也嘗試過) 。set -g default-terminal "screen-256color"
export TERM=screen-256color
現在我得到:
外部 Tmux:echo $TERM
結果screen-256color
內部 Tmux:echo $TERM
結果echoscreen-256color
(<- 看起來有點奇怪,輸出正確嗎?)
我還能做些什麼來解決 tmux 中 vim 的背景顏色問題?
答案1
正如這裡所解釋的, 禁用背景顏色擦除(BCE) 透過清除t_ut
終端選項(:set t_ut=
在 Vim 中運行,然後按下Control+L刷新終端的顯示),以便在 tmux 和 GNU 畫面中使用 Vim 時,配色方案可以正常工作。
答案2
若要將預設終端變數變更tmux
為.tmux.conf
:
set -g default-terminal "screen"
用於設定變數的 shell 語法在.tmux.conf
.在您的環境中,.zshrc
您應該匯出 的值,TERM
以確保所有 shell 都繼承您環境中的該值:
export TERM=screen-256color