Если вы используете YASnippet в xml-режиме, он уже содержит фрагмент нужной вам функции.
Введите следующее
tag
нажмите Tab и выберите <tag>...</tag>
для встроенного XML-тега или <tag>\n...\n</tag>
для тега в отдельной строке, и то, что вы ввели, превращается в
<tag></tag>
или же
<tag>
</tag>
соответственно. То, что вы ввели, превращается либо в имя для открывающего тега, и вы можете ввести любое имя тега, которое вы хотите, и оно также будет скопировано в закрывающий тег. Когда вы закончите ввод имени тега, вы нажимаете клавишу Tab, и курсор помещается между тегами, чтобы вы могли вводить содержимое в тег. Когда вы закончите ввод содержимого в тег, вы снова нажимаете клавишу Tab, чтобы поместить курсор после закрывающего тега.
Обратите внимание, что если вы хотите настроить поведение этих фрагментов, это легко. Используйте меню YASnippet, чтобы найти нужные фрагменты, а затем отредактируйте их в соответствии с вашими потребностями.
Чтобы получить указанные фрагменты в любом другом режиме, вы можете создать их для этого режима, выполнив следующие действия:
Добавьте следующее в ваш .emacs:
(setq yas/root-directory "~/.emacs.d/mysnippets"); Develop and keep personal snippets under ~/emacs.d/mysnippets
(yas/load-directory yas/root-directory); Load the snippets
Если вы предпочитаете хранить свой фрагмент в другом каталоге, выберите другой.
Войдите в режим, в котором вы хотите фрагменты.
- Do Mx
yas/new-snippet
.
- Введите имя
tag.1l
- Теперь у вас есть возможность редактировать фрагмент. Отметьте все, выполнив Cx h, а затем убейте его нажатием Cw .
Теперь у вас будет пустой фрагмент. Вставьте в него следующее и убедитесь, что фрагмент заканчивается после $0
а не на новой строке:
#name: <tag>...</tag>
#key: tag
# --
<${1:tag}>$2</$1>$0
Сделайте Cc Cc, чтобы сохранить и загрузить фрагмент.
Выполните шаги с 3 по 7, но вместо этого используйте имя tag.2l
и вставьте следующее:
#name: <tag> \n...\n</tag>
#key: tag
# --
<${1:tag}>
$2
</$1>$0
Обратите внимание, что клавиша, которую yasnippet использует для расширения, Tab, по умолчанию связана с другой функцией в режиме уценки. Таким образом, вы должны либо использовать исправление, например http://calas.github.com/2009/11/20/using-yasnippets-in-markdown-mode.html, либо связать yas/expand
с ключом вашего предпочтения.
Следующая анимация показывает, как работает первый фрагмент: