2012-01-09 10 views
3

私はCtagsが大好きですが、私は新しいメソッドを追加するたびにファイルを作り直す必要がありますが、それだけでなく、私のVIMセッションを再開する必要がある場合はさらに悪い私は、ルートフォルダで作成し、すべてのフォルダにアクセスできるようにするよりも、作業するすべてのディレクトリに対してCTagsファイルを作成する必要があることに気付きました。VIMの自動作成CTags

ヒントと推奨事項を教えてください。

+0

あなたはvimの中でのctagsを自動化に関する既存の問題をすでに見えたが、ここにあるしていることがあります。 //stackoverflow.com/questions/155449/vim-auto-generate-ctags – mwcz

答えて

6

私はすでにあなたが必要とするものを正確に行うためのプラグインを書いています:Indexer

これは、プロジェクト全体に対して痛みのない自動タグ生成を提供し、タグを最新の状態に保ちます。独立して使用することも、別のプラグインのアドオンとして使用することもできますproject.tar.gz

最初の方法では、あなたがこのよう~/.indexer_filesでプロジェクトを宣言することができます。

[CoolProject] 

/home/user/cool_project 

[AnotherProject] 
option:ctags_params = "--languages=c++" 

/home/user/another_project/src 
/home/user/another_project/lib 

そして、あなたは/home/user/cool_projectから任意のファイルを開くときに、すべてのこのプロジェクトは、ctagsのでインデックス化されます。タグはバックグラウンドで生成されるので、ctagsがタグを生成する間、待つ必要はありません。別のプロジェクトからタグを開くと、そのタグも生成されます。異なるプロジェクトのタグは決して混在しません。プロジェクトからファイルを保存すると、タグは自動的に更新されます。気にする必要はありません。ただ機能します。

詳細については、Indexer + Vimprjの使用方法を詳しく説明しているVim: convenient code navigation for your projectsの記事を参照してください。これにより

+0

このソリューションをお寄せいただき、ありがとうございます。 「プロジェクト」について詳しく説明できますか?あなたがプロジェクトについて話すとき、私は開発を行うフォルダについて話しています。また、各ファイルタイプを定義する代わりにワイルドカードを使用できますか? *。 * のではなく * 。 c、*。 h ... –

+0

はい、私は "プロジェクト"はあなたのソースファイルのディレクトリです。 (または、いくつかの異なるディレクトリ)。 –

2

あなた.vimrc

set tags=./tags,tags;$HOME 

にVimは、現在のディレクトリに、それは$HOMEに達するまで、最大、まず現在のファイルのディレクトリにtagsファイルを探します。

自動tags世代はあなたの.vimrcAutoTag様または1つのライナー付きプラグインを使用して行うことができます:http:

autocmd BufWritePost,FileWritePost *.js silent! !jsctags . & 
+0

タグファイルを別のディレクトリの下に置くこともできます。私の雇用場所では、各プロジェクトのルートの_localというディレクトリに多くの自動生成されたものを置いています。 'set tags = _local/tags; /'は、プロジェクトディレクトリの上で検索しても見つからない_localという名前のフォルダを探していても、うまく動作します。マインド私はまた、現在のバッファのディレクトリに常に 'lcd'を持っています。 –

+0

@ dash-tom-bang' set autochdir'を試してください。 – romainl

+0

正常に動作していれば 'autochdir'を使用していました。 :)私は具体的なことは覚えていませんが、数年前にvimを使い始めたときにはそれはありませんでした。 (Google検索では、最近の7.3ビルドで修正されたバグがありますが、私の解決策は確実に機能しています。http://vim.wikia.com/wiki/Set_working_directory_to_the_current_fileも参照してください) –

関連する問題