Ctrl+Shift+L只生成一个光标是因为它仅依据选区是否含换行符(\n或\r\n)切分,未覆盖换行符即视为单行处理;安全做法是先Ctrl+A全选或Ctrl+L逐行选中再执行。

Ctrl+Shift+L 拆光标总只出一个?先看选区里有没有 \n
这个操作不是“给当前光标所在行加光标”,而是把已选中文本按换行符切开——每遇到一个 \n 或 \r\n,就在其前放一个光标。它完全不识别“你心里想选几行”,只认实际选区是否含换行符。
- 鼠标拖选时最后一行末尾没覆盖到换行符(视觉上看似选中了,其实漏掉了
\n),Ctrl+Shift+L就当成单行处理,只生成一个光标 - 只点了一下光标、没选中任何文字,
Ctrl+Shift+L静默跳过,毫无反应 - 选区全是空格或制表符?光标会落在空白后,一输内容就把缩进顶掉
- 更稳的做法:
Ctrl+A全选 →Ctrl+Shift+L;或先用Ctrl+L逐行选中目标行,再统一执行
想在每行开头/结尾批量插入?别只靠 Home 和 End
Home 默认跳到第一个非空字符,End 默认停在行尾空白处——都不是物理行首/行尾。直接按会导致前缀插进缩进中间,或后缀加在空格后面。
- 加前缀(如
console.log():选中后Ctrl+Shift+L→Ctrl+Shift+P输入Move to Beginning of Line→ 输入内容 - 加后缀(如
;):选中后Ctrl+Shift+L→Ctrl+Shift+P输入Move to Hard EOL(Sublime Text 4 内置)→ 输入内容 - 缩进不一致?列选择(
Alt+Shift+鼠标拖动)比Ctrl+Shift+L更可靠,但必须用等宽字体(如Consolas)
Ctrl+D 总跳过目标变量?它根本不是“搜词”
Ctrl+D 默认开启 match_whole_word: true,且严格区分大小写、下划线和单词边界。它不是模糊查找,而是从当前选中内容出发,找下一个字面完全一致的片段。
- 双击选中
user_id后连按Ctrl+D,会跳过user_id_list(多了_list)和USER_ID(大小写不符) - 注释里有同名字符串干扰?按
Ctrl+K再按Ctrl+D,跳过当前高亮项,光标保留在原位 - 想一次性全选所有匹配?用
Alt+F3(Windows/Linux)或Ctrl+Cmd+G(macOS),但注意上限约 10000 处,超量静默丢弃 - 匹配前建议先
Ctrl+F确认上下文,避免误删字符串字面量(如"user_id")
Ctrl+Click 加不了光标?drag_text 在捣鬼
90% 的情况是默认开启的 drag_text 导致的:它让 Ctrl+Click(Windows/Linux)或 Cmd+Click(macOS)优先拖动已选中文本,而不是添加光标。
- 必须手动关闭:打开
Preferences → Settings(用户配置),加一行:"drag_text": false - 改完必须彻底退出 Sublime 再启动——仅重载配置不够
- 点位建议:轻点行首空格、行尾换行符前,或单词中间偏左;太靠近已有选区易触发列选择或双击
- 多光标是瞬时状态,
Esc、方向键、Ctrl+X都会清空所有光标,没有“撤销光标添加”这种操作

















