并排 diff、提交标签:砚的 Git 阅读体验又补了一轮

并排 diff、提交标签:砚的 Git 阅读体验又补了一轮

上一轮把所有改动放进了一页,这轮继续补怎么读。

窗口够宽时,我想把修改前后的代码摆在两边;点历史提交时,我想先看内容;文件一多,又希望侧边栏能按目录收起来。这几个需求一起进了 alpha.7,交互仍然借鉴 Mayoi,再适配到砚的共享内核里。

两边摆不下,就回到单栏

并排 diff 很直观,但它有一个前提:窗口得够宽。窄栏里硬塞两份代码,每行只能看见一小截,比较起来反而费劲。

砚提供自动、始终并排和单栏三种模式。自动模式下,两边各能放下约 80 个显示格才并排;拖窄了编辑栏,就重新判断。切换入口在 diff 面包屑末尾,命令面板里也有。

这里用的是显示格。中文、Tab 和普通英文字母占的宽度不同,拿字符串长度补空格,英文例子对齐了,中文注释可能还是歪的。

实际排版时要先展开 Tab,再按显示宽度裁切、补齐,词级差异的颜色范围也要跟着换算。替换前后的行尽量对着放,旧侧红底、新侧绿底,具体改动的词再加深,语法高亮继续保留。行号采用新侧的行号语义。

做完这一圈才发现,"左右各画一份"只是表面,麻烦都在字符和屏幕位置之间。

点提交,直接打开内容

历史列表原来偏重操作:点一下提交,先选要对它做什么。我把顺序调了一下,单击先打开预览标签。

标签前面放提交说明、作者、日期、哈希和分支信息,后面接这一提交的文件改动。它沿用总览页的结构,也能用同一套键位翻阅。读到一半切出去看源码,回来还能接着读。

检出、合并、变基、重置、还原、拣选、建分支和标签等操作,放到提交行的右键菜单里;终端前端用空格打开菜单。

有个范围需要交代:有父提交时,这里和第一个父提交比较。看普通提交够直接,遇到合并提交,要记得自己看到的是相对哪一边的变化。

目录树负责找,总览页负责读

源代码管理新增树形视图,把改动文件按目录放好。只有一个子文件夹的目录链会压成一行,比如 internal/git,不用为了找到文件连点好几层。

目录也能暂存、取消暂存或丢弃,范围限于当前分组。即使同一个目录同时出现在"已暂存"和"更改"里,操作也不会跨组带上另一份内容。

这样侧边栏可以用来挑一块范围,总览页用来慢慢读。两边不用挤着承担所有事情。

几个顺手的小入口

提交完成后,状态栏会显示「撤销」。撤回提交以后,改动留在暂存区,提交说明回到输入框。想补一个文件、改一下说明时,不用重新找刚才输入的那段话。

历史列表底部也加了「显示更多提交」,每次把读取上限增加 200。前面文章里的"最近 200 条"终于不再是固定上限,不过这里做的是扩大读取范围,大仓库的历史读取性能还得另看。

还有「初始化仓库」。打开一个普通文件夹时,源代码管理总算能告诉人下一步怎么开始,而不是空在那里。

这一轮没有什么特别抢眼的新页面,但从找文件、看 diff 到翻历史,原来几处会打断阅读的地方接上了。对一个每天要用的编辑器来说,这些小改动值得单独记一篇。

下载试用

本文记录的是 alpha.7 阶段。下面补的是后续公开版本的下载入口,方便直接试用。

2026-10-19 补充:公开安装包为 v0.1.0-alpha.14 ,适用于 macOS 13+、Apple Silicon(M 系列芯片)。

安装包目前尚未经过 Apple 公证,首次打开的说明见发布页。


仓库留档

相关推荐
敲代码的玉米C2 小时前
给编辑器补拖拽:标签挪过去,状态也得跟过去
go
敲代码的玉米C2 小时前
写到这里,砚还要继续照着 IDE 加功能吗
go
敲代码的玉米C2 小时前
把终端拖进编辑区,别把正在跑的 shell 弄丢了
go
敲代码的玉米C2 小时前
给砚加一个「所有改动」页,提交前少来回点几次
go
我不会起名字3221 天前
微服务链路超时怎么设:逐层收敛的 4 条规则与 1 个反例
微服务·go·超时·熔断
我的div丢了肿么办2 天前
go语言安装包详细讲解
后端·go
我不会起名字3222 天前
Go 写 Kafka 消费者:sarama 的 3 个坑与优雅退出写法
kafka·消息队列·go·sarama
我不会起名字3222 天前
Redis 从 0 到 1(十一):缓存穿透/击穿/雪崩三连击,Go 3 套防御代码
redis·缓存·go·布隆过滤器·雪崩
bug菌2 天前
一个周末就想把短链服务推到 10 万 QPS,真能靠加 Redis 做到吗?
java·redis·go