问题
在 Zed 编辑器的 GitHub Issues 中,多位开发者反映打开不同缩进风格的文件时体验割裂:Zed “使用全局设置而不自动检测文件缩进”(134 赞,pain 3),且“只能设全局或按语言的 tab 设置,无法针对单个文件即时切换”(199 赞,pain 2)。混合缩进代码库(如接手老项目、跨团队协作)的开发者每次都要手动调整,容易产生 diff 噪音和格式混乱。
目标用户
在混合缩进代码库上工作的开发者,尤其是接手遗留项目、跨编辑器协作(Zed + VS Code)或参与开源项目需要遵守既有风格的人。市场规模中规中矩:几乎所有开发者都会遇到,但属于低频、低痛点的长尾需求。
解决方案
- 仓库级扫描:递归统计每个文件的缩进风格(tab/空格、宽度、混合情况),输出报告
- 自动生成 .editorconfig:按检测结果写出一份多数编辑器(Zed、VS Code、Vim 等)都遵守的配置,一次配置全编辑器生效
- 批量规范化:可选地把混合缩进的文件统一重排,并单独提交以避免 diff 噪音
- CI 集成:在 pull request 检查新增代码是否符合该文件既有缩进风格
- AI 角色:用模式识别/小模型对模糊样本(如 tab 空格混用)做缩进风格判定,比纯规则更稳
MVP 范围
第一版:命令行工具,输入本地仓库路径,输出每文件缩进检测结果 + 生成 .editorconfig。不做:编辑器内实时检测、自动改写历史提交、GUI。
风险
平台依赖:问题本身出在 Zed 内,官方一旦实现该 feature,独立工具价值归零;在位竞争:VS Code 已内置缩进检测与状态栏切换;付费意愿:两条信号均无付费意愿(none),pain 仅 2-3,更像“痒点”而非刚需;分发:开发者对这类小工具默认期待免费开源。
已有产品
| 产品 | 定位 | 价格 |
|---|---|---|
| VS Code | 已内置 editor.detectIndentation 及状态栏点击切换 tab 宽度/软硬 tab,基本覆盖信号中描述的诉求 | — |
信号证据
这张卡片依据的原始讨论。摘录保持原文,点“原文”查看上下文。
GitHub Issues · zed-industries/zed6月18日功能请求▲ 13410 条评论
“Automatically detect a file's indentation when opening a file, instead of using the global Zed settings”
Zed should automatically detect a file's indentation when opening a file instead of using the global editor settings.原文
GitHub Issues · zed-industries/zed3月27日功能请求▲ 19912 条评论
“Currently, we can set global and per-language tab settings, but can't change it per-file on the fly.”
Zed users can set tab settings globally or per-language but cannot change indentation (tab size, soft/hard tabs) per file on the fly.原文