xyzzy で common lisp hyperspec を引いてみる (2)

ココに書いたやつの続き。

hyperspecのコマンドとしては、hyperspechyperspec-format がある。
でも ふつうに書いた .xyzzy ("user"パッケージ)からは見えなくて、hyperspec::hyperspec とかしないといけない。hyperspec.l を見る限り、ちゃんと export されているんだが、実に不思議。(←パッケージが分かってない)

というわけで M-x で呼ぶときは M-x hyperspec ではなくて、M-x hyperspec::hyperspec としなければならない。

まあ、見えないなら見えないで、同じ名前で新しくコマンドを作ってやった。

(defun hyperspec ()
  "hyperspec をWWWブラウザで開く。ポイント位置が文字列なら、format文字を引く。"
  (interactive)
  (if (eq (parse-point-syntax) :string)
      (call-interactively 'hyperspec::hyperspec-format)
    (call-interactively 'hyperspec::hyperspec)))

これを M-x hyperspec として呼ぶと、

となる。

hyperspec::hyperspec-format は format 関数で使う文字を調べるのに使える。
たとえば、

(format nil "~D個見つかりました。" count)

の、"D"にポイントを置いて M-x hyperspec とすると、Dが十進表示だということが分かる。
これは意外と便利。でもなんでか、"~%"は引けない。なんでか。