最稳做法是右下角选Plain Text后点“Set as Default for .ts Files”,会清空TypeScript.sublime-settings中的extensions数组;若无效,需禁用ApplySyntax等劫持插件并检查语法名匹配与JSON格式。

禁用某个语法的默认扩展名绑定(比如 .ts 总被当成 TypeScript)
想让 .ts 文件打开时不自动高亮为 TypeScript,而是保持 Plain Text 或交给其他插件处理,不能靠删插件或改全局设置——Sublime 的扩展名绑定是按语法包用户配置生效的,得精准覆盖。
最稳做法是:打开一个 .ts 文件 → 点右下角当前语法(如 TypeScript)→ 选 Plain Text → 再点一次右下角 → 弹出 Set as Default for .ts Files → 确认。这会把 "extensions": [] 或空数组写入 Packages/User/TypeScript.sublime-settings,等效于取消绑定。
- 如果已存在
"extensions": ["ts"],直接编辑该文件,删掉"ts"或清空数组 - 别去
Preferences.sublime-settings里手动加"extensions"字段——Sublime 会忽略它 - 改完不用重启,但得新开一个
.ts文件验证;若仍高亮,检查是否启用了detect_syntax: true(它会强制重载语法)
禁用语法专属设置(比如关掉 Python 的 auto_indent)
auto_indent、tab_width 这类行为不是全局开关,而是绑定在具体语法上的。想让 Python 文件不自动缩进,就得改它的专属配置,而不是动 Preferences.sublime-settings。
操作路径:打开任意 .py 文件 → Preferences → Settings – Syntax Specific → 在右侧添加:
{"auto_indent": false}- 文件保存后立即生效,新行回车不再对齐上一行
- 这个设置只影响 Python,不影响 JavaScript 或 Markdown
- 如果没反应,先确认右下角显示的是
Python(不是Python 3或PyTorch等变体),名称必须完全匹配 - 某些语言包(如 Vue)不自带专属设置文件,需先用 PackageResourceViewer 提取原始配置再覆盖
禁用插件强加的语法绑定(比如 ApplySyntax 拦截新建逻辑)
改了 default_syntax 或点了 Set as Default 却无效?大概率是 ApplySyntax、DefaultFileSyntax 这类插件在后台劫持了文件识别流程。
临时验证方式:按 Ctrl+Shift+P → 输入 Package Control: Disable Package → 选中插件名(注意大小写和空格,如 ApplySyntax)→ 回车禁用。
- 禁用后立刻生效,无需重启;再次按相同命令可恢复
- 如果禁用后问题消失,说明确实是它干扰——要么卸载,要么进其设置关掉
enable_on_new_file类选项 - 别手动删插件文件夹,
Disable Package是唯一安全的排查手段
为什么改了配置还是没用?几个硬核检查点
Sublime 的语法绑定优先级很明确:插件 > 语法专属设置 > 全局用户设置。失效往往不是配置错,而是被更高层规则盖过去了。
- 检查右下角语法名是否拼写一致:比如
Shell-Unix-Generic和ShellScript是两个不同语法,配置文件名必须完全对应 - 确认语法包未被禁用:进
Preferences → Package Settings,看对应语言(如Python)是否灰掉 - JSON 格式错误会导致整个配置块静默失效:多一个逗号、引号没闭合、用中文标点,都会让 Sublime 回退到默认行为
-
default_syntax只对untitled文件生效,保存成.py后就走扩展名映射逻辑,跟它无关
真正难调的不是怎么写,而是哪一层在起作用——建议从禁用插件开始,一层层往上试。


















