Emacs の mode-info でリファレンスを読もう

こんな事が良くある。

  • 「fwrite の引数の順序忘れた」
  • 「assq の引数の順序忘れた」


man/info を使えば良いが少し面倒。


そんなときは Emacs の mode-info を使えば楽。
下のように libc や Gauche の info が簡単に Emacs で見られる。




というわけで mode-info --- Improved describe-function and describe-variable の設定手順。

mode-info

% mkdir -p ~/info/index
% cd ~/src
% wget http://www.namazu.org/~tsuchiya/elisp/mode-info-0.8.5.tar.gz
% tar zvxf mode-info-0.8.5.tar.gz
% cd mode-info-0.8.5
% ./configure && make
% sudo make install

.emacs

;;; mode-info
(add-to-list 'load-path "/usr/share/emacs/site-lisp/mode-info/")

(require 'mi-config)
(setq mode-info-index-directory "~/info/index")
(add-to-list 'Info-directory-list (expand-file-name "~/info"))
(add-to-list 'Info-directory-list (expand-file-name "~/info/glibc-2.3.2"))
(add-to-list 'Info-directory-list (expand-file-name "~/info/Gauche-0.8.13"))

(define-key global-map "\C-chf" 'mode-info-describe-function)
(define-key global-map "\C-chv" 'mode-info-describe-variable)
(define-key global-map "\M-." 'mode-info-find-tag)
(require 'mi-fontify)

(setq mode-info-class-alist
      '((elisp  emacs-lisp-mode lisp-interaction-mode)
        (libc   c-mode c++-mode)
        (make   makefile-mode)
        (perl   perl-mode cperl-mode eperl-mode)
        (ruby   ruby-mode)
        (gauche scheme-mode scheme-interaction-mode inferior-scheme-mode)))

info のセットアップ

glibc
% wget http://ftp.gnu.org/gnu/glibc/glibc-2.3.2.tar.bz2
% tar jvxf glibc-2.3.2.tar.bz2
% cd glibc-2.3.2/manual
% mkdir -p ~/info/glibc-2.3.2
% cp *\.info* ~/info/glibc-2.3.2
Gauche

Gauche を普通に ./configure && make して下さい。
makeinfo というツールをあらかじめ入れておく事。

% sudo apt-get install texinfo # for makeinfo
% cd src/Gauche-0.8.13/
% ./configure && make
% mkdir -p ~/info/Gauche-0.8.13/
% cp ~/src/Gauche-0.8.13/doc/gauche-refj.info* ~/info/Gauche-0.8.13/
その他

PerlRuby の info も使えるらしい。

インデックスファイル作成

Emacs を起動して M-x mode-info-make-all-indices。
これで ~/info/index に

--rw-r--r-- 1 taro taro 213798 2008-08-28 22:40 mi-gauche.idx
--rw-r--r-- 1 taro taro 123151 2008-08-28 22:40 mi-libc.idx

とインデックスファイルが出来る。

動作確認

C-c h f (または M-x mode-info-describe-function) で動作確認。

疑問

mode-info が開いた info バッファを閉じるにはどうしたらよいのだろう。
カーソルは編集中のソースのバッファにあるので q で閉じることも出来ない