答案:可通过修改User目录下的Context.sublime-menu文件自定义sublime text右键菜单,支持添加命令、按语法定制、隐藏冗余项并实现条件显示,保存后即时生效。

在使用 Sublime Text 时,通过自定义鼠标右键菜单(即上下文菜单)可以大幅提升操作效率。你可以添加常用命令、删除冗余选项,甚至集成外部工具。下面介绍如何扩展和修改 Sublime 的右键上下文菜单,让编辑器更贴合你的工作流。
理解 Sublime 上下文菜单结构
Sublime Text 的右键菜单由 .sublime-menu 文件控制,其中上下文菜单主要由 Context.sublime-menu 定义。这类文件是 jsON 格式,位于:
- 默认路径:安装目录下的
Packages/default.sublime-package(压缩包,不建议直接修改) - 用户覆盖路径:打开
Preferences > Browse Packages…进入用户目录,在对应语言或主菜单文件夹中创建或修改
要安全地自定义,应在 User 目录下创建同名文件来覆盖默认行为。
添加自定义菜单项
以在所有文本上点击右键时添加“Open in Browser”为例:
- 进入
Packages/User目录 - 创建文件
Context.sublime-menu - 写入以下内容:
[ { "caption": "-"}, // 分隔线 { "caption": "Open in Browser", "command": "open_in_browser" } ]
其中 command 必须是已注册的命令名,可来自插件或内置功能。若命令带参数,可用 args 字段传参:
{ "caption": "Format with Prettier", "command": "js_prettier", "args": { "auto_format_on_save": false } }
按语法类型定制右键菜单
你还可以为特定语言(如 html、python)单独设置菜单。方法是创建以语法命名的菜单文件:
-
HTML.sublime-menu:仅在 HTML 文件的右键菜单中生效 -
Python.sublime-menu:只出现在 .py 文件中
例如,在 HTML.sublime-menu 中加入:
[ { "caption": "Preview in Browser", "command": "side_bar_files_open_with", "args": { "paths": [], "application": "C:/Program Files/google/Chrome/Application/chrome.exe", "terminal": false } } ]
这样在 HTML 文件上右键就能快速用浏览器预览。
隐藏或移除默认菜单项
Sublime 不支持直接“删除”菜单项,但可以通过覆盖整个 Context 菜单并只保留需要的项来实现精简。
或者使用技巧:将不想显示的项设置为不可见:
{ "caption": "Unwanted Command", "command": "some_command", "visible": false }
结合 context 字段还能实现条件显示,比如仅在选中文本时出现:
{ "caption": "Search on google", "command": "search_online", "context": [ { "key": "selection_empty", "operator": "equal", "operand": false } ] }
基本上就这些。合理利用上下文菜单定制,能让 Sublime 更顺手。改完后无需重启,保存即生效。如果菜单没变化,检查 json 格式是否正确,或查看 console(Ctrl + `)是否有报错。