5

(Cタグについてお詫び申し上げます。構文の強調表示のために行いました。これはvimに関する質問です。タグを削除する必要があると私が思うよりも知識が豊富な人は、削除してください)

次のディレクトリ構造があるとします。

Directory ~/Code/Test/     containing file1.c file2.c file4.c and Sub 
Directory ~/Code/Test/Sub/ containing file3.c

file1.c:

#include <stdio.h>
#include "file2.c"
#include "Sub/file3.c"

void function1();

int main (int argc, char *argv[]) {
   function1();
   function2();
   function3();
   return 0;
}

void function1() {
   printf("1\n");
}

file2.c:

#include <stdio.h>

void function2();

void function2() {
   printf("2\n");
}

サブ/file3.c:

#include "../file4.c"

void function3();

void function3() {
   printf("3\n");
   function4();
}

file4.c:

#include <stdio.h>

void function4();

void function4() {
   printf("4\n");
}

これらのファイルのいずれかで、他のファイルから使用する関数の定義にジャンプできる必要があります。たとえば、file1 は file2 にジャンプできる必要があり、file1 はディレクトリを file3 にジャンプできる必要があり、file3 はディレクトリを file4 にジャンプできる必要があります。すべてのファイルが printf の定義にジャンプできるはずです。また、これを行うために C ライブラリ実装のタグを Test ディレクトリにコピーする必要もありません。

私はこれをどうやって行うことができるのだろうかと思っています。私はモノリシックなタグファイルにはあま​​り興味がありません。vim全体のタグファイルを持つことは私を怖がらせます。ディレクトリごとのタグファイルは私を悩ませます。プロジェクトごとのタグ ファイルは耐えられます。しかし、私が本当に欲しいのは、ソース ファイルごとのタグ ファイルと、vim が参照するタグ ファイルを指定する方法です。

理想的には、ビジュアルスタジオのように、何でもctrl-]して、範囲内にあるものに基づいてvimを正しい定義にジャンプさせたいと思っています。私はこれができないのではないかと疑い始めており、もしそうなら (プラグインのいくつかの組み合わせを介して) 非常に遅くなるでしょう。 」 そこで数週間の時流。はい、間違いなく私が出会った中で最も強力なテキスト エディターですが、IDE としては非常に洗練されていません。「定義に移動」コマンドを使用すると、それがローカル変数であろうと、別のファイルであろうと、標準ライブラリなどであろうと、正しい定義に移動することを期待しています。 java ファイルを ac ファイルに変換します。また、別のコマンドを使用して、ローカル変数の定義にジャンプする必要があります...何ですか? (何か理由があるのなら知りたいです)

私はset tags=./tags自分の .vimrc でおかしなことを認識しており、それが私がこれまで行ってきたことです。しかし、別のプロジェクトの別のアセンブリとソース ファイルをリンクする大規模な作業を行う場合、これは拡張できません。

(vim に公平を期すために、Visual Studio では、アセンブリ間をジャンプして定義を見つけることもできませんが、少なくとも、「アセンブリを読み込んで」実際の探しているソースコード)

4

1 に答える 1