Sublime Text多光标编辑依赖快捷键临时叠加,核心是掌握光标添加、保留与防丢失技巧:Ctrl+D按完整单词匹配,需注意大小写和边界;Ctrl+Shift+L按换行切分光标,不保证对齐;列选择用Shift+Alt垂直拖动;禁用drag_text避免点击失效;Find All需先启用正则并确认范围。

Sublime Text 的多光标编辑不是“开启一个模式”,而是靠快捷键临时叠加光标——按错一个键(比如 Esc、方向键、Ctrl+X)就全没了,所以核心是知道光标怎么来、怎么留、怎么不丢。
Ctrl+D 选中相同词时总跳过目标位置
这是因为 Ctrl+D 默认只匹配“完整单词”,且受大小写和空格边界影响。比如你双击选中 user_id 后连按 Ctrl+D,它可能跳过 user_id_list 或 USER_ID。
- 先确保选区干净:双击词,不要带前后空格或标点
- 如果想严格按字面匹配(包括下划线、大小写),在查找面板勾选
Aa(大小写敏感)再用Ctrl+F→ 输入词 →Alt+Enter全选 - 想跳过某个匹配项,别松手,直接按
Ctrl+K再按Ctrl+D,当前高亮会消失,光标保留在原位 - 误按太多?
Ctrl+U撤销上一次光标添加(不是撤销输入内容)
Ctrl+Shift+L 后光标全歪了,输内容就错位
Ctrl+Shift+L 的作用是“把当前选区按换行符切开,每行末尾加一个光标”,它完全不关心缩进对齐。选中一段缩进代码后直接按,所有光标会落在各自行的最后一个非空白字符后面,而不是行首或同一列。
- 想统一从行首编辑:先按
Home把主光标移到行首,再按Ctrl+Shift+L;或者选中后运行命令面板(Ctrl+Shift+P)→ 输入Align Indent - 想给每行开头加前缀(如
//):别用Ctrl+Shift+L,改用列选择——按住Shift+Alt(Win/Linux)或Shift+Cmd(Mac),从第一行列首垂直拖到最后一行列首 - 列选择后输内容,所有行对应列位置同步生效;但一旦开始输,就不能再按
Ctrl+D,得先按Esc退出列选
鼠标点击加光标没反应或拖动了文本
这是 Sublime 默认开启 drag_text 导致的:按住 Ctrl(或 Cmd)点击时,编辑器优先尝试拖动文本而非添加光标。
- 必须手动关掉:打开
Preferences → Settings,在用户设置里加一行:"drag_text": false - 点击位置也很关键:避免点在已有选区边缘或单词中间,容易触发双击选词或列选择;优先点行首、行尾或空格处
- 想快速在连续多行加光标:按住
Ctrl+Alt(Win/Linux)或Cmd+Option(Mac),再按↑或↓键,每按一次就在上下行插入一个新光标
正则替换后想每个匹配都带独立光标,但 Find All 没反应
Find All 不是自动加光标,而是把所有匹配项选中并置入多光标状态——前提是搜索范围正确、正则无语法错误、且没误点 Replace。
- 先确认启用了正则:在查找面板(
Ctrl+H)点.*图标,或按Alt+R - 写完正则后,别急着点
Replace,先点Find All(或按Alt+Enter)——这时所有匹配开头应出现光标 - 如果没反应,检查是否勾选了
In Selection却没提前选中文本;或文件混用\r\n和\n,可先用Ctrl+Shift+P→Set Line Endings → Unix统一 - 光标有了但输不了不同内容?多光标只支持同步输入相同文本;要差异化替换,得用捕获组,比如把
(\w+)\.(\w+)替换为$2.$1
最常被忽略的一点:多光标状态下,Ctrl+Z 是逐个回退每个光标的动作,不是一次性撤销全部;而 Esc 会直接清空所有辅助光标——这不是 bug,是设计逻辑。习惯它,比试图“修复”更省时间。

















