メジャーモードのEmacsLispなどでは、Infoモードで閲覧可能なinfoファイルが添付されている場合があります。以下では、後からインストールしたEmacsLispのinfoファイルを"M-x info"から閲覧可能にする為の原理や手順をまとめてみました。
M-x infoのinfoモードでは、Infoファイル(foo.info等)の存在するディレクトリのリストを次の順で生成します。
最初に 1. が読み込まれ、Infoモードの起動時にそれをもとにInfo-directory-listが構築されます。
では実際にM-x infoで表示される一連の「メニュー」はどこに記述されているのか。それは、Infoディレクトリリストに登録されているディレクトリ中の「dir」ファイルです。
例えば「/usr/share/info」ディレクトリが登録されていたとすると、「/usr/share/info/dir」ファイルに件のメニューがInfoモード特有のフォーマットで記述されています。
このフォーマットは次のように記述されます。
^_ File: dir Node: Top This is the top of the INFO tree * Menu: Texinfo documentation system User Install Documents * Mew: (mew). Mail Client On Emacs. * Mew(Japanese): (mew.jis). Mail Clinet On Emacs(Japanese Ver).
最初の「^_」から「Texinfo ... system」までは、"M-x info" で表示するための「おまじない」と考えて下さい。
「User Install ...」からが、本論です。最初の「User...」の部分はカテゴリーとして認識される部分で、M-x info なら下線+太字表示されている部分です。
続いて「* Mew:」。ここで、いわゆる「Infoファイルへのリンク」が設定されます。
アスタリスク 半角空白 表題 コロン 半角空白
です。
次の「(mew)」が、「使用するInfoファイルの指定」です。末尾の".info"は省略可能なようです。
この例だと、実際は「mew.info」ファイルが参照されるようになっています。
半角括弧始まり Infoファイル名から.infoを省いたもの 半角括弧終わり ピリオド
がフォーマットです。最後のピリオドを忘れないで下さい。
ファイル名の部分は、パス指定も可能です。
最後のフィールドは説明文になります。
以上のような内容のdirファイルを、Info-default-directory-listに登録されているディレクトリ中に配置します。最終的にそれらのdirファイルはマージされ、M-x infoで表示される形式に整えられます。
;; Emacs and Other Info files (require 'info) (setq Info-default-directory-list (cons (expand-file-name "/home/foobar/external/info/") Info-default-directory-list))
添付ファイルは、/home/foobar/external/info/dirファイルです。
同ディレクトリ中にDDDやMewのinfoファイルが存在するイメージです。