Sublime多光标是确定性操作,依赖精确选中与快捷键叠加:Ctrl+D按字面+单词边界匹配,未选中则取光标处词;Ctrl+Shift+L按实际换行符切片;drag_text需关闭才能点击加标;列选择与多光标模式互斥。

Sublime 多光标不是“黑魔法”,是快捷键实时叠加的确定性操作——按错一次(比如 Esc、方向键、Ctrl+X),所有光标立刻消失;没选中内容就按任何多光标快捷键,基本等于没按。
Ctrl+D 为什么总漏掉或误中目标变量
它不扫描全文,只从当前选中文本出发,严格匹配字面值 + 单词边界。双击 user_id 后连按 Ctrl+D,不会命中 user_id_list 或 USER_ID,这是设计行为,不是 bug。
- 没选中就按
Ctrl+D?Sublime 会自动取光标所在位置的“词”,但若光标停在api_v2_endpoint中间,可能只取到v2_endpoint,后续全错 - 想跨大小写匹配?先打开查找面板
Ctrl+F,点左下角Aa关闭 “Match Case”,再回来按Ctrl+D - 注释里有同名字符串(如
// user_id is deprecated)?按Ctrl+K再按Ctrl+D跳过当前项 - 不确定是否全匹配?在查找面板输入
\buser_id\b,勾选.*(正则),点Find All预览所有命中位置
Ctrl+Shift+L 只生成一个光标?你没选中换行符
Ctrl+Shift+L 的作用是把「当前选区」按 \n 或 \r\n 切片,每片末尾加一个光标。它不看“你心里想选几行”,只认实际选中的文本里有没有换行符。
- 鼠标拖选 5 行但没覆盖最后一行末尾的换行符?Sublime 当它是单行,只放一个光标
- 安全做法:连续按
Ctrl+L(每按一次选一行),确保每行都被显式选中,再统一按Ctrl+Shift+L - 选区含缩进空格?光标会落在空格后,一输内容就覆盖缩进,代码错位;建议先按
Home把主光标移到行首,再执行 - 空行也会生成光标,但光标落在行首;若想补内容到行尾,得手动按
End
鼠标点击加不了光标?drag_text 在捣鬼
默认开启的 drag_text 会让 Ctrl+Click(Windows/Linux)或 Cmd+Click(macOS)优先触发文本拖动,而非添加光标。
- 必须在用户设置里显式关闭:
"drag_text": false - 点击位置也关键:避免点在单词中间或已有选区边缘,容易触发双击选词或列选择;优先点行首、行尾或空格处
- 软换行(Word Wrap)开启时,同一逻辑列可能被拆到不同物理行,导致点偏;临时关掉
View → Word Wrap更准 - MacBook 触摸板手势(如三指拖拽)可能干扰点击,可尝试外接鼠标或禁用系统手势
列选择(Alt+拖拽)和多光标不能混用
列选择是矩形块选,不是多光标——它不识别语法、不响应 Ctrl+D,输入行为也受限(比如不能回车换行)。
- 必须按住
Alt+Shift(Win/Linux)或Option+Shift(macOS)再拖动,只按Alt或只按Shift无效 - 字体非等宽(如系统默认 UI 字体)会导致“看着对齐,松手就歪”;换成
Consolas或Fira Code立刻稳定 - 某行太短?光标停在该行末尾,不会悬空;但若有空行或注释行,末尾几行可能根本没光标
- 列选择后必须先按
Esc或点空白处退出,才能切回多光标模式;否则Ctrl+U、Ctrl+D全部失效
真正卡住人的,从来不是记不住快捷键,而是光标加错了、留不住、或者输着输着发现改了不该改的地方——多光标同步执行输入,没有上下文判断,所有风险都发生在按下回车或退格的那一瞬。

















