tmux での vim 背景色 - tmux で zsh に xterm の代わりに screen を使用させる方法

tmux での vim 背景色 - tmux で zsh に xterm の代わりに screen を使用させる方法

私も質問者と同じ問題を抱えています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

関連情報