title: How can I run ctags in a large code base?
body: <p>Assuming I have a code directory structure as follows:  </p>
  
  <pre><code>/top  
     /second  
         /core  
             a.pl  
             b.pl  
             c.pl  
         /common  
             d.pl  
             e.pl  
         /util  
             f.pl  
             g.pl  
             h.pl    
  </code></pre>
  
  <p>Where should I run the <code>ctags</code> so that I can jump to function definitions via <code>vi</code>?  </p>
  
  <p>For example I had:  </p>
  
  <pre><code>/dir
     /perl  
        a.pl  
  </code></pre>
  
  <p>and I run in <code>dir</code> the command <code>ctags -R perl</code> but in <code>a.pl</code> I could not jump to a function definition that existed in the same file.<br>
  If I did <code>ctags -R .</code> <strong>inside</strong> the <code>perl</code> directory it worked.  </p>
  
  <p>So I can not understand the pattern. Should I run <code>ctags</code> in <code>core, common,util</code>? What if my code base is huge? Would I really need to run it in each directory?  </p>