Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>I don't think the tools are at fault, here. It's more how you use them.</p> <ol> <li><p>Tabs are not designed <em>at all</em> as file proxies like they are in others editors. Tabs are workspaces, allowing you to organize windows how you like them. They are the best candidates for your</p> <pre><code>Migrations Seeds ... </code></pre> <p>scenario.</p> <p>Here is one possible way to create a "Migration" tab:</p> <pre><code>:tabnew | lcd path/to/Migration </code></pre> <p>From there, all the windows you create in that tab will inherit the <code>Migration</code> working directory and every <code>:e</code>, <code>:sp</code>, <code>:vs</code> or even <code>:vim</code> will start from that working directory.</p> <p>Also, this will make NERDTree and netrw show the content of your local working directory by default.</p> <p>See <code>:help seeting-tabline</code> and <code>:help setting-guitablabel</code> if you want to change the name of the tab.</p></li> <li><p>You should use CtrlP's path mode to do the matching on the whole path rather than the filename:</p> <pre><code>fbruse </code></pre> <p>would match:</p> <pre><code>foo/bar/user </code></pre> <p>but not:</p> <pre><code>baz/vroom/user </code></pre> <p>With the tab setup above, CtrlP's suggestions should be restrained to the <code>Migration</code> directory, making it a lot faster.</p> <p>CtrlP is not perfect though: it can be slow in large projects so make sure you read the whole documentation.</p></li> <li><p>An "always on" list of open buffers may be a good idea when you have a small number of them but, like tabs, it obviously doesn't scale <em>at all</em>. It is vastly better to show the list when you actually want to switch buffers: less screen estate and brain cells wasted!</p></li> <li><p>Be aware, though, that while it is possible to define a window-local argument list, there's AFAIK no way to define a window-local buffer list. Since the argument list always leaks into the buffer list and the buffer list is global, buffer commands will always deal with the same quantity of buffers, no matter what tab you are in. Thus limiting the general usefulness of tabs.</p></li> <li><p>Files are not a <em>very</em> good metaphor for dealing with large projects: you must keep a complex symbol->file map in your head while your program is made of functions, classes, arrays, variables… not files.</p> <p>Using tags (<code>:help tags</code>) is a <em>very</em> convenient way to jump around your project:</p> <pre><code>:tag foo :tag bar&lt;Tab&gt; :ptag /baz&lt;Tab&gt; </code></pre> <p>And CtrlP's <code>:CtrlPTags</code> makes it almost fun.</p></li> </ol> <p>FWIW, tag-jumping is my favorite navigation technique and I usually don't use tabs or windows.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload