tmux vim colorschemeの背景が表示されない


12

tmuxをインストールしましたが、テキストモードのvimカラースキームは背景色を適切に塗りつぶしません。以下は、通常のUbuntu 14.10ターミナルでのcolorscheme xoria256の外観です。

ここに画像の説明を入力してください

そして、ここでtmuxの後にまったく同じ端末で実行すると:

ここに画像の説明を入力してください

あなたが見ることができるように、デスクトップはvimにテキストがない場所を通して見えています。256色の端末があります。

私の.tmux.conf:

~ cat .tmux.conf
set -g mode-mouse on
set -g default-terminal "screen-256color"

そして、私は256色の端末を持っています:

~ tput colors
256

通常の端末で正常に動作するVim 256色のカラースキームでtmuxを適切に動作させるにはどうすればよいですか?


私の経験では、tmuxは内で起動されると奇妙に動作しgnome-terminalます。でtmuxを起動してみTERM=xterm tmuxて、動作が異なるかどうかを確認してください。xterm動作しない場合は、xterm-256colorまたはを試してくださいxterm-color
jw013 14年

@ jw03残念ながら、これらのオプションはどれも修正に役立ちませんでした。同一の振る舞い。ターミネーター内でtmuxを実行した場合と同じ動作
Thomas Browne

1
tmux内のシェルでは、値は$TERM何ですか?そうでない場合はscreen-256colorvimとして起動してみてTERM=screen-256color vim、起動スクリプトが設定されていないことを確認しますTERM(または、バグのあるソフトウェアを回避するために必要な場合は、最初に元の値を確認してください)。
Ry- 14年

@minitech:ビンゴ。screen-256colorが問題を修正するのに対し、xterm-256colorがありました。あなたがこれを答えにするなら、私はそれを受け入れます。
トーマスブラウン

これは私のために働いた:stackoverflow.com/a/15095377/96855
Olivier Lalonde

回答:


5

これTERMscreen[-256color]通常、Vimの環境でシェルの起動スクリプトによって正しい値に設定されていない場合に発生します。その場合-例えば、あなたは

TERM=xterm-256color

、削除するかTERM、変更する前に元の値を確認してください。

if [[ $TERM == xterm ]]; then
    TERM=xterm-256color
fi


2

遅いコメントですが、私はすべてのスレッドに目を通し、次のことをするまで解決できませんでした。私がしなければならなかったのは、次のチェックを追加することだけでした

if [[ $TERM == screen]]; then
    TERM=screen-256color
fi

私の.bashrcファイルの最初の条件文に加えて:

if [[ $TERM == xterm ]]; then
    TERM=xterm-256color
fi

私もこれを持っていました.tmux.conf

set -g default-terminal "screen-256color"

私の.vimrcファイルで:

set term=screen-256color
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.