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

名称
書式
解説
関連ファイル
診断
互換性
関連項目
規格
歴史
バグ

jman



Time: 07:06:03 GMT, January 12, 2009