3

VimでCtagsをセットアップしています。
私の現在の設定は次のとおりです。

set tags=./tags;/
set tags+=~/.ctags/*/tags

これは基本的にtags現在のディレクトリからまでのファイルを検索し、内部ディレクトリ/も検索します。ここでは、さまざまなディレクトリでさまざまなプロジェクトを並べ替えています。tags~/.ctagstags

これで、次の場合を除いて、すべてが正常に機能します。-次のように定義された2つのタグファイルがあります-~/.ctags/ruby/tagsおよび~/.ctags/php/tags -PHPプロジェクトで作業していCTRL+]て、Rubyプロジェクトのタグに移動します(上記で定義した2番目のルールのため)-内部で関連するタグを検索することを期待してい~/.ctags/php/tagsました-代わりに内部で一致を見つけました~/.ctags/ruby/tags-したがって、動作。

~/.ctags/php/tagsそれで、 PHPで作業しているときにのみ内部を検索し~/.ctags/ruby/tags、rubyで作業しているときにのみ検索し、で作業している~/.ctags/xxxx/tagsときに言うようにVimに依頼できますか?xxxx

よろしく

4

2 に答える 2

6

私の.vimrcファイルでそれを行った方法は、ローカルtags変数を設定することです。

augroup TagFileType
    autocmd!
    autocmd FileType * setl tags<
    autocmd FileType * exe 'setl tags+=~/.ctags/' . &filetype . '/tags'
augroup END

これにより、ファイルを開くたびに、グローバルtags変数の現在の内容がローカルtags変数にコピーされ、追加~/.ctags/[filetype]/tagsされます。これは、phpバッファーでは検索のみ~/.ctags/php/tagsが行われ、rubyバッファーでは検索されることを意味し~/.ctags/ruby/tagsます。すべてのバッファーで検索するタグがある場合は、tagsそれらを指すようにグローバル変数を設定すると、すべてのバッファーにロードされます。

于 2012-10-16T20:08:11.137 に答える
2

Daanのソリューションは良さそうです。

タグを自動生成するeasytagsプラグインを確認することをお勧めします。オプションで、ファイルタイプに基づくことができます。

于 2012-10-16T21:08:38.100 に答える