撤销 sublime 语法映射需删除 packages/user/extensions.sublime-settings 中对应行(如"log": "packages/shellscript/shell-unix-generic.sublime-syntax"),保存后重启生效;误删 preferences.sublime-settings 或重装均无效。

撤销 Sublime 内部语法映射(比如 .log → Shell-Unix-Generic)
你手动点过右下角 → Open all with current extension as…,结果所有 .log 文件都强制用 Shell 语法高亮,现在想撤回?这不是“删除注册表”或“卸载插件”,而是删掉 Sublime 自己写的一行配置。
操作路径:Preferences → Package Settings → File Extensions → Settings(注意不是 Preferences → Settings)
这个文件叫 Extensions.sublime-settings,它只存你主动绑定的扩展名映射。打开后你会看到类似:
{
"log": "Packages/ShellScript/Shell-Unix-Generic.sublime-syntax",
"pyw": "Packages/Python/Python.sublime-syntax"
}
把想撤销的那一行(比如 "log": …)整行删掉,保存即可。下次再打开 .log 文件,Sublime 就会按默认规则重新判断——通常是 Plain Text,除非你装了 ApplySyntax 这类插件。
常见误操作:
- 去
Preferences.sublime-settings里删extensions字段:ST4 已废弃该字段,删了也没用 - 在右下角菜单选
Revert to Plain Text:这只改当前文件,不影响“所有.log” - 以为重装 Sublime 就能清空:用户设置(
Packages/User/下)不会被重装覆盖
Windows 系统级关联已设错,怎么彻底还原成记事本?
你在「按文件类型指定默认应用」里把 .env 绑给了 sublime_text.exe,现在想让它双击又回到记事本?不能只删 Sublime 的语法映射,得动注册表或系统设置。
最稳的方法是用命令行还原(管理员权限运行 CMD):
assoc .env=
这行命令会清空 .env 的文件类型关联,Windows 会 fallback 到系统默认文本处理器(通常是记事本)。如果执行后仍不生效,再补一行:
ftype txtfile="C:\Windows\System32\notepad.exe" "%1"
注意:txtfile 是 Windows 对纯文本文件的通用 ProgID,很多无特殊处理的扩展名(如 .log、.env)实际都指向它。
别碰 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.env 手动删键值——万一删错分支,可能让整个扩展名彻底“消失”,双击直接报错“找不到应用程序”。
macOS 上 subl --install 注册错了,怎么清理 Launch Services?
你执行过 subl --install,但后来换了 Sublime 版本或路径,Finder 还是把 .conf 往旧路径送?Launch Services 不提供“卸载”命令,只能手动清理并重注册。
先查当前注册状态:
lsregister -u "/Applications/Sublime Text.app"
这条命令会从 Launch Services 数据库中移除所有与该 App Bundle ID 相关的声明(包括文件类型、UTI、打开方式等)。执行后必须立刻重启 Finder:
killall Finder
再验证是否清干净:
mdls -name kMDItemContentTypeTree /path/to/test.conf
如果输出里还有 com.sublimetext.3 或类似字符串,说明没清完——常见原因是 App 被重命名过(比如 Sublime Text 4.app),lsregister -u 必须用当前真实路径。
清理完再跑一次 subl --install,且确保 subl 命令指向新版本(which subl 检查)。
为什么删了映射,新建文件还是带语法?
你新建一个无后缀文件(比如直接 Ctrl+N),右下角却显示 Python,但你根本没给无后缀文件绑过语法?这不是文件关联残留,而是 Sublime 记住了你上次编辑的语法上下文。
它有个隐式行为:新建空文件时,会沿用上一个视图的语法(如果上一个是 Python 文件,新文件就默认 Python)。这不是 bug,也和 Extensions.sublime-settings 无关。
要真正重置默认行为,唯一办法是显式设置:
- 新建空文件 →
Ctrl+Shift+P→ 输入Set Syntax: Plain Text→ 回车 - 之后所有新
Ctrl+N文件都会以Plain Text开头
如果你希望某些无后缀名文件(如 Dockerfile、Makefile)自动识别,得靠 View → Syntax → Open Syntax Specific Preferences 单独配,而不是靠扩展名映射——因为它们压根没有扩展名。











