w3mでpsgmlのプレビューを行う

用途は限られるが。

要約
yahtml のプレビューはインターネット・エクスプローラネットスケープなどで行います. これを, w3m で行うことができます.
設定方法
以下を .emacs に追加します.

(autoload 'w3m-goto-url "w3m")
(defadvice yahtml-browse-html
  (around w3m-yahtml-browse-html activate compile)
  (w3m-goto-url (ad-get-arg 0) t))

この設定を施せばyahtml-modeから M-x yahtml-browse-current-file を実行することでhtmlをw3m上でプレビューでき、"E" (w3m-edit-current-url) でyahtml-modeのソースコードに帰ってこられる。
これをpsgml-modeで利用したい。
つまりpsgml-modeでソースを編集(閲覧)中にw3mでプレビューし、"E"押下でpsgml-modeのソースに戻ってくるようにしたい。
実は上の引用のコードとyahtmlをそのまま流用してこれを実現できる。psgml-mode上でyahtml-browse-current-file を実行すれば、"E"押下でまたpsgml-modeに戻ってこられる (ということをMeadow上で確認した)。
psgml-browse-current-file という名前の関数を用意することにしよう。(といっても、yahtml-browse-current-fileをコールするだけのもの。)

設定例

yahtmlとw3m (あともちろんpsgml-mode) は別途用意・設定してくれっす。

(autoload 'yahtml-browse-current-file "yahtml" "" t nil)

;;
(autoload 'w3m-goto-url "w3m")
(defadvice yahtml-browse-html
  (around w3m-yahtml-browse-html activate compile)
  (w3m-goto-url (ad-get-arg 0) t))
;;
(defun sgml-browse-current-file ()
  (interactive)
  (call-interactively 'yahtml-browse-current-file))

これにより psgml-modeで編集(閲覧)中にM-x sgml-browse-current-file をやればw3m上でプレビューでき、そこで "E" 押下でpsgml-modeに戻ってくる。