This plugin gives each tabpage it's own buffer list.
The idea is to make it easier to manage large number of buffers by keeping them grouped separately in workspaces.
- Each tabpage represents a workspace with it's own buffer list.
- Workspaces are numbered starting with 1, like tabpages, but their numbers remain static as they are opened and closed — don't conflate these two sets of numbers.
:ls,:bn,:bpwill use buffers from current workspace. Third party buffer switchers should work as is.
- Copy
workspace.vimfile to vim plugin directory. - Enable
hiddenoption. - Add
globalstosessionoptionsoption (for session saving/loading). - See bellow for sample vimrc snippet.
| Command | Description |
|---|---|
:WS n |
Switch to workspace n (it is a number). Create it, when necessary. |
:WSc [n] |
Close current workspace or n. |
:WSmv n |
Rename current workspace to n. |
:WSbmv n |
Move current buffer to workspace n. |
:WSbrm [n] |
Remove buffer from current workspace. Or delete it, if it is open in only current workspace. |
All commands try to preserve window layout, while handling buffers.
Sample snippet for vimrc to setup options and mappings:
" Plugin needs these options
set hidden
set sessionoptions+=globals
" Switch among workspaces 1 through 10
map <silent> <leader>1 :WS 1<CR>
map <silent> <leader>2 :WS 2<CR>
map <silent> <leader>3 :WS 3<CR>
map <silent> <leader>4 :WS 4<CR>
map <silent> <leader>5 :WS 5<CR>
map <silent> <leader>6 :WS 6<CR>
map <silent> <leader>7 :WS 7<CR>
map <silent> <leader>8 :WS 8<CR>
map <silent> <leader>9 :WS 9<CR>
map <silent> <leader>0 :WS 10<CR>
" Alternate between current and previous workspaces
map <silent> <leader>` :call WS_Backforth()<CR>
" Show info line about workspaces
map <silent> <leader><space> :call WS_Line()<CR>