VSCode书签需装alefragnani.bookmarks插件并重载窗口,验证用命令面板执行Bookmarks: Toggle;快捷键易冲突,推荐右键行号或命令面板操作;跨文件跳转唯一方式是Bookmarks: List All;书签默认不持久、不同步,需配置"bookmarks.persistAll": true。

VSCode 本身不支持书签,必须装 alefragnani.bookmarks 插件才能用——没装、装错作者、没重载窗口,90% 的“没反应”都卡在这三步。
怎么确认插件真正在工作
别急着按快捷键。先验证底层是否就绪:
- 按
Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(macOS),输入Bookmarks: Toggle—— 如果命令不出现,说明插件根本没启用,重装作者为alefragnani的那个(ID 必须是alefragnani.bookmarks) - 安装后务必点“重新加载窗口”,不是关再开,是点击弹窗里的“重新加载”按钮
- 右键点击行号区域,看上下文菜单里有没有
Toggle Bookmark;有,说明编辑器装饰 API 已注册 - 如果图标不显示,检查设置:
"editor.glyphMargin": true必须为true,否则书签点根本画不出来
添加和取消书签的可靠方式
快捷键最常用,但容易被系统或输入法吞掉,尤其在 macOS 笔记本上:
-
Ctrl+Alt+K(Win/Linux)或Cmd+Option+K(macOS):光标所在行添加/取消书签,只认「行」,不存列位置 - 右键行号 →
Toggle Bookmark:鼠标操作更稳,调试时切得快 - 命令面板执行
Bookmarks: Add Bookmark:100% 可靠,完全绕过快捷键冲突 - 注意:
Cmd+Option+Shift+K是命名书签,它不会出现在Bookmarks: List All里,得单独用Bookmarks: Jump to Bookmark调用
跨文件跳转唯一靠谱的操作
Ctrl+Alt+J / Cmd+Option+J 只在当前打开的文件里跳“最近一个”,它不跨文件、不查全局、也不支持过滤——这是最多人踩坑的地方。
真正跨文件定位,只有一条路:
- 按
Ctrl+Shift+P或Cmd+Shift+P,输入Bookmarks: List All,回车 - 列表格式是
文件名:行号 — 代码片段,支持实时模糊搜索(输render就只留含render的行) - 选中后回车,VSCode 会自动打开未打开的文件并跳转;但如果路径含空格、中文未编码、或符号链接断裂,该条目会静默消失,不报错也不提示
- 多根工作区下,书签默认只对当前激活根生效;要全项目可见,每个根目录的
.vscode/settings.json都得加"bookmarks.persistAll": true
持久化和协作的现实约束
书签默认存在内存里,关窗口就丢。要真正保留,必须手动干预:
- 不是用户级设置,必须写进工作区的
.vscode/settings.json,且值是"bookmarks.persistAll": true(注意不是persisted) - 书签数据不进 Git,也不同步给队友——它本质是本地导航缓存,不是协作标记机制
- 如果需要共享关键位置,改用
// TODO:或// BOOKMARK:注释,再配合Search: Find in Files搜关键词 - 大幅重构后,书签仍锚定原行号,可能指向空行或已删代码,这点容易被忽略


















