LoginSignup
42

More than 5 years have passed since last update.

tmux on iTerm2 で斜体 & True Color を使う

Posted at

True Color も Italic (Oblique) Font も表示できないなんて 20 世紀までだよねー

と言いたいところですが、以外と時間がかかりました。iTerm2 3.0 & tmux 2.2 以降でこれが可能です。

斜体フォントをターミナルで使う

Italic fonts in iTerm2, tmux, and vim - Alex Pearce

上記のサイトを参考にしました。

/tmp/xterm-256color-italic.terminfo
# A xterm-256color based TERMINFO that adds the escape sequences for italic.
xterm-256color-italic|xterm with 256 colors and italic,
  sitm=\E[3m, ritm=\E[23m,
  use=xterm-256color,

上記のようなファイルを作成しておいた上で、

tic /tmp/xterm-256color-italic.terminfo

はい。これで準備完了です。後は iTerm2 の設定画面にて以下のように設定。

  • Preferences → Profiles → Text
    italic text allowed にチェックを入れる。
    スクリーンショット_2016-08-21_19_55_06.png

  • Preferences → Profiles → Terminal → Report Terminal Type
    xterm-256color-italic と入力する。
    スクリーンショット_2016-08-21_19_52_11.png

iTerm2 を起動して以下のように入力してみましょう。

$ echo `tput sitm`italic sample ここが斜体になる`tput ritm`

スクリーンショット 2016-08-21 20.01.06.png

このように、斜体で表示されれば成功です。

tmux でも斜体を使う

.tmux.conf
set -g default-terminal "xterm-256color-italic"

先ほど作成した xterm-256color-italic を tmux の設定に追加すれば OK。簡単ですね。

更に True Color を使う

今までの terminal はいいとこ 256 色程度の表現力しかなかったのですよね。いい時代になったもんです。

Using True Color in Vim with Tmux - Deductive Labs

こちらも上記の記事を参考にしました。iTerm2 の方は特に何も設定不要で True Color が有効になっています。後は tmux の方で

.tmux.conf
set -ga terminal-overrides ",xterm-256color-italic:Tc"

以上のように設定するだけで OK。iTerm2 のテストコードに True Color の例があるのでスクリプトを叩いてみましょう。

スクリーンショット 2016-08-21 20.10.54.png

この画像の様に、なめらかな色の変化が現れれば OK です。

Vim でも使う

この斜体 & True Color はまだまだ新しい機能なので、利用できるアプリケーションは限られています。我らが Vim ももちろん対応しています……が、True Color については 7.4.1799 以上という、比較的新しいバージョンが必要です。Homebrew とかで新しいバージョンをインストールしておきましょう。

$ brew install vim

今回はみんな大好き Solarized の True Color 版があったので試してみました。

lifepillar/vim-solarized8: Optimized Solarized colorschemes. Best served with true-color terminals!

何らかのプラグインマネージャーを使っても良いですが、単なるカラースキーマですので colors ディレクトリからファイルをコピーしてくるだけでも試せます。

後は .vimrc に以下のように追記しましょう。

.vimrc
" True Color を使えるようになるおまじない
set termguicolors
" 斜体を積極的に使う
let g:solarized_term_italics = 1
" Solarized Light
colorscheme solarized8_light

で、起動してみると……うん。何も変わらないよね。だって今までも本家 Solarized 使ってたしね。

しかし、これの真価はそんなことではないのです。何と、iTerm2 の色設定と関わりなく、Solarized が使えるのです!

……うん……。は? って感じですよね…… いやね、Solarized とかその他、凝った Colorscheme はたいていの場合 terminal アプリ(この場合は iTerm2)の設定をも切り替えた上で利用するのですが、それはつまり、terminal と Vim で Colorscheme を別々に出来ないという痛みを伴うものでした。

今回の True Color 対応でこれが解決されたんです! iTerm2 は Tango Dark で、Vim は Solarized Light みたいな!

solarized-on-tango.gif

わっかんないかなー、このスゴさ。わかんないだろうなー。でも一人くらいは分かってくれるはず……!

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
42