加载失败
这是一个 Show HN 项目:一款支持 Vim keybindings 的终端 spreadsheet editor,目标是让表格编辑像命令行工具一样轻量、快速、可控。评论区很快把它和 sc-im(另一个终端 spreadsheet 工具)放在一起比较,同时也追问它是否能提供脚本化的单元格读写接口,方便自动化处理数据。更深入的讨论转向内部实现:回复透露公式引擎已经和 TUI 分离,但当前的重算、依赖图和撤销机制还很粗糙,正在通过 GitHub issues 推进优化。另一些评论则把视角拉到更早期和更另类的 spreadsheet 设计上,提到 Javelin、Lotus Improv(早期的多维 spreadsheet 系统)、Quantrix(关系建模表格工具)和 Flexisheet(另一类建模式表格),希望它不只是传统 A1 电子表格的终端版。
不少评论者第一反应是“顺手”和“安静”,觉得这种终端表格编辑器很适合低延迟、少打扰的工作流。Vim keybindings 被反复提到,因为能直接复用已有 muscle memory,而不必重新适应一套陌生的表格操作方式。有人还明确表示,这类工具在使用时会让人感到 calm and happy,说明交互手感本身就是核心卖点。整体语气很看好,甚至有人认为它有机会变得更受欢迎。
有评论者立刻联想到 sc-im(一个基于终端的 spreadsheet 工具),并希望看到两者的比较。这个反馈说明目标用户并不只是“想要一个表格”,而是已经在命令行里使用过类似工具,关注的是键位风格、体验细节和功能边界。也侧面反映出这类项目的竞争基准不是传统 GUI spreadsheet,而是同样面向终端用户的现有替代品。
有评论者希望它不仅能交互式编辑,还能像命令行工具一样直接读写单元格,甚至把公式计算结果输出到脚本里。这样的需求意味着表格文件不只是手工维护的文档,也可以成为自动化流水线中的中间数据层。回复中对此表示认可,并把这个功能提到 issue 里,说明项目正在朝可编程方向扩展。
另一条评论对传统 A1/B2 这种格子坐标并不满足,更希望采用类似 Javelin、Lotus Improv(早期的多维 spreadsheet 系统)、Quantrix(关系建模表格工具)和 Flexisheet(评论中提到的另一类建模式表格)那样的分类/维度式建模。评论者还提出要有一个动态的 formula 面板,把公式逻辑从单元格网格里分离出来,这会更适合分析和建模任务。回复中对这个方向很感兴趣,并表示会去研究这些工具再决定实现方式。
讨论后半段集中在性能和内部架构:重算、dependency tracking、undo/redo 以及大 CSV 导入时的可扩展性。回复里坦承当前实现还比较 naive,编辑一次就会全量重算,range 也会被展开成大量依赖,dirty flag 目前并没有真正用来剪枝。与此同时,撤销机制还存在多单元格编辑、粘贴和排序等路径没有完整纳入的问题,作者也提到会补上 batch、AST caching、按区间建模依赖和更完整的事务式 undo。
TUI(Terminal User Interface): 在终端里运行的图形化/半图形化界面,这里指表格编辑器不是 GUI,而是直接在命令行窗口中操作。
dependency graph(依赖图): 记录单元格公式之间引用关系的图结构,用来决定哪些单元格需要重新计算。
topo-sort(拓扑排序): 按依赖顺序排列节点的算法,常用于先算被依赖项、后算依赖项。
undo/redo(撤销/重做): 保存编辑历史并允许回退或恢复的机制,在表格里通常需要处理批量修改和多单元格操作。
AST caching: 把公式解析成 AST(Abstract Syntax Tree,抽象语法树)后缓存起来,避免每次重算都重新解析公式。