2011-06-01 4 views
1

Disons que je l'extrait de code suivant:me aider à créer un vim extrait (snipmate)

snippet divt 
    <div id="${1:div_id}"> 
     ${2:'some text'} 
    </div> 

Alors, quand je tape divt et l'onglet frappé deux fois « " un texte » devrait être sélectionné, et quand je frappe Une fois de plus, j'aimerais que l'on sélectionne "un peu de texte" (sans les guillemets simples). Comment puis-je le faire?

Édition 1: Merci pour vos réponses. Probablement cet exemple est plus logique:

snippet divt 
    <div ${1:id="${2:div_id}"}> 
    </div> 

Parfois, je veux un div sans id, donc je dois pouvoir supprimer l'id = « div_id » tout à fait. Parfois, je voudrais avoir un identifiant, afin que je puisse changer la partie div_id seulement.

+2

Je vous suggère de créer deux extraits divt et divtq – Benoit

Répondre

1

Je suis actuellement en voyage de promotion pour UltiSnips que je maintiens. L'extrait qui fait précisément qui ressemble à ceci pour UltiSnips:

snippet divt "div" b 
<div ${1:id="${2:div_id}"}> 
</div> 
endsnippet 

UltiSnips est également livré avec un script de conversion pour des extraits snipMate, la commutation devrait donc être indolore.

+0

Merci pour la réponse. J'ai récemment découvert UltiSnips. C'est bien. –

1

SnipMate ne prend malheureusement pas en charge les espaces réservés imbriqués mais, conformément aux conseils de @ Benoit, vous pouvez utiliser un autre fragment lors de la modification du deuxième espace réservé. Assurez-vous d'apporter une toupie avec vous, cependant.

Je ne suis pas sûr de ce que vous voulez atteindre avec some text vs 'some text' - les deux étant traités exactement de la même manière dans ce contexte par chaque analyseur html sur terre - mais je voudrais y parvenir avec un simple

snippet div 
    <div id="${1:div_id}"> 
     ${2} 
    </div> 

et en tapant simplement soit

some text 

ou

' 

qui serait étendu à (| est le caret)

'|' 

grâce à delimitMate ou tout autre plug-in similaire alors

'some text' 

Ou peut-être utiliser SURROUND pour changer

some text| 

dans

'some text' 

en tapant

<Esc>v2bS' 

Avec Surround vous pouvez également commencer par

some text 

sélectionner avec

v2e 

ou quelque chose de similaire et le type

S' 

pour ajouter les guillemets puis sélectionnez la ligne avec

V 

et le type

S<div id="div_id"> 

pour obtenir

<div id="div_id"> 
    'some text' 
</div> 

ou faire autre personne façon ou ... doit écrire un article de blog avec TOUTES les manières possibles d'accomplir une tâche donnée dans Vim.

Questions connexes