Ctrl+Shift+L 拆光标只检测选区是否含换行符\n,不计行数;鼠标拖选若未覆盖末尾换行符则视为单行;稳妥做法是全选后拆或逐行选中叠加;处理CSV/日志前需确认换行符可见并清理空行与尾部空格;追加内容应定位到硬行尾(Hard EOL);修改第N列优先用列选择而非多光标;批量匹配需用Ctrl+F预览并控制正则边界;多光标为瞬时状态,操作须一气呵成。

Ctrl+Shift+L 拆光标前必须确认选区含换行符
它不数你“点了幾行”,只检查选中内容里有没有 \n。鼠标拖选时最后一行末尾没覆盖到换行符(哪怕只差一个像素),Ctrl+Shift+L 就当成单行处理,光标全堆在第一行末尾。
- 稳妥做法:先
Ctrl+A全选,再按Ctrl+Shift+L;或用Ctrl+L逐行选中后叠加Ctrl+D,最后统一拆 - 如果目标是 CSV 或日志文本,建议先用查找面板
Ctrl+F输入\n确认换行符可见(开启 “Show All Characters”) - 纯空行会被跳过——若数据里有空行干扰,先用正则
^\s*$替换掉,再操作
给每行末尾加字段(如分号、引号)要先跳到 Hard EOL
End 键默认停在“软行尾”,即当前视觉行末;但数据文本常含长行换行(word wrap),此时 End 无效。真正可靠的行尾是硬换行符位置。
- 拆出多光标后,按
Ctrl+Shift+P输入Move to Hard EOL(Sublime Text 4 内置,ST3 需装插件) - 替代方案:用正则查找
$(确保勾选 “Regular Expression”),再按Ctrl+Shift+L,光标会精准落在每个\n前 - 追加内容后若发现某几行多出空格,说明原行尾有空白——可提前运行
Trim Trailing White Space命令清理
批量修改 CSV 第 N 列优先用列选择而非多光标
用 Ctrl+Shift+L 拆光标再手动对齐列,极易因缩进/空格不一致导致错位;列选择(Alt+Shift+↑/↓ 或鼠标拖拽+Alt+Shift)才是对齐字段的底层机制。
- 操作前务必确认字体为等宽(如
"font_face": "Fira Code"),否则列框会偏移 - 光标放在第 N 列首字符,按住
Alt+Shift向下拖,松手后输入新值——所有行该列同步更新 - 若列不严格对齐(如 CSV 含引号包裹的逗号),先用正则替换预处理:
^([^,]*,){N-1}([^,]*)→$1新值(N 从 0 开始计)
匹配全部再编辑时注意上下文误删
Ctrl+Cmd+G(macOS)或 Ctrl+Alt+G(Win/Linux)会把当前词的所有出现位置转为光标,但默认按语法作用域匹配——比如 Python 中的 user_id 不会匹配字符串内的 "user_id",除非强制全文件。
- 安全做法:先按
Ctrl+F,输入目标词,关闭Match Whole Word和Match Case(按需),再按Alt+Enter预览匹配项 - 想排除干扰项?开启正则,用
\buser_id\b确保单词边界,或(? 排除引号内 - 输错内容后光标立刻合并——没有“撤销多光标”操作,
Ctrl+U只能撤回最后一次输入,别指望它恢复光标数

















