VSCode 本身不提供「锚点(Anchor)」功能,所有“锚点”均来自第三方插件(如 Bookmarks)、Markdown 链接或用户自定义注释;查找需按类型区分:Bookmarks 用 Ctrl+Shift+L 查看,注释类锚点用 Ctrl+F 搜索 ANCHOR: 等关键词,而 Ctrl+Shift+O 仅识别语言服务器解析的符号,无法匹配注释或书签。

VSCode 里没有“锚点”这个原生概念
直接说结论:VSCode 本身不提供「锚点(Anchor)」功能,也没有内置的锚点查找命令。你看到的“锚点”相关描述,基本都来自第三方插件(比如 Bookmarks)、Markdown 链接语法,或者用户自己用注释模拟的标记方式。所以,“查找当前文件的所有锚点”这件事,得先明确你指的到底是哪一类。
怎么查 Bookmarks 插件打的书签(最常见场景)
绝大多数人说的“锚点”,其实是 Bookmarks 插件设置的行级标记。它不叫锚点,但行为最接近——你可以跳转、列表、跨文件管理。
- 按
Ctrl+Shift+L(Windows/Linux)或Cmd+Shift+L(macOS)打开书签侧边栏,当前文件里的所有书签会列出来 - 书签只存行号和文件路径,不存内容;如果某行被删了,对应书签就消失,不会自动偏移
- 想批量识别某类逻辑入口?建议在函数第一行加
// ENTRY: xxx注释,再打书签——这样列表里能看懂,也能配合Ctrl+F搜ENTRY:快速核对 - 书签默认重启后丢失,必须在设置里开启
"bookmarks.persistAll": true,否则只存在内存里
怎么搜你自己写的 // ANCHOR 注释
有些团队会约定用注释当语义锚点,比如 // ANCHOR: init 或 // @anchor api-handler。这类标记 VSCode 不识别,但你能用原生搜索快速定位:
- 按
Ctrl+F(当前文件)或Ctrl+Shift+F(全项目),输入ANCHOR:或@anchor - 勾选「区分大小写」避免匹配到普通单词;启用正则模式(
.*按钮)可写//\s*@anchor\s+\w+精准抓取 - 注意:这类注释不会出现在大纲(Outline)视图里,也不参与符号导航,纯靠文本搜索驱动
为什么 Ctrl+Shift+O 找不到你想要的“锚点”
Ctrl+Shift+O 是符号导航(Go to Symbol in File),它依赖语言服务器解析 AST,只识别真实声明的符号:类、方法、变量、接口等。它不会把注释、空行、console.log 或书签当符号处理。
- 如果你在 JS/TS 文件里写了
// ANCHOR: setup,Ctrl+Shift+O完全无视它 - 哪怕你用
/** @anchor */写 JSDoc,只要没被语言服务器定义为特殊标签,就不会进大纲 - 真要语义化跳转,得换插件,比如
Document This或自定义 Language Server 支持的注释标签
真正麻烦的不是找不到锚点,而是不同“锚点”机制互不兼容:书签只认行号,注释搜索只认文本,符号导航只认 AST。重构前最好手动清理过期书签,不然跳过去发现是空行或别的函数,比没标记还误事。


















