Advertisement

Vim Essential Plugin: Sparkup

by

This Cyber Monday Tuts+ courses will be reduced to just $3 (usually $15). Don't miss out.

This post is part of a series called Vim Essential Plugins.
Vim Essential Plugin: Surround
Vim Essential Plugin: SnipMate

The sparkup plugin, inspired by the popular ZenCoding, allows you to rapidly create HTML structures. It's an essential tool in your Vim handbag!


Usage

Sparkup is incredibly easy to use. Let's review a handful of use cases.

1. Create an Unordered List of Links

nav > ul > li > a*4 { Links }

Output


<nav>
   <ul>
      <li>
         <a href=""> Links </a>
         <a href=""> Links </a>
         <a href=""> Links </a>
         <a href=""> Links </a>
      </li>
   </ul>
</nav>

Note that we can create nested elements by using the > symbol. Additionally, to create multiple elements of the same type, use the * symbol (think multiply). Lastly, we can set the value of each element by wrapping a string within curly braces.

2. Create a Basic Website Structure

div#container > header > h1 { My Header } < + div#content { My Content } + footer > h2 { My Footer }

Output

<div id="container">
   <header>
      <h1> My Header </h1>
   </header>
   <div id="content"> My Content </div>
   <footer>
      <h2> My Footer </h2>
   </footer>
</div>

This time, we're using the < symbol to travel back up the chain. This allows us to create nested HTML structures, and then return to the top of the chain to further create sibling elements.

3. Apply Attributes to Elements

ul[class=nav]>li*5>a[href=http://url.com] { Link }

Output

<ul class="nav">
   <li>
      <a href="http://url.com"> Link </a>
   </li>
   <li>
      <a href="http://url.com"> Link </a>
   </li>
   <li>
      <a href="http://url.com"> Link </a>
   </li>
   <li>
      <a href="http://url.com"> Link </a>
   </li>
   <li>
      <a href="http://url.com"> Link </a>
   </li>
</ul>

Attributes can be applied to elements by placing them within brackets ([). If you omit the value -- like, a[href], you can then manually insert it after expansion. In MacVim, you can use the Control + N and Control + P shortcuts to toggle between the next and previous stop points.

Advertisement