ctags(1) FreeBSD 一般コマンドマニュアル

ctags

前のページ 上に戻る 次のページ

ctags




解説

     ctags は、指定された C, Pascal, Fortran, YACC, lex, lisp のソースから、
     ex(1) コマンド用のタグファイルを作成します。タグファイルは、指定されたオ
     ブジェクトが一群のファイル中のどの場所にあるかを示すものです。タグファイ
     ルの各行はオブジェクトの名前、定義されているファイル、オブジェクトの定義
     を見つけるための検索パターンを含み、各々は空白で区切られています。この
     tags ファイルを用いることにより、 ex(1) でこれらのオブジェクトが定義され
     ている場所をすばやく見つけることができます。 ctags に与えられるオプション
     によりますが、オブジェクトは subroutine 、 typedef 、 define 、 struct 、
     enum 、 union から構成されます。

     -B      後方検索パターン (?...?) を用います。

     -F      前方検索パターン (/.../) を用います(デフォルト)。

     -a      既存の tags ファイルに追加します。

     -d      引数を持たない #define に関してもタグを作成します。引数を持つ
             #define は自動的にタグが作成されます。

     -f tagsfile
             tagsfile で指定されたファイル名でタグファイルを生成します。デフォ
             ルトでは tags というファイル名でタグファイルを生成します。

     -t      typedef, struct, union, enum 宣言のタグを生成します。

     -u      tags ファイル内の指定されたファイルに関する情報を更新します。すな
             わち、関係するファイルへのすべての参照が削除され、新しいタグ情報
             がファイルに追加されます。 (注意: このオプションはあまりスピード
             のでないような実装しかおこなわれていません。単に tags ファイルを
             再構築した方が早く終了するでしょう。)

     -v      vgrind(1) 形式のファイル一覧が標準出力に出力されます。この一覧は
             オブジェクト名、ファイル名、1 ページあたり 64 行とした場合のペー
             ジ番号から構成されます。出力は辞書式の順番でソートされているの
             で、この後に sort(1) を通した方がよいでしょう。次のように使いま
             す。

                   ctags -v files | sort -f > index
                   vgrind -x index

     -w      診断用メッセージを表示しないようにします。

     -x      ctags はオブジェクト名、行番号、ファイル名、その行の内容からなる
             一覧を作成し、それを標準出力に出力します。これはオフラインでも読
             みやすいように印刷できる簡単な関数一覧として利用できます。

     .c.h で終わる名前のファイルは、 C 言語のソースファイルとみなされ、 C
     の形式の関数・マクロ定義が検索されます。 .y で終わる名前のファイルは、
     YACC のソースファイルとみなされます。 .l で終わる名前のファイルは、最初の
     空白でない文字が `;' か `(' か `[' であれば lisp のファイルであるとみなさ
     tags  デフォルトで出力されるタグファイル


診断

     ctags はエラーが発生すると 1 を返し、それ以外では 0 を返します。同じ名前
     のオブジェクトが複数出てきてもエラーとはみなされません。


関連項目

     ex(1), vi(1)


バグ

     FORTRAN と Pascal 用の B>関B>数(function) 、 B>サB>ブB>ルB>ーB>チB>ン(subroutine) 、 B>手B>続
     B>き(procedure) の認識にはとても単純な方法を用いています。ブロック構造が解
     釈できないので、異なるブロックに同じ名前の Pascal 手続きが存在するとうま
     く動作しません。 ctags は Pascal の型(type)も理解しません。

     C か Pascal か FORTRAN かを判断する方法はとりあえず動いている、という程度
     のものです。

     ctags はきちんと整形された入力に頼っています。また、ソースファイルに文法
     的な間違いがあると簡単に混乱してしまいます。文法的に間違っていなくても混
     乱する場合があります。例えば、 #ifdef を理解しないので(バグではなく仕様で
     す)、 #ifdef 内に括弧のつりあっていないコードがあると混乱してしまいます。
     同様に、定義が複数行にわたっている場合、オブジェクトの先頭行ではなく最終
     行が検索パターンにマッチします。複数行にわたる typedef に関しても同様で
     す。


歴史

     ctags コマンドは 3.0BSD から登場しました。

FreeBSD 4.4                      June 6, 1993                      FreeBSD 4.4

ABELNET VPSサービス