aboutsummaryrefslogtreecommitdiff
path: root/vim/bundle/tlib_vim/autoload/tlib/tab.vim
diff options
context:
space:
mode:
Diffstat (limited to 'vim/bundle/tlib_vim/autoload/tlib/tab.vim')
-rwxr-xr-xvim/bundle/tlib_vim/autoload/tlib/tab.vim49
1 files changed, 49 insertions, 0 deletions
diff --git a/vim/bundle/tlib_vim/autoload/tlib/tab.vim b/vim/bundle/tlib_vim/autoload/tlib/tab.vim
new file mode 100755
index 0000000..fa6bb8d
--- /dev/null
+++ b/vim/bundle/tlib_vim/autoload/tlib/tab.vim
@@ -0,0 +1,49 @@
+" @Author: Tom Link (micathom AT gmail com?subject=[vim])
+" @Website: http://www.vim.org/account/profile.php?user_id=4037
+" @License: GPL (see http://www.gnu.org/licenses/gpl.txt)
+" @Revision: 31
+
+
+" Return a dictionary of bufnumbers => [[tabpage, winnr] ...]
+function! tlib#tab#BufMap() "{{{3
+ let acc = {}
+ for t in range(tabpagenr('$'))
+ let bb = tabpagebuflist(t + 1)
+ for b in range(len(bb))
+ let bn = bb[b]
+ let bd = [t + 1, b + 1]
+ if has_key(acc, bn)
+ call add(acc[bn], bd)
+ else
+ let acc[bn] = [bd]
+ endif
+ endfor
+ endfor
+ return acc
+endf
+
+
+" Find a buffer's window at some tab page.
+function! tlib#tab#TabWinNr(buffer) "{{{3
+ let bn = bufnr(a:buffer)
+ let bt = tlib#tab#BufMap()
+ let tn = tabpagenr()
+ let wn = winnr()
+ let bc = get(bt, bn)
+ if !empty(bc)
+ for [t, w] in bc
+ if t == tn
+ return [t, w]
+ endif
+ endfor
+ return bc[0]
+ endif
+endf
+
+
+function! tlib#tab#Set(tabnr) "{{{3
+ if a:tabnr > 0
+ exec a:tabnr .'tabnext'
+ endif
+endf
+