sublime text原生支持书签功能,需手动绑定快捷键:ctrl+shift+p输入toggle bookmark添加/取消书签;next/prev bookmark跳转,默认无快捷键,用户需在key bindings中配置;书签仅限当前窗口会话,不跨文件或重启保存。

怎么给当前行加书签
Sublime Text 的书签功能不依赖插件,原生支持,但默认没绑定快捷键。加书签本质是给某一行打个可跳转标记,不是保存文件位置,也不是收藏代码片段。
操作很简单:把光标停在目标行任意位置,按 Ctrl+Shift+P(Windows/Linux)或 Cmd+Shift+P(macOS)呼出命令面板,输入 Toggle Bookmark 回车就行。左侧行号区会出现一个小圆点,表示已标记。
- 多次对同一行执行会取消书签,不是叠加
- 书签只存在于当前窗口/标签页,关掉就没了(除非你装了
Bookmarks插件并启用了持久化) - 别误以为
Ctrl+F2是默认快捷键——它在多数系统上被占用了(比如 macOS 截图),实际需手动绑定
如何批量跳转书签
书签真正的价值在于快速来回切换。Sublime 提供两个核心命令:Next Bookmark 和 Prev Bookmark,对应跳到下一个/上一个书签行。
默认没有快捷键,必须自己配。进 Preferences → Key Bindings,在用户配置里加两行:
[
{ "keys": ["ctrl+f2"], "command": "next_bookmark" },
{ "keys": ["ctrl+shift+f2"], "command": "prev_bookmark" }
]
注意:如果用的是 macOS,ctrl+f2 可能和系统快捷键冲突,建议改用 ctrl+alt+f2 这类组合;Windows 用户也要确认是否被其他软件劫持了 F2。
- 跳转时不会自动展开折叠的代码块,得手动点开
- 书签顺序按添加时间排,不是按行号顺序,所以先标第100行、再标第5行,
Next Bookmark会先跳回第100行 - 没书签时执行跳转命令,Sublime 不报错也不提示,只是“静默失败”——这点容易让人以为功能坏了
为什么书签不跨文件保存
原生书签设计就是会话级的:只属于当前 Sublime 窗口生命周期。关掉窗口,所有书签清空。这不是 bug,是故意为之——避免书签堆积污染全局状态。
如果你真需要跨重启保留,有两个现实选择:
- 装官方维护的
Bookmarks插件(通过 Package Control 安装),它提供save_bookmarks和load_bookmarks命令,但要手动触发 - 用
Project → Save Project As…保存整个项目,Sublime 会把当前书签写进.sublime-project文件(仅限该工程内有效) - 别指望
Session自动恢复书签——即使开了remember_open_files,书签也不会回来
书签和折叠/侧边栏标记的区别
新手常混淆书签和代码折叠(Ctrl+Shift+[)、或者侧边栏里的文件图标标记(如修改未保存的星号)。它们完全无关:
- 折叠是语法感知的结构操作,书签是纯行号标记,哪怕那行是空行也能标
- 侧边栏的“修改中”“新建未保存”等图标由文件状态驱动,无法手动添加或跳转
- 书签不能导出为链接或分享给同事——它不像 VS Code 的
TODO注释那样有语义,就是个本地导航辅助
真正容易被忽略的是:书签不会随代码移动而自动偏移。比如你在第10行打了书签,然后在它上面插入5行,书签还在第10行(物理行号),但原本想标记的逻辑位置已经变成第15行了。










