I always work on multiple projects at the same time. The breakdown of the number of files I have is as follows

  Project   |   Files
--------------------------
  Thesis         20
  Simulator      50
  Plots          30
  Graphs         30
  Website        500+

Having all of these files in one window is cumbersome. There are several options, and I will discuss their drawbracks, or dare I say their Achilles Heel.

  1. Split Windows I could split vim into 5 windows, one for each project, but I might as well be coding through a pinhole. I have actually never been a fan of split windows, except for cases where you are constantly comparing and editing two related files. Also I don't find navigating in two dimensions as seamless as in the horizontal direction only.

  2. Tabs Tabs, or rather viewports foolishly called tabs, seem to be exactly for this kind of problem, but they don't provide restrictions for buffers to use. For example, if I'm in my Thesis tab, I want to navigate only those 20 buffers, not all 500+ website related buffers as well. As I am saving these as sessions, it could potentially lead to problems if I accidentally switch to a website buffer in my Thesis tab, exit, then upon entering I have two website tabs. This is further problematic because I have set local directories (:lcd) for each tab.

  3. Terminal Tabs Using the Terminal tabs ensures that that buffers in each tab remain independent. However, each vim session can no longer share information. I can't yank text from one terminal to the other (I suppose I could yank into the + register). I also can no longer use :buffdo on all the buffers. Also, I like the fact that I can save all of my vim tabs to a single session.

I know SO is anathema to public discussion, so I will

Edit
Report