如何在textmate中对片段进行分组

how to group snippets in textmate

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

也许第一个问题是你应该吗?从邮件列表中阅读此免责声明并自行决定。

This is currently not possible in the bundle editor it has to be done manually. It will be added as we revise the bundle editor shortly. Since it’s going to be added it’s not really worth describing how to do it manually unless you're really interested. [as of Jan-2015]

如果您真的感兴趣,请继续阅读:

首先备份你的包。然后使用 XCode 的 plist 编辑器,打开包的 info.plist.

您的包位于此处:~/Library/Application Support/Avian/Bundles/[包名称]/

因此您的 info.plist 位于此处:~/Library/Application Support/Avian/Bundles/[Bundle Name]/info.plist

在 info.plist 中:如果您还没有这个结构,请创建它。

  1. 右击 -> 添加行 -> "mainMenu".

  2. 将 "mainMenu" 的类型更改为字典。

  3. 创建嵌套项 "submenus"、"items" 和 "excludedItems",将 "submenus" 的类型更改为 "Dictionary" 和 "items" & "excludedItems" 到数组。

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

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

  6. 在"submenus"下新建一个项目,粘贴[UUID#1]

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

  9. 添加一个 child 到名为 "name" 的 [UUID#1],将其值设置为 "Network Scripts"(或其他)

  10. 添加一个child到名为"items"的[UUID#1],设置其类型为Array

  11. 使用 (+) 按钮添加项目,每个项目都是来自您的命令的 UUID。要获取此 UUID,请在 TextMate 中打开命令的文件。如果您尝试直接打开 .tmCommand 文件,TextMate 会报错,"The bundle item [Bundle Item]; is already installed"。

    a) 您只需打开 Commands 文件夹,TextMate 不会介意从文件抽屉中打开文件。

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

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

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

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

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

  14. 现在您所要做的就是将新的子菜单添加到您的 'mainMenu.items',只需将 [UUID#1] 添加到数组即可。 (感谢邮件列表,线程 "How to move, order or group bundle items in a TextMate 2 Bundle?",这是最后遗漏的步骤,感谢 Nigel!)

对我来说;更改无需重新启动即可反映出来。

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

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