diff options
Diffstat (limited to 'vim/vimrcs/statusline.vim')
-rw-r--r-- | vim/vimrcs/statusline.vim | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/vim/vimrcs/statusline.vim b/vim/vimrcs/statusline.vim new file mode 100644 index 0000000..7bdee34 --- /dev/null +++ b/vim/vimrcs/statusline.vim | |||
@@ -0,0 +1,69 @@ | |||
1 | set guitablabel=%{ShortTabLabel()} | ||
2 | function ShortTabLabel () | ||
3 | let bufnrlist = tabpagebuflist (v:lnum) | ||
4 | let label = bufname (bufnrlist[tabpagewinnr (v:lnum) -1]) | ||
5 | let filename = fnamemodify (label, ':t') | ||
6 | return filename | ||
7 | endfunction | ||
8 | |||
9 | set tabline=%!MyTabLine() | ||
10 | function MyTabLine() | ||
11 | let s = '' | ||
12 | for i in range(tabpagenr('$')) | ||
13 | " 选择高亮 | ||
14 | if i + 1 == tabpagenr() | ||
15 | let s .= '%#TabLineSel#' | ||
16 | else | ||
17 | let s .= '%#TabLine#' | ||
18 | endif | ||
19 | " 设置标签页号 (用于鼠标点击) | ||
20 | let s .= '%' . (i + 1) . 'T' | ||
21 | " MyTabLabel() 提供完整路径标签 MyShortTabLabel 提供文件名标签 | ||
22 | let s .= ' %{MyShortTabLabel(' . (i + 1) . ')} ' | ||
23 | endfor | ||
24 | " 最后一个标签页之后用 TabLineFill 填充并复位标签页号 | ||
25 | let s .= '%#TabLineFill#%T' | ||
26 | " 右对齐用于关闭当前标签页的标签 | ||
27 | if tabpagenr('$') > 1 | ||
28 | let s .= '%=%#TabLine#%999Xclose' | ||
29 | endif | ||
30 | return s | ||
31 | endfunction | ||
32 | " 文件名标签 | ||
33 | function MyShortTabLabel(n) | ||
34 | let buflist = tabpagebuflist(a:n) | ||
35 | let label = bufname (buflist[tabpagewinnr (a:n) -1]) | ||
36 | let filename = fnamemodify (label, ':t') | ||
37 | return filename | ||
38 | endfunction | ||
39 | "完整路径标签 | ||
40 | function MyTabLabel(n) | ||
41 | let buflist = tabpagebuflist(a:n) | ||
42 | let winnr = tabpagewinnr(a:n) | ||
43 | return bufname(buflist[winnr - 1]) | ||
44 | endfunction | ||
45 | |||
46 | " 状态栏显示git分支函数 | ||
47 | function! GitBranch() | ||
48 | " 获取当前所在分支名,注意不要保留开头的*和行末的空符号 | ||
49 | let s:branch = system("git branch --no-color 2>/dev/null | sed -e '/^[^*]/d' -e 's/* \\(.*\\)/\\1/' | tr -d '\n' | tr -d ' '") | ||
50 | return strlen(s:branch) ? 'b: '.s:branch.'> ' : '' | ||
51 | endfunction | ||
52 | |||
53 | set laststatus=2 "显示状态栏(默认值为 1,无法显示状态栏) | ||
54 | set statusline=%f%m%r%h%w\ >\ %{GitBranch()}%=\ <\ %{&ff},\ %{&fenc}\ <\ %y\ <\ %l,%v\ <\ %p%%\ <\ lines=%L | ||
55 | |||
56 | function! CurDir() | ||
57 | let curdir = substitute(getcwd(), '/Users/amir/', "~/", "g") | ||
58 | return curdir | ||
59 | endfunction | ||
60 | |||
61 | "标签样式 | ||
62 | " TabLineFill tab pages line, where there are no labels | ||
63 | hi TabLineFill term=none | ||
64 | hi TabLineFill ctermfg=DarkGrey | ||
65 | hi TabLineFill guifg=#777777 | ||
66 | " TabLineSel tab pages line, active tab page label | ||
67 | hi TabLineSel term=inverse | ||
68 | hi TabLineSel cterm=none ctermfg=yellow ctermbg=Black | ||
69 | hi TabLineSel gui=none guifg=yellow guibg=Black | ||