sublime text多光标非模式化,按esc/方向键等会立即清除;ctrl+d跳过目标因默认全字匹配且依赖干净选区,须双击完整变量名并检查大小写敏感;ctrl+shift+l拆行后光标错位需配合home对齐。

Sublime Text 的多光标不是“模式”,按错一个键(比如 Esc、→、Ctrl+X)所有光标就立刻消失——真正卡住人的,从来不是快捷键记不牢,而是光标生成后根本没注意它落在哪。
Ctrl+D 为什么总跳过目标变量
它默认只匹配「完整单词」,且严格依赖当前选区内容。光标停在 user_id 中间(比如删掉下划线后只剩 userid),后续匹配就会崩;双击没选干净(带了空格或点号),Ctrl+D 就按错误片段去搜。
- 务必双击变量名,确认高亮区域完全包裹
user_id,不含前后空格、引号或句点 - 如果仍跳过,检查是否启用了大小写敏感:
Ctrl+Alt+R切换开关 - 想跳过某处(比如字符串里的同名内容):先按
Ctrl+K,松手再按Ctrl+D - 误按太多?
Ctrl+U撤销上一次光标添加(不是撤销输入内容)
Ctrl+Shift+L 光标全歪了怎么办
Ctrl+Shift+L 不是对齐工具,它只是把当前选区按换行符切片,每行末尾放一个光标——缩进不一致,光标就必然错位。选中一段代码后直接按,光标大概率落在各行最后一个非空白字符后面,而不是同一列。
- 安全做法:先用鼠标拖选目标多行(确保覆盖到每行末尾的换行符),再按
Ctrl+Shift+L - 想统一从行首编辑:按
Home(不是←),所有光标会同步跳到各自行首(含缩进);再按一次Home,跳过缩进到真正行首 - 要加前缀(如
//):别用Ctrl+Shift+L,改用列选择——Shift+Alt垂直拖动(Win/Linux)或Shift+Cmd(Mac) - 列选择后不能用
Ctrl+D,必须先按Esc退出列选状态
鼠标点击加不了光标,或点了却拖动文本
这是 Sublime 默认开启 drag_text 导致的:按住 Ctrl(Win/Linux)或 Cmd(Mac)点击时,编辑器优先尝试拖动文本而非添加光标。
- 必须手动关掉:打开
Preferences → Settings,在用户设置里加一行:"drag_text": false - 点击位置很关键:避免点在已有选区边缘、单词中间或空行缩进处;优先点行首、行尾或纯空格位置
- 远程桌面或某些键盘布局下,
Alt+Tab等系统热键可能拦截Alt+拖动,可改用命令面板:Ctrl+Shift+P→ 输入Column Selection手动开启
正则 Find All 后没出现光标
Find All 不是自动加光标,它是把所有匹配项选中并置入多光标状态——前提是搜索范围正确、正则无语法错误、且你没误点 Replace 或 Replace All。
- 先用
Ctrl+H打开替换面板,勾选.*(正则)和Aa(大小写敏感按需),输入表达式后点Find All - 常见失败原因:文件混用换行符(
\r\n和\n),用Ctrl+Shift+P→Set Line Endings: Unix统一后再试 - 正则里用了
^或$却不生效?很可能某行末尾有不可见空格或零宽字符,先运行Ctrl+Shift+P→Trim Trailing White Space - 匹配后想改不同内容?得用捕获组(如
$1、$2),否则所有光标只会输出完全一样的文本
最易被忽略的一点:多光标状态下,Tab 插入的是语言缩进(不是跳焦点),Enter 是插入换行(不是确认),Backspace 是批量删除前一个字符——它们都同步执行,且受当前语法定义约束。改完立刻按 Esc 退出,否则回车可能劈开所有行。











