ctrl+shift+l(windows/linux)或cmd+shift+l(macos)是sublime多行编辑起点,按选区换行符数量拆分光标,每行光标位置与选区起始列一致,非自动对齐,需配合插件或手动调整实现对齐。

Ctrl+Shift+L 拆行光标是整理结构化文本的起点
处理 JSON、日志、CSV 片段或配置列表时,最常卡在“怎么让每行都对齐修改”——Ctrl+Shift+L(Windows/Linux)或 Cmd+Shift+L(macOS)就是答案。它不依赖选中内容是否“干净”,只要选区里含换行符,就会在每行对应位置(通常是行尾或选区末尾)生成一个光标。
常见翻车点:
- 选中后按了
Ctrl+Shift+L却只出一个光标:检查是否误选了整段但没包含换行符(比如双击单词只选中一个词);必须确保选区横跨多行,哪怕只选中一个换行符也行 - 光标落在行尾空格后而非行首:Sublime 默认吸附到选区边界,若原行末有空格,光标就停那儿。解决办法是先用
Ctrl+H替换掉行尾空格(查找\s+$,替换为空),再操作 - 拆完光标后输不了字?状态栏右下角显示
read only:文件被锁或权限不足,需解除只读属性
列选择(Alt+拖拽)适合对齐字段和删列
当你要统一缩进参数、删除某几列字符、或给每行加相同前缀(如 // 注释),Alt+Shift+鼠标拖拽(Windows/Linux)或 Option+Shift+鼠标拖拽(macOS)比多光标更精准——它生成的是矩形选区,不是离散光标。
注意前提:
- 必须用等宽字体(默认即满足),否则拖拽会错位
- 系统快捷键可能劫持
Alt+Shift(如 Windows 的 Alt+Tab、中文输入法切换);可改用命令面板:Ctrl+Shift+P→ 输入Column Selection手动开启 - 列选择状态下无法使用
Ctrl+D或Ctrl+Click,必须先按Esc退出列模式
正则 + Find All 是批量格式化不可跳过的组合
想给所有数字加引号、把 key=value 转成 "key": "value"、或在每行开头插入序号,靠纯手动多光标效率低且易漏。Ctrl+H 打开替换面板,写好正则后点 Find All,所有匹配位置会自动变成多光标起点。
关键细节:
-
Find All不等于Replace All:前者只是高亮并加光标,后者直接替换。误点 Replace All 会导致光标消失 - 正则中
^和$失效?大概率是混用了\r\n和\n。先执行Ctrl+Shift+P→Set Line Endings: Unix统一换行符 - 捕获组(如
(\w+)=)配合$1可差异化替换,但所有光标仍同步输出相同结果;真要每行不同内容(如递增序号),得装Insert Numbers插件
drag_text 为 true 时 Ctrl+Click 会拖文本而非加光标
这是新手最常懵圈的点:明明想用 Ctrl+Click 在多个位置加光标,结果点了就拖动了一段文字。根本原因是 Sublime 默认开启 drag_text,优先响应拖拽行为。
必须关闭它:
- 打开
Preferences → Settings - 在右侧用户设置中添加:
"drag_text": false - 保存并重启 Sublime
关掉之后,Ctrl+Click 才真正变成“加光标”,Ctrl+D 也更稳定。这个设置一旦忽略,后续所有多光标操作都会反复失效,但错误提示为零——它静默降级,你只能凭直觉怀疑“是不是快捷键按错了”。











