blob: fa6bb8d0f743831ec67a4044e01308d63bede0b2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
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
|