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を獲得しています。