I use splits and vertical splits. Tabs are an option too, but I usually don't leave that many files open at once.
For browsing files inside vim I use NERDTree (or if I remember the filename :e <filename>). To quickly open the file's headerfile I use http://www.vim.org/scripts/script.php?script_id=31 - it takes only a :AS to open the file's header file (vice versa) in a new split. (Hint: Map a key to next split/window to switch fast between them. I remapped F1 for this purpose.)
If I really need to have many files open I just open a new tab/window in my terminal emulator. (There are also tabs in vim but I had not a chance to get used to the tab commands yet. gvim/macvim offer more abstract tab support - the tabs are real vim tabs but they are represented as UI tabs. So you can still yank/paste between them but have a more Visual Studio'ish feeling.)
For browsing files inside vim I use NERDTree (or if I remember the filename :e <filename>). To quickly open the file's headerfile I use http://www.vim.org/scripts/script.php?script_id=31 - it takes only a :AS to open the file's header file (vice versa) in a new split. (Hint: Map a key to next split/window to switch fast between them. I remapped F1 for this purpose.)
If I really need to have many files open I just open a new tab/window in my terminal emulator. (There are also tabs in vim but I had not a chance to get used to the tab commands yet. gvim/macvim offer more abstract tab support - the tabs are real vim tabs but they are represented as UI tabs. So you can still yank/paste between them but have a more Visual Studio'ish feeling.)