vscode原生不支持html式页面锚点,所谓“锚点”实为三类机制:bookmarks插件的行号标记、vscode-comment-anchors识别的注释标签(如// anchor:)、markdown预览中标题自动生成的跳转链接。

VSCode 里没有“页面锚点”这个概念,别被名字骗了
你搜的“锚点标记点”,VSCode 原生根本不支持 HTML 那种 <a href="#section1"></a> 的页面内跳转机制——它不是浏览器,也不解析 id 属性。所谓“当前页面的锚点”,实际只有三种可能:书签插件打的行号标记、注释里写的 // ANCHOR: 标签、或者 Markdown 文件里的标题(# 开头)。先分清你在查哪一类,再找对应方法。
想查 Bookmarks 插件打的书签,用 Ctrl+Alt+L 列表最可靠
Bookmarks 插件(alefragnani.bookmarks)只存行号 + 文件路径,不存语义。它不会自动识别 function init() 是入口,也不会因为你加了注释就高亮出来。
- 按
Ctrl+Alt+L(Windows/Linux)或Cmd+Option+L(macOS)打开书签侧边栏,里面列出当前工作区所有书签,含文件名和行号 - 列表支持模糊搜索:输函数名、文件名片段、甚至注释文字(比如你写了
// ENTRY: apiHandler,搜apiHandler就能命中) - 右键某条书签 → “Reveal in File” 可直接跳转并高亮该行;如果那行已被删或挪动,跳过去就是空行或错位代码——这是设计使然,不是 bug
- 确认插件生效:命令面板(
Ctrl+Shift+P)输入Bookmarks: List,能执行才说明插件加载成功
想查 // ANCHOR: 这类注释锚点,得装 vscode-comment-anchors
vscode-comment-anchors 插件专为解析注释标签而生,它不依赖行号快照,而是实时扫描注释内容,所以重构后仍有效。
- 安装后,左侧活动栏会出现一个锚点图标,点击即展开当前文件所有匹配的注释标签(如
// ANCHOR:、// TODO:、// NOTE:) - 默认只认预设标签,若你用的是
// MARK:或// ?:,需在设置里加进commentAnchors.tags数组 - 它不跨文件索引——
Ctrl+Alt+L查的是全局书签,而这个插件的侧边栏只显示当前打开文件里的注释锚点 - 注意:它不处理 Markdown 标题,也不响应
<h2 id="foo"></h2>这种写法,纯文本注释才是它的领域
Markdown 文件里查标题锚点,靠预览模式 + 目录树
VSCode 对 Markdown 的标题锚点支持是隐式的:它不生成 id 属性,但预览窗口(Ctrl+Shift+V)会把 # 标题 渲染成可点击链接,且自动生成侧边目录。
- 打开预览后,鼠标悬停在标题上,状态栏会显示类似
file.md#%E5%BC%95%E8%A8%80的 URL 编码锚点,复制就能当链接用 - 侧边目录(预览窗口右上角三个点 → “Toggle Outline”)显示所有标题层级,点击直接滚动定位
- 别指望编辑器里看到
id="xxx"—— VSCode 不往源码里插 HTML 属性,它只是预览时动态生成 - 如果你手动写了
<h2 id="api-reference">API 参考</h2>,那确实算锚点,但 VSCode 不提供跳转入口,只能靠Ctrl+F搜id="api-reference"
真正麻烦的不是找不到锚点,而是混淆三类机制的边界:Bookmarks 认行号、comment-anchors 认注释文本、Markdown 预览认标题语法。重构前不清理过期书签,调试时点开却跳到空行——这种错位感,比没标还耗神。











