sublime text 无原生反选快捷键,仅支持selection: invert selection命令,需先创建有效选区再执行;反选后须用ctrl+shift+l转多光标才能批量操作;对“只留某行”场景,正则替换更可靠。

Sublime 没有原生反选命令,别浪费时间找快捷键
直接说结论:Sublime Text 从不提供 Selection: Invert Selection 以外的“反向选中”能力,也没有 Select Inverse 这类命令。所谓“反向选中”,本质是先手动框出目标区域(比如你想保留的几行),再用命令把其余部分变成选区——它不是一键反转视觉,而是靠你定义“正向”,系统帮你算“反向”。
怎么安全触发 Selection: Invert Selection?三步不能错
这个命令只在已有有效选区时才起作用,否则静默失败或报错。常见误操作就是光标空悬、全选没生效、或者选区被插件劫持。
- 必须先用
Ctrl+A或鼠标拖选明确覆盖目标范围(含末尾换行符\n),尤其处理多行时,漏掉最后一行的换行符会导致反选结果少一行 - 按
Ctrl+Shift+P(macOS 是Cmd+Shift+P)打开命令面板,输入Selection: Invert Selection,回车执行——不要依赖记忆快捷键,它默认没绑定 - 反选后光标落在新选区开头,但不会自动滚动到可视区;长文件里容易“看不见光标在哪”,建议立刻按
Ctrl+Home或Ctrl+End定位
反选后批量删/改内容,为什么总只动第一行?
反选生成的是一个连续选区(不是多个独立光标),直接输入或删除,只会作用于首段高亮区域。想同步改所有反选部分,得先转成多光标。
- 确认反选完成(整块非目标区域呈高亮状态)后,立刻按
Ctrl+Shift+L(Windows/Linux)或Cmd+Shift+L(macOS)拆分为行级光标 - 此时再按
Delete或输入字符,才会真正作用于每一行——若跳过这步,Backspace只删第一行开头,Ctrl+X只剪切首段 - 注意:如果反选区域含空行,
Ctrl+Shift+L仍会生成光标,但默认落在行首;想统一补内容到行尾,拆完立刻按End
想“只留某一行”,用正则比反选更稳
反选依赖人工选区精度,文件稍长就容易漏行或多选。对“保留单行、清空其余”的场景,正则替换容错率更高,也更可复现。
- 把光标放在目标行任意位置,按
Ctrl+Shift+P→ 输入Copy Line复制该行(或手动Ctrl+Shift+K删除后Ctrl+C) - 按
Ctrl+A全选,再按Ctrl+H打开替换面板,勾选Regular Expression - 在
Find What中填:^(?!(your exact line content here)$).*$\n?,把your exact line content here替换为刚才复制的那行文本(注意转义.、$、^等特殊字符) -
Replace With留空,点Replace All—— 唯一保留的就是那一行,其余全清
真正难的不是操作本身,而是每次动手前得想清楚:你要反选的,到底是“视觉上没被框住的部分”,还是“逻辑上不该存在的行”——前者靠反选+拆光标,后者直接正则更干净。











