开发提效 × 6 款工具:Git、版本管理、代码搜索全覆盖

lazygit、gitui、delta、mise、ast-grep、tokei——本期 6 款开发工具全来自 Arch 官方 Extra 仓库,覆盖 Git TUI、diff 高亮、多语言运行时管理和代码搜索,pacman 一键安装。

这期聚焦开发工具类。选出的 6 款工具有一个共同特点:它们解决的是日常编程中切实存在的痛点——看 diff 眼睛疼、git 操作反复敲命令、多项目 Node/Python 版本打架、想搜一段代码结构却只有 grep 可用。全部来自 Arch 官方仓库(Extra),pacman 直接装。

Git 操作

lazygit

lazygit 是目前社区讨论度最高的 Git TUI,用 Go 写成。打开后五栏布局,左侧文件状态、右侧 diff,键盘就能完成暂存单行、交互式变基、cherry-pick,甚至 git bisect。1
lazygit 演示动图:逐行选择暂存,空格键暂存单行,v 选范围,操作直观
lazygit 演示动图:逐行选择暂存,空格键暂存单行,v 选范围,操作直观
lazygit 逐行暂存演示 · 来源:jesseduffield/lazygit
它比较吸引人的地方在于「撤销/重做」:按 z 能回滚上一步 git 操作,底层走 reflog 实现,在实验性变基或批量操作时候很有用。
sudo pacman -S lazygit
# 在任意 git 仓库目录内运行
lazygit
Arch 官方仓库版本:0.61.11,2026-04 更新。2

gitui

gitui 同样是 Git TUI,但用 Rust 写成,在大仓库场景表现更好。GitUI 的 benchmark 数据(解析 Linux kernel 的 900k+ commits)显示:耗时 24 秒、内存占用 0.17 GB,对比 lazygit 的 57 秒和 2.6 GB,差距相当明显。3
gitui 界面演示动图,展示提交历史、diff 浏览和暂存操作
gitui 界面演示动图,展示提交历史、diff 浏览和暂存操作
gitui 操作演示 · 来源:gitui-org/gitui
功能上 gitui 目前缺交互式变基(roadmap 中),日常暂存、stash、push/fetch、commit 没有问题。键位支持自定义成 Vim 风格。
sudo pacman -S gitui
gitui
选 lazygit 还是 gitui:常做复杂变基操作用 lazygit;偏好速度快、内存省或仓库特别大用 gitui——两者装着不冲突,按场景切换。

git-delta

delta(包名 git-delta)是 git diffgit showgit log -p 的语法高亮分页器。装好之后只需在 ~/.gitconfig 里把 core.pager 设为 delta,后续所有 diff 输出就自动带上代码级语法高亮、词级别变更对比和可选的左右并排视图。4
delta 左右并排 diff 视图截图,同时显示行号和语法高亮
delta 左右并排 diff 视图截图,同时显示行号和语法高亮
delta 左右并排视图 · 来源:dandavison/delta
sudo pacman -S git-delta
装好后在 ~/.gitconfig 加三行:
[core]
    pager = delta
[delta]
    navigate = true   # n/N 在 diff 块之间跳转
    side-by-side = true
之后 git diffgit show 的输出就不一样了。Arch 官方包版本:0.19.215

运行时版本管理

mise

mise(发音 meez,前身是 rtx)是 asdf 的 Rust 重写版,定位是「多语言运行时版本管理器」。用一个 mise.toml 声明项目需要的 Node、Python、Go、Terraform 版本,进入目录自动激活对应版本,不需要 .nvmrc.python-version 分别管理。6
除了版本管理,它还内置环境变量管理(类似 direnv)和任务运行器(类似 make)。Arch 官方仓库包名是 mise,替换了旧包 rtx
sudo pacman -S mise
# 激活 shell 集成(选对应 shell)
echo 'eval "$(mise activate bash)"' >> ~/.bashrc
echo 'eval "$(mise activate zsh)"' >> ~/.zshrc

# 在项目目录声明工具版本
mise use node@22 [email protected]
# 全局安装
mise use --global [email protected]
Arch 官方包版本:2026.3.171,在 Arch 官方仓库中的 Replaces: rtx 字段清楚标明它取代了旧包。7

代码搜索与统计

ast-grep(sg)

ast-grep 是基于 Tree-sitter 的代码结构搜索和重构工具,命令行叫 sg。和 grep 搜索文本不同,它匹配的是抽象语法树节点,所以不会被空格、换行、注释干扰。
$VAR 通配任意 AST 节点,搜索模式就是普通代码本身:8
sudo pacman -S ast-grep

# 搜索所有 console.log 调用
sg --pattern 'console.log($MSG)' --lang js

# 批量重写:&&  →  ?.()
sg -p '$A && $A()' -l ts -r '$A?.()'  -i
ast-grep 截图,展示代码结构搜索结果,高亮匹配的 AST 节点
ast-grep 截图,展示代码结构搜索结果,高亮匹配的 AST 节点
ast-grep 代码结构搜索 · 来源:ast-grep/ast-grep
配合 YAML 规则文件还可以当 linter 用。Arch 官方包版本 0.42.21,2026-05-18 刚更新。9

tokei

tokei 是代码行数统计工具(功能类似 cloc),用 Rust 写,速度快出不少。在仓库目录直接跑,按语言分类列出代码行、注释行、空行,支持百余种语言,输出整洁。10
sudo pacman -S tokei

# 统计当前目录
tokei

# 只看 Python 和 Rust
tokei --type Python,Rust

# 排序按代码行数
tokei --sort code
接手一个陌生项目时,tokei 是快速摸清代码量分布的第一步。Arch 官方包版本 14.0.011

本期汇总

工具定位安装命令
lazygitGit TUI(功能全,支持交互式变基)sudo pacman -S lazygit
gituiGit TUI(Rust,大仓库性能更好)sudo pacman -S gitui
git-deltagit diff 语法高亮分页器sudo pacman -S git-delta
mise多语言运行时版本管理器sudo pacman -S mise
ast-grep基于 AST 的代码搜索/重构(sg)sudo pacman -S ast-grep
tokei代码行数统计(cloc 替代品)sudo pacman -S tokei
全部来自官方 Extra 仓库,sudo pacman -Syu 同步后可装。
リンクプレビューを読み込んでいます…

このコンテンツについて、さらに観点や背景を補足しましょう。

  • ログインするとコメントできます。