tmux 中的 vim backgroundcolor - 如何強制 zsh 在 tmux 中使用 screen 而不是 xterm

tmux 中的 vim backgroundcolor - 如何強制 zsh 在 tmux 中使用 screen 而不是 xterm

我和提問者有同樣的問題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

相關內容