web-dev-qa-db-ja.com

VIM tmuxを使用すると、ソラライズされた配色が正しく表示されない

VIM using gnome terminal(Ubuntu))でソラリゼーション配色を使用しようとしています。tmuxなしでvimを実行すると、見栄えがよくなります。以下を参照してください:

enter image description here

次のコマンドを.bashrcに追加した場合

# tmux configuration
tmux attach &> /dev/null

if [[ ! $TERM =~ screen ]]; then
    exec tmux
fi

ターミナルをtmuxで起動すると、色が正しく見えません。以下を参照してください:

enter image description here

.tmux.confファイルの内容は次のとおりです

source ~/.local/lib/python2.7/site-packages/powerline/bindings  /tmux/powerline.conf                    
set-option -g default-terminal "screen-256color"                                                                                                                                          
set-option -g history-limit 10000   

Vimの配色に https://github.com/altercation/vim-colors-solarized を使用していますが、ターミナルは次のとおりです https://github.com/Anthony25/ gnome-terminal-colors-solarized

編集:tmuxを使用:

~$ echo $TERM
screen

enter image description here

Tmuxなし:

~$ echo $TERM
xterm

enter image description here

3
user1135541

問題はtmuxバージョン1.8でした。私はここからのアドバイスを使用しました:

https://stackoverflow.com/questions/25940944/ugrade-tmux-from-1-8-to-1-9-on-ubuntu-14-04

Tmuxをバージョン1.9aにアップグレードし、問題は解消しました。

4
user1135541

$TERMの値はscreen-256colorである必要があります。これにより、Vimは256色の可用性を正しく検出します。 (このツールは同様の多重化を実装しているため、tmuxscreenの端末定義を再利用します。)

Tmux内でTERMに正しい値を設定して、行を追加する必要があります

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

~/.tmux.confに変更するか、~/.vimrcを介してset t_Co=256を256色に強制します(これは回避策であり、ハイカラー以外の端末も使用する場合はif $TERM == 'screen'で保護するのが最適です)。 。

4
Ingo Karkat

Tmux -2を試してください。-2は、端末が256色をサポートすることをtmuxに強制することを意味します。 tmuxが常にそのように起動するように、エイリアスを作成しました。

2
Wisconsin Wes

私はsoluxedテーマを使用したtmuxとvimで同じ問題を抱えていました。このブログ投稿を利用して問題を解決しました: http://www.terminally-incoherent.com/blog/2012/10/17/vim-solarized-and-tmux/

この問題を解決するための私の手順は次のとおりです。

  1. Tmuxを2.0バージョンにアップグレードします。 (現在のバージョンを確認するには:tmux -V

  2. 256色モードの端末サポートを追加(~/.bashrc):

    export TERM="screen-256color"
    alias tmux="tmux -2"
    
  3. 使用する端末タイプ(~/.tmux.conf):

    set -g default-terminal "screen-256color"
    
  4. Vimに256色を使用するよう強制します(~/.vimrc):

    set t_Co=256                        " force vim to use 256 colors
    let g:solarized_termcolors=256      " use solarized 256 fallback
    

変更を有効にするためにターミナルを再起動します。

2
romengrus

Selenized を使用することもできます。これは、標準のカラーマッピングを使用するSolarizedの再設計であるため、このような問題は発生しません。また、コントラストがわずかに増加し、色が調整されているため、読みやすさが向上しています。

0
Jan Warchoł

Vim

_~/.vimrc_:

_set t_Co=256
colorscheme <name>
_

Tmux

_~/.tmux.conf_:

_set -g default-terminal "screen-256color"
_

シェル

以前の変更後、ワークフローを次のオプションのいずれかに適合させる必要があります。

オプション#1:常に_-2_引数でtmuxを開始します:

_tmux -2
_

オプション#2:シェル構成ファイルにエイリアスを設定します(_~/.bashrc_、_~/.zshrc_):

_alias tmux="tmux -2"
_

オプション#3:_/usr/local/bin/tmux_にtmuxスクリプトを作成し、_/usr/local/bin/_が_/usr/bin_の_$PATH_より前に来るようにします。

_#!/bin/sh
/usr/bin/tmux -2 "$@"
_
0
thiagowfx