aboutsummaryrefslogtreecommitdiffhomepage
path: root/vim/init/basic.vim
diff options
context:
space:
mode:
Diffstat (limited to 'vim/init/basic.vim')
-rw-r--r--vim/init/basic.vim59
1 files changed, 15 insertions, 44 deletions
diff --git a/vim/init/basic.vim b/vim/init/basic.vim
index e18d51f..751b3ac 100644
--- a/vim/init/basic.vim
+++ b/vim/init/basic.vim
@@ -17,57 +17,28 @@ augroup END
17" For Buffer and Tab {{{ 17" For Buffer and Tab {{{
18augroup tabinfo 18augroup tabinfo
19 au! 19 au!
20 let g:tab_group = {}
21 " BufEnter {{{
22 function! AddBufToTabGroup(tab_group)
23 let l:tabId = tabpagenr()
24 let l:bufnr = bufnr()
25
26 if has_key(a:tab_group, l:tabId)
27 for v in a:tab_group[l:tabId]
28 if v == l:bufnr
29 return
30 endif
31 endfor
32 call add(a:tab_group[l:tabId], l:bufnr)
33 else
34 let a:tab_group[l:tabId] = [l:bufnr]
35 endif
36 20
37 endfunc 21 " t:bufs holds buffer numbers
38 autocmd BufWinEnter * if &buflisted | call AddBufToTabGroup(g:tab_group) | endif 22 autocmd BufWinEnter * if &buflisted | call AddBufToTab() | endif
39 " }}} 23 autocmd BufDelete * call RemoveBufFromTabs()
40 " BufDelete {{{
41 function! RemoveBufFromTabGroup(tab_group)
42 let l:tabId = tabpagenr()
43
44 if has_key(a:tab_group, l:tabId)
45 let l:new_tab_group = {}
46
47 for [k, tab_list] in items(a:tab_group)
48 let l:list = []
49 for buf in tab_list
50 if buflisted(buf) > 0 && buf != expand('<abuf>')
51 call add(l:list, buf)
52 end
53 endfor
54 if !empty(l:list)
55 let l:new_tab_group[k] = l:list
56 endif
57 endfor
58 let g:tab_group = l:new_tab_group
59
60 endif
61 24
25 function! AddBufToTab()
26 if !has_key(t:, 'bufs') | let t:['bufs'] = [] | endif
27 call add(t:bufs, bufnr()) | call sort(t:bufs) | call uniq(t:bufs)
28 endfunc
29 function! RemoveBufFromTabs()
30 for tab in gettabinfo()
31 call filter(tab.variables.bufs, "v:val != "..expand('<abuf>'))
32 endfor
62 endfunc 33 endfunc
63 autocmd BufDelete * call RemoveBufFromTabGroup(g:tab_group) 34
64 "}}} 35 nnoremap T :echo t:bufs<CR>
65augroup END 36augroup END
66"}}} 37"}}}
67" GERERNAL {{{ 38" GERERNAL {{{
68 39
69let mapleader = "," " Always use comma as leader key 40let mapleader = "," " Always use comma as leader key
70set nocompatible " Disable vi compatible, today is 20XX 41set nocompatible " Disable vi compatible, today is 2RemoveBufFromTabXX
71set path=.,** " Allow :find with completion 42set path=.,** " Allow :find with completion
72set mouse= " Disable mouse selection 43set mouse= " Disable mouse selection
73set winaltkeys=no " Allow alt key for mapping 44set winaltkeys=no " Allow alt key for mapping
@@ -194,7 +165,7 @@ augroup END
194set foldenable " Allow fold 165set foldenable " Allow fold
195set foldmethod=indent " Fold contents by indent 166set foldmethod=indent " Fold contents by indent
196set foldlevel=2 167set foldlevel=2
197set fillchars+=foldopen:▽,foldsep:│,foldclose:▶ 168set fillchars=fold:\ ,foldopen:▽,foldsep:│,foldclose:▶
198let g:defaut_foldcolumn = "" 169let g:defaut_foldcolumn = ""
199if has('nvim') 170if has('nvim')
200 let g:defaut_foldcolumn = "auto:3" 171 let g:defaut_foldcolumn = "auto:3"