Tmuxを実行しているときに、vimですべての色を動作させるのに問題があります。 TERM変数や256colorsに何らかの問題があるとは思いますが、vim、tmux、iTermで256色を動作させるためにオンラインで見つけたすべてのことを実行しましたが、何も修正されていません。小さな問題ですが、深刻なバグがあります。
ITermを介したvimのコードファイルの例を次に示します。
そして、tmuxとiTermを介したvimの同じファイルを次に示します。
コードがそこに記述されている場合にのみ、背景色がわずかに不一致に見えることに注意してください。これはなぜでしょうか?
vimrc
にset t_Co=256
があり、iTerm端末がxterm-256color
に設定されており、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に関連していない問題が特定されます。
以下の行を.tmux.conf
に追加した後
set -g default-terminal "screen-256color"
以下の行を.vimrc
に追加する必要があります
set term=screen-256color
最後に、エイリアスを.bashrc
に追加する必要があります
alias tmux='tmux -2'
Tmux内で、TERM=screen-256color
を設定する必要があります。 here のようなものかもしれません。これはtmux内からのみ機能し、tmux.conf
では機能しません。 TERM
値を無条件に上書きしないことを確認してください。 .bashrc
、またはtmux内でシェルを開いたときに取得されるもの。
古い質問ですが、私を助けなくても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