sublime text缩进默认热键为ctrl+](win/linux)或cmd+](macos),反缩进为ctrl+[或cmd+[;未选中时作用于当前行,多行选中时整块生效,行为依赖语法类型。

Sublime Text 缩进和反缩进的默认热键是什么
直接按 Ctrl+](Windows/Linux)或 Cmd+](macOS)对选中代码块右缩进,Ctrl+[ 或 Cmd+[ 左缩进。没选中时,作用于当前行;多行选中时,整块生效。
注意:这个行为依赖于当前文件的语法类型(如 Python、JavaScript),Sublime 会自动识别缩进规则(比如 Python 用 4 空格,JSON 默认不缩进)。如果缩进异常,先检查右下角显示的语法是否正确 —— 点击那里可手动切换。
为什么有时 Ctrl+] 没反应或缩进量不对
常见原因有三个:
- 当前视图被设为「纯文本」模式(右下角显示
Plain Text),它不启用任何语言相关缩进逻辑,热键失效 -
tab_width或translate_tabs_to_spaces设置与当前语言冲突,比如 Python 文件里关掉了translate_tabs_to_spaces,但编辑器仍试图用空格缩进 - 插件干扰,特别是
Emacs Pro Essentials或某些自定义键绑定插件,可能重映射了Ctrl+[/Ctrl+]
排查方法:打开命令面板(Ctrl+Shift+P),输入 Set Syntax: Python 强制切一次语法;再试热键。如果恢复,说明原语法识别错了。
如何自定义缩进宽度或切换 Tab/空格
缩进行为由两个关键配置控制,都在当前文件或用户设置里生效:
-
"tab_width": 2:设为 2、4 或其他整数,影响Tab键和热键的缩进量 -
"translate_tabs_to_spaces": true:设为true时,Tab键和缩进热键都插入空格;设为false则插入\t
推荐做法:在 Preferences → Settings – Syntax Specific 里为每种语言单独配,比如 Python 文件里写:
{"tab_width": 4, "translate_tabs_to_spaces": true}。这样不会影响 JSON 或 Markdown 的默认行为。
选中代码后按 Tab 或 Shift+Tab 为啥有时不管用
这是最常被忽略的点:Sublime 默认把 Tab 绑定为「自动补全触发器」,不是缩进命令。所以当你选中多行按 Tab,它可能弹出补全菜单,而不是缩进。
解决办法只有两个:
- 坚持用
Ctrl+]/Ctrl+[(可靠,不冲突) - 手动改键绑定:打开
Preferences → Key Bindings – User,加一行:[{"keys": ["tab"], "command": "indent", "context": [{"key": "selection_empty", "operator": "equal", "operand": false}]}],但要注意这会影响所有语言下的Tab行为
真正稳定的方案,还是记住并习惯用 Ctrl+] 和 Ctrl+[ —— 它们专为缩进设计,不抢补全,也不依赖光标位置。










