2012-02-17 5 views
-1

ctags -R dirName、vim -tタグは非常に強力です。これらの2つのコマンドの後に、そのプロジェクトのコード間をナビゲートできるようになりました。特定の関数のコード:tag functionNameを使用していますが、この操作にはまだいくつかの落とし穴があります。通常、va_start()などの関数呼び出しを含むソースコードがありますが、dirNameディレクトリには含まれません。この関数では生成されず、va_start()の定義にナビゲートすることはできませんが、この関数にナビゲートする必要がありますか?そのコードを見つける方法?私はva_start()がどこに正確に定義されているのか知りません。第三者のシステム機能または機能のためのctagsインデックスを生成するにはどうすればよいですか?なぜvim -t ctagsで十分ではありませんか?私が望む機能にジャンプすることはできません

+0

va_start()の単純検索を使用することはできませんか? – hovanessyan

+0

はい、Googleや他の検索エンジンで検索できますが、va_start()の定義にジャンプしてva_start()のコードを読み取ることです – thinke365

答えて

4

「ctags -R dirName」を使用している場合は、ディレクトリdirNameの内容のシンボルのみを索引付けします。

"va_args"はC標準ライブラリのヘッダであるstdarg.hで定義されています。

外部ライブラリのシンボルを使用するたびに同じ問題が発生します。

したがって、すべてのシンボルを使用できるようにするには、プログラムに加えて、外部ライブラリ用のコードのインデックスを作成する必要があります。

それは意味:

  1. ソースコードが利用可能であるべきであるあなたは、ファイルは、それが解析されるべきである、あなたのシステム上で見つかったら

  2. (ケースは常にありません)あなたの "タグ"ファイルに含まれています。

あなたが実行した後にそうctags -R projectPathあなたは、/ usr /自分のタグファイルに含めるのすべてのコンテンツを追加するctags -Ra /usr/includeを実行することができます。

さらに一般的には、ctags -Ra librarySourcePathのような処理をして、プログラムで使用されているすべてのシンボルを取得できます。

編集: /usr/includeにはたくさんのファイルが含まれている可能性がありますので、tagファイルのサイズが大幅に増加する可能性があります。その結果、シンボルを検索してジャンプするたびに、はるかに遅くなる可能性があります!

+0

'stdarg.h 'はSTLの一部ですか? ??その答えに+1を加えてください。タグの生成は遅くなりますが、vimはタグファイルが最初にソートされていると仮定してタグを見つけようとします。そうであれば、タグに到達するのに必要な時間はログ(タグの数)に依存するので、遅くすべきではありません。 – Benoit

+0

@Benoît:私の悪い、私はそれを修正します:) –

+0

@XavierT。関数の定義がその位置にないので、いくつかのファイルを修正し、formmerインデックスが正しくない場合、-Raはそのような種類のインデックスをリフレッシュしますか? – thinke365

関連する問題