tmux の Vim で間違った色が表示される

tmux の Vim で間違った色が表示される

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

次のフラグを使用して tmux を起動すると、この問題は修正されます。

tmux -2

tmux のマニュアルページより:

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

答え2

これは私にとってはうまくいきました

.tmux.conf

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

.vimrc

set term=screen-256color

.vimrcの古い用語の値を削除します。これでうまくいくと信じてください

答え3

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

$TERMファイルに次のように指定することで、この問題を部分的に修正できました.bashrc

export TERM="xterm-256color"

また、Launchpad にバグが報告されているようですが、まだ解決されていません。 byobu が dircolors を正しく表示しない

答え4

ターミナル タイプは、~/.tmux.conf で screen-256color に設定する必要があります。これは、tmux に TERM 環境変数を設定するよう指示するものなので、現在のセッションでは機能しません。新しいセッションを開始してテストしてください。

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

TERM=screen-256color vi

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

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

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

PS. jordanbrock さんが気づいたタイプミスはすでに修正されていると思います。

関連情報