ctagsは、階層の上位のディレクトリからシンボルにタグを付けることもできますか、それとも現在のディレクトリとサブディレクトリのタグのみを作成するように制限されていますか?
基本的に、シンボルの相互参照のようなVisual Studioを探しています。これは、エイリアンのソースコードフローを理解するのに非常に役立ちます。
Vimでない場合は、他のどのエディターを使用する必要がありますか?
ありがとう
Ctagsはサブディレクトリにのみ再帰します。ctags -R .
ただし、プロジェクトのホームディレクトリで実行するだけで、プロジェクトtags
全体のファイルが作成されます。
Vimで指定するタグファイルは1つだけではありません。これは他の答えに代わるものです。次のようなことができます。
set tags=tags,~/wintags,c:/path/to/moretags/etc
したがって、ローカルタグを更新するだけの場合は、モノリシックタグファイルの再生成に時間をかける必要はありません。
別の回答でのOPのコメントに関して、
はい、それは正しいですが、proj / dir1 / def.cというファイルを開いて、proj / dir2 / abc.cで定義されている関数名でctrl+]を押すと、タグが見つかりません:(
'proj'ルートですべてのプロジェクトに対して1つのタグファイルを作成することもできます。
set tags=tags;c:/path/to/proj
tags
これは、現在の場所からディレクトリ階層を上るときに見つかった最初のファイルを使用します。
これらの2つの手法を組み合わせて、プロジェクトローカルタグファイルと、それほど頻繁に更新されない「グローバル」タグファイルを作成できます。
それを行うように要求するための同様のユーザーインターフェイスを持っているため、実際に「ディレクトリを下に移動」を指定する必要がありますが、これcscope
は非常に優れたツールであり、ctags が行うすべてのことともう少し多くのことを行います。
ctags (まあ、少なくとも exctags) は、必要な数のディレクトリ ツリーのタグを作成できます。実行するだけ
exctags -R dir1 dir2 ...
次に、vim は必要なすべてのシンボルを認識します。たとえば、ディレクトリの 1 つを/usr/include
独自のソース ディレクトリに追加することができます。
ファイルvim path/to/file.c
を作成したのと同じディレクトリから実行してください。tags