在Sublime Text中需通过Preferences → Settings – Syntax Specific修改对应语言的语法专属配置文件,添加{"auto_indent": false}来禁用该语言的自动缩进功能,此设置不影响Tab键缩进或手动格式化。

在 Sublime Text 中关闭某语言的自动缩进功能
Sublime Text 默认对多数语言启用 auto_indent,但有时你写 Shell 脚本、YAML 或 Markdown 时,它会误插空格或破坏手动对齐——这不是 bug,是设计行为,但可以关掉。
找到并修改对应语言的语法设置文件
Sublime 不在全局开关里控制每种语言的缩进,而是在其语法专属的 .sublime-settings 文件中配置。比如你想禁用 ShellScript 的自动缩进,就得改它的设置文件:
- 打开菜单 Preferences → Settings – Syntax Specific(注意不是 “Settings”)
- 此时打开的是当前文件类型(如
.sh)对应的语法专属配置,顶部注释会显示类似// Settings in here override those in "Packages/ShellScript/Shell-Unix-Generic.sublime-settings" - 加入这行:
{ "auto_indent": false } - 保存后,新输入或回车不再自动对齐上一行
为什么不能只改 User/Preferences.sublime-settings?
因为 Preferences.sublime-settings 是全局设置,它会影响所有语言;而 auto_indent 在不同语言中行为差异大——比如 Python 靠缩进定义结构,关掉会导致严重编辑障碍;但 YAML 中缩进只是语义提示,关掉反而更自由。所以必须走语法专属路径,否则你会误伤其他语言。
免费 盛世企业网站管理系统(SnSee)系统完全免费使用,无任何功能模块使用限制,在使用过程中如遇到相关问题可以去官方论坛参与讨论。开源 系统Web代码完全开源,在您使用过程中可以根据自已实际情况加以调整或修改,完全可以满足您的需求。强大且灵活 独创的多语言功能,可以直接在后台自由设定语言版本,其语言版本不限数量,可根据自已需要进行任意设置;系统各模块可在后台自由设置及开启;强大且适用的后台管理支
-
"auto_indent": false只禁用「回车后自动对齐上一行」,不影响Tab键缩进或手动格式化 - 如果同时用了
indent_to_bracket或detect_indentation,建议一并设为false,避免干扰 - 某些语言包(如
Vue Syntax Highlight)不自带独立设置文件,需先通过 PackageResourceViewer 插件提取原始配置再覆盖
验证是否生效及常见失效原因
改完后新建一个对应后缀的文件(如 test.yaml),敲 Enter 看光标是否还自动跳到上一行缩进位置。如果仍缩进,可能是:
- 文件未被正确识别为该语言:右下角状态栏检查语法名是否为
YAML,不是则点击切换 - 设置了
"detect_indentation": true(默认开启),它会在打开文件时强行重置tab_width和translate_tabs_to_spaces,间接影响缩进行为 - 第三方插件(如
EditorConfig)覆盖了本地设置,可临时禁用插件测试
定制排版需求往往卡在“以为关了 auto_indent 就万事大吉”,其实缩进逻辑还受 indent_subsequent_lines、trim_automatic_white_space 等隐性参数影响,得按实际表现逐个排查。









