🔺

イケメンdiff viewerのDeltaを入れてみた

2021/06/16に公開

はじめに

差分というものは見やすいほうがよいですよね
git-delta は差分のレイアウト、配色をいい感じに設定してくれるツールです
個人的にアツい言語、Rustで書かれています

そんな git-delta を導入してみた記事です

https://github.com/dandavison/delta

本記事の環境

OS:macOS
git version 2.31.1
delta version 0.7.1

構成

install

dandavison/delta: A viewer for git and diff output
筆者の環境はmacなのでHomebrewを用います

$ brew install git-delta

設定

git の pagerに delta を指定すると git コマンドのdiff表示が装飾されます
~/.gitconfig or ~/.config/git/config に公式の例を追記してみる

~/.config/git/config
[pager]
    diff = delta
    log = delta
    reflog = delta
    show = delta

[delta]
    plus-style = "syntax #012800"
    minus-style = "syntax #340001"
    syntax-theme = Monokai Extended
    navigate = true

[interactive]
    diffFilter = delta --color-only

適当に git show してみる

なんということでしょう

git コマンドについて

diff view を表示するコマンドについては deltaのUIが反映されます
対話オプションの場合も同様です (git add -p等)
先程の設定の以下の記述は、対話オプションでdeltaを有効にするものです

[interactive]
    diffFilter = delta --color-only

git コマンドで deltaのオプションを指定するには -c オプションを用いるといいです

git -c delta.side-by-side=true show

https://github.com/dandavison/delta/issues/493

設定可能なFlagを見てみる

表示方法の変更、設定の確認とか

行番号を表示

config
[delta]
    line-numbers = true
delta -n hoge.txt foo.txt


line-numbers off


line-numbers on

横に並べて表示

個人的にこっちのが 100倍見やすい

[delta]
    side-by-side = true
delta -s hoge.txt foo.txt


side-by-side on

追加/削除された行に +/-マークをつける

delta --keep-plus-minus-markers

n/Nで前方/後方ジャンプできようにする

delta --navigate hoge.txt foo.txt

現在設定されているconfig一覧を見る

delta --show-config

サポートされてる言語一覧を表示

delta --list-languages

カラーテーマ名一覧を表示

delta --list-syntax-themes

カラーテーマ一覧をデモ付きで表示

delta --show-syntax-themes

見た目のカスタマイズ

シンタックステーマの設定

syntax-themeでテーマ名指定なので簡単
言語サポートも多め
サポートされてるテーマは前述した delta --list-syntax-themes で確認

[delta]
    syntax-theme = Monokai Extended

名前付きグループ

feature 句をgit configで設定することで、名前付きグループを使用することができる
以下の例だと、delta "my-delta-config" に指定した設定が有効になる

[delta]
    features = my-delta-config

[delta "my-delta-config"]
    side-by-side = true
    syntax-theme = Dracula

公式が用意しているカスタムカラーテーマを使用する

deltaでは、syntax-highlightの他に 追加行のハイライトカラーファイル名の表示方法などもカスタマイズできる

公式が 用意してるテーマもあって、 先程の featuresで 読み込ませて使うことが可能

https://github.com/dandavison/delta/blob/master/themes.gitconfig

  1. ↑のファイルを適当な場所にダウンロードする

  2. includeでダウンロードしたファイルを読み込む

[include]
    path = {ダウンロードしたPATH}/themes.gitconfig
  1. featuresで任意のテーマを読み込む
[delta]
    features = collared-trogon

woolly-mammoth :elephant: がいい感じでした(色きついけど笑)

所感

  • Rust はすごい
  • 正直diffコマンドで差分みることないのでこれを機にdiff操作マスターしたい
  • tig でサポートされたらすごい嬉しいんですが、 ISSUEはたってるものの中々進捗がないようです

Discussion