2006-12-03

Emacs で Scheme の関数の説明を info から参照する

Emacs には info-lookup-symbol というコマンドが用意されていて、これを使うと、カーソル下の関数の解説を info で読むことができる。例えば、C のソース・ファイルを開いて、関数 strtod の上で M-x info-lookup-symbol してみる。すると、libc.info の「Parsing of Floats」というノードが開かれる。

info-lookup-symbol を使うには、まず、その言語の info が存在すること。そしてメジャー・モードと info の対応表が必要になる。Gauche という Scheme 処理系をインストールすると、プログラミング言語 Scheme の日本語 info マニュアルが手に入る。そこで、その Gauche info を Scheme モードから使う設定を紹介しませう。

なお、コマンド info-lookup-symbol は、Emacs-21 系では C-h TAB に、Emacs 22.* では C-h S にキーバインドされている。

Gauche info のインストール

次のコマンドを実行して、Gauche info がインストールされているかどうかを確かめやう。

  • C-h i m Gauche (ja) RET

これで、Gauche のマニュアルが開いたら、この節で読むことは何もない。次の節へお進みあれ。

Gauche のマニュアルが開かなかった? なら、root になって /usr/local/info/dir を開きませう。そして、ファイルの後ろの方に次の一行を追加する。保存するのを忘れないように。

* Gauche (ja): (gauche-refj.info).  An R5RS Scheme implementation.

Emacs を再起動して、もう一度上のコマンドを実行しませう。Gauche info は読める? 読めれば OK。読めないやうなら、それは貴方のシステムに Gauche が入っていない可能性が高い。次の記事を読んで、Gauche をインストールしませう。

インストール後に /usr/local/info/dir の編集をして、Gauche info を読めるやうにする。

Scheme モードで Gauche info を開く設定

Emacs に、Scheme モードから Gauche info を開くことを教えてやらなくてはならない。詳しい解説が下記リンク先にある。

ただ、上記ページの設定は少々マニアック。ぼくは .emacs に次のコードを追加している。

(eval-after-load "info-look"
  '(progn
     (info-lookup-add-help
      :topic 'symbol
      :mode 'scheme-mode
      :regexp "[^()`',\"\t\n]+"
      :ignore-case t
      :doc-spec '(("(gauche-refj.info)Index - 手続きと構文索引" nil
                   "^ -+ [^:]+: *" "[\n ]")
                  ("(gauche-refj.info)Index - モジュール索引" nil
                   "^ -+ [^:]+: *" "[\n ]")
                  ("(gauche-refj.info)Index - クラス索引" nil
                   "^ -+ [^:]+: *" "[\n ]")
                  ("(gauche-refj.info)Index - 変数索引" nil
                   "^ -+ [^:]+: *" "[\n ]"))
      :parse-rule "[^()`',\" \t\n]+"
      :other-modes nil)

     (info-lookup-add-help
      :mode 'inferior-scheme-mode
      :other-modes '(scheme-mode))
))

これで、Scheme の分からない関数があれば、すぐに Gauche の info をひける。Scheme 使いは、是非お試しあれ。便利。

1 comment:

  1. rubyのinfoファイル復活しておくれよぉぉぉ

    ReplyDelete