关闭 explorer.compactfolders 是第一步,因为该设置使 vscode 将子文件夹与父文件夹平铺显示(如 src 与 src/components 并列),用斜杠模拟嵌套,导致无法真正折叠/展开、ctrl+click 递归展开失效;关闭后 src 才成为可折叠节点,恢复标准树形结构。

为什么关闭 explorer.compactFolders 是第一步
VSCode 默认把 src/components 和 src 并列显示,看起来像平铺的两个文件夹,实际却是“伪嵌套”——它用斜杠模拟层级,但底层节点不可折叠、Ctrl+Click 无法递归展开、拖拽粘贴也容易错位。这不是 bug,是设计,但对绝大多数开发者来说,它破坏了树形结构的直觉。
关闭它后,src 才真正成为一个可折叠节点,点三角图标才会展开 components、utils 等子项。这个开关是全局生效的,没有路径例外,一旦关闭,所有工作区(包括多根项目)都会恢复标准树形渲染。
- 设置路径:
Ctrl + ,→ 搜索compact folders→ 取消勾选Explorer > Compact Folders - 对应配置项是
{"explorer.compactFolders": false},写入用户或工作区settings.json均可 - 如果关闭后仍不生效,优先检查
explorer.fileNesting.enabled是否为true:它会把匹配的文件(如xxx.ts和xxx.spec.ts)收进同一节点,视觉上干扰层级
workbench.tree.indent 和 workbench.tree.renderIndentGuides 怎么配才不累眼
缩进太小(默认 8px),5 层嵌套后根本分不清谁是谁的子级;缩进太大(比如 24px),又浪费侧边栏空间。关键是配合 renderIndentGuides 显示垂直参考线,才能让缩进“有据可依”。
-
workbench.tree.indent推荐值:12 或 16 —— 足够拉开层级,又不挤占太多宽度 -
workbench.tree.renderIndentGuides必须设为true,否则缩进只是空隙,没有视觉锚点 - 这两个设置在 GUI 里搜 “tree indent” 就能同时找到,改完立即生效,无需重启
- 注意:某些自定义主题或 CSS 插件会覆盖缩进样式,如果发现缩进异常,先禁用这类插件验证
Markdown 目录插件不是装了就完事,得看它怎么解析标题
插件(比如 Markdown All in One)生成目录靠的是扫描 # 到 ###### 的标题行,但它对格式很敏感。井号后面必须跟一个空格,否则不会被识别为标题;中文标题生成的锚点(如 #第一章-vscode-markdown目录功能概述)在部分预览环境里可能跳转失败。
- 生成命令是
Ctrl + Shift + P→ 输入Markdown: Create Table of Contents - 目录插入位置由光标决定,建议放在文档开头或
## 目录标题下方 - 修改标题后不会自动刷新目录,必须手动重执行命令——没有“保存即更新”这种魔法
- 如果中文链接失效,可在插件设置里开启
markdown.extension.toc.slugifyMode,设为github或gfm提升兼容性
别忽略文件系统监听机制带来的延迟和边界情况
VSCode 资源管理器靠操作系统事件(Linux 的 inotify、Windows 的 ReadDirectoryChangesW)监听文件变化。这意味着新建/删除文件夹后,有时会卡顿 1–2 秒才刷新;而像 node_modules 这类大目录,即使没改内容,也可能因内核事件队列满导致短暂失联。
- 不要依赖“立刻看到”,尤其在脚本批量操作后,稍等片刻再确认
- 如果某目录长期不刷新,右键该目录 →
Refresh是最直接的补救手段 - 在 WSL 或远程 SSH 工作区中,文件系统事件传递链更长,延迟更明显,此时
explorer.autoReveal设为false反而能减少误跳转











