Ctrl+Shift+L只生成一个光标是因为它仅依据选区中实际存在的换行符(\n或\r\n)切片,若选区未覆盖行尾换行符,即使视觉上拖选多行,仍按单行处理;安全做法是先用Ctrl+L逐行选中再统一执行。

Sublime 的多行编辑不是“开启一个功能”,而是靠快捷键实时叠加光标——按错一次 Esc、方向键或 Ctrl+X,所有光标立刻消失。
Ctrl+Shift+L 为什么只生成一个光标或光标错位
它只认选区里真实存在的换行符(\n 或 \r\n),不是“看起来像多行”就拆。选区没包住行尾换行符,就当单行处理。
- 鼠标拖选时松手早了,最后一行末尾的
\n没被选中 → 只出 1 个光标 - 选区开头含缩进空格或制表符 → 所有光标落在缩进位置,一输内容就破坏对齐
- 空行被选中 → 光标落在该行行首,不是行尾;想补内容得先按
End - 安全做法:先连按
Ctrl+L(Windows/Linux)或Cmd+L(macOS)逐行选中目标行,再统一按Ctrl+Shift+L
Ctrl+D 匹配不到目标词或跳过干扰项
Ctrl+D 不是模糊搜索,它严格按当前光标所在词的完整字面、大小写和单词边界匹配。第一次按会自动双击取词,后续才逐个找下一个。
- 光标停在
user_name中间 → 可能只取到_name,后续全错 - 双击选中
user_id后连按Ctrl+D→ 会跳过user_id_list和USER_ID - 注释或字符串里有同名内容(如
"user_id")→ 也会被选中,建议先按Esc退出,用Ctrl+F确认上下文 - 想跳过某次匹配:按
Ctrl+K再按Ctrl+D,光标保留在原位
列选择(Alt+Shift+拖动)总是偏移或没反应
列选择本质是矩形框选,行为完全依赖等宽字体和垂直对齐状态。它不是“拉几行就几行”,而是“从当前列开始,向下/向上延伸相同字符数”。
- 某行对应列是空格或制表符 → Sublime 自动把光标移到该行行尾,视觉上就偏了
- 字体非等宽(如系统默认 UI 字体)→ 中英文混排时必然错位;换成
Consolas或Fira Code立刻稳定 - 软换行开启时列选失效 → 必须关闭:
View → Word Wrap设为false - 文件是只读状态 → 列编辑静默失败,状态栏右下角显示
read only,需先解除锁定 - 列选状态下不能用
Ctrl+D、Ctrl+U或方向键 → 必须先按Esc退出
Ctrl+Click 加不了光标或拖动文本
Ctrl+Click(Windows/Linux)或 Cmd+Click(macOS)是坐标点加光标,不依赖文本内容,但前提是设置正确。
- 设置中
"drag_text": false未启用 → 点击会拖动文本而非加光标 - 中文输入法激活时(如搜狗、微软拼音)→
Ctrl+Click常被系统劫持,临时切英文输入法更稳 - 软换行开启 → 点击位置与实际字符坐标不一致,光标加错行
- 列选模式下无法使用
Ctrl+Click→ 两者互斥,必须先Esc - 命令面板弹出时(
Ctrl+Shift+P)→ 多光标被冻结,无法新增
最常被忽略的复杂点:光标位置决定一切。它不关心你“想改哪里”,只响应你“选中了什么”和“光标停在哪”。哪怕快捷键全对,只要主光标一开始就没落在目标词上,后面所有操作都会偏航。











