*info-directory-list*
Info ファイルのあるディレクトリのリストです。Info リーダはこの変数で指定されたディレクトリを基準としファイルを参照します。デフォルトでは xyzzy をインストールしたディレクトリの info ディレクトリ (`~/info/') となっています。
*info-suffix-list*
Info ファイルの拡張子と、解凍するのに使用するコマンドのリストです。デフォルトでは以下のように設定されています。
(defvar *info-suffix-list* '( (".info.Z" . "uncompress")
(".info.Y" . "unyabba")
(".info.gz" . "gunzip -c")
(".info.z" . "gunzip -c")
(".info" . nil)
(".Z" . "uncompress")
(".Y" . "unyabba")
(".gz" . "gunzip -c")
(".z" . "gunzip -c")
("" . nil)))
以下に設定例を示します。
(setf *info-suffix-list* '((".info.bz2" . "tar32.dll")
(".info.gz" . "tar32.dll")
(".info.tgz" . "tar32.dll")
(".info.tbz" . "tar32.dll")
(".info" . nil)
(".bz2" . "tar32.dll")
(".gz" . "tar32.dll")
("" . nil)))
上記の例では Info ファイル名が foo.info.bze, bar.gz 等の場合は、`TAR32.DLL' を用い解凍し、それ以外では何もしません。
*info-enable-edit*
Info ファイルを編集可能とするかを指定する変数です。`t' で編集可能、`nil' で不可となります。デフォルトは `nil' です。
*info-smooth-scroll*
スムースにスクロールさせるかを指定します。`t' でスムースにスクロール、`nil' で通常のスクロールとなります。デフォルトは `t' です。
*info-fontify*
色付けを行うかどうかを指定する変数です。`t' で色付けする、`nil' でしなくなります。デフォルトは `t' です。
*info-node-forecolor*
*info-node-backcolor*
バッファ先頭に表示されるノードポインタの色を指定します。*info-node-forecolor* が文字色、*info-node-backcolor* が背景色となります。デフォルトでは以下のように設定されています。
(defvar *info-node-forecolor* 9)
(defvar *info-node-backcolor* nil)
*info-menu-forecolor*
*info-menu-backcolor*
メニューの色を指定します。*info-menu-forecolor* が文字色、*info-menu-backcolor* が背景色となります。デフォルトでは以下のように設定されています。
(defvar *info-menu-forecolor* 14)
(defvar *info-menu-backcolor* nil)
*info-fontify-maximum-menu-size*
メニューにおいて色付けをする最大文字数です。文字数を指定し、それを超えるメニューは色づけされません。デフォルトは 30000 です。
*info-ref-forecolor*
*info-ref-backcolor*
相互参照の色を指定します。*info-ref-forecolor* が文字色、*info-ref-backcolor* が背景色となります。デフォルトでは以下のように設定されています。
(defvar *info-ref-forecolor* 7)
(defvar *info-ref-backcolor* 14)
(define-key *info-mode-map* #\@ 'info+-goto-footnote)
(define-key *info-mode-map* #\b 'info+-bookmark-mode)
(define-key *info-mode-map* #\B 'info+-bookmark-add)
(define-key *info-mode-map* #\k 'info+-fontify)
(define-key *info-mode-map* #\v 'info+-scroll)
(define-key *info-mode-map* #\z #'(lambda ()
(interactive)
(info+-scroll -1)))
(define-key *info+-bookmark-mode-map* #\RET 'info+-bookmark-go)
(define-key *info+-bookmark-mode-map* #\TAB 'info+-bookmark-view)
(define-key *info+-bookmark-mode-map* #\d 'info+-bookmark-delete)
(define-key *info+-bookmark-mode-map* #\n 'next-virtual-line)
(define-key *info+-bookmark-mode-map* #\p 'previous-virtual-line)
(define-key *info+-bookmark-mode-map* #\q 'info+-bookmark-close)
*info+-bookmark-mode-hook*
キーワード色づけ時、ミニバッファに表示されるデフォルトの読み込むキーワードファイルパスを指定します。デフォルトでは以下のように設定されています。
(defvar *info+-keyword-file* "~/etc/lisp")
以下に設定例を示します。.xyzzy や siteinit.l に記述します。
(setf *info-suffix-list* '((".info.bz2" . "tar32.dll")
(".info.gz" . "tar32.dll")
(".info.tgz" . "tar32.dll")
(".info.tbz" . "tar32.dll")
(".info" . nil)
(".bz2" . "tar32.dll")
(".gz" . "tar32.dll")
("" . nil)))
(setf *info-enable-edit* t)
(setf *info-fontify-maximum-menu-size* 60000)
(setf *info-node-forecolor* 2)
(setf *info-ref-forecolor* 4)
(setf *info-ref-backcolor* nil)
(setf *info-menu-forecolor* 1)
(define-key *info-mode-map* #\F13 'info-prev-reference)
(define-key *info-mode-map* #\F14 'info-scroll-down)
(undefine-key *info-mode-map* #\M-TAB)
(undefine-key *info-mode-map* #\?)
(undefine-key *info-mode-map* #\0)
(undefine-key *info-mode-map* #\h)
(undefine-key *info-mode-map* #\M-s)
キーバインド `F13', `F14' は S-Tab, S-Spc に割り当てています。割り当てるには .xyzzy や siteinit.l に以下のように記述します。
;;;キー割り当て
;; S-Tab
(set-extended-key-translate-table exkey-S-tab #\F13)
;; S-Spc
(set-extended-key-translate-table exkey-S-space #\F14)
さらに自分は info.l の中身を書き換え、バッファ *info tag table* を見えないようにし、さらに、索引名を指定して移動時、索引名のマッチの仕方を変えたものを使っています。以下に書き換えた内容を示します。
287 行目辺りの info-find-node 関数内
(set-buffer (get-buffer-create "*info tag table*"))
上記を以下のように書き換え。
(set-buffer (get-buffer-create " *info tag table*"))
1062 行目辺りの info-exit 関数内
(and (find-buffer "*info tag table*")
(delete-buffer (marker-buffer *info-tag-table-marker*)))
上記を以下のように書き換え。
(and (find-buffer " *info tag table*")
(delete-buffer " *info tag table*"))
1246 行目辺りの info-index 関数内
(pattern (format nil "\n\\* \\([^\n:]*~A[^\n:]*\\):[ \t]*\\([^.\n]*\\)\\.[ \t]*\\([0-9]*\\)"
(regexp-quote topic)))
上記を以下のように書き換え。
(pattern (format nil "\n\\* \\(~A\\)[^\n:]*:[ \t]*\\([^.\n]*\\)\\.[ \t]*\\([0-9]*\\)"
(regexp-quote topic)))
この後の説明は、以上の設定での説明となります。