禁用 sublime text 自带插件的可靠方法是在对应插件的 packages/子目录下创建名为 .disable 的空文件,如 packages/vintage/.disable;修改后需完全重启 sublime 才生效。

如何禁用 Sublime Text 自带插件(如 Vintage、Side Bar、BracketHighlighter)
Sublime Text 的“自带插件”(Package Control 未安装、位于 Packages/ 目录下的原生插件)不能直接卸载,但可以安全禁用。关键不是删文件,而是让 Sublime 启动时不加载它。
操作路径:菜单 Preferences → Package Settings → [插件名] → Settings – User,然后在打开的 JSON 文件中写入:
{"enabled": false}。但注意——这仅对部分插件有效(如 BracketHighlighter),多数原生插件根本不读这个字段。
真正通用且可靠的方法是:在 Packages/ 目录下创建同名禁用文件。例如禁用 Vintage(vi 模式),就在 Packages/Vintage/ 下新建一个空文件,命名为 .disable(注意开头是点)。Sublime 启动时检测到该文件,会跳过整个目录。
-
Vintage、Side Bar、WordCount等都支持.disable文件方式 - 文件必须放在对应插件的**顶层目录内**,不是
Packages/根目录 - 修改后需重启 Sublime 才生效;不重启时可执行
View → Show Console,输入sublime.log_commands(True)观察是否还有相关命令被调用
为什么改 ignored_packages 有时没用?
很多人在 Preferences.sublime-settings 里加 "ignored_packages": ["Vintage"],却发现 vi 模式还在生效。这是因为:ignored_packages 只影响通过 Package Control 安装的插件,对 Sublime 自带的原生插件无效。
验证方法:打开 Preferences → Browse Packages…,如果看到 Vintage 文件夹在 Packages/ 下(而非 Installed Packages/),说明它是原生插件,ignored_packages 对它不起作用。
- 原生插件路径示例:
Packages/Vintage/ - Package Control 插件路径示例:
Installed Packages/EmmyLua.sublime-package - 若误把原生插件名写进
ignored_packages,Sublime 不报错也不提示,只是静默忽略该条配置
禁用 Vintage 后光标行为异常怎么办?
禁用 Vintage 后,偶尔仍出现 INSERT 或 COMMAND 状态栏提示,或 Esc 键卡顿——这不是插件没禁掉,而是用户键绑定残留。检查 Preferences → Key Bindings – User,删掉所有含 "command": "exit_insert_mode"、"command": "vi_xxx" 的行。
另外确认没有第三方插件(如 EasyMotion、Surround)依赖 Vintage。这类插件若未适配,可能自行触发 vintage 命令导致冲突。
- 搜索控制台日志:
sublime.log_commands(True)+ 按Esc,看输出里是否还有vintage相关命令 - 临时移走
Packages/User/Default (Windows).sublime-keymap(或对应系统文件),排除键绑定干扰 - 某些主题(如
Theme – Soda)会读取Vintage的状态变量来渲染状态栏,禁用后建议换回默认主题排查
想彻底移除某功能(比如侧边栏右键菜单)但不想禁插件?
有些功能(如侧边栏右键菜单里的 “Reveal in Side Bar”、“Open Containing Folder”)由 Side Bar 插件提供,但你只想隐藏菜单项,不希望整个插件停摆(比如它还提供 API 给其他插件调用)。这时应覆盖其菜单定义,而非禁用插件本身。
做法:在 Packages/User/Side Bar.sublime-menu 中写入空数组:
[]。Sublime 加载菜单时会合并
Side Bar 原生菜单和 User 目录下的同名文件,后者优先级更高。
- 只覆盖需要的部分更稳妥,例如只删某几行,保留
"caption": "-"分隔线 - 路径必须严格匹配:文件名是
Side Bar.sublime-menu(含空格),不是side_bar.sublime-menu - 该方法对
Context.sublime-menu、Main.sublime-menu同样适用
最易被忽略的一点:Sublime 的插件加载顺序和缓存机制会让某些修改延迟生效。哪怕你加了 .disable、清了 ignored_packages、删了键绑定,也建议关掉所有 Sublime 进程(包括后台托盘),再重新打开——否则旧的插件实例可能仍在内存里跑着。











