我有一堆很好的 shell 脚本片段,我想对其进行分类(文件操作工具、网络脚本等)。我只能添加脚本但不能将它们组合在一起(所以我可以将鼠标悬停在一个名为 Networking 和然后一个子菜单列出了我的片段。有人知道怎么做吗?考虑到我有多少片段,我认为这真的很有帮助
1 回答
也许第一个问题是你应该吗?从邮件列表中阅读此免责声明并自行决定。
这在捆绑编辑器中目前是不可能的,它必须手动完成。它将在我们稍后修改捆绑编辑器时添加。由于它将被添加,除非您真的感兴趣,否则不值得描述如何手动进行。 [截至 2015 年 1 月]
如果你真的感兴趣,请继续阅读:
首先备份你的包。然后使用 XCode 的 plist 编辑器,打开你的 bundle 的 info.plist。
您的包位于此处:~/Library/Application Support/Avian/Bundles/[Bundle Name]/
所以你的 info.plist 位于:~/Library/Application Support/Avian/Bundles/[Bundle Name]/info.plist
在 info.plist 中:如果您还没有这个结构,请创建它。
右键单击 -> 添加行 -> “mainMenu”。
将“mainMenu”的类型更改为 Dictionary。
创建嵌套项目“submenus”、“items”和“excludedItems”,将“submenus”的类型更改为“Dictionary”,将“items”和“excludedItems”更改为 Array。
打开 Terminal.app 并运行命令
uuidgen
复制输出。(从现在起称为 [UUID#1])
在“子菜单”下创建一个新项目,通过粘贴 [UUID#1] 对其进行命名
将 [UUID#1] 的类型更改为字典。
将一个名为“name”的子项添加到 [UUID#1],将其值设置为“Network Scripts”(或其他)
向 [UUID#1] 添加一个名为“items”的子项,将其类型设置为 Array
使用 (+) 按钮添加项目,每个项目都是来自您的命令的 UUID。要获取此 UUID,请在 TextMate 中打开命令的文件。如果您尝试直接打开 .tmCommand 文件,TextMate 会报错,“捆绑项目 [捆绑项目]; 已安装”。
a) 您可以简单地打开 Commands 文件夹,TextMate 不会介意从文件抽屉中打开文件。
或者
b) 或 `mate ~/Library/Application Support/Avian/Bundles/[Your Bundle]/Commands/[Your Command]。
当文件打开时,找到这些行。您的字符串会有所不同,但格式相同。
<key>uuid</key> <string>8E9BA0D3-E282-4516-8565-E920EA98C898</string>
这是您的命令的 UUID。现在称为 [UUID#2]
回到 info.plist,在第 9 步中创建了一个“items”数组,将 [UUID#2] 添加到数组中。重复 10 - 12 以添加多个项目。
现在您所要做的就是将您的新子菜单添加到您的“mainMenu.items”中,只需将 [UUID#1] 添加到数组中即可。(感谢邮件列表,线程“如何在 TextMate 2 Bundle 中移动、订购或分组捆绑项目?”,感谢 Nigel!)
为了我; 无需重新启动即可反映更改。
请务必在修改之间保存您的 .plist 文件。
一旦完成备份或提交 plist,您就不想丢失它以防发生可怕的事情。