home ホーム search 検索 -  login ログイン  | reload edit datainfo version cmd icon diff delete  | help ヘルプ

Emacs/Infoファイルの追加

Emacs/Infoファイルの追加

Emacs / Infoファイルの追加
id: 364 所有者: msakamoto-sf    作成日: 2003-04-27 14:16:53
カテゴリ: Emacs 

メジャーモードのEmacsLispなどでは、Infoモードで閲覧可能なinfoファイルが添付されている場合があります。以下では、後からインストールしたEmacsLispのinfoファイルを"M-x info"から閲覧可能にする為の原理や手順をまとめてみました。

基本的な原理

M-x infoのinfoモードでは、Infoファイル(foo.info等)の存在するディレクトリのリストを次の順で生成します。

  1. Info-default-directory-list
  2. "M-x info" 時に Info-directory-list

最初に 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で表示される形式に整えられます。

実際にInfoディレクトリを追加してみる.emacs.el設定

;; 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ファイルが存在するイメージです。



プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2009-04-26 14:24:49
md5:420fb24729f787d0dd2307b94798de13
sha1:db8d4415d48fdb0b3a740b9c38633db4ad13bd52
コメント
コメントを投稿するにはログインして下さい。