1

我有一堆很好的 shell 脚本片段,我想对其进行分类(文件操作工具、网络脚本等)。我只能添加脚本但不能将它们组合在一起(所以我可以将鼠标悬停在一个名为 Networking 和然后一个子菜单列出了我的片段。有人知道怎么做吗?考虑到我有多少片段,我认为这真的很有帮助

4

1 回答 1

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 中:如果您还没有这个结构,请创建它。

步骤 1 到 3

  1. 右键单击 -> 添加行 -> “mainMenu”。

  2. 将“mainMenu”的类型更改为 Dictionary。

  3. 创建嵌套项目“submenus”、“items”和“excludedItems”,将“submenus”的类型更改为“Dictionary”,将“items”和“excludedItems”更改为 Array。

  4. 打开 Terminal.app 并运行命令uuidgen

  5. 复制输出。(从现在起称为 [UUID#1])

  6. 在“子菜单”下创建一个新项目,通过粘贴 [UUID#1] 对其进行命名

  7. 将 [UUID#1] 的类型更改为字典。

  8. 将一个名为“name”的子项添加到 [UUID#1],将其值设置为“Network Scripts”(或其他)

  9. 向 [UUID#1] 添加一个名为“items”的子项,将其类型设置为 Array

  10. 使用 (+) 按钮添加项目,每个项目都是来自您的命令的 UUID。要获取此 UUID,请在 TextMate 中打开命令的文件。如果您尝试直接打开 .tmCommand 文件,TextMate 会报错,“捆绑项目 [捆绑项目]; 已安装”。

    a) 您可以简单地打开 Commands 文件夹,TextMate 不会介意从文件抽屉中打开文件。

    或者

    b) 或 `mate ~/Library/Application Support/Avian/Bundles/[Your Bundle]/Commands/[Your Command]。

  11. 当文件打开时,找到这些行。您的字符串会有所不同,但格式相同。

    <key>uuid</key>
    <string>8E9BA0D3-E282-4516-8565-E920EA98C898</string>
    

    这是您的命令的 UUID。现在称为 [UUID#2]

  12. 回到 info.plist,在第 9 步中创建了一个“items”数组,将 [UUID#2] 添加到数组中。重复 10 - 12 以添加多个项目。

  13. 现在您所要做的就是将您的新子菜单添加到您的“mainMenu.items”中,只需将 [UUID#1] 添加到数组中即可。(感谢邮件列表,线程“如何在 TextMate 2 Bundle 中移动、订购或分组捆绑项目?”,感谢 Nigel!)

为了我; 无需重新启动即可反映更改。

请务必在修改之间保存您的 .plist 文件。

一旦完成备份或提交 plist,您就不想丢失它以防发生可怕的事情。

于 2015-01-13T17:27:51.323 回答