3 ポイント 投稿者 GN⁺ 2024-11-09 | 1件のコメント | WhatsAppで共有

はじめに

  • パッケージ名は "git-delta" で、実行ファイルは delta
  • ~/.gitconfig に次を追加して設定可能:
    [core]
    pager = delta
    [interactive]
    diffFilter = delta --color-only
    [delta]
    navigate = true  # diff セクション間の移動に n と N を使用
    [merge]
    conflictstyle = zdiff3
    
  • Delta は多彩な機能を備え、カスタマイズ可能。ユーザーマニュアルを参照できる。

機能

  • 言語の構文ハイライト: bat と同じ構文ハイライトテーマを使用可能。
  • 単語レベルの差分ハイライト: Levenshtein 編集推論アルゴリズムを使用。
  • 左右並列表示: 折り返し機能を含む。
  • 行番号表示
  • ファイル間移動: 大きな diff で nN キーを使ってファイル間を移動可能。
  • 強化されたマージ競合表示
  • 強化された git blame 表示: 構文ハイライトに加え、コミットをホスティングプロバイダーへのリンクとして整形可能。
  • grep 出力の構文ハイライト: rggit grepgrep などをサポート。
  • Git の --color-moved 機能をサポート
  • コードのコピーが可能: デフォルトで -/+ マーカーを除去。
  • diff-highlightdiff-so-fancy のエミュレーションモード
  • コミットハッシュをターミナルのハイパーリンクとして整形可能
  • スタイル設定可能なボックス/ライン装飾: コミット、ファイル、チャンクヘッダーのセクションを強調。
  • スタイル文字列をサポート: 20 以上のスタイル要素に対して前景色、背景色、フォント属性を指定可能。
  • 従来の unified diff 出力と git 出力を処理
  • 明るい/暗いターミナル背景の自動検出

Git、diff、grep 出力のための構文ハイライト付きページャー

  • Delta はコードの変更を効率的かつ快適に分析できるよう支援する。
  • レイアウトとスタイルを幅広く変更でき、標準の git/diff 出力に近い見た目を保つことも可能。

構文ハイライトテーマ

  • bat と同じ構文ハイライトのカラーテーマを使用可能:
    • delta --show-syntax-themes --dark
    • delta --show-syntax-themes --light

左右並列表示

  • デフォルトで左右並列表示では行番号が有効になっており、左右両方のペインに構文ハイライトが適用される。

行番号

  • delta の設定で行番号を有効化できる。

マージ競合

  • ユーザーマニュアルを参照してマージ競合を処理できる。

Git blame

  • ユーザーマニュアルを参照して git blame を強化できる。

Ripgrep、git grep

  • ユーザーマニュアルを参照して ripgrep および git grep の出力を構文ハイライトできる。

インストールと使用方法

  • ユーザーマニュアルと delta --help を参照できる。

メンテナー

  • @dandavison
  • @th1000s

1件のコメント

 
GN⁺ 2024-11-09
Hacker Newsの意見
  • Deltaは一度設定すれば忘れていられるツールで、git grep/diff/blame の出力の代わりによく使っている。ripgrepとも互換性があることを知った
    • batも同様に、一度設定すれば忘れていられるツールで、catbat に alias して使っている
  • 標準のgitでもそれなりに実用的な単語単位のdiffを得られる
    • git diff --color-words --word-diff-regex='\w+|.' コマンドを使用
  • Deltaは便利だが、長い行を切り詰めてしまう問題があった。この問題は git config --global --replace-all delta.max-line-length 0 の設定で解決した
    • これがデフォルト設定ではない理由は不明
  • Deltaとdifftasticを組み合わせて使っており、特にdifftasticはtree-sitterのAST構文に有用
    • Deltaはすっきりしていて非常に高速
  • Deltaの利用を妨げる要因は「システム」テーマの検出が不足していること。テーマがシェルと合っていないと読みにくい
  • 通常の git diff ツールを色付きで使っていたが、Deltaは複雑すぎる
  • Deltaとdifftasticの両方を使っており、強く勧めたい
    • ターミナルを使う人ならぜひ試してみることを勧める
  • batが気に入っており、Deltaとも連携している
  • Deltaが大好きで、いつもではないがたいてい使っている。誰にでも試してみることを勧める
  • 作者はmagit統合も書いているようだ
    • ユーザーフィードバック(性能など)について意見を求めている