Emacsは常に、選択されたタグテーブルを最大で1つもちます。タグテーブルにたいして機能するすべてのコマンドは、選択されたタグテーブルをまず使用します。タグテーブルを選択するには引数としてタグテーブルファイル名を読み取るM-x visit-tags-tableをタイプします。この引数のデフォルトはデフォルトディレクトリーからディレクトリーを上方へ再帰的に検索してTAGSという名前のファイルを含む最初のディレクトリーです。
Emacsは、タグテーブルを使用するまでは実際にタグテーブルの内容を読み込みません。visit-tags-table
が行うのは、ファイル名を変数tags-file-name
に格納することだけです。この変数の初期値はnil
です。この変数の値は、タグテーブルにたいして機能するすべてのコマンドに、使用するタグテーブルファイル名を知らせます。
選択されたタグテーブルに加えて、Emacsは共に使用するいくつかのタグテーブルのリストを保守しています。たとえばライブラリーを使うプログラムを扱っているなら、Emacsが両方から容易に識別子を見つけられるように、そのプログラムの他にも利用可能なライブラリーのタグテーブルも欲しいかもしれません。識別子が選択されたタグテーブルになかったり、タグコマンドに必要となるソースファイルにたいする記述がない場合には、このコマンドはタグテーブルのカレントリストから他のすべてのタグテーブルの使用を試みます。
他のタグテーブルがすでにロードされているときにvisit-tags-table
を使用した場合には選択肢が与えられます。つまり、タグテーブルのカレントリストに新しいタグを追加するか、あるいはカレントリストを破棄して新しいリストを開始することもできます。タグコマンドは、カレントリストのすべてのタグテーブルを使用します。新しいリストを開始した場合、他のもののかわりに、新しいタグテーブルが使用されます。カレントリストに新しいタグテーブルを追加した場合、それは他のものと同じように使用されます。
以下のようにして、変数tags-table-list
にディレクトリー名のリストをセットすることにより、タグテーブルのリストを正確に指定できます:
(setq tags-table-list '("~/.emacs.d" "/usr/local/lib/emacs/src"))
This tells the tags commands to look at the TAGS files in your ~/.emacs.d directory and in the /usr/local/lib/emacs/src directory. The order depends on which file you are in and which tags table mentions that file.
tags-file-name
とtags-table-list
の両方をセットしてはいけません。