In Using vim's tabs like buffers:
This is not how vim's tabs are designed to be used. In fact, they're misnamed. A better name would be "viewport" or "layout", because that's what a tab is -- it's a different layout of windows of ALL of your existing buffers.
If each tab in vim is just a different layout of all existing buffers (so doing :ls
in each tab, shows the same list), isn't the existence of tabs in vim useless? If I can use plugins to handle buffers like minibufexplorer and such, why do tabs exist? Shouldn't at least buffers opened in a tab be shown when doing :ls
only on that tab (acting somehow like a "workspace" feature)?
I think that having multiple tabs with different files opened, but when trying to do :bn
on the tabs it goes to all opened buffers, it becomes a mess. Some people like to open different tabs for each "domain" of problem when developing, but I to me it would be really useful if it was possible to have a different buffer list for each tab in Vim.
(I have search SO a lot, and couldn't find WHY tabs exist, only "stop using tabs in vim like tabs in others editors, use buffers instead", so why do t开发者_开发技巧abs in vim were implemented? That's why I don't think this question is a duplicate)
Summarizing... How do you feel about this subject - usefulness of tabs in Vim when programming? How do you use it?
Tabs can each have their own working directory which makes grouping and working with similar groups of files much more convenient.
Also, directly from :help tabpage
:
Tabs are also a nice way to edit a buffer temporarily without changing
the current window layout. Open a new tab page, do whatever you want
to do and close the tab page.
I use tabs often, and use them to logically group files.
For instance, I'll open views or HTML in one tab, in another have the associated controllers and another has the associated models. Then I'll save out the layout using :mksession!
and reload it later with the -S
flag.
Other times I'll use tabs to keep one of vim's help pages open just so it's immediately available.
I think the main thing is tabs allow you to organize your buffers in a different way than using split windows and that flexibility allows vim to work with more people's brains, because we all think differently.
This answer to a related question might help: Using Vim's tabs like buffers
I normally use the -O
flag to open files in split windows, but if you insist on opening them in separate tabs you can use -p
. I prefer splits because I can easily see two separate files side by side, something you can't do with tabs.
And finally, here's some key defs I use to make it easy to move between splits:
" Switch between window splits using big J or K and expand the split to its
" full size.
"
" Move vertically in the window through the horizontal splits...
map <C-J> <C-w>j<C-w>_
map <C-K> <C-w>k<C-w>_
" Move horizontally in the window through the vertical splits...
map <C-H> <C-w>h<C-w>\|
map <C-L> <C-w>l<C-w>\|
I normally use tabs when my current view is split as much as it can while still allowing me to read and program efficiently. Most of the time it is there so that I have quick access to the information of that file (generally some kind of include file).
I rarely use tabs for actual development but rather a placeholder for information that I want to occasionally look at.
So normaly I have
Tab0 -> source file and test file
Tab1 -> include file and sometimes a related interface file
精彩评论