Vim には、termguicolors
というオプションがあり、端末上でも True Color を使用することが出来ます。
set termguicolors
tmux 上で Vim を使う場合
tmux で True Color を用いる場合、以下のような設定をします。
コメントに @ttdodaさんによる terminal-overrides の解説がありますのでそちらも御覧ください
set -g default-terminal "screen-256color"
set-option -ga terminal-overrides ",xterm-256color:Tc"
ちなみに、xterm-256color
を設定する記事を度々見かけますが、tmux/FAQ at master · tmux/tmuxによると screen
系以外は非推奨のようです。
TERM=screen-256color
を設定した場合、Vim でも追加の設定が必要です。:h xterm-true-color
を参照すると解説が書いてあります。
set termguicolors
let&t_8f ="\<Esc>[38;2;%lu;%lu;%lum"let&t_8b ="\<Esc>[48;2;%lu;%lu;%lum"
TERM=xterm-256color
の場合は、t_8f
と t_8b
はデフォルトの値が設定されるようです。
環境
- iTerm 2 3.0.12
- tmux 2.3
- MacVim 8.0.124
調べた動機
以下のツイートを見かけて調べてみました。
@Linda_pp問題になっているのはBCE対応の有無なので.vimrcにset t_ut= を追加してBCEを無効にすればとりあえずは解決しますが、サポート対象外の使い方なのでTERMにはscreen系を指定する事をお勧めします。
— いわもと こういち (@ttdoda) December 14, 2016