5

次のようなコード ディレクトリ構造があると仮定します。

/top  
   /second  
       /core  
           a.pl  
           b.pl  
           c.pl  
       /common  
           d.pl  
           e.pl  
       /util  
           f.pl  
           g.pl  
           h.pl    

ctags経由で関数定義にジャンプできるようにするには、どこで を実行すればよいviですか?

たとえば、私は持っていました:

/dir
   /perl  
      a.pl  

dirコマンドで実行しましたctags -R perla.pl、同じファイルに存在する関数定義にジャンプできませんでした。ディレクトリ
で 行った場合、機能しました。ctags -R . perl

だからパターンが理解できない。私は実行する必要がctagsありcore, common,utilますか?コード ベースが巨大な場合はどうなりますか? 本当に各ディレクトリで実行する必要がありますか?

4

2 に答える 2

9

ファイルtagsは、コードの最初の共通の祖先 (このsecond場合は ) で生成され、 $ ctags -R ..

プロジェクトのどこにいても、「現在のディレクトリ」が何であるかに関係なく、~/.vimrcVim が常にファイルを見つけられるようにするために、次の行を your に追加することをお勧めします。tags

set tags=./tags;/,tags;/

これは、@glts の回答のように、興味深いひねりを加えたものと同じように機能します。この;/部分のために、Vim はファイルを検索し/ますtags。を編集していると仮定すると、Vim はにあるファイルg.plを正しく使用します。tagssecond

:h tags
:h ctags
于 2013-05-19T15:59:48.170 に答える