Как создать новый фрагмент в TextMate 2?

8600
jshen

Как создать новый фрагмент в TextMate 2? Когда я иду в Edit Bundles, я не могу понять, как создать новый фрагмент.

30

2 ответа на вопрос

43
Daniel Beck

TextMate 2 еще не выпущен и находится в альфа-состоянии. Редактор пакетов - одна из областей, которые не являются окончательными .

Несмотря на то, что в комплект включен редактор пакета для проверки концепции, он является предварительным, имеет некоторые недостатки, и не совсем так, как мы предполагаем, что будет финальный редактор пакета.

Эти инструкции предназначены для Версии 2.0 (8956), действующей по состоянию на 20 января 2012 года. Подумайте, прежде чем отказаться от голосования.


Выберите Bundles »Edit Bundles ... в меню TextMate 2.

Выберите пакет, в который вы хотите добавить фрагмент, например HTML . Нажмите, Cmd-Nчтобы создать новый элемент пакета, и выберите фрагмент .

Он будет автоматически добавлен в подраздел Действия в меню . Вы можете изменить его настройки, такие как сочетание клавиш, в ящике, а его содержимое в редакторе внизу.

Введите триггер вкладки, в котором вы хотите последовательность символов (например snip), затем нажмите, Tabчтобы вызвать фрагмент или назначить сочетание клавиш.

Выбор области действия определяет, в какие области можно вставить фрагмент с помощью триггера. Чтобы узнать области выбранного языка, переключитесь на документ с этим синтаксисом и нажмите, Ctrl-Shift-Pчтобы отобразить все применимые области под курсором.

Например, если вы хотите, чтобы ваш фрагмент был доступен где-либо в документах HTML, введите text.html.basic; или source.shellдля сценариев оболочки. Вы можете ввести несколько областей, разделенных запятыми, или только префиксы имен областей (например source), чтобы применить их ко всем соответствующим source.*областям.

Для чего-то еще, просто посмотрите на все другие фрагменты, к которым вы можете получить доступ из этого окна, и посмотрите, как они достигают желаемого поведения.

1
tim

To add: after you add a snippet to a bundle, you might well want to alter where it appears in the bundle menu. This is currently unsupported in the GUI (as of 2.0-alpha.9401).

You can do it manually if you are a relative expert. You can break the bundle by making errors here, so don't venture in unthinkingly.

  1. Find the UUID of your new bundle item (or any bundle item you wish to move

    • the item will be in a sub folder of

    "~/Library/Application Support/Avian/Bundles/yourbundle/"

  2. option-click the bundle item to open as text in textmate, and copy the uuid string. This will look something like:

    <string>E1ABEC5E-DF5F-4C09-BA9F-E17504F456C0</string> 
  3. Open the info.plist of your bundle

    • This is an xml-type file listing the items of the menu, including sub-menus and the items they contain. You want to add your uuid string to the appropriate location in the appropriate list. If you wanted it in an existing submenu called "Development" just search the plist for "Development", and above there, you will see the array of items: paste your new snippet in where you want it to go

    • The plist can be found at

    "~/Library/Application Support/Avian/Bundles/yourbundle/info.plist"