deltaは、シンタックス・ハイライトが実装されたRust製のページャーです。Gitの差分表示を拡張する機能が豊富にあり、GitHubやGitLabに類似する画面をターミナルで構成できます。2019年7月に最初のリリース(v0.0.1)があり、2024年現在でも開発が続けられています。
この記事では、Gitの差分に関連するdeltaの基本的な機能を紹介します。以下、次の環境が前提となります。
- delta v0.17.0 (執筆時点での最新バージョン)
- git 2.45.2
- zsh 5.9 (x86_64-apple-darwin23.0) & Oh My Zsh
インストール
インストール手順はユーザーマニュアルの4章にあります。多くの場合、パッケージ名がdeltaではなくgit-deltaであることに注意してください(ChocolateyやScoopなどの一部のパッケージマネージャではパッケージ名がdeltaとなります)。筆者はHomebrewでインストールしました。
$ brew install git-delta
基本的な使い方
Gitのページャーとしてdeltaを指定すれば基本的な機能が使えるようになるため、~/.gitconfigにページャーの設定を追加します。
[core]
pager = delta
差分の表示
deltaがGitのページャーとして指定されている状態でgit diffを実行すると、シンタックス・ハイライトが効いた差分が表示されます。
また、次のような操作でも同様に表示されます。
git show(コミットやタグなどのオブジェクトを表示する)git log -p(コミット履歴とその差分を表示する)git stash show -p(スタッシュとその差分を表示する)
画面分割による差分の表示
deltaは変更前と変更後を左右に並べて表示する形式(Side-by-side view)を提供しています。有効化するには、delta.side-by-sideをtrueに設定します。
[delta]
side-by-side = true
有効化すると、次の画像のように画面が分割されて表示されます。
インタラクティブな操作における差分の表示
git diffやgit showなどの操作に加えて、git add -pなどのインタラクティブな操作に対してもシンタックス・ハイライトを効かせることができます。有効化するには、.gitconfigにinteractive.diffFilterの設定を追加します。
[interactive]
diffFilter = delta --color-only
ダークモードとライトモード
deltaは使用しているターミナルの設定に応じてデフォルトカラーが指定される仕組みがありますが、明示的にdarkまたはlightを設定することもできます。次の例はlightを指定する設定です。
[delta]
light = true
開発状況
deltaはDan Davisonによって開発されています。deltaには100人以上のコントリビューターがおり、v0.0.1のリリースから執筆時点(2024年6月)までに計55回のリリースがありました。GitHubでは21.2kのstarを獲得しています。