全国1億8千万人のzen-codingファンの皆様、如何お過ごしでしょうか。先日の記事でzen-codingをpure vimscriptに移植した「zencoding.vim」をご紹介させて頂きました。
あの時は略語の展開(Expand Abbreviation)しか機能がなく物足りなかったかもしれません。まぁ殆どの移植品はExpand Abbreviationしか無いのですが。
zen-codingには他どんな機能があるかというと、実はまだ便利な機能があったりします。 オフィシャルのサイトによると
- Expand Abbreviation
- Wrap with Abbreviation
- Balance Tag Inward/Outward
- Go to Next/Previous Edit Point
- Update Image Size
- Merge Lines
- Remove Tag
- Split/Join Tag
- Toggle Comment
Zen-Codingのショートカットをまとめてみました - EC studio デザインブログ以前までのzencoding.vimが対応していたのは一番上のExpand Abbreviationだけです。
前回の記事ではZen-Codingの導入方法について解説しました。今回はZen-Codingの機能とそれを実行するためのショートカットの解説をします。
http://designblog.ecstudio.jp/htmlcss/zen-coding-shortcut-key.html
ここ数日、zencoding.vimのコードを弄りまくって、残りのあと少しで100移植出来る所まで来ました。
以下チュートリアル的なものを書いておきます。
Expand Abbreviation
まずは略語展開。もう皆さん知ってると思いますがdiv>p#foo$*3>a{こんにちわ}と書いて
<c-y>,(コントロールとyを押してカンマ)をタイプすると
<div>と展開してくれる機能です。括弧によるグルーピングもサポートしています。
<p id="foo1">
<a href="">こんにちわ</a>
</p>
<p id="foo2">
<a href="">こんにちわ</a>
</p>
<p id="foo3">
<a href="">こんにちわ</a>
</p>
</div>
Wrap with Abbreviation
ラップを作成する略語展開です。おはようとあるテキストをビジュアル選択して
こんにちわ
こんばんわ
<c-y>,をタイプすると「Tag:」とタグを聞かれます。ここにラップするタグを記述します。
Tag: bqとすると
<blockquote>といった感じにラップしてくれます。また
おはよう
こんにちわ
こんばんわ
</blockquote>
Tag: ul>li*>a>spanとすると
<ul>こんな感じになります。便利す。
<li>
<a href=""><span>おはよう</span></a>
</li>
<li>
<a href=""><span>こんにちわ</span></a>
</li>
<li>
<a href=""><span>こんばんわ</span></a>
</li>
</ul>
Balance Tag Inward/Outward
タグの外側、内側を選択します。<ul>上記"_"の位置にカーソルがある状態で
<li>
<a href=""><span>おはよう</span></a>
</li>
<li>
_ <a href=""><span>こんにちわ</span></a>
</li>
<li>
<a href=""><span>こんばんわ</span></a>
</li>
</ul>
<c-y>dをタイプすると
<ul>こんな感じに選択してくれます。もちろん
<li>
<a href=""><span>おはよう</span></a>
</li>
<li>
<a href=""><span>こんにちわ</span></a>
</li>
<li>
<a href=""><span>こんばんわ</span></a>
</li>
</ul>
<li>の前で実行すると<ul>全体が選択されます。なお、タグの内側で実行するとタグ自身が選択されます。これとは逆にタグを含まないで中身のみを選択する場合には
<c-y>Dをタイプします。Go to Next/Previous Edit Point
編集位置へカーソルを移動します。<c-y>nで空の属性値や中身が空のタグ内側へジャンプします。逆向きは<c-y>Nです。Update Image Size
IMGタグの画像サイズを更新します。<img src="http://mattn.kaoriya.net/images/logo.png"/>この様なIMGタグの上で
<c-y>iをタイプするとwidth/heigth属性を埋めてくれます。ローカルのファイルだと絶対パスもしくは編集中のファイルからの相対パスが扱え、URLも対応しています。<img src="http://mattn.kaoriya.net/images/logo.png" width="96" height="96" />こんな感じです。ちなみにvimが不得意とする
<img id="foo" src="logo.png"/> <img src="github-logo.png" class="bar" />この様な1行複数個のIMGタグでも正しく動作します。
<img src="http://mattn.kaoriya.net/images/logo.png"/>
この画像ファイルを扱う部分だけperl拡張を使いました。モジュールとしてはImage::Infoが入っていれば動くはずです。ちなみにこの機能さえ使わなければ、別にperl拡張が入っていなくても良いです。
Merge Lines
これはvimだけの機能で出来るので実装していません。ビジュアル選択してJですね。Remove Tag
以下の様なHTMLで「cursor is here」の部分にカーソルがあった場合<div class="foo">
<a>cursor is here</a>
</div>
<c-y>kをタイプすると
<div class="foo">となり、さらに
</div>
<c-y>kをタイプすると
となる機能です。
Split/Join Tag
先ほどと同様のカーソル位置で<div class="foo">
<a>cursor is here</a>
</div>
<c-y>jをタイプすると
<div class="foo"/>となります。なお、このdivタグの上で再度タイプすると今度は
<div class="foo">と分割されます。
</div>
Toggle Comment
タグの上で<c-y>/をタイプするとそのタグ全体をコメントアウトしてくれます。<blockquote>このHTMLのaの上でタイプすると
<a href="">aaa</a>
</blockquote>
<blockquote>となり、aの前あたりでタイプすると
<!-- <a href="">aaa</a> -->
</blockquote>
<!-- <blockquote>となります。
<a href="">aaa</a>
</blockquote> -->
おまけ1
URLの上で<c-y>aをタイプするとHTMLを取得してきてアンカータグを作ってくれます。http://www.google.com/これが
<a href="http://www.google.com/">Google</a>こうなります。
おまけ2
おまけ1とさほど変わりませんが... URLの上で<c-y>Aをタイプすると本文抽出して引用文を作ってくれます。http://www.google.com/これが
<blockquote class="quote">こうなります。ほぼ俺様用!
<a href="http://www.google.com/">Google</a><br />
<p>広告掲載 - ビジネス ソリューション - Google について - Google.com in English©2010 - プライバシー ...</p>
<cite>http://www.google.com/</cite>
</blockquote>
100% zen-coding 互換まであと少しです。
mattn's zencoding-vim at master - GitHub
zen-coding for vim: http://code.google.com/p/zen-coding/
http://github.com/mattn/zencoding-vim
Hacking Vim: A Cookbook to Get the Most Out of the Latest Vim EditorKim Schulz
Packt Publishing / ¥ 3,696 (2007-05-30)
発送可能時間:在庫あり。


![Validate my RSS feed [Valid RSS]](http://mattn.kaoriya.net/images/valid-rss-rogers.png)

