Sublime一键生成代码结构目录树,写文档和README的装X利器
作者:OpenWorld
时间:2026-07-05
浏览:0
SublimeText通过自定义构建系统调用tree命令实现一键生成目录树,适用于README文档,不识别语言符号或Markdown锚点。需在项目根目录下安装tree并配置构建系统,Windows推荐GitforWindows。结构树需手动更新,CI中可加时间戳注释。
Sublime Text 无原生一键生成目录树功能,需通过自定义构建系统调用系统 tree 命令实现;适用于 README 文档,不支持语言符号识别或 Markdown 锚点;推荐 macOS/Linux 下用 brew/apt 安装 tree 并配置 Tree.sublime-build,注意 $file_path 指当前文件所在目录,需在项目根目录下打开文件后按 Ctrl-B/Cmd-B 运行;Windows 建议安装 Git for Windows 获取完整 tree;插件易受 files.exclude 干扰且对 symlink/monorepo 支持差,tree 输出更可靠;结构树需随项目更新手动重生成,CI 中可加时间戳注释。

Sublime Text 本身不提供“一键生成代码结构目录树”的原生功能,所谓“一键”,本质上就是调用命令行里的 tree 命令,再配合自定义构建系统实现的快捷封装。它适合写文档、README 或架构说明,但别指望它能自动识别语言符号或生成 Markdown 锚点目录——那是另一类插件干的事。
用 tree 构建系统导出项目结构(macOS/Linux 推荐)
这是最轻量、最可控的方式:不用装插件、不会卡顿、输出干净整洁,直接贴进 README 就能用。
- 先确认是否安装了
tree:macOS 运行brew install tree,Linux 一般自带或运行sudo apt install tree - 菜单 → Tools → Build System → New Build System…,粘贴以下内容并保存为
Tree.sublime-build:
{ "cmd": ["tree", "-I", "node_modules|.git|.DS_Store|__pycache__|dist|build", "-L", "4", "$file_path"], "working_dir": "$file_path", "target": "exec"}
-I后面填写要排除的目录,用竖线|分隔,注意它不支持正则-L 4控制层级深度,避免输出过于庞大;--dirsfirst可以加在cmd数组里,让目录排在最前面- 这里有个关键点:
$file_path指的是当前打开文件所在的目录,而不是项目根目录——所以你必须先在项目根目录下的某个文件中打开 Sublime(比如package.json或README.md),再按Cmd+B(macOS)或Ctrl+B(Windows/Linux)才能正确生成
Windows 下跑 tree 的实际门槛
Win10 1809 以上的系统自带 tree,但默认只输出 ASCII 风格的树形图,不带 /F 参数时不会列出文件名;旧系统则经常报 'tree' is not recognized。
- 推荐方案:安装 Git for Windows(它包含了完整的
tree命令),或者用 Chocolatey 运行choco install tree - 替代命令(无需额外安装):
cmd /c "tree /F /A",但这样不支持-I排除,需要靠 PowerShell 脚本做后处理 - PowerShell 中可以用
Get-ChildItem -Recurse | Group-Object PSParentPath来模拟,但格式松散、难以阅读,不如直接上tree - 别以为“右键资源管理器 → 在此处打开终端”就万事大吉——VSCode 或 Sublime 都可能没有继承正确的
PATH环境变量,建议在终端里先手动执行tree --version确认可用
为什么别依赖插件生成结构树?
像 Project Tree Generator 这类插件,看似点一下就出结果,实际在复杂项目里经常翻车。
- 它们默认遵循 VSCode/Sublime 的
files.exclude配置,但这个配置的本意是控制“是否在界面中显示”,而不是定义“项目结构”——你隐藏了dist/,不代表它不该出现在部署文档里 - 遇到符号链接(symlink)、pnpm workspace、Lerna monorepo 时,插件经常漏掉目录或缩进错乱,而
tree -L 3的输出可以作为黄金标准进行人工比对 - 生成的 Markdown 格式往往会把
index.js自动转成[index.js](./index.js),粘到飞书或 Notion 里反而多出跳转链接,纯文本结构反而更安全 - 如果你真正需要的是“代码大纲”(函数列表/类列表),请用
CTags配合Ctrl+T,这和“文件目录树”是两回事,混用只会增加调试成本
很多人容易忽略的一点是:结构树不是一次性的。项目新增模块、删掉测试目录后,记得重新运行构建系统——别让 README 里的树形结构和真实磁盘对不上。另外,tree 输出不含时间戳或哈希值,如果用于 CI 文档生成,建议配合脚本自动追加生成时间注释。
作者最新文章
三星 Galaxy A08 渲染图曝光:Helio G99 芯片与 6000mAh 电池配置解析
2026-09-08 17:14
OPPO Find X10 Pro Max 影像规格详解:三颗2亿像素镜头与全焦段8K视频能力
2026-09-08 16:41
PDF转HTML在线转换器怎么选?转换后网页排版怎么查?
2026-09-04 11:02
AE教程书籍挑选指南:零基础、动效与合成方向实战标准
2026-09-02 13:31
教程书籍使用SAI软件Logo要单独授权吗:商标引用与出版合规要点
2026-09-02 11:50
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多


































