sublime代码缩进异常主因是detect_indentation自动锁定历史风格,而非快捷键错误;唯一可靠缩进方式是ctrl+](win/linux)或cmd+](macos),它机械增减缩进不触发补全、不修正空格数。

Sublime 里代码缩进调不对,90% 不是快捷键按错了,而是编辑器在“自作主张”——它默认会记住你打开文件时的缩进风格,并持续矫正你手动加的空格或 Tab。
Ctrl+] 和 Ctrl+[ 是唯一可靠的手动缩进方式
Tab 和 Shift+Tab 在 Sublime 里不是缩进命令,而是补全触发器;一旦光标落在可补全位置(比如函数名后、引号内),它们就弹菜单,不缩进。而 Ctrl+](Windows/Linux)或 Cmd+](macOS)是原生块级缩进命令,只改行首空白符,不分析语法、不触发补全、不自动对齐倍数。
- 未选中内容时,作用于当前行
- 选中多行时,整块统一增减一档缩进(由
tab_size和translate_tabs_to_spaces决定) - 对
.json、.md、.txt这类无语法约束的文件也生效 - 不会被
detect_indentation干扰——它只机械加减,不“修正”你加的字符数
按了 Ctrl+] 没反应?先查这三件事
这不是快捷键失效,而是 Sublime 的缩进逻辑被卡住了。必须确认:
一款AI数据处理工具,主要用于用于查询 Massive 市场数据端点的 Bash CLI 封装和 OpenClaw 技能,适用于 Codex 或 OpenClaw 代理从 shell 调用,适合需要提升相关任务效率的用户。
- 右下角语法标识是否准确?比如 Vue 单文件组件的
<script></script>块常被误判为 HTML,点它手动切到JavaScript - 是否混用了空格和 Tab?执行
Ctrl+Shift+P→ 输入Indentation: Convert Indentation to Spaces先归一化 -
detect_indentation是否开着?默认是true,它会在打开文件时锁定历史缩进风格(比如识别出是 2 空格,后续你加 4 个空格会被悄悄删成 2 个)
想彻底绕过干扰,用固定空格缩进
如果团队强制用 4 空格,又常在不同项目间切换,建议直接覆盖原生行为:
- 打开
Preferences → Key Bindings – User - 粘贴这段配置(让
Ctrl+]固定插入 4 个空格):[ {"keys": ["ctrl+]"], "command":"insert", "args": {"characters":" "} } ] - 注意:它不读取
tab_size,也不管当前是 Tab 还是空格,纯机械插入——适合规范明确的项目 - 配套加一条反缩进(删除开头最多 4 个空格):
{"keys": ["ctrl+["], "command":"left_delete", "args": {"forward": false}}
别用“折叠后缩进”,展开就露馅
Sublime 的折叠区域(比如 Ctrl+Shift+[ 折起来的 if 分支)不参与缩进计算。你对折叠后的代码块按 Ctrl+],看起来缩进了,但一展开,里面各行的实际缩进没变,层级错乱。
真正安全的做法是:先把光标放在逻辑块首行(如 if 或 function 行),连按 Ctrl+Shift+↓ 逐级扩展选区,或对 JSON/HTML 用 Ctrl+Shift+P → Selection: Expand Selection to Brackets 精准选中配对括号内全部内容,再按 Ctrl+]。










