Sublime右键菜单设置_Sublime添加右键打开选项【系统】

4次阅读

右键菜单不显示“open with sublime text”是因注册表路径错写为hkey_current_user,正确位置应为hkey_classes_rootDirectorybackgroundshell(文件夹空白处)或hkey_classes_root*shell(选中文件),且需区分%v(当前路径)与%1(选中文件)参数,并添加-n参数确保新窗口聚焦。

Sublime右键菜单设置_Sublime添加右键打开选项【系统】

右键菜单不显示“Open with sublime text”是注册表没写对位置

windows 系统下 Sublime Text 安装后默认不添加右键菜单,手动添加时最容易出错的是注册表路径写成了当前用户(HKEY_CURRENT_USER),而资源管理器右键菜单实际读取的是本地机器级上下文菜单(HKEY_CLASSES_ROOTDirectoryBackgroundshellHKEY_CLASSES_ROOT*shell)。写错位置会导致菜单完全不出现,且无任何报错提示。

实操建议:

  • 用管理员权限运行 regedit,定位到 HKEY_CLASSES_ROOTDirectoryBackgroundshell(桌面/文件夹空白处右键)或 HKEY_CLASSES_ROOT*shell(选中文件右键)
  • 新建项,命名为 SublimeText(不要含空格或中文,避免解析异常)
  • 在该子项下新建字符串Icon,值设为 "C:Program FilesSublime Textsublime_text.exe,0"(路径需与你实际安装路径一致)
  • 新建字符串值 MUIVerb,值设为 Open with Sublime Text(这是菜单上显示的文字)
  • SublimeText 下再新建子项 command,其默认值设为:"C:Program FilesSublime Textsublime_text.exe" "%V"(注意 %V 是关键,它代表当前目录路径;如果是文件右键,则用 %1

双击打开和右键打开行为不一致,是因为没区分 %V 和 %1

很多人把右键命令的参数统一写成 %1,结果在文件夹空白处右键时,Sublime 启动但打不开任何文件或文件夹——因为此时没有选中文件,%1 为空,而 %V 才表示当前 Shell 命名空间的路径(即你右键所在的文件夹路径)。

使用场景决定参数选择:

  • 要支持「在文件夹空白处右键 → 用 Sublime 打开该文件夹」:command 默认值必须用 %V
  • 要支持「选中 .txt 文件右键 → 用 Sublime 打开该文件」:得在 HKEY_CLASSES_ROOT*shell 下单独配一套,并用 %1
  • 如果想两者合一,得注册两个独立菜单项,不能共用同一套注册表分支

Sublime 启动后不聚焦、窗口最小化,多半是没加 -n 参数

默认执行 sublime_text.exe "%V" 会复用已有窗口,新项目可能被塞进后台标签页,甚至被最小化。这不是 bug,是 Sublime 的默认多实例策略:只有显式传入 -n 才强制新建窗口。

修正方式很简单,在 command 默认值里补上:

"C:Program FilesSublime Textsublime_text.exe" -n "%V"

其他常用参数可选:

  • -n:新建窗口(推荐加)
  • -w:等待文件关闭后再退出(适合脚本调用)
  • --command "focus_side_bar":启动后自动聚焦侧边栏(需配合插件或自定义命令)

Win11 右键菜单变两层后,“Open with Sublime”被折叠进“Show more options”

Win11 22H2+ 默认启用新式右键菜单,直接写入 shell 的项会被降级隐藏,必须改用 SystemFileAssociations 或更底层的 ShellEx 注册方式才能常驻顶层。但对多数人来说,最稳的解法是绕过新菜单——按 Shift + 右键 即可呼出传统菜单,所有自定义项都在。

如果非要顶到第一层,目前可靠做法只有:

  • 禁用新右键菜单(改注册表 HKEY_CURRENT_USERSoftwareClassesCLSID{86ca1aa0-34aa-4e8b-a509-50c905bae2a2},新建空项,重启 explorer)
  • 或使用开源工具如 Open-Shell 替换整个右键逻辑(比手动修注册表容错性高)

别信“改 ContextMenuHandlers 就能上顶栏”的方案,Win11 对非微软签名的 handler 已限制加载。

text=ZqhQzanResources