閑古鳥 -> 呟き -> xyzzy の html+-mode を使う

xyzzy の html+-mode を使う

まえがき

Windows用ソフトのxyzzyというテキストエディタを使って HTML を書いてみようというページ。 html+-mode を使用します。

補完するタグを充実させる

html+-mode はデフォルトでは、一部の要素を認識(色分け)しなかったり補完できなかったりすることがあります。この不満を解消するために、 html-keyword-file を読み込ませることで、補完できるタグを充実させ、割と仕様に準拠した HTML を書きやすくしてみます。

.xyzzy に下記のコードを書き加えるだけで、 html-keyword-file を読み込んでくれるようになります。

      (setq ed::*html+-use-html-kwd* t)
    

この項はいわいさんのご指摘により、 .xyzzy への記述などとても簡潔簡単に書き換えられています。ありがとうございますです。

xhtml を使用時に起こる問題

上記のような設定にすると、 DTD を擬似的にも理解して大分使い勝手がよくなりますが、 xhtml にて HTML文書 を記述をしている場合、少々問題が起こります。 /etc フォルダにある HTML というファイルに、 </input などの記述があり、 input 要素を使用した後に閉じタグを補完しようとすると </input> が補完されてしまいます。これは xhtml では閉じタグを省略できないという仕様からきているのでしょうが、これでは少々(気持ち的に)いい感じでないので、空要素の閉じタグは補完させないようにします。

/etc フォルダの HTML という名前のファイルを開いてください。下のほうに(検索すると早いです) </input といった記述があるので、これらを消していってください(空要素のみを消してください。ここで消した閉じタグを補完しないようになるだけなので、補完されなくなって困るようなものは消さないように)。消したら再起動をしてまた html ファイルを読み込めば、空要素の閉じタグは補完されなくなります。

全行インデントで整形する

html+-mode はインデントを勝手に入れてくれて html文書 のソースが整ったものになりますが、ソースの中心などに新たな要素を加えるとインデントがずれてしまいます。1行ずつ tab を押して整形してもいいのですが、長いソースだとかなり面倒です。そこで、xyzzyでタグ打ってる人の数>>22 にあるようなソースを、 .xyzzy に加えてみてください。

;; 一発インデント
      (defun indent-current-buffer ()
      (interactive)
      (indent-region (point-min) (point-max))
      (message "indent buffer"))
      (global-set-key #\C-F8 'indent-current-buffer)

C-F8( CtrlF8 キーを同時押し)でインデントが効きます。 perl-mode などでも有効みたいです。

…てなところでしょうか。これでだいぶ使いやすくなったかと思います。他にも使えそうなものがあれば教えてくださいまし。