xyzzy reference を手っ取り早く使うには、服部さんの reference.chm が便利です。また、kia さんの refer-for.l (または Nobuaki ARIMA さんの Another refer-for) が使える環境であれば、reference.xml を直接参照できます。が、しかし、
reference.xml からは、いろいろなものがつくれるらしい。
とりあえず、Perl (要 Jcode, XML-DOM) をインストールし、 山本 泰三さんのぺーじから reference.lzh と、 服部さんのぺーじから、 xml2xxx.lzh を頂きます。reference.lzh と xml2xxx.lzh から展開したファイルは、同じフォルダに展開しておきます。 ここではすべて、C:\xyzzy\etc\ におくものとします。
xml2xxx.lzh に含まれるコンバート用スクリプトは、Perl 5.8 に対応してないそうなので、
少し手を加えて動作するようにしてみました。HTML 版と Info 版で発生していたと思われる文字化けは、
おそらく解消されていると思います(しかし自信なし)。以下のコンバータを使用する場合は、
Jcode は必要ありません。
→ xml2xxx.lzh 2003.07.05版
これは、上記のコンバータを使って reference.xml から作成したものをまとめたもの。
→ reference-xml2xxx-20041115.lzh
(HTML 版, TEXT 版, Info 版, lisp キーワードファイル, ese-fortune 用 dat ファイル)
xml2txt.pl を使って reference.xml から reference.txt を作成すると、 info-modoki-mode で使えるようになります。info-modoki-mode は、プレーンテキストを xyzzy から直接扱うため、 スペックの低いマシンでも軽快に動作します(たぶん)。
とりあえず、reference.txt を作成します。 M-x shell または、コマンドプロンプトから以下を実行します。
C:\>cd \xyzzy\etc C:\xyzzy\etc>perl xml2txt.pl
これで、xyzzy/etc/ フォルダに reference.txt が作成されます。
次に、info-modoki-mode を導入します。
1. info-modoki-mode を xyzzy/site-lisp/ フォルダに置く。
2. .xyzzy か siteinit.l に以下を追加する。
;;; info-modoki-mode (require "info-modoki-mode") (define-key ed::*lisp-mode-map* #\F1 'imm-refer-selection) (define-key ed::*lisp-interaction-mode-map* #\F1 'imm-refer-selection)
あとは、lisp-mode (or lisp-interaction-mode) でキーワードにカーソルをおいて F1 すると、リファレンスの検索をします。 その他の機能については,info-modoki-mode.l 冒頭のコメント文を参照ください。
また、info-modoki-mode は、キーワードの色付けに Lisp キーワードファイル も使用します。
reference.xml から HTML 版リファレンスを作成します。そのままでも便利だけれど、 やっぱり kazu.y さんの reference.l から使うととても幸せになれます。
とりあえず、HTML 版リファレンスを作成します。 M-x shell または、コマンドプロンプトから以下を実行します。 xml2html.pl をオプション無しで実行すると、フレーム版でない html が作成されます。 フレーム版なものをつくるには、xml2html.pl に -f オプションをつけて実行します。
C:\xyzzy\etc>perl xml2html.pl -f
これで、xyzzy/etc/html/ フォルダに HTML ファイルが作成されます。 作成された全ての HTML ファイルは、xyzzy/reference/ フォルダに移動しておきます。
次に、reference.l を導入します。
1. reference.l を xyzzy/site-lisp/ フォルダに置く。(必要に応じバイトコンパイルしておく。)
2. .xyzzy か siteinit.l に以下を追加する。
(load-library "reference") (define-key ed::*lisp-mode-map* #\S-F1 'lookup-reference-selection) (define-key ed::*lisp-interaction-mode-map* #\S-F1 'lookup-reference-selection)
これで、lisp-mode (or lisp-interaction-mode) でキーワードにカーソルをおいて S-F1 すると、HTML 版リファレンスの検索をしてくれます。 (F1 は info-modoki の説明で使ってしまったので、reference.l は、S-F1 にしています。)
できあががったリファレンスは、こんな感じ。→ [HTML版]
reference.xml から info を作成すると、Yamamoto Shinji さんの info.l で使えるようになります。 須田さんの info.l でも良いはずです。
とりあえず、reference.info を作成します。 info ファイルを作成するには、一旦 ref2texi.pl で texi ファイルを作成した後、 Emacsen (Meadow, Emacs, XEmacs, etc...) または、 texinfotools で、info ファイルに変換します。
まず、reference.xml から reference.texi を作成します。
C:\xyzzy\etc>perl ref2texi.pl
これで、xyzzy/etc/info/ フォルダに、reference.texi が作成されます。
次に、reference.texi から info を作成します。
[ Emacsen を使用する場合 ]
[ texinfotools を使用する場合 ]
C:\xyzzy\etc>cd info C:\xyzzy\etc\info>makeinfo --error-limit 0 --force reference.texi
これで、xyzzy/etc/info/ フォルダに、reference.info* が作成される。 出来上がった reference.info* は xyzzy/info/ フォルダに移動する。
次に、(Yamamoto Shinji さんの)info.l を導入します。
1. info.l を xyzzy/site-lisp/ フォルダに置く。
2. info.l をバイトコンパイルする。
3. .xyzzy か siteinit.l に以下を追加する。
(load-library "info")
4. xyzzy/info/ フォルダに、info-ja.info を置く。
5. xyzzy/info/ フォルダに dir という名前のファイルを作成し、以下の記述をしておく。
-*- Text -*-
This is the file .../info/dir, which contains the topmost node of the
Info hierarchy. The first time you invoke Info you start off
looking at that node, which is (dir)Top.
File: dir, Node: Top
* Menu:
* (info-ja):: インフォじゃ :^)
* リファレンス: (reference). xyzzy Reference 計画
※「File: dir, Node: Top」の前の行にもなんだか大切なものがあるようなので、 このままコピペするか、info.l の README にあるサンプルを編集するかして使ってください。
あとは、M-x info で使えます。
ちなみに info とは、ハイパーリンクテキストなインターフェイスを持った、 ドキュメント閲覧プログラム(説明がおかしい?)です。 リンク(多分色のついてるとこ)で Enter すると、そのページにジャンプします。 その他、主なコマンドは、こんなところと思います。
| q | 終了 |
| n | 次のノードに移動 |
| p | 前のノードに移動 |
| u | 1 つ上のノードに移動 |
| t | Topノードに移動 |
| d | dir(最初に表示されるノード)に移動 |
| s | 検索 |
| h | ヘルプ |
info を使うのなら、 逸見さんの info も揃えておくと便利です。アーカイブから展開したファイル henmi を henmi.info にリネームし、 xyzzy/info/ に設置した後、xyzzy/info/dir に以下のような行を加えます。
* xyzzy info: (henmi). 逸見さんの info
reference.xml から lisp のキーワードファイル lisp を作成します。
C:\xyzzy\etc>perl xml2kwd.pl
これで、xyzzy/etc/ フォルダに、lisp が作成されます。 このキーワードファイルを使って、キーワードの色付けに使うことができます。 キーワードの色付けは、こんな感じでしてます。
リファレンスを「ヘルプ」メニューに追加する。 ここでは、HTML Help (reference.chm), info , HTML 版リファレンスを追加している。
(add-hook '*init-app-menus-hook* #'(lambda () (let ((help (get-menu *app-menu* 'ed::help))) (insert-menu-separator help 2) (insert-menu-item help 3 'reference "ヘルプ(&H)" #'(lambda () (interactive) (ed::html-help (merge-pathnames "etc/reference.chm" (si:system-root)) ""))) (insert-menu-item help 4 'info "info(&I)" 'ed::info) (insert-menu-item help 5 'reference "reference(&R)" #'(lambda () (interactive) (shell-execute (map-slash-to-backslash (merge-pathnames "reference/index.html" (si:system-root))) t))))))