一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Sublime如何自定义右键菜单?添加常用快捷功能

时间:2026-07-13 09:13:47 编辑:袖梨 来源:一聚教程网

Sublime右键菜单需手动配置JSON文件,编辑区菜单路径为Packages/User/Context.sublime-menu,侧边栏为Packages/Context.sublime-menu;文件名必须大写C、无后缀,UTF-8无BOM编码,JSON格式严格,command须与命令面板ID完全一致。

Sublime 的右键菜单不能点几下设置就出来,必须手动写 JSON 文件,路径、命名、编码、command 名四者全对才生效;错一个,菜单就彻底消失——不报错、不提醒、也不给反馈。

Context.sublime-menu 文件放哪儿才管用?

编辑区(代码里右键)、标签页、空编辑区的菜单,只读 Packages/User/Context.sublime-menu;侧边栏(文件/文件夹上右键)则读 Packages/Context.sublime-menu(注意:没有 /User/)。两个路径互不干扰,混放等于白配。

  • 别自己拼路径,用菜单栏 → Preferences → Browse Packages… 打开目录,直接进 User 文件夹操作
  • Windows 路径示例:%APPDATA%Sublime TextPackagesUserContext.sublime-menu
  • macOS 路径示例:~/Library/Application Support/Sublime Text/Packages/User/Context.sublime-menu
  • Linux 路径示例:~/.config/sublime-text/Packages/User/Context.sublime-menu
  • 文件名必须是 Context.sublime-menu(C 大写、无空格、无 .txt.json 后缀)

JSON 格式怎么写才不静默失效?

文件本质是一个 JSON 数组,语法稍有偏差(比如少逗号、引号用中文、多括号)就会被整个跳过,右键菜单原样不动。

  • 基础结构必须是数组形式:[{"caption":"排序行","command":"sort_lines"}]
  • caption 支持中文,但必须用英文双引号包裹
  • 分隔线写成:{"caption":"-"},不能省略 caption
  • 保存时选 UTF-8 编码,禁用 BOM;带 BOM 会导致中文乱码或文件加载失败
  • 不确定格式是否合法?粘贴到 jsonlint.com 验证一下

command 名怎么查才不会写错?

command 字段不是随便起的,必须和命令面板里显示的 ID 完全一致:大小写敏感、无空格、无 Command 后缀。

  • Ctrl+Shift+P(Win/Linux)或 Cmd+Shift+P(macOS),输入关键词搜索,看到才说明命令存在
  • 内置命令如 sort_linestoggle_comment 可直接用
  • 插件命令如 copy_pathopen_in_terminal,得先装对应插件(CopyFilePathTerminal),且没被禁用
  • 自定义命令(比如 my_custom)必须由 Python 插件真正注册,只改 Context.sublime-menu 不会生效

侧边栏右键菜单单独配,别和编辑区混着写

很多人以为一个 Context.sublime-menu 就能通吃所有右键位置,其实侧边栏走的是另一套路径:Packages/Context.sublime-menu(不是 User 下)。这个文件不存在就得手动建,而且它不认 context 字段里的条件判断,只靠路径区分作用域。

  • 编辑区右键和侧边栏右键是两套独立配置,不能共用同一个文件
  • 侧边栏菜单项如果想加条件(比如只在文件夹上显示),得靠 context 字段 + 正确的 key 值,例如:{"key": "setting.is_folder", "operator": "equal", "operand": true}
  • 侧边栏文件里写错 command,同样静默失效,验证方式一样:先在命令面板搜得到,再写进 JSON

最常被忽略的是路径和编码——文件放对位置但用了带 BOM 的 UTF-8,或者名字写成 context.sublime-menu(小写 c),菜单就彻底“隐身”。调试时别猜,直接打开 Preferences → Browse Packages… 确认当前目录,再检查文件名和编码。

热门栏目