tmuxのVimが間違った色を表示する


57

Ubuntu 11.10をインストールしました。次に、GnomeターミナルのSolarizedテーマをダウンロードしました。ターミナルからは、私のvimは見栄えが良いです。プラグインvim-powerlineは正しく表示され、構文は適切な色で強調表示されます。しかし、tmuxを実行してvimを実行すると、構文ハイライトは1つの基本色のみを使用し、vim-powerlineは色を表示しません。私はvim-powerlineに関するFAQを見て、解決策は.tmux-configのこの行でなければなりません:

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

しかし、それは機能しません。TERMを見て、 'xterm'が返されるので、試しました:

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

しかし、これも助けにはなりません。

これは.tmux.configの唯一の行です。.vimrcには次の行があります。

call pathogen#infect()
set nocompatible
set encoding=utf-8
set laststatus=2
let g:Powerline_symbols = 'fancy'
set t_Co=256
syntax enable
set background=dark
colorsheme solarized

自分の答えから賛成を得て利益を得たはずの人々からでさえ、あなたが賛成を得なかった理由はわかりません。私から+1。質問は健全であり、それを見つけて自分の問題を解決するのにも役立ちました。
0xC0000022L

回答:


54

次のフラグでtmuxを起動すると、これが修正されます。

tmux -2

tmux manページから:

-2端末が256色をサポートしているとtmuxに強制させます。


1
良いヒント。画面のCygwinバージョンがvimをクラッシュさせ始めたとき、私は非常に素早くtmuxに再び切り替えました。大好きです。
grantbow

1
参考までに、これはtmux 2.3と最新の電力線で私にとってうまくいった唯一のものでした。vimとtmuxステータスバーの色は本当に奇妙でした。
プラスティグローブ

28

GitHubリポジトリから最新のSolarizedを使用して、Byobu 5.17およびtmux 1.5を使用するUbuntu 10.04 LTSで同じ問題が発生しています。

ファイルで指定すること$TERMで、これを部分的に修正できました.bashrc

export TERM="xterm-256color"

また、ランチパッドにファイルされたバグがあるようですが、まだ解決されていません:byobuはdircolorsを適切に表示していません


2
これは私のために働いた唯一のものです!
Tranquille

また、上で働いていたのUbuntu 14.04tmuxは2.0
dukedave

これはOS Xでも解決策です(笑)
ジェイ

27

これは私のために働いた

.tmux.conf

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

.vimrc

set term=screen-256color

.vimrcの古い用語値を削除し、これが機能すると信じて


1
私にはうまくいきません。tmux 1.8、vim 7.4.1816、カーネル3.13.0-92-genericを使用したubuntu x86_64。ご参考までに。
fstang

1
.vimrcの設定がなくても、.tmux.confのみで機能しました。
ガイソンサントス

.tmux.confの設定が私にとってはうまくいきました!
ヘッセルボム

4

端末タイプは〜/ .tmux.confでscreen-256colorに設定する必要があります。これはtmにTERM環境変数の設定内容を伝えるため、現在のセッションでは機能しません。新しいセッションを開始してからテストします。

それでも動作しない場合は、次を使用してVimを実行できます。

TERM=screen-256color vi

これにより、1回限りのvi実行のためだけに環境変数が設定されます。

vimですべての色が表示されない場合は、256色のパレットをサポートするようにターミナル(1つのターミナルエミュレーターでテストしているかどうかわかりません)をテストします-以下からPerlスクリプトをダウンロードして実行します問題の端末エミュレータ。

http://scie.nti.st/dist/256colors2.pl

PS。私は、あなたがすでにタイプミスしたjordanbrockに気づいたことを修正したと思います。


2

Marcin Kaminskiによって説明されているように、もしTERM=screen-256color vim <filename> あなたのために働くなら、あなたの.bashrc

TERM=screen-256color

あなたの次の.tmux.conf

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

私は同じ問題を抱えていた、これは私のために動作します。


これは私のために働いた唯一のものでした(tmux 1.8)。
山猫

実際、テストしたばかりで、TERM=screen-256colortmuxをに設定しscreen-256colorたり、に設定したりすることなく、変更だけで十分でしたxterm-256color。ありがとうございました!
山猫


0

この回答に記載されている同じ問題が発生している可能性があります。

基本的には、作品の設定、および.tmux.conf TERMに設定されているscreen-256colorが、その後tmuxのは、bashのを開き、設定あなたの.bashrc、呼び出し、TERM何か他のもの(おそらくにしますxterm-256color)。

解決策はTERM、.bashrcではなく、ターミナル設定で設定することです。それがオプションでない場合は、TERM.bashrc内を確認し、既にある場合は変更しないでくださいscreen-256color



0

[解決策] [1]視力を乱し、Vimを長時間使用することを不快にさせる可能性があります。

これを修正するには、Vimで:set term = screen-256colorを実行するか、一部の専門家が推奨するように、TERM = screen-256color環境でVimを再起動します。http://sunaku.github.io/vim-256color-bce.html


2
[Solucion] [1]とはどういう意味ですか?別の回答を参照またはリンクしようとしていましたか?回答は常に同じ順序で表示されるとは限りません。これを拡張して、「あなたの視力を乱し、Vimを長時間使用することを不快にさせる」と言っていることを明確にすることをお勧めします。
エリアケイガン14

0

.bashrcまたは.zshrcに追加するだけです

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

また、tmux -2で開始します


0

色に時間を費やしている人、およびソラリゼーションされたvimがtmuxで動作しない場合、またはvimの色を見つけるのにうんざりしている場合、これはすぐに動作するはずです。

yum install vim-jellybeans

または

mkdir -p ~/.vim/colors
cd ~/.vim/colors
curl -O https://raw.githubusercontent.com/nanotech/jellybeans.vim/master/colors/jellybeans.vim
touch ~/.vimrc 
sed -i '/colorscheme/d' ~/.vimrc
echo colorscheme jellybeans >> ~/.vimrc

これにより、美しい色のセットで修正され、パターンが非常に焦点を合わせられ、便利になります。ハイライト、検索語も設定しようとすると、これで終わりです。すべてがすでに使用するように設定されています。設定ファイルの色を変更することもできます。

簡単な簡単な解決策以外何もインストールしたくない場合は、上記を無視してvimでこれを試してください

:colo ron 「ron」を次のセットに置き換えて、さらに復元することもできます solo default

blue 
darkblue 
default
delek
desert
elflord
evening
koehler
morning.vim
murphy
pablo
peachpuff
ron
shine
slate
torte
zellner

.vimrcに保存します

colo ron
syntax on

負のフィードバックをした人。正当な理由を聞かせてください。
Seandex
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.