Sublime右键菜单需手动配置JSON文件,编辑区菜单路径为Packages/User/Context.sublime-menu,侧边栏为Packages/Context.sublime-menu;文件名必须大写C、无后缀,UTF-8无BOM编码,JSON格式严格,command须与命令面板ID完全一致。
Sublime 的右键菜单不能点几下设置就出来,必须手动写 JSON 文件,路径、命名、编码、command 名四者全对才生效;错一个,菜单就彻底消失——不报错、不提醒、也不给反馈。
编辑区(代码里右键)、标签页、空编辑区的菜单,只读 Packages/User/Context.sublime-menu;侧边栏(文件/文件夹上右键)则读 Packages/Context.sublime-menu(注意:没有 /User/)。两个路径互不干扰,混放等于白配。
User 文件夹操作%APPDATA%Sublime TextPackagesUserContext.sublime-menu
~/Library/Application Support/Sublime Text/Packages/User/Context.sublime-menu
~/.config/sublime-text/Packages/User/Context.sublime-menu
Context.sublime-menu(C 大写、无空格、无 .txt 或 .json 后缀)文件本质是一个 JSON 数组,语法稍有偏差(比如少逗号、引号用中文、多括号)就会被整个跳过,右键菜单原样不动。
[{"caption":"排序行","command":"sort_lines"}]
caption 支持中文,但必须用英文双引号包裹{"caption":"-"},不能省略 caption
jsonlint.com 验证一下command 字段不是随便起的,必须和命令面板里显示的 ID 完全一致:大小写敏感、无空格、无 Command 后缀。
Ctrl+Shift+P(Win/Linux)或 Cmd+Shift+P(macOS),输入关键词搜索,看到才说明命令存在sort_lines、toggle_comment 可直接用copy_path、open_in_terminal,得先装对应插件(CopyFilePath、Terminal),且没被禁用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}
最常被忽略的是路径和编码——文件放对位置但用了带 BOM 的 UTF-8,或者名字写成 context.sublime-menu(小写 c),菜单就彻底“隐身”。调试时别猜,直接打开 Preferences → Browse Packages… 确认当前目录,再检查文件名和编码。