**Δ・fzf・軽いシェルスクリプトで実現した Git 差分の改良**

2026/03/25 0:02

**Δ・fzf・軽いシェルスクリプトで実現した Git 差分の改良**

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

Summary:

著者は Delta を優れたコマンドライン差分ツールとして推奨し、特に

DELTA_FEATURES="diff-so-fancy"
を有効にすると明るい/暗い緑色スキームで鮮明なビジュアル出力が得られることを強調しています。カスタムスクリプト
gd
git diff
のエイリアス)は Delta とファジーファインダー
fzf
を統合し、プルリクエストレビュー時に素早くファイルをナビゲートできるようにします。また、サイドバイサイド差分用の
--side
フラグもサポートしています。セットアップは簡単で、
git-delta
fzf
をインストールし、
.gitconfig
に最小限の Git 設定を追加して共通コマンドを Delta 経由にルーティングし、説明された環境変数を設定します。Delta と ripgrep (
rg --json <pattern> | delta
) を組み合わせるとハイライトされた検索結果が表示されます。デモ動画では文字レベル差分の可視化、gd の TUI、統合手順、および ripgrep パイピングが紹介されています。また、著者は dotfiles 内で git ログを閲覧/検索する別スクリプトも保有しており、今後の記事で詳細に説明します。このアプローチは、Linux または macOS 上の開発者を対象としており、より読みやすい差分、レビュー時の高速ファイル選択、および検索ユーティリティとの緊密な統合を求める人々に向けられています。これによりチーム全体でコードレビュー効率が向上する可能性があります

本文

2026年3月24日 更新


概要

コードの差分を確認することは、ワークフローに欠かせない作業です。
Delta は私が今まで使った中で圧倒的に優れた CLI diff ツールです。


速いジャンプ

  • システム依存関係
  • シェル設定
  • Git 統合
  • スクリプト(gd)
  • ripgrep サポート
  • デモ動画

実際に動かしてみたい方は、YouTube のデモビデオをご覧ください。


システム依存関係

Delta を使う予定なら、まずインストールしてください。
私の dotfiles では Arch Linux・Debian・Ubuntu・macOS(パッケージ名は

git-delta
)で自動的にインストールされます。

gd スクリプトを利用する場合は fzf も必要です ― dotfiles がその設定まで行ってくれます。


シェル設定

Diff をさらに見やすくするには、シェルプロファイルに以下を追加してください:

export DELTA_FEATURES="diff-so-fancy"

これで文字レベル・単語レベルの変更がダイアルカラー(ライト/ダークグリーンなど)でハイライトされる、読みやすい diff が得られます。


Git 統合

最低限の git 設定を行うだけで、次のコマンドから Delta が自動的に使用されます:

git show
git diff
git add -p
git blame

.gitconfig
の設定方法はリンク先のガイドをご覧ください。


スクリプト –
gd

Delta と fzf を組み合わせた

gd
スクリプトでは、カスタム fzf メニューを使って git diff を閲覧し、ファイル間を素早く移動できるほか、オプションの
--side
フラグでサイドバイサイド表示も可能です。

典型的な使用例:

  • gd
    – 現在の差分を見る
  • gd main..
    – チェックアウト中のブランチと
    main
    を比較

引数はそのまま

git diff
に渡されるため、
gd --staged
やローカルブランチとリモートを比較する場合も期待通りに動作します ― 新しい API は不要です!


ripgrep サポート

ripgrep の JSON 出力を Delta にパイプしてハイライト付きで検索結果を表示できます:

rg --json <search_pattern> | delta

コードベースを検索しつつ diff スタイルを保ちたいときに便利です。


デモ動画

時間内容
0:22キャラクター差分が簡単に見える
0:46fzf を使ったカスタム gd TUI
2:22通常の
git diff
add
blame
show
コマンド
4:24Git を Delta に設定する方法
5:28Fancy diffs 用に Delta を設定する
6:42Delta のインストール手順
7:27gd TUI スクリプトの紹介
8:45ripgrep 出力を Delta に渡す方法

以下にコメントで、あなたが差分を見る際に使うツールや設定について教えてください。
私の受信箱は厳重に管理しており、年間数通程度しかメールを受け取らないので、いつでもワンクリックで退会できます。どうぞご利用ください!

同じ日のほかのニュース

一覧に戻る →

2026/03/29 2:39

GitLab の創業者は、会社を立ち上げることでがんと闘う

## Japanese Translation: **概要** 著者は、上部脊柱のT5椎骨に位置する腫瘍性骨肉腫との個人的な闘いを語ります。標準治療オプションを試みたものの適切な臨床試験が見つからない中で、著者は自身の状態に合わせた新しい診断手法と並行治療プロトコルを開発しました。また、「癌ジャーニーデッキ」と埋め込み型OpenAIフォーラムプレゼンテーションを作成し、この経験を記録しています。著者のアプローチはevenone.venturesに掲載されている企業によって支援され、さらにエリオット・ハーシュバーグによる著者の旅路についての包括的な記事や、ルクサンドラ氏が執筆した「The bureaucracy blocking the chance(機会を阻む官僚主義)」という患者優先医療実践を批判する作品も広い文脈に含まれます。治療データと詳細なタイムラインは、https://osteosarc.com/ で公開されており、データ概要ドキュメントや25 TBの読み取り可能なGoogle Cloudバケットが含まれています。著者は読者にメールリストへの登録を促し、更新情報を受け取れるよう案内しています。また、`cancer@sytse.com` で連絡を取ることもできます。

2026/03/29 5:39

CSSは終焉を迎える運命にあります。

## Japanese Translation: この記事は、CSSのみでレンダリングを行い、ロジックには最小限のJavaScriptしか使用しない完全にプレイ可能なDOOM風ゲームをウェブブラウザ上で動かす方法を紹介しています。壁・床・天井・スプライト・弾道などを表現するために数千もの `<div>` 要素が生成され、各要素はカスタムプロパティとして生のDoom座標を保持し、CSS が `hypot()`(距離)や `atan2()`(角度)といった関数で幾何学を計算します。ワールドはプレイヤーの動きに逆行するように `translate3d` と `rotateY` で移動されますが、CSS にはカメラオブジェクトがないためです。 床は `rotateX(90deg)` で回転し、`clip-path`(または新しい `shape()` 関数)を使って任意の多角形や穴に切り取られます。テクスチャタイルはセクター全体にわたって背景位置をワールド座標に合わせて (`background-position: calc(var(--min-x)*-1px) …`) 配置されます。ドア、リフト、その他の動的要素はカスタムプロパティ上で CSS トランジションによってアニメーションし、JavaScript が状態属性を更新します。スプライトは `rotateY` でカメラに向き、`scaleX` で鏡像化したビルボードです。スプライトのアニメーションは CSS の `steps()` キーフレームで行い、攻撃・死亡フレーム用のデータ状態は JavaScript が供給します。弾道は CSS アニメーションで移動し、衝突検出はまだ JavaScript で処理されます。 照明はセクターごとに `filter: brightness(var(--light))` を使って全体的に適用され、ちらつくライトは `@property --light` を通じてアニメーションします。プロジェクトではアンカー位置決め、`@property`、および「ハッキー」な CSS‑のみのカリング手法(オフスクリーン要素を隠すために負の遅延でアニメーションを一時停止)といった実験的機能が採用されています。 数千もの 3D 転送された要素によるパフォーマンスは課題となり、著者は JavaScript で手動フラスタムカリングを実装し、条件付き `if()` のサポートが登場すれば将来的に純粋 CSS ソリューションへ移行する計画です。記事では Safari のビュー遷移による 3D フラット化、background‑image 再ラスター化の問題、コンポジタ不安定性などブラウザバグも文書化し、インラインスタイルやバグ報告といった回避策を紹介しています。 著者はより多くのロジックを純粋 CSS に移すことで JavaScript を完全に排除できる可能性があり、パフォーマンスをさらに向上させることを想定しています。成功すれば、このアプローチは軽量なブラウザベースゲームを刺激し、高度な CSS グラフィックス機能のサポートを促進し、重いエンジンを必要としない効率的なレンダリングが求められる開発者に利益をもたらすでしょう。

2026/03/27 23:39

オープンブースト・オン・モトローラ 88000プロセッサー

## Japanese Translation: (欠落している詳細を補完しつつ明瞭さを保つ)** ``` モトローラ 68000 ファミリーは、1990年代中頃のワークステーション(Apple、Amiga、Atari ST、Sun、HP、NeXT)や多くの産業用ボードで普及していました。 その RISC 後継機種である 88000(m88k)は、68k と PowerPC の間に導入されましたが、約 1994 年頃に期待された性能を提供できず廃止されました。m88k は二世代存在しました: • 88100 – 第1世代 CPU で、オプションの外部 88200 CMMU チップを搭載し、MVME180(20 MHz、2 本の CMMU)と MVME181 に使用されました。 • 88110 – 第2世代 CPU で、統合キャッシュ/MMU を備え、50 MHz を想定していましたが実際には約 40 MHz で販売されました。MVME187(25 MHz、デュアル CMMU、最大 64 MB)、MVME188(SMP、最大 4 CPU と 8 CMMU)、および MVME197 系列(セカンダリキャッシュ)に搭載されました。 VME バスは 32‑bit アドレス/データラインを備えたパッシブバックプレーンであり、複数ボードサポート、割り込みベクタ、オプションのスレーブマッピング、および終端要件があります。 OpenBSD のポートは 1995 年に MVME187 上で開始されました。Nivas Madhur、Steve Murphree、Marc Espie らの貢献は CVS マージ競合、アカウント停止(Theo de Raadt の関与)、GCC‑2.95 互換性問題、カーネルパニック(「align & align‑1」アサーション)および MVME188 上の不完全な SMP サポートに直面しました。ポートは 3.1‑beta スナップショットまで達成しましたが、ハードウェアエラー(VME バスロックアップ、DCAM2 コンフリクト、I²C フェイル)が未解決のまま残っています。 m88k アーキテクチャに関するドキュメントは、モトローラ AT&T System III/V、Data General DG/UX、Omron UniOS などのプロプライエタリ Unix バリアントと無料 CMU Mach コードから取得されました。メンテナー間の個人メール交換は協力、衝突解決、およびニッチなポートの保守課題を示しています。 MVME VME ボードおよび他の m88k システムのユーザーは、この OpenBSD ポートに安全性と安定性を依存しています。継続的なサポートがない場合、利用可能な OS を失うリスクがあり、新しいアーキテクチャへの移行が必要になるかもしれません。 ``` *改善された要約はすべての主要ポイントを反映し、不適切な推測を回避し、主旨を明確に提示し、曖昧または混乱を招く表現を排除しています。

**Δ・fzf・軽いシェルスクリプトで実現した Git 差分の改良** | そっか~ニュース