ctrl+shift+l只生成一个光标,因其仅检测选区是否含换行符\n;若鼠标拖选未覆盖行末换行符,则视为单行处理。

Ctrl+Shift+L 为什么只生成一个光标?
它根本不看“你想选几行”,只认选区里有没有 \n。鼠标拖选时如果最后一行没盖住换行符(视觉上像选中了,其实停在行尾字符上),Sublime 就当单行处理。
- 安全做法:先按
Ctrl+L选中第一行,再按住Shift+↓多选几行,确保选区包含换行符 - 空行也会被拆出光标,但光标落在开头——处理配置文件或 JSON 时务必手动检查空行是否被误改
- 想对 CSV 每列加引号?先用列选择框出整列,再输入
",别依赖Ctrl+Shift+L
Ctrl+D 选错了怎么办?它不是语义识别,只是字符串匹配
Ctrl+D 对 user_id 和 user_id_list 不做区分,只要前缀一致就全选。这不是 bug,是设计逻辑。
- 误匹配时,立刻按
Ctrl+K再按Ctrl+D跳过当前项 - 想只选完整单词?先打开替换面板,勾选
Whole Word,再用Ctrl+H+In Selection - 确认无歧义再用
Alt+F3—— 它暴力全选所有匹配,适合日志里改INFO→DEBUG这类固定字串
列编辑 Alt+鼠标拖拽不直?问题不在手抖
列选择依赖两个硬条件:等宽字体 + "drag_text": false。字体不是 Consolas 或 Source Code Pro,或者设置里 drag_text 为 true,鼠标一碰就拖动文本,根本进不了列选模式。
- 先去
Preferences → Settings确认"drag_text": false - Alt+左键拖拽时必须垂直移动;斜拉会生成锯齿状选区
- 想在每行第 10 列插入内容?别靠目测——
Ctrl+Shift+P输入Move to Column,输入数字精确定位
批量改行尾、改某列、改特定上下文,别硬刚
纯靠快捷键堆叠容易失控,真正稳的路径是「先定位,再编辑」:
- 每行末尾加
;:先Ctrl+L选全部目标行 →Ctrl+Shift+L拆光标 →End或Ctrl+→跳行尾 → 输入; - CSV 第 3 列统一改值:用正则
^(?:[^,]*,){2}([^,]*)替换为新值,比列选更抗错位 - 避开字符串里的干扰项:搜
user_id时,用\buser_id\b+Ctrl+Alt+G,否则"user_id"也会被改
最危险的不是不会用多光标,而是忘了自己正在操作的是纯文本——所有“看起来像”的东西,Sublime 都照单全收。每次敲 Delete 前,先 Ctrl+F 看一眼高亮是否真符合预期。











