Se você usar o YASnippet no modo xml, ele já contém um snippet para a funcionalidade que você solicita.
Digite o seguinte
tag
pressione Tab e escolha <tag>...</tag>
para uma tag XML embutida ou <tag>\n...\n</tag>
para uma tag em sua própria linha e o que você digitou se transforma em
<tag></tag>
ou
<tag>
</tag>
respectivamente. Como o que você digitou se transforma em ou o nome da tag de abertura está marcado e você pode digitar o nome da tag que quiser e também será copiado para a tag de fechamento. Quando terminar de digitar o nome da tag, pressione Tab e o cursor será colocado entre as tags para que você possa inserir o conteúdo na tag. Quando você terminar de inserir o conteúdo na tag, pressione Tab novamente para posicionar o cursor após a tag de fechamento.
Observe que, se você quiser personalizar o comportamento desses snippets, será fácil. Use o menu YASnippet para encontrar os trechos em questão e, em seguida, edite-os para atender às suas necessidades.
Para obter os ditos fragmentos em qualquer outro modo, você pode criá-los para esse modo fazendo o seguinte:
-
Adicione o seguinte ao seu .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
Se você preferir manter seu snippet em outro diretório, vá em frente e escolha outro.
-
Digite o modo no qual você deseja inserir os snippets.
- Fazer M-x
yas/new-snippet
. - Digite o nome
tag.1l
- Você terá a chance de editar o snippet. Marque tudo fazendo C-xh e, em seguida, mate-o por C-w .
-
Agora você terá um snippet vazio. Cole o seguinte em e certifique-se de que o snippet termine após
$0
e não em uma nova linha :#name: <tag>...</tag> #key: tag # -- <${1:tag}>$2</$1>$0
-
Faça C-c C-c para salvar e carregar o snippet.
-
Siga as etapas de 3 a 7, mas use o nome
tag.2l
e cole o seguinte:#name: <tag> \n...\n</tag> #key: tag # -- <${1:tag}> $2 </$1>$0
Note que a chave yasnippet usa para expansão, Tab , está ligada a outra função no modo markdown por padrão. Assim, você precisa usar uma correção como link ou vincule yas/expand
a uma chave de sua preferência.
A animação a seguir mostra como o primeiro snippet funciona: