ctrl+shift+p搜“trim”才能找到trim_auto_indent命令,因sublime原生无独立删行首空格功能;最稳方案是正则替换^\s+为空,需勾选.*模式,且仅对选中区域操作可避免误伤。

为什么 Ctrl+Shift+P 里搜 “Trim” 才是正解
Sublime Text 原生不提供「删除行首空格」的独立命令,但内置了 trim_trailing_white_space(删行尾)和 reindent(重缩进),唯独没给行首留个快捷入口。真正能一键干掉所有行首空格的,是 trim_auto_indent ——但它默认不暴露在命令面板里,得靠正则替换兜底。
用正则替换删行首空格最稳的写法
打开替换面板(Ctrl+H),勾选 .*(正则模式),填入:
^\s+
替换为空(留空),然后点 Replace All。注意三点:
-
^必须加,否则会匹配行中任意位置的空白 -
\s+匹配一个及以上空白字符(空格、Tab 都算),比写(单个空格)更可靠 - 别误用
\s*——*会匹配零长度,导致“替换全部”后多出一堆空行
想只删某几行的行首空格?先选中再操作
如果只处理代码块(比如函数体、字典值部分),直接鼠标拖选或 Ctrl+L 逐行选中目标行,再打开替换面板。此时 ^\s+ 只作用于选中区域,不会误伤其他地方。
常见误操作:
- 全选全文后替换 → 注释行、空行、字符串内缩进全被扫荡,格式崩坏
- 没勾
.*就输^\s+→ 正则当纯文本处理,完全不生效 - 用
Replace(单次)代替Replace All→ 手动点几十次,不如重装插件
删完空格后缩进错乱?检查 Tab/空格混用
删掉行首空格后,如果发现代码块整体左移、对齐失效,大概率是原文件混用了 Tab 和空格。Sublime 的视觉缩进和实际字符列数不一致,会导致后续对齐工具(如 Alignment)计算错误。
统一为纯空格:
- 菜单
View → Indentation → Convert Indentation to Spaces - 同时勾选
Indentation → Detect Indentation关闭,避免下次打开又自动切回 Tab
这步常被跳过,但它是后续所有对齐操作不出偏移的前提。











