商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > Sublime一键生成代码结构目录树,写文档和README的装X利器

Sublime一键生成代码结构目录树,写文档和README的装X利器

  发布于2026-07-05 阅读(0)

扫一扫,手机访问

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一键生成代码结构目录树,写文档和README的装X利器

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.jsonREADME.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 文档生成,建议配合脚本自动追加生成时间注释。

本文转载于:https://www.php.cn/faq/2735028.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注