最稳方式是启用正则后在「Find What」填^\s+、「Replace With」留空,仅对选中区域操作;Ctrl+[和Ctrl+]可机械调整缩进;删缩进后需统一为空格并关闭自动检测。

用 ^\s+ 正则替换,不是 ^ + 或 ^\s*
直接删当前行首空格,最稳方式是打开替换面板(Ctrl+H),启用正则(点右下角 .* 图标),在「Find What」填 ^\s+,「Replace With」留空,然后点「Replace」(不是「Replace All」)。^\s+ 中的 + 确保只匹配至少一个空白字符,避免 ^\s* 导致零宽匹配、插入空行;^ 锚定行首,防止误删行中缩进或字符串内空格。
常见错误:
- 输
^ +(空格字面量)→ 只删空格,漏掉\t,缩进错乱 - 没勾
.*→ 正则当纯文本处理,完全不生效 - 全选后点 Replace All → 注释行、YAML 键值对、Python docstring 缩进全被清空
Ctrl+[ 和 Ctrl+] 是唯一真正可靠的缩进复原键
想把当前行或选中代码块“往回拉一档”或“推一档”,直接按 Ctrl+[(减少缩进)或 Ctrl+](增加缩进)。它们不分析语法、不触发补全、不矫正空格数,纯机械增减行首空白符,对 .py、.json、.md 都有效。
注意:
-
Tab和Shift+Tab在 Sublime 里默认是补全触发器,不是缩进命令——光标在函数名后、引号内时,按了只会弹菜单 - 如果按了没反应,大概率是
"detect_indentation": true在后台锁定历史风格,临时切到 Plain Text 语法再试,或先执行Indentation: Convert to Spaces - 未选中内容时,只作用于当前行;选中多行时,整块统一调整
删完缩进崩了?先查是不是 Tab 和空格混用
删除行首空白后若出现 Python 报 IndentationError、Alignment 插件对不齐、折叠符号错位,基本可断定原文件混用了 Tab 和空格。Sublime 的视觉缩进和实际字符列数不一致,会导致后续所有对齐逻辑失效。
必须做两件事:
- 菜单
View → Indentation → Convert Indentation to Spaces(统一为空格) - 菜单
Indentation → Detect Indentation设为false(关掉自动检测,否则下次打开又切回 Tab)
这两步跳过,后面所有缩进操作都可能反复偏移。
想快速清理当前行而非整文件?先手动选中再操作
不要全选全文再替换——风险太高。正确做法是:Ctrl+L 选中当前行(或 Ctrl+Shift+L 多行),再开 Ctrl+H,填 ^\s+,点「In Selection」复选框,再点「Replace」。这样确保只动你眼睛看到的那几行,注释、空行、字符串缩进全不受影响。
这个习惯比记住所有正则更重要:所有批量操作,在 Sublime 里都该以「选中区域」为安全边界。文件末尾那个看不见的空行、BOM、零宽空格,都不是靠一次替换能兜底的,得靠分步、限定范围来控制。











