SideBarEnhancements装了但右键没反应,首要确认是否通过Project→Add Folder to Project…显式添加项目目录,其次检查路径权限、避开系统受控路径及中文/空格等异常字符,并确保右键对象为侧边栏中的文件夹节点而非单个文件。

SideBarEnhancements装了但右键没反应?先确认项目是否绑定
原生 Sublime Text 侧边栏右键根本没 New File 这类选项,这不是设置问题,是功能缺失。SideBarEnhancements 插件能补上,但它只对「已加入项目的文件夹节点」生效——直接拖文件夹进窗口、或用 File → Open Folder 打开的目录,都不算数。
必须走 Project → Add Folder to Project… 显式添加目标目录。Windows 用户避开 C:\Program Files\ 等受控路径;macOS/Linux 检查 ls -ld /path/to/folder 是否有写权限。路径含空格、中文或括号(如 my project (v2))时,先改纯英文测试,排除 shell 解析异常。
常见错误现象:
• 右键空白处没菜单
• 点了 New File 弹窗一闪而过
• Trash 或 Open in Terminal 选项压根不出现
这些几乎全是项目未绑定或权限问题,不是插件坏了。
想新建带模板的文件?得自己写命令,不能只改 JSON 配置
SideBarEnhancements 默认只建空白文件。想新建 .py 自动带 shebang、.md 带 front matter,不能靠修改 Preferences → Package Settings → SideBarEnhancements → Settings – User 实现——它不支持注入内容,改了反而可能让菜单项消失。
实操要点:
• 在 Packages/User/ 下新建 new_file_with_template.py,约 20 行 Python 代码
• 继承 sublime_plugin.WindowCommand,调用 self.window.new_file() 后立刻用 v.run_command("insert", {"characters": content}) 插入文本(别用 view.insert(),视图可能未就绪)
• 按扩展名分流:比如 if ext == ".py": content = "#!/usr/bin/env python3\n\n"
• 主动设语法高亮:v.set_syntax_file("Packages/Python/Python.sublime-syntax"),否则新建的 .py 文件可能是纯文本模式
自定义菜单项必须放对位置,且 context 过滤要精准
侧边栏右键菜单只认 Packages/User/Context.sublime-menu 这一个文件。放错位置(比如丢进 Packages/Default/ 或插件目录)会静默失效,右键毫无变化。文件名大小写敏感、编码必须是 UTF-8、后缀必须是 .sublime-menu(不是 .txt)。
要让菜单项只在侧边栏出现,context 字段必不可少:
• 限定只在侧边栏:{"key": "node_type", "operand": "sidebar"}
• 确保点了某个节点(不是空白处):{"key": "selection_empty", "operator": "equal", "operand": false}
• 只对文件夹生效(避免在文件上显示 New File):{"key": "is_folder", "operator": "equal", "operand": true}
变量如 $file_path 必须不加引号,写成 "args": {"dir": "$file_path"} 才有效;加了引号就传字面字符串。
命令名和变量匹配不上?90% 是这三类“找不到”
菜单项点了没反应,通常不是代码写错,而是上下文断了:
• 找不到命令:比如写了 "command": "open_in_terminal",但没装对应插件,或插件被禁用;可在命令面板(Ctrl+Shift+P)搜一下确认是否存在
• 找不到上下文:比如用了 $file 却在侧边栏空白处右键(此时无文件被选中),参数为空,命令直接跳过
• 变量传错类型:比如 "args": {"path": "$file_path"} 对;但写成 "args": {"path": "$file_path"}(加了引号)就传了字符串字面值,不是真实路径
真正容易被忽略的是:Context.sublime-menu 控制的是整个资源管理器右键,包括编辑区和侧边栏。所有定制都依赖 context 过滤,漏掉任一条件,菜单项就会出现在不该出现的地方,或者干脆不出现。


















