侧边栏右键菜单必须严格使用packages/context.sublime-menu文件配置,路径、命名、编码、context条件及命令id均需精准匹配,且依赖sidebarenhancements插件并正确加入项目。

侧边栏右键菜单必须用 Packages/Context.sublime-menu
编辑区右键菜单和侧边栏右键菜单是两套完全独立的系统,路径写错就静默失效——不报错、不提示、菜单直接消失。侧边栏只读 Packages/Context.sublime-menu(注意:不是 Packages/User/Context.sublime-menu,也不是插件目录下的同名文件)。
Windows 路径示例:%APPDATA%\Sublime Text\Packages\Context.sublime-menu
macOS 路径示例:~/Library/Application Support/Sublime Text/Packages/Context.sublime-menu
Linux 路径示例:~/.config/sublime-text/Packages/Context.sublime-menu
- 用 Preferences → Browse Packages… 打开目录,直接进根目录(不是 User 子目录)新建文件
- 文件名必须严格为
Context.sublime-menu(C 大写,无空格,无 .txt 后缀) - 保存为 UTF-8 编码,禁用 BOM;带 BOM 会导致整个文件加载失败或中文乱码
context 条件漏一个,菜单就不显示
侧边栏菜单项不加 context 过滤,要么根本不出现在右键里,要么点了没反应——因为 Sublime 不知道你点的是文件、文件夹还是空白处。它不会自动推断上下文。
- 限定只在侧边栏出现:
{"key": "node_type", "operand": "sidebar"} - 确保用户选中了某个节点(非空白处点击):
{"key": "selection_empty", "operator": "equal", "operand": false} - 只对文件夹生效(比如“新建文件”不该出现在单个 .js 文件上):
{"key": "is_folder", "operator": "equal", "operand": true} - 多个条件并列写在
context数组里,全部满足才显示
常见错误:用 "setting.sidebar_visible" 判断侧边栏是否打开——这跟右键位置无关,纯属无效条件。
command 和 args 必须严格匹配插件命令 ID
菜单项写了但点击无响应,90% 是命令不存在或参数格式不对。Sublime 不会校验命令是否存在,只静默跳过执行。
-
command值必须与命令面板中完全一致,比如open_in_terminal需要 Terminal 插件已启用,copy_path需要 CopyFilePath 插件已安装 -
args中的变量如$file_path、$project_path必须不加引号,写成"path": "$file_path"才能被正确替换;写成"path": "$file_path"(加了引号)就当字面量处理,传给命令的是字符串本身 - 想调试是否加载成功,可临时加一条:
{"caption": "DEBUG", "command": "echo", "args": {"message": "$scope"}},右键后看控制台输出
SideBarEnhancements 插件是前提,但不能替代手动配置
原生 Sublime 侧边栏右键没有「New File」「Copy Path」「Open in Terminal」等功能,这些不是隐藏选项,是真没实现。必须先装 SideBarEnhancements,否则所有自定义菜单项都无触发基础。
- 安装必须走 Package Control:Ctrl+Shift+P →
Package Control: Install Package→ 输入SideBarEnhancements(拼写严格,无下划线) - 插件生效前提是:目标文件夹已通过 Project → Add Folder to Project… 显式加入项目(拖进窗口或 Open Folder 不算)
- 检查
Preferences → Settings – User是否含"ignored_packages": ["SideBarEnhancements"],有就删掉 - SideBarEnhancements 提供的是基础命令(如
side_bar_new_file),若要支持模板或自定义内容,还需额外写 Python 命令(如new_file_with_template.py)并绑定到菜单
最常被忽略的一点:菜单项写了,也放对了路径,但右键对象不是文件夹节点——比如对着单个已打开的文件标签页右键,或者对着侧边栏空白处右键,context 条件不满足,自然不显示也不响应。











