0. Modern

ibraheemdev/modern-unix: A collection of modern/faster/saner alternatives to common unix commands. (github.com)

该仓库提供了许多Linux传统工具的现代化替代工具。

1. delta

git(对比功能)和diff的升级。

仓库: dandavison/delta: A syntax-highlighting pager for git, diff, and grep output (github.com)

文档: Introduction - delta (dandavison.github.io)

1.1 安装

参照Installation - delta (dandavison.github.io)

windows可以使用winget进行安装,注意事项见Using Delta on Windows - delta (dandavison.github.io)

1.2 命令行使用

配置通过环境变量配置

命令行直接使用

1
delta a.txt b.txt

或使用管道

1
2
git diff a.txt b.txt | delta
diff a.txt b.txt | delta

1.3 配合git使用

配置通过修改~/.gitconfig

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[core]
pager = delta

[interactive]
diffFilter = delta --color-only --features=interactive

[delta]
features = decorations

[delta "interactive"]
keep-plus-minus-markers = false

[delta "decorations"]
commit-decoration-style = blue ol
commit-style = raw
file-style = omit
hunk-header-decoration-style = blue box
hunk-header-file-style = red
hunk-header-line-number-style = "#067a00"
hunk-header-style = file line-number syntax

以下一些命令中的对比工具会被修改为delta

  • git diff
  • git show
  • git log -p
  • git stash show -p
  • git reflog -p
  • git add -p

1.4 使用的配置

1.4.1 显示行号

1
2
[delta]
line-numbers = true
1
delta -n

1.4.2 横向对比

1
2
[delta]
side-by-side = true
1
delta -s
1
2
export DELTA_FEATURES=+side-by-side # activate
export DELTA_FEATURES=+ # deactivate

1.5 效果