(add-hook '*before-find-file-hook*
#'(lambda (x)
(let ((type (pathname-type x)))
(cond ((string-equal type "info")
(require "info")
(info x)
(selected-buffer))))))
上記を .xyzzy か siteinit.l に記述することにより、拡張子 .info のファイルを開くと自動的に Info-mode となります。
(defun get-index ()
"索引文字列を取得"
(let (beg end)
(save-excursion
(setf end (prog2 (skip-syntax-spec-forward "w_j") (point)))
(setf beg (prog2 (skip-syntax-spec-backward "w_j") (point))))
(unless (= beg end)
(buffer-substring beg end))))
(defun view-info-reference ()
"reference.info参照"
(interactive)
(require "info")
(let ((index (get-index)))
(when index
(delete-other-windows)
(split-window nil)
(info "~/info/reference/reference.info")
(info-index index)
(info+-fontify "~/etc/lisp" nil))))
(global-set-key #\S-F1 'view-info-reference)
上記を .xyzzy か siteinit.l に記述することにより、S-F1 キーで ~/info/reference/reference.info にある reference.info の該当ノードを表示し、etc フォルダにあるキーワードファイル lisp を読み込み、色付けを行います。