能加,但必须分清“系统右键菜单”和“sublime侧边栏右键菜单”——前者由hkey_classes_root注册表项控制,需正确使用%1(文件)或%v(文件夹)参数并加-n确保新窗口聚焦;后者由packages/user/context.sublime-menu(json格式)控制,须放对路径、命令有效且context过滤准确。

能加,但必须分清“系统右键菜单”和“Sublime 侧边栏右键菜单”——这是两套完全不相干的机制,混用路径、命令或配置位置,结果就是菜单不显示、点了没反应,且无任何报错提示。
Windows 资源管理器右键加“用 Sublime 打开”
这个菜单出现在你选中文件或在文件夹空白处右键时,由 Windows 注册表控制,HKEY_CLASSES_ROOT 是唯一生效位置,HKEY_CURRENT_USER 下改了也白改。
- 对文件右键:必须写入
HKEY_CLASSES_ROOT*shell,命令值里用%1(代表选中文件的完整路径) - 对文件夹空白处右键:必须写入
HKEY_CLASSES_ROOTDirectoryBackgroundshell,命令值里用%V(代表当前文件夹路径),不是%1 - 可执行路径必须用英文双引号包裹,且所有反斜杠要双写:
"C:\Program Files\Sublime Text\sublime_text.exe" - 务必加
-n参数,否则右键打开新项目会复用已有窗口,新标签页可能卡在后台甚至最小化:"C:\Program Files\Sublime Text\sublime_text.exe" -n "%V" - 图标路径末尾要加
,0,比如"C:\Program Files\Sublime Text\sublime_text.exe,0",否则图标常为空白
Sublime 侧边栏右键加“在终端中打开”这类功能
这个菜单只出现在 Sublime 的侧边栏里,和系统右键无关,靠的是 Packages/User/Context.sublime-menu 文件生效,其他位置(如 Packages/Default 或插件目录下)一概无效。
- 文件必须是合法 JSON 数组,每个项至少含
caption和command字段 -
command值必须真实存在——比如open_in_terminal是 Terminal 插件提供的,没装插件就静默失效,不会报错也不会显示 - 变量如
$file_path、$folder可直接在args里用,但注意它们只在有上下文时才有值;比如在侧边栏空白处右键,$file_path为空,命令可能跳过执行 - 想让菜单只在文件上出现,加
context字段:{"key":"node_type","operator":"equal","operand":"file"};只在文件夹上出现则用"folder"
右键菜单点了没反应?先查这三类“找不到”
90% 的失效不是 JSON 写错,而是以下三类“找不到”:
- 找不到命令:写了
"command": "copy_path",但没装CopyFilePath插件,或插件被禁用 - 找不到上下文:用了
$file_path却在侧边栏空白处右键(此时无文件被选中),参数为空导致命令跳过 - 找不到路径:Windows 用户常把
Context.sublime-menu放错位置,比如放在Packages/Default/下,实际只认Packages/User/
最易被忽略的细节是:注册表里 %1 和 %V 必须严格按使用场景区分,混用会导致“能点、但打不开”;而 Context.sublime-menu 中的变量如 $file_path 一旦加了引号写成 "$file_path",就变成字面字符串,不是真实路径。











