git-deltaを偶然知った
twitterを眺めていて偶然、知ったので試してみたら、なかなか良かったので、そのメモ。
最近 diff の表示に delta を使ってみてるけど,構文ハイライトがついてかなり見やすい https://t.co/gfVOP53bqv pic.twitter.com/Py84ELJgRO
— ドッグ (@Linda_pp) May 26, 2020
公式サイトはこちら
試した環境
macos catalina(10.15.5)
tmux 3.1b
インストール
macなのでbrewを使います。
brew install git-delta
設定
とりえあず、公式の設定を~/.gitconfigにコピペしてみます。
[core]
pager = delta --plus-color="#012800" --minus-color="#340001" --theme='Monokai Extended'
[interactive]
diffFilter = delta --color-only
動作確認1
適当なソースの差分を表示してみます。
どうやら成功した模様。緑色が追加行、赤色が修正・削除行。
githubのdiffっぽく出てきます。
しかし、tmux起動後、色が出て来ない事態が発生しました。
原因と対策
tmuxをTrueColorに設定していないことが原因でした。
正直に言うと以下の対応の意味していることをほとんど理解していないのですが、ググりまくってなんとか解決しました。
まずはncurses(テキストベースのUIライブラリっぽいです)をインストール。自分の場合はすでにインストールされていたものの、バージョンがちょっと古かったのでupgradeし、その後TrueColorを設定する為の儀式を実施。
brew upgrade ncurses
/usr/local/opt/ncurses/bin/infocmp tmux-256color > ~/tmux-256color.info
sudo tic -xe tmux-256color tmux-256color.info
ncursesのupgrade時にパスを通せと注意されたので、.zshrcにパスを通す記述を追記。
export PATH="/usr/local/opt/ncurses/bin:$PATH"
最後にtmuxにTrueColorを使う為の以下の設定を追記しました。
set-option -g default-terminal "tmux-256color" # 基本的にはscreen-256colorかtmux-256colorを設定
set-option -ga terminal-overrides ",$TERM:Tc" # tmuxを起動していない時のzshでの$TERMの値を指定
tmux上でも差分が色付きで表示されるようになった。
これでようやく、tmux上でも差分が色付きで表示されるようになりました。
意外と道のりが長かった・・・