Sublime Text中代码块缩进应使用Ctrl+]和Ctrl+[进行多行缩进,或用Reindent命令自动重排;禁用detect_indentation会破坏项目一致性,推荐用EditorConfig插件统一风格。

Sublime Text 里缩进不是靠 Tab 键硬按出来的
默认按 Tab 只是插入一个制表符(或空格),不识别代码结构。真正调整「代码块缩进」得用编辑器内置的重排功能,否则容易破坏嵌套逻辑、触发 ESLint 报错,或者让 Python 直接抛 IndentationError。
选中后用 Ctrl+]
这是最常用也最安全的多行缩进方式,适用于任意语言、任意缩进风格(空格/Tab 混用也不怕)。
- 先用鼠标拖选或
Ctrl+L选中多行 - 按
Ctrl+]向右缩进(每按一次加一个缩进层级) - 按
Ctrl+[向左缩进(逐级退格,不会删光行首空白) - 对 Python 来说,这个操作会严格保持相对缩进量,不会把
if和print拉到同一列导致语法错误
用 Ctrl+Shift+P 调出命令面板执行「Reindent」
当粘贴外部代码、格式混乱或缩进层级错乱时,Reindent 是救急首选——它会根据当前语言的语法规则自动重算缩进。
- 确保光标在目标代码块内(不用全选)
- 按
Ctrl+Shift+P打开命令面板 - 输入
reindent,选择Indentation: Reindent Lines - 注意:该命令依赖
language syntax,所以务必确认右下角显示的是正确语言(如Python,不是Plain Text) - 如果缩进没变,大概率是语法类型识别错了,点右下角切换一下
别乱改 tab_size 和 detect_indentation
很多人想“一劳永逸”地设成 4 空格,结果改完发现 JSON 文件缩进错位、YAML 校验失败、Git diff 里全是空格变更——问题就出在这俩配置上。
-
"tab_size": 4只控制新插入缩进的宽度,不影响已有代码 -
"detect_indentation": true(默认开启)才是关键:它会让 Sublime 自动读取文件首行缩进,决定用空格还是 Tab、几个字符宽 - 强行关掉
detect_indentation并设死tab_size,等于让编辑器无视项目约定,尤其对团队协作项目是隐患 - 真要统一风格,用
EditorConfig插件更靠谱,它读.editorconfig文件,语言感知强,Git 提交前也能校验
{
"tab_size": 2,
"translate_tabs_to_spaces": true,
"detect_indentation": true
}
实际缩进是否生效,取决于你此刻编辑的文件是否被正确识别为对应语言,以及有没有被其他插件(比如 AutoFileName 或 JsPrettier)劫持了保存行为。这些细节不看状态栏、不查右键菜单里的「Indentation」子项,很容易以为功能坏了。










