从终端敲一行命令,把文件送进已经打开的砚

从终端敲一行命令,把文件送进已经打开的砚

终端标签做完以后,我又回头补了一轮窗口入口。编辑器本身已经能干不少事,但从文件夹、Dock、命令行进去,应该落在哪个窗口,还没完全接顺。

这一篇记 alpha.9 和 alpha.10:先把打开文件这件小事补齐,再给窗口加一点装饰。

同一个文件夹,别开出两份现场

"在新窗口打开文件夹"已经有入口了,但如果那个文件夹本来就在另一个窗口里,应该把它叫到前面。

只比较路径字符串不够。同一个目录可能通过软链接打开,文字不同,指向的却是同一份文件。如果再开一遍,一边还有未保存修改,另一边已经读到磁盘上的旧内容,人很容易弄混。

这次窗口路由按文件系统身份识别目录,也会检查其他窗口里的项目标签。最近文件夹菜单和 Dock 菜单走同一条路,打开、复用和聚焦不用各写一套规则。

这里我最在意的是原来那份没保存的内容:换个入口进来,它还得在那里。

yan file:42,送到正在运行的窗口

图形版加了命令行启动器,在文件菜单里选择安装以后,可以这样用:

sh 复制代码
yan ./project
yan ./src/main.go:42
yan ./README.md ./CHANGELOG.md

第二个进程收到参数,会把请求交给已经运行的应用。打开文件还能带行号,不必再手动搜一次。

冒号有个小坑:真实文件名也可能以 :42 结尾。因此解析时先看这个文件是否真的存在,存在就按完整文件名处理,再考虑行号语法。以短横线开头的文件名则可以放在 -- 后面。

安装动作也收了一下范围:由人主动点菜单,不替人改 shell 配置,目标位置已有其他文件或软链接就拒绝覆盖。机器上如果已经装了终端版 yan,不能为了图形版的方便把它顶掉。启动器指向安装时的可执行文件,后来移动应用,还得重新安装入口。

状态栏上的 LF,终于能点了

缩进和换行符一直显示在状态栏里,只展示、不让改,用起来总觉得少了一步。这轮让它们变成了操作入口。

缩进选择改变后续编辑的行为,已有文本留在原样。LF 和 CRLF 切换则真的转换文档,作为一次编辑记进撤销历史,BOM、选区和保存冲突检查也要跟着保留。

侧边栏同时支持移到另一侧,配置会记住选择,终端版也沿用这个设置。

再给空白页一点动静

alpha.10 接着补了 Mayoi 的 Clawd 和 Matrix 装饰。Clawd 在欢迎页和状态栏出现,空闲时眨眼,Git 或文件搜索运行时换动作;数字雨只放在欢迎背景,不盖住已经打开的文件。

这部分用了上游的绘制和动作思路,来源保留在第三方声明里。

动画跟着绘制调度走,没有为它额外开一个持续刷新编辑器的循环。窗口失去焦点,或者系统要求减少动态效果时,就停成静态。想完全去掉,也能在主题菜单里关掉。

这些装饰不会让编辑器多会写一行代码,但每天打开它时,确实能让这个小工具多一点自己的样子。前提是开关好找,文件打开以后也别抢眼。

下载试用

记录 alpha.9/alpha.10;早期安装包在私有仓库,下面用后续公开 alpha.17 供试用。

下载地址核对于 2026-10-19。安装包适用于 macOS 13+、Apple Silicon,目前尚未 Apple 公证,首次打开说明见发布页。


仓库留档

相关推荐
码上踩坑16 小时前
Claude Code 会话攒太多,我用 Go 写了个本地管理台
go
孔令飞1 天前
企业智能化升级:智能体平台设计和实现
云原生·go·ai编程
vipxieliang1 天前
Go GC 性能优化实践:从 GOGC、GOMEMLIMIT 到分配优化
后端·go
小满zs2 天前
Go语言第十八章(架构设计)
后端·go
FungLeo3 天前
成为全栈·Go 后端篇·三轮代码审阅之后:把可读性和证据做成工程规则
golang·go·ast·静态检查·成为全栈·代码审阅
我不会起名字3223 天前
Redis 从 0 到 1(二十八):Redis 抖一下,重试把它打挂了——超时/重试/熔断的 Go 封装
redis·go·超时·熔断·重试
xyzzklk3 天前
变相解决华为Mate 8锁屏后无法建立入站网络连接
linux·运维·服务器·网络·华为·go·安卓
vipxieliang4 天前
语言对比卡:PHP vs Go vs Java 的优缺点、适用场景与「为什么选 PHP」
java·go·php
我不会起名字3225 天前
Redis 从 0 到 1(二十七):JSON 体积是 Protobuf 的 3.7 倍?3 种序列化的 Go 基准测试
redis·go·序列化·protobuf·messagepack
我不会起名字3225 天前
Redis 从 0 到 1(二十三):一个热 key 打到 10 万 QPS——hotkey 与本地缓存的 Go 实现
redis·缓存·go·qps·hotkey