Sublime Text多光标无配置开关,需禁用drag_text并理解光标逻辑:Ctrl+Click失效因drag_text默认开启,必须设为false;Ctrl+D严格字面匹配,Ctrl+Shift+L依赖选中换行符;列选择须等宽字体。

Sublime Text 没有多光标“配置开关”,所有协同操作都依赖快捷键实时叠加,关键在禁用 drag_text 和理解光标生成逻辑。
必须先关掉 drag_text,否则 Ctrl+Click 会拖文本而不是加光标
默认开启的 drag_text 会让 Ctrl+Click(Windows/Linux)或 Cmd+Click(macOS)触发文本拖动,完全阻断多光标起点。这不是快捷键冲突,而是设置覆盖。
- 打开
Preferences → Settings,在右侧用户设置中加入:"drag_text": false
- 保存后建议重启 Sublime,部分版本不重启不生效
- 验证方式:按住 Ctrl 后轻点行首空格,应出现新光标而非拖动整行
Ctrl+D 为什么总跳过目标词?它只认字面全匹配
Ctrl+D 不是“搜同名变量”,而是“从当前选区出发,找下一个完全相同的字符串片段”——包括大小写、下划线、边界空格,甚至注释里的引号内内容。
- 双击选中
user_id后连按Ctrl+D,不会命中user_id_list或USER_ID - 想跳过某处(比如注释里的
// user_id),按Ctrl+K再按Ctrl+D - 要一次性全选,用
Alt+F3(Windows/Linux)或Ctrl+Cmd+G(macOS),但注意上限约 10000 处,超量静默丢弃
Ctrl+Shift+L 拆光标失败?问题几乎都出在选区没含换行符
Ctrl+Shift+L 的作用是「把当前选区按换行符切片,每个换行符前放一个光标」,它不识别“行”,只认 \n 字符。
- 鼠标拖选 5 行时松手没覆盖最后一行末尾的换行符 → 实际只选中 4 行 + 1 行无
\n→ 只生成 4 个光标 - 安全做法:先用
Ctrl+L(逐行选中)或Ctrl+A(全选),再按Ctrl+Shift+L - 如果光标落在缩进空格上,说明你选区包含了开头空格;想统一从行首编辑,先按
Home把所有光标拉到行首
列选择(竖向编辑)错位?等宽字体是硬性前提
列选择不是多光标模式,而是独立的矩形选区,靠 Alt+Shift+拖动(Windows/Linux)或 Option+Shift+拖动(macOS)触发,但它对字体敏感。
- 用系统默认 UI 字体(如 Segoe UI)拖拽,中文/英文/符号宽度不一致 → 光标视觉偏移
- 换成
Consolas、Fira Code或JetBrains Mono立刻稳定 - 列选状态下无法使用
Ctrl+D、Ctrl+U,必须按Esc退出才能切回多光标
真正容易被忽略的是:多光标输入时,Enter 会在每个光标位置插入新行,Backspace 会同步删除各自前面的字符——它不判断上下文是否合理,只机械执行。一旦光标落点不对(比如卡在字符串中间或注释里),改写就直接破坏语法。


















