VSCode代码书签完全依赖alefragnani.bookmarks插件,必须正确安装、重载窗口;全局书签视图需手动执行Bookmarks: List from All Files命令打开;命名书签(Cmd+Opt+Shift+K)是识别与搜索前提;bookmarks.persistAll须配置在项目级.settings.json中才生效;侧栏为只读索引,编辑操作须回源码行或右键完成。

VSCode 本身不支持代码书签,所有管理能力都依赖 alefragnani.bookmarks 插件——没装它、装错作者、没重载窗口,后续所有操作都会失效。
Bookmarks: List from All Files 命令是唯一全局书签视图入口
插件安装后,默认不显示侧栏;必须手动触发命令才能打开带文件分组的书签列表。这不是可选步骤,而是使用跨文件书签的前提。
- 快捷键:Windows/Linux 用
Ctrl+Alt+P,macOS 用Cmd+Opt+P - 命令面板输入:
Bookmarks: List from All Files(注意不是List Bookmarks,后者只列当前文件) - 面板一旦打开就常驻侧边栏,关闭需点右上角 × 或按
Escape - 未命名的书签在侧栏里只显示为
Bookmark #1这类序号,大型项目中完全不可识别——命名是刚需,不是加分项
命名书签(Cmd+Opt+Shift+K)决定侧栏可用性与搜索精度
命名不是为了好看,而是让书签具备语义和可检索性。侧栏不支持拖拽分组或创建文件夹,“分类”只能靠命名约定实现。
- 光标停在目标行,按
Cmd+Opt+Shift+K(macOS)或Ctrl+Alt+Shift+K(Win/Linux)输入名称,例如auth-init、db-migration-2026 - 名称中避免
/、:、\等路径符号,否则模糊搜索可能匹配失败 - 用统一前缀模拟分组:比如
api-/login、ui-header-render、test-setup-jest - 侧栏内支持
Cmd+F实时过滤,输前缀即可收拢同类书签
bookmarks.persistAll 必须写进工作区 settings.json 才能真正持久
书签默认存在内存里,关 VSCode 就丢。很多人开了 bookmarks.persisted 却仍失效,是因为配错了位置——这个设置必须落在项目级 .vscode/settings.json,且键名是 bookmarks.persistAll(不是 persisted)。
- 多根工作区下,每个根目录的
.vscode/settings.json都得单独加这一行:"bookmarks.persistAll": true - 开启后,数据落地为
.vscode/bookmarks.json,该文件建议提交到 Git(但要清楚:它存的是绝对行号,代码重构后跳转会偏移) - 别依赖“顺序”——插件不保证保存顺序,重启或跨工作区后可能重排;唯一可靠的是文件路径 + 行号 + 名称
右键书签条目能 Rename,但不能在侧栏里新建或编辑内容
侧栏本质是个只读索引视图,不是编辑器。你无法双击条目修改、不能拖动排序、也不能批量操作。所有变更动作必须回到源码行或通过右键菜单完成。
- 右键侧栏中的书签条目 →
Rename Bookmark:比回到原文件再命名快得多 - 右键 →
Remove Bookmark或Remove All Bookmarks:清理残留书签最直接的方式 - 想改颜色或标签?右键编辑器左侧 gutter 上的图标,选
Change Bookmark Color或Edit Bookmark Label - 试图在侧栏里双击某条目想编辑它?只会跳转过去——这是最容易被误操作的点
真正难的不是怎么打书签,而是怎么让书签不变成噪音:命名要有上下文,持久化要配对工作区,侧栏要用命名+搜索代替视觉扫描,而所有“编辑”动作都要回到代码行或右键条目——这点反直觉,但绕不开。











