CTAGS
Section: User Commands (1)
索引
jman
BSD mandoc
索引
名称
ctags
- tags
ファイルを作成する
索引
書式
ctags
[-BFTaduwvx
]
[-f tagsfile
]
file ...
索引
解説
は、指定された C, Pascal, Fortran,
yacc(1),
lex(1),
Lisp のソースから、
ex(1)
コマンド用の
tags
ファイルを作成します。
タグファイルは、指定されたオブジェクトが一群のファイル中の
どの場所にあるかを示すものです。
タグファイルの各行はオブジェクトの名前、定義されているファイル、
オブジェクトの定義を見つけるための検索パターンを含み、
各々は空白で区切られています。
この
tags
ファイルを用いることにより、
ex(1)
でこれらのオブジェクトが定義されている場所をすばやく見つけることが
できます。
に与えられるオプションによりますが、オブジェクトは
subroutine, typedef, define, struct, enum, union から
構成されます。
次のオプションを使用可能です:
- -B
-
後方検索パターン
(?...?
)
を用います。
- -F
-
前方検索パターン
(/.../
)
を用います(デフォルト)。
- -T
-
typedefs, structs, unions, enums に関してタグを作成しません。
- -a
-
既存の
tags
ファイルに追加します。
- -d
-
引数を持たない
#define
に関してもタグを作成します。引数を持つ
#define
は自動的にタグが作成されます。
- -f tagsfile
-
tagsfile
で指定されたファイル名でタグファイルを生成します。
デフォルトでは
tags
というファイル名でタグファイルを生成します。
- -u
-
tags
ファイル内の指定されたファイルに関する情報を更新します。
すなわち、関係するファイルへのすべての参照が削除され、新しいタグ情報が
ファイルに追加されます。
(注意: このオプションはあまりスピードのでないような実装しか
おこなわれていません。単に
tags
ファイルを再構築した方が早く終了するでしょう。)
- -v
-
vgrind(1)
形式のファイル一覧が標準出力に出力されます。
この一覧はオブジェクト名、ファイル名、1 ページあたり 64 行とした場合の
ページ番号から構成されます。
出力は辞書式の順番でソートされているので、この後に
sort(1)
を通した方がよいでしょう。次のように使います。
ctags -v files | sort -f > index
vgrind -x index
- -w
-
診断用メッセージを表示しないようにします。
- -x
-
はオブジェクト名、行番号、ファイル名、その行の内容からなる一覧を作成し、
それを標準出力に出力します。
これはオフラインでも読みやすいように印刷できる簡単な関数一覧として
利用できます。
.c
や
.h
で終わる名前のファイルは、 C 言語のソースファイルとみなされ、
C の形式の関数・マクロ定義が検索されます。
.y
で終わる名前のファイルは、
yacc(1)
のソースファイルとみなされます。
.l
で終わる名前のファイルは、最初の空白でない文字が
`;'
,
`('
,
`['
のいずれかであれば
Lisp のファイルであるとみなされ、そうでなければ
lex(1)
のファイルとみなされます。
その他のファイルは、まず Pascal か Fortran の定義が含まれるか
どうかがチェックされ、含まれない場合には C 形式の定義が検索されます。
C 言語の場合、
``main
''
は特別に扱われ、元のソースファイルのパス名部分と末尾の
.c
の部分を取り除いたファイル名に対し、その先頭に
`M'
を付加したものをオブジェクト名とします。
これにより、同じディレクトリに複数のプログラムがある場合でも
を実用的に使うことができます。
yacc(1)
と
lex(1)
のファイルには特殊なタグがあります。
``yyparse
''
は
yacc(1)
ファイルの第二セクションの始まりを示し、
``yylex
''
は
lex(1)
ファイルの第二セクションの始まりを示します。
索引
関連ファイル
- tags
-
デフォルトで出力されるタグファイル
索引
診断
ユーティリティは、エラーが発生すると 1 を返し、それ以外では 0 を返します。
同じ名前のオブジェクトが複数出てきてもエラーとはみなされません。
索引
互換性
-t
オプションは何もしません。
typedefs, enums, structs, unions に関してデフォルトでタグを作成しなかった、
以前のバージョンの
との互換性のためです。
索引
関連項目
ex(1),
vi(1)
索引
規格
ユーティリティは
St -p1003.1-2001
に準拠しています。
索引
歴史
ユーティリティは
BSD 3.0
から登場しました。
索引
バグ
Fortran と Pascal 用の
関数(function)、サブルーチン(subroutine)、手続き(procedure)
の認識にはとても単純な方法を用いています。
ブロック構造が解釈できないので、異なるブロックに同じ名前の Pascal 手続きが
存在するとうまく動作しません。
ユーティリティは Pascal の型(type)も理解しません。
C か Pascal か Fortran かを判断する方法は
とりあえず動いている、という程度のものです。
ユーティリティはきちんと整形された入力に頼っています。
また、ソースファイルに文法的な間違いがあると
簡単に混乱してしまいます。
文法的に間違っていなくても混乱する場合があります。
例えば、
#ifdef
を理解しないので(バグではなく仕様です)、
#ifdef
内に括弧のつりあっていないコードがあると混乱してしまいます。
同様に、定義が複数行にわたっている場合、オブジェクトの先頭行ではなく
最終行が検索パターンにマッチします。
複数行にわたる
typedef
に関しても同様です。
索引
Index
- 名称
-
- 書式
-
- 解説
-
- 関連ファイル
-
- 診断
-
- 互換性
-
- 関連項目
-
- 規格
-
- 歴史
-
- バグ
-
Time: 07:06:03 GMT, January 12, 2009