1. Delta: A syntax-highlighting pager for Git, diff, grep, and blame output (github.com)
Delta:为Git输出添加语法高亮的交互式分页器
Delta 是一款增强型交互式分页器(pager),用于优化 Git、diff、grep 和 blame 的输出显示,提升代码差异阅读的效率和体验。
安装与基本配置
- 安装:在多数包管理器中,安装包名为
git-delta,可执行文件为delta。 - 配置 Git 使用 Delta:
- 直接编辑
~/.gitconfig:[core] pager = delta [interactive] diffFilter = delta --color-only [delta] navigate = true dark = true [merge] conflictStyle = zdiff3 - 或运行命令:
git config --global core.pager delta git config --global interactive.diffFilter 'delta --color-only' git config --global delta.navigate true git config --global delta.dark true git config --global merge.conflictStyle zdiff3
- 直接编辑
核心功能与特性
语法高亮:
- 支持与
bat相同的语法高亮主题。 - 可应用于
git grep、rg、grep等命令的输出。
- 支持与
增强差异显示:
- 单词级高亮:使用 Levenshtein 编辑距离算法推断单词级变化。
- 并排视图:支持侧对侧对比显示,并自动换行长行。
- 行号显示:可独立或配合其他视图启用。
- 改进的合并冲突显示:提供更清晰的冲突标记与布局。
- 支持 Git 的
--color-moved特性,跟踪代码移动。
导航与交互:
- 通过
n和N快捷键在差异区段、文件或提交历史(log -p)中快速跳转(--navigate)。
- 通过
Git blame 增强:
- 提供语法高亮。
- 支持将提交哈希转换为指向代码托管平台的超链接(
--hyperlinks),兼容 GitHub、GitLab、SourceHut、Codeberg 等。
代码与路径操作:
- 可直接从 diff 输出中复制代码(默认移除
+/-标记)。 - 文件路径也可配置为超链接,方便在操作系统中直接打开。
- 可直接从 diff 输出中复制代码(默认移除
样式与自定义:
- 提供超过 20 个可样式化元素(如提交头、文件头、差异块头等),支持前景色、背景色、字体属性等精细配置。
- 使用与 Git 相同的样式语法。
- 支持
diff-highlight和diff-so-fancy的兼容模式。 - 自动检测终端背景的明暗模式,或手动设置为
dark或light。
兼容性:
- 不仅处理 Git 输出,也支持传统的统一差异格式(unified diff)。
设计目标
Delta 旨在通过高度可定制的布局和样式,让阅读和分析代码差异变得高效且愉悦,同时允许用户保持与默认 Git 输出的接近程度。