shortcut Webデザインとかガジェットについてつらつらと書き連ねています

111月/090

emacsでHTMLを編集するモードを比較してみた。

もう5年以上使っているにも関わらず全然使い方を知らなかったりするemacsですが、ようやくきちんと勉強しようと言う気になったので調べてみました。

いままでも、HTMLとかCSSを書くときにもっとemacs使おうと思いつつ、テキストエディタのHTML編集モードやDreamWeaverといった分かりやすいエディタにフラフラ逃げていた訳ですが、今年はモヒカン度合いを高めようと思い、積極的に使って行こうと思います。
なぜviでないかというのはおいておいて。

という訳で、まずはHTML。
emacsでHTMLを書くためのモードはいくつかあり、

  • html-mode
  • html-helper-mode
  • psgml-mode(xml-mode or sgml-mode)
  • nxml-mode
  • nxhtml-mode

といったあたりがよく使われているかと思います。
一つ一つ見てみましょう。

html-mode

Emacsに標準で入っているモードです。基本的なタグの色分けとタグの補完ができます。

html-modeはあんまり使っていないのでアレなのですが、何も見ないでバリバリHTMLを書けて、補完的にちょっと何かが欲しい、って人には良いかもしれません。

html-helper-mode

html-modeをリッチにして補完するとこうなりますよ、ってモードです。
HTML,XHTMLで必要とするタグのほとんどをキーバインドを使って入力できます。

オライリーから出ているemacs入門を見ると分かるのですが、キーバインドだけで4ページ以上にわたるという拷問的な多さですが、覚えるとかなりのスピートでHTMLを書けます。
この文章もhtml-helper-modeで書いています。

psgml-mode(xml-mode or sgml-mode)

xml-modeないしはsgml-modeの拡張ですね。HTMLを書くかXHTMLを書くかのどっちかでモードが変わります。
DTDを使って逐一パースを行えるため、基本的にパースできるマークアップしか書くことができず、非常に奇麗なHTMLを書くことができます。反面、DTDがないとあまり意味のないモードだったりするので、きちんとW3CからDTDを持って来て設定するのが吉です。

RELAX NGを用いたモードです。タグの補完とパスがそこそこしやすい、といった平均的な部分を押さえたモードです。

nxhtml-mode

これはなかなかヘビーだったなぁ...

PHPのようなHTMLとその他の言語が混じるようなドキュメントを記述するのを前提に作られたモードっぽいです。
一つのドキュメントに複数の言語が混じっていた場合、言語単位での色分けをしてから、テキストの色分けを行ったりします。
詳しくは映像を見てください。

で、リアルタイムでパースやバリデートを行ってくれたり、DreamWeaverライクなタグの補完を行えるのでなかなか便利だったりはしますが、いかんせん動作が重いんですよ...。

設定が不十分なのか環境(iMac/Core 2 Duo + carbon emacs)が非力なのかは分かりませんが、ちょっと常用するのは辛いなぁ...、と思います。

相当感覚的ではありますが、各モードのを表にしてみるとこんな感じです。

モード キーバインド 入力速度 HTMLの正確さ
html-mode そこそこ 多少速い 入力者に依存
html-helper-mode 極めて多い 速い 入力者に依存
psgml-mode 少ない 多少速い かなり正確
nxml-mode 少ない 多少速い そこそこ正確
nxhtml-mode 少ない 多少速い そこそこ正確

...、と、つらつら書いてみました。
大量のHTMLを常に各必要があるのであればhtml-helper-mode、正しいマークアップを行いたいのであればpsgml-mode、マシンパワーがあればxhtml-mode、と行った所でしょうか?

Filed under: emacs Leave a comment
Comments (0) Trackbacks (0)

No comments yet.


Leave a comment


No trackbacks yet.