ターミナル環境 (iTerm, vim, tmux) をフルカラーで使う

Aug 6, 2016

MacのターミナルやiTermなどターミナル環境において、デフォルトでは16色しか表示することができない。 iTerm2を256色で使用する方法もあるが、色数としてはまだまだ不十分。 そこで、ターミナル環境においてもTrue Color (24bit color) 約1667万色を使えるようにしてみたのでメモ。

true color vim

True Colorが表示できる環境

ターミナル環境においてTrue Colorを表示するためには、各ツールがTrue Colorをサポートしている必要がある。 以下、各ツールの対応状況や設定方法について示す。

1. Terminal

True Color対応しているターミナルはTrueColor.mdにまとまっている。 iTerm2は、今のところNightly Buildsでしか対応していない。 Nightly Buildは開発中のビルドであるため、深刻なバグを含んでいる可能性があるため、インストールする際は注意すること。

ターミナルがTrue Colorに対応しているかどうかは、以下のスクリプトで確認できる。 滑らかな虹色が表示されればOK。

awk 'BEGIN{
    s="/\\/\\/\\/\\/\\"; s=s s s s s s s s;
    for (colnum = 0; colnum<77; colnum++) {
        r = 255-(colnum*255/76);
        g = (colnum*510/76);
        b = (colnum*255/76);
        if (g>255) g = 510-g;
        printf "\033[48;2;%d;%d;%dm", r,g,b;
        printf "\033[38;2;%d;%d;%dm", 255-r,255-g,255-b;
        printf "%s\033[0m", substr(s,colnum+1,1);
    }
    printf "\n";
}'

2. vim

vim (patch-7.4.1778 以降) またはNeovimがTrue Colorをサポートしている。 NeovimはVimのソースコードをリファクタリングするプロジェクト。今回はせっかくなのでNeovimを導入する。

インストールはhomebrew-neovimを参考に。

$ brew install neovim/neovim/neovim

True Colorを有効するには.vimrcまたは~/.config/nvim/init.vimに以下を追加。

if has('patch-7.4.1778')
  set guicolors
endif
if has('nvim')
  let $NVIM_TUI_ENABLE_TRUE_COLOR=1
endif

Syntax Highlight

当然ながら、使用するSyntax HighlightもTrue Colorサポートしている必要がある。 幾つか挙げておく。

3. tmux

tmuxはv2.2以降でTrue Colorを使用できる。

$ tmux -V
tmux 2.2

Homebrewでインストールすると2.2以上が入る。

$ brew install tmux

まとめ

やはり綺麗な環境で開発していると気持ちが良い。 見た目の綺麗さに惹かれてAtomに浮気しそうになったが、これでまたVimに落ち着きそう。