vimとtmuxの背景色が一致しません。

vimとtmuxの背景色が一致しません。

tmuxを実行すると、vimですべての色が機能するのに問題があります。私はこれがTERM変数または256色に関連する問題の一種だと思いますが、修正なしでvim、tmux、およびiTermで256色が機能するようにオンラインで見つけることができるすべてを試しました。小さな問題なのに真剣に悩みますね。

以下は、iTermを介してvimで実行されるサンプルコードファイルです。 アイテム

これはtmuxとiTermを介してvimで実行されているのと同じファイルです。 ここに画像の説明を入力してください。

ここでコードを書くときだけ、背景色が少し一致しないようです。なぜですか?

私のiTerm端末はset t_Co=256に設定されていますvimrc。私のiTerm端末はに設定されていますxterm-256color。私のiTerm端末はset -g default-terminal xterm-256color次のように設定されていますtmux.conf

if [ -e /usr/share/terminfo/x/xterm-256color ]; then
     export TERM='xterm-256color'
else
     export TERM='xterm-color'
fi

私の.profile。この正確な問題は、私が取り組んでいるUbuntuベースのシステムで再現されており、そこで同じ設定ファイルをすべて使用しています。これは、少なくとも問題がOS / iTermに依存しないように分離されています。

答え1

これは古い質問ですが、Google検索で高いランクを占めていますが、役に立ちません。これはついに私に問題を解決しました。

存在する.tmux.conf:

set -g default-terminal "screen-256color"
set -ga terminal-overrides ",*256col*:Tc"

存在する.vimrc:

if exists('+termguicolors')
  let &t_8f = "\<Esc>[38;2;%lu;%lu;%lum"
  let &t_8b = "\<Esc>[48;2;%lu;%lu;%lum"
  set termguicolors
endif

答え2

後ろに次の行を追加します。.tmux.conf

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

以下の行を追加する必要があります。.vimrc

set term=screen-256color

最後に、別名を追加する必要があります。.bashrc

alias tmux='tmux -2'

答え3

TERM=screen-256colortmuxの内部では、次のように設定する必要があります。こここれはtmux内でのみ機能しますが、tmuxでシェルを開くときに得られる値または値がtmux.conf無条件に上書きされていることを確認してください。TERM.bashrc

関連情報