Ctrl+K Ctrl+0折叠全部是最直接的视觉减负方式,仅保留@app.get/@app.post装饰器以快速浏览接口清单,但需确保语言模式为Python、foldingStrategy设为auto、函数定义完整;还可配合#region注释分组、Ctrl+Shift+O跳转符号、Ctrl+K Ctrl+C临时注释验证重构。

Ctrl+K Ctrl+0 折叠全部后,FastAPI路由文件只剩@app.get和@app.post装饰器
这是最直接有效的视觉减负方式。FastAPI路由文件通常由大量@app.get、@app.post等装饰器 + 函数体组成,函数体里又嵌套Pydantic模型、依赖注入、业务逻辑——折叠后只留装饰器行,一眼看清接口清单。
但要注意:Ctrl+K Ctrl+0只对被VSCode识别为“可折叠单元”的结构生效。默认情况下,Python语言模式下,def函数、if块、class是可折叠的;而FastAPI的@app.get("/path")本身不是独立语法节点,它依赖于其后的def函数才能被识别为一个折叠单元。所以必须确保:
- 文件右下角语言模式是
Python,不是Plain Text或JSON -
"editor.foldingStrategy"设为auto(默认值),而非indent;后者会把空行、缩进层级全当折叠点,导致装饰器和函数体被错误切开 - 函数定义完整:不能只有
@app.get("/")没跟def,否则VSCode无法建立语义关联,不生成折叠标记
用// #region手动围出逻辑路由组,再折叠
当路由按功能模块划分(如/auth、/users、/admin),但它们分散在同一个文件里时,Ctrl+K Ctrl+0会把所有函数平铺折叠,失去分组感。这时用注释围区更可控:
// #region Auth Routes
@app.post("/login")
def login(...): ...
@app.post("/refresh")
def refresh(...): ...
// #endregion
VSCode原生支持// #region和// #endregion(JS/TS/C#),Python虽无官方语法,但只要语言模式为Python且未禁用该特性,多数版本仍能识别。若不生效,可安装插件Python Extended或改用#region(无//前缀)。
优势在于:
开箱即用的技能链路由引擎。13 条预定义链覆盖搜索、开发、审查、MLOps、法律、创意等场景,三层路由架构(触发词→SAD反馈→DAG编排),recall@10=96.97%。配置驱动(chains.yaml),零代码扩展。pip install skill-weave-chains 一键安装。
- 折叠后显示
Auth Routes标签,比一堆def login更易定位 - 可嵌套:比如在
Auth Routes内再用#region JWT细分 - 不影响运行——只是注释,不改变FastAPI行为
Ctrl+Shift+O快速跳转到指定路由函数,避免滚动迷失
重构路由时经常要反复查看某个@app.get("/items/{id}")对应的def read_item实现。光靠眼睛扫容易漏,尤其当文件超500行。用Ctrl+Shift+O(Go to Symbol in File)输入函数名或路径片段即可直达:
- 输
read_item→ 定位到函数定义 - 输
/items→ 若函数docstring或注释里写了路径,也可能被索引到(依赖Python插件配置) - 输
@app.post→ 不会匹配,因为装饰器本身不是符号;必须输函数名
注意:该命令依赖Python语言服务器(Pylance)正常工作。如果列表为空,先检查右下角是否显示Python且无感叹号,再确认python.defaultInterpreterPath指向正确环境。
重构前用Ctrl+K Ctrl+C临时注释掉整段路由,验证影响范围
拆分main.py路由到routes/users.py前,需要确认哪些依赖、模型、中间件会被连带移动。最稳妥的做法不是删,而是注释:
- 选中整个
@app.get("/users")函数块(含装饰器、函数头、docstring、body) - 按
Ctrl+K Ctrl+C添加行注释 → 所有行前加# - 启动服务,看
/users是否404,其他路由是否照常 → 验证无隐式耦合 - 确认无误后,再剪切粘贴到新文件,用
Ctrl+K Ctrl+U取消注释回退也快
这比直接删除更安全:注释保留了上下文位置,且Git diff清晰显示“此处曾有路由”,方便回溯。别用Ctrl+/,它对多行选中可能只注释首尾两行,中间漏掉。
真正卡住人的从来不是快捷键记不住,而是折叠后发现某个@app.get下面没def——那说明它根本没被注册进FastAPI实例,只是个孤零零的装饰器字符串。这时候Ctrl+K Ctrl+0再快也没用,得先修代码语义。


















