私も質問者と同じ問題を抱えています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 screen 内で Vim が使用されるときにカラー スキームが適切に機能するようにします。
答え2
デフォルトのターミナル変数を設定するには、tmux
次のように変更します.tmux.conf
。
set -g default-terminal "screen"
変数を設定するためのシェル構文は では機能しません.tmux.conf
。 では の.zshrc
値をエクスポートして、TERM
環境内のすべてのシェルがこの値を継承するようにする必要があります。
export TERM=screen-256color