sublime书签仅标记行号,不生成光标,无法直接实现多光标编辑;需先打书签,再通过goto bookmarks跳转并配合ctrl+click逐个添加光标,或用正则find all批量定位有文本特征的目标行。

Sublime 书签本身不支持多光标定位
书签(Ctrl+F2 / F2)只是标记行号的导航锚点,它不会生成光标,也不能直接触发多光标编辑。想靠书签“跳到多个位置并同时编辑”,必须配合其他操作——书签只负责“找位置”,光标得手动或用快捷键“加进去”。
先打书签再批量加光标:用 Goto Bookmarks + Ctrl+Click
这是最可控的组合方式,适合已知几处关键行要修改(比如函数定义、配置项、日志错误行):
- 用
Ctrl+F2在目标行打上书签(状态栏会显示Bookmarked: X) - 按
Ctrl+Shift+P打开命令面板,输入Goto Bookmarks回车 → 弹出所有书签行号列表 - 用方向键选中第一个书签行,回车跳转;然后按住
Ctrl(Windows/Linux)或Cmd(macOS),在该行任意空白处轻点一次(确保"drag_text": false已设置) - 重复跳转 +
Ctrl+Click,逐个把光标加到各书签行
注意:不能在 Goto Bookmarks 列表里直接多选,Sublime 不支持该交互;必须跳转后手动加。
用 Find All 配合书签行号正则模拟“多光标跳转”
如果书签集中在某类行(如所有含 TODO 或 ERROR 的行),可绕过书签,直接用正则批量定位:
- 按
Ctrl+F,开启正则模式(.*按钮) - 输入类似
^.*\b(ERROR|TODO)\b的表达式(根据实际关键词调整) - 勾选
Aa(大小写敏感)和\n(匹配换行符,确保跨行安全) - 点
Find All→ 所有匹配行首立即出现光标
这比书签更高效,但前提是目标行有稳定文本特征;若纯靠行号(如第12、45、89行),正则无法直接写出行号列表,此时仍得靠上面的手动 Ctrl+Click。
为什么不能用 Ctrl+Shift+L 或 Ctrl+D 配合书签?
因为书签不是选区,也不携带文本内容:
-
Ctrl+Shift+L只响应“当前选区中的换行符”,书签没选中任何文本,按了也无效 -
Ctrl+D是基于当前光标下单词的逐次匹配,书签不提供词元,无法触发 - 即使你用
Goto Bookmarks跳到某行后按Ctrl+A全选整行,再按Ctrl+Shift+L,也只会在这行内拆出一个光标(因为没换行符)
真正容易被忽略的是:书签是行级标记,而 Sublime 多光标依赖的是“坐标位置”或“文本匹配”,二者不在同一抽象层。想让书签参与多光标流程,必须显式跳转 + 显式加光标,没有捷径。











