必须写入hkey_classes_root*shell而非其他位置;新建sublimetext项设默认值为“open with sublime text”,command值为"c:program filessublime textsublime_text.exe" -n "%1",路径双反斜杠、英文引号、-n参数和"%1"缺一不可。

Windows 文件右键菜单加“Open with Sublime Text”
必须写入 HKEY_CLASSES_ROOT*shell,不是 HKEY_CURRENT_USER 或 HKEY_LOCAL_MACHINE —— 写错位置就完全不生效,且无任何提示。
新建项名建议用 SublimeText(纯英文、无空格),其默认值设为显示文字,比如 "Open with Sublime Text";再新建子项 command,把它的默认值设为:
"C:\Program Files\Sublime Text\sublime_text.exe" -n "%1"
-
-n参数不能漏,否则点击后新文件可能塞进后台已有窗口 -
"%1"必须带英文双引号,路径含空格时缺引号会直接失效 - 路径中的反斜杠必须是双写
\,单写会被注册表解析为转义符 - 图标要显示?在父项下新增字符串值
Icon,值设为"C:\Program Files\Sublime Text\sublime_text.exe,0"(末尾,0是必须的)
Windows 文件夹空白处右键加“Open Folder in Sublime”
这个和文件右键是两套机制,必须单独注册到 HKEY_CLASSES_ROOTDirectoryBackgroundshell,否则只对文件有效,点空白处没反应。
同样新建项(如 SublimeFolder),设默认值为 "Open Folder in Sublime",再建 command 子项,其默认值填:
"C:\Program Files\Sublime Text\sublime_text.exe" -n "%V"
-
%V是 Windows 专为DirectoryBackground场景设计的变量,代表当前文件夹路径;%1在这里永远为空 - 别试图用一个菜单项兼容两种场景,混用参数会导致一半失效
- 导入 .reg 文件后,需重启资源管理器(任务管理器 → 重启
explorer.exe)或注销重登才生效
Sublime 编辑器内部右键菜单自定义(侧边栏 / 代码区)
这和 Windows 注册表无关,只认 Packages/User/Context.sublime-menu 这一个文件,放错路径等于白写。
用 Preferences → Browse Packages… 打开目录,进入 User 文件夹,新建或编辑 Context.sublime-menu,内容为标准 JSON 数组:
[
{ "caption": "在浏览器中打开", "command": "open_in_browser" },
{ "caption": "复制文件路径", "command": "copy_path" }
]
- 文件名必须是
Context.sublime-menu(首字母大写,后缀不是.txt) - 编码必须是 UTF-8 无 BOM,含中文
caption时若用 GBK 或带 BOM 会静默失败 - 所有
command值必须对应 Sublime 已启用的命令名,拼错或插件未安装就不出项 - 不要动
Packages/Default/Context.sublime-menu,那是只读内置文件
常见静默失效原因汇总
右键没变化?大概率不是配置逻辑错,而是底层条件不满足:
- 注册表操作没用管理员权限运行
regedit,写入被拦截 - Sublime 安装路径写错,比如实际装在
D:ToolsSublime Text却硬写默认路径 -
Context.sublime-menu放进了Packages/SideBarEnhancements/或其他插件目录 - 公司电脑受域策略限制,
HKEY_CLASSES_ROOT下的修改被组策略静默还原 - 多个重复注册项冲突(比如手动加过一次,又运行了
--install-context-menu)
最稳妥的验证方式:改完立刻打开注册表定位到对应路径,确认键值存在且内容与预期一致;或者用 Process Monitor 监控 explorer.exe 是否读取了你写的项。











