发布于2026-07-15 阅读(0)
扫一扫,手机访问
SideBarEnhancements 插件只解决了“有菜单”的问题,要想支持模板,还得自己动手写一个 `new_file_with_template.py` 命令,再配好 `Context.sublime-menu` 菜单文件。路径、编码、context 条件、命令执行顺序,哪一步出错都会失效。

装了插件也不显示「New File」,或者点了没反应——别急着怀疑配置写错了,大概率是文件放错目录、context 写错条件、命令没配对。
Sublime Text 原生侧边栏右键根本就没有 New File 这个选项,这不是设置问题,是功能压根没做。SideBarEnhancements 插件补上了这个空缺,但它默认调用的 side_bar_new_file 命令只会创建纯空白视图,不读任何配置,不支持变量注入,也不会插入内容。换句话说,它只负责“弹出一个新建文件的对话框”,至于文件里写什么,它不管。
Settings – User 里的 "template" 字段?完全没用——插件源码里根本没解析这一项,别白费力气。Packages/SideBarEnhancements/ 下的 Python 文件?升级后会被覆盖,而且容易破坏插件依赖,不推荐。Packages/User/new_file_with_template.py,而且这个文件必须继承 sublime_plugin.WindowCommand,命名和继承都不能错。这是最容易踩的坑:侧边栏右键菜单只认 Packages/Context.sublime-menu(注意:没有 /User/ 这一级),而编辑区右键菜单才读 Packages/User/Context.sublime-menu。两个路径互不干扰,放错了就静默失效,连错误提示都没有。
%APPDATA%\Sublime Text\Packages\Context.sublime-menu~/Library/Application Support/Sublime Text/Packages/Context.sublime-menu.sublime-menu、编码为 UTF-8。如果存成了 Context.sublime-menu.txt 或者用了 ANSI 编码,菜单项直接消失,连个影都看不到。菜单项明明写了,右键却看不到——十有八九是 context 条件没满足。侧边栏节点没有 selector 属性,不能靠语法类型判断,只能靠 node_type 和 is_folder 这些硬字段来过滤。
{"key": "node_type", "operand": "sidebar"}{"key": "is_folder", "operator": "equal", "operand": true}{"key": "selection_empty", "operator": "equal", "operand": false}自定义命令的核心不在于代码量多少,而在于顺序和时机。视图刚创建的时候未必处于 ready 状态,直接调用 v.insert() 很容易插错位置甚至导致失败。
self.window.new_file(),然后使用 v.run_command("insert", {"characters": content}) —— 别用 v.insert(),后者是底层 API,容易出问题。if ext == ".py": content = "#!/usr/bin/env python3\n\n",可以继续加 .js、.md 等分支。v.set_syntax_file("Packages/Python/Python.sublime-syntax"),否则新建的 .py 文件会一直被当做 Plain Text 处理。$file_path 这类变量在 args 中必须不加引号,写成 "args": {"path": "$file_path"} 才会被 Sublime 替换成实际路径。加了引号就变成普通字符串,永远不会被替换。菜单项点了没反应,90% 的原因是这三类“找不到”:找不到命令(插件没装或禁用了)、找不到上下文($file_path 在空白处右键为空)、找不到路径(文件放错目录)。调试时加一条 {"caption": "DEBUG", "command": "echo", "args": {"message": "$scope"}} 看控制台输出,比反复猜测更靠谱。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8