sublime多光标失效主因是未正确识别换行符或列选后未转光标:拖选需覆盖换行符,alt/option列选后须按ctrl+shift+l拆分,drag_text默认开启会拦截ctrl+click,应设为false。

鼠标拖选多行只出一个光标?你没选中换行符
Sublime 的 Ctrl+Shift+L 不是“识别视觉上的多行”,而是严格按选区里是否包含 \n 或 \r\n 来切分。拖选时哪怕最后一行只差一个像素没覆盖到行尾的换行符,整个选区就被当作单行处理,Ctrl+Shift+L 就只放一个光标。
安全做法:
- 先按
Ctrl+L(Windows/Linux)或Cmd+L(macOS)逐行点击目标行,确保每行都被完整高亮(含空行) - 再统一按
Ctrl+Shift+L(Win/Linux)或Cmd+Shift+L(macOS) - 拖选后可先按
Home把主光标拉到行首,再执行拆分,避免光标落在缩进空格上导致输入错位
Alt+拖拽列选后输内容只改第一行?漏了拆光标这步
Alt+拖拽(Win/Linux)或 Option+拖拽(macOS)生成的是矩形选区,不是多光标——这是 Sublime 的设计行为,不是 bug。默认只对首行执行输入/删除,其余行保持不动。
必须立刻补一步:
- 列选完成后,马上按
Ctrl+Shift+L(Win/Linux)或Cmd+Shift+L(macOS),把矩形切为每行一个光标 - 若某行比矩形窄,光标会自动落到该行末尾;建议提前运行
Ctrl+Shift+P→Trim Trailing White Space清理空格 - 不想手动拆?列选后直接用
Ctrl+Shift+P→ 输入Insert Text at Carets,填入内容,避免粘贴错位
Ctrl+Click 加不了光标?drag_text 在暗中拦截
默认开启的 drag_text 会让 Ctrl+Click(Win/Linux)或 Cmd+Click(macOS)优先触发文本拖动,而不是添加光标。点十次可能只留下最后一个光标,输入也只发生在那一个位置。
必须显式关闭:
- 打开
Preferences → Settings,在右侧用户设置中加入:"drag_text": false - 保存后建议重启 Sublime Text,部分版本不重启不生效
- 验证方式:按住
Ctrl后轻点行首空格,应出现新光标,而非拖动整行 - 点击位置优先选行首空白、行尾换行符前、或纯空格段;避开单词中间、折叠符号、缩进边缘
列对齐加光标失败?别信视觉,看字符位置
Ctrl+Shift+↑/↓ 是在当前列向上/向下追加光标,不是“视觉列对齐”。它要求目标行在该列位置有可编辑字符(不能是空行或超出行宽),否则光标会自动跳到行尾。
常见卡点:
- 某行该列是制表符或空格 → 光标移到该行行尾;解决办法是先运行
Ctrl+Shift+P→Convert Indent to Spaces - 软换行(
View → Word Wrap)开启时,鼠标拖选的“逻辑终点”和真实\n错位,务必先关闭 - 非等宽字体(如系统 UI 字体)会导致列偏移;切到
Consolas或Fira Code立刻稳定 - 列编辑状态下不能用
Ctrl+D;想切回多光标,必须先按Esc退出列选
Esc 会清空所有光标,方向键或剪切操作也会中断。最易被忽略的是:光标数 = 实际选中的 \n 数,不是你“觉得”选了几行;而列选后的矩形区域,必须手动转成光标才能同步编辑。











