我有一堆很好的shell脚本片段,我想分类(文件处理工具,网络脚本等)。我只能添加脚本但不能将它们组合在一起(所以我可以将鼠标悬停在一个被调用的组上例如,网络和子菜单然后列出我的片段。有谁知道如何做到这一点?我认为这对我有多少片段非常有帮助
答案 0 :(得分:5)
也许第一个问题是你应该吗?从邮件列表中阅读此免责声明并自行决定。
目前在捆绑编辑器中无法进行此操作,必须手动完成。它将在我们很快修改包编辑器时添加。由于它将被添加,除非你真的感兴趣,否则不值得描述如何手动完成它。 [截至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]的类型更改为Dictionary。
将子项添加到名为“name”的[UUID#1],将其值设置为“Network Scripts”(或其他)
将子项添加到名为“items”的[UUID#1],将其类型设置为Array
使用(+)按钮添加项目,每个项目都是命令中的UUID。要获取此UUID,请在TextMate中打开命令的文件。如果你试图直接打开.tmCommand文件,TextMate会抱怨,“捆绑项[Bundle Item];已经安装”。
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,你就不会因为发生可怕的事情而失去它。