mirror of
https://github.com/SpaceVim/SpaceVim.git
synced 2025-02-09 14:20:06 +08:00
Add statusline
This commit is contained in:
parent
7d6574f2b1
commit
c9e5d83b1b
@ -69,7 +69,6 @@ function! s:self.hide_in_normal(name) abort
|
|||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
if &termguicolors || has('gui_running')
|
if &termguicolors || has('gui_running')
|
||||||
let g:wsd = self.group2dict('Normal')
|
|
||||||
let bg = self.group2dict('Normal').guibg
|
let bg = self.group2dict('Normal').guibg
|
||||||
let group.guifg = bg
|
let group.guifg = bg
|
||||||
let group.guibg = bg
|
let group.guibg = bg
|
||||||
|
@ -126,7 +126,7 @@ function! SpaceVim#autocmds#VimEnter() abort
|
|||||||
if get(g:, '_spacevim_statusline_loaded', 0) == 1
|
if get(g:, '_spacevim_statusline_loaded', 0) == 1
|
||||||
set laststatus=2
|
set laststatus=2
|
||||||
call SpaceVim#layers#core#statusline#def_colors()
|
call SpaceVim#layers#core#statusline#def_colors()
|
||||||
set statusline=%!SpaceVim#layers#core#statusline#get(1)
|
setlocal statusline=%!SpaceVim#layers#core#statusline#get(1)
|
||||||
endif
|
endif
|
||||||
if get(g:, '_spacevim_tabline_loaded', 0) == 1
|
if get(g:, '_spacevim_tabline_loaded', 0) == 1
|
||||||
call SpaceVim#layers#core#tabline#def_colors()
|
call SpaceVim#layers#core#tabline#def_colors()
|
||||||
|
@ -62,6 +62,13 @@ function! s:filesize() abort
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! SpaceVim#layers#core#statusline#get(...) abort
|
function! SpaceVim#layers#core#statusline#get(...) abort
|
||||||
|
if &filetype ==# 'vimfiler'
|
||||||
|
return '%#SpaceVim_statusline_a# ' . s:winnr() . ' %#SpaceVim_statusline_a_b#'
|
||||||
|
\ . '%#SpaceVim_statusline_b# vimfiler %#SpaceVim_statusline_b_c#'
|
||||||
|
elseif &filetype ==# 'tagbar'
|
||||||
|
return '%#SpaceVim_statusline_a# ' . s:winnr() . ' %#SpaceVim_statusline_a_b#'
|
||||||
|
\ . '%#SpaceVim_statusline_b# tagbar %#SpaceVim_statusline_b_c#'
|
||||||
|
endif
|
||||||
if a:0 > 0
|
if a:0 > 0
|
||||||
return s:active()
|
return s:active()
|
||||||
else
|
else
|
||||||
@ -104,8 +111,8 @@ endfunction
|
|||||||
function! SpaceVim#layers#core#statusline#init() abort
|
function! SpaceVim#layers#core#statusline#init() abort
|
||||||
augroup status
|
augroup status
|
||||||
autocmd!
|
autocmd!
|
||||||
autocmd WinEnter * setlocal statusline=%!SpaceVim#layers#core#statusline#get(1)
|
autocmd BufWinEnter,WinEnter * setlocal statusline=%!SpaceVim#layers#core#statusline#get(1)
|
||||||
autocmd WinLeave * setlocal statusline=%!SpaceVim#layers#core#statusline#get()
|
autocmd BufWinLeave,WinLeave * setlocal statusline=%!SpaceVim#layers#core#statusline#get()
|
||||||
augroup END
|
augroup END
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
@ -17,6 +17,7 @@ let s:file = SpaceVim#api#import('file')
|
|||||||
let s:BUFFER = SpaceVim#api#import('vim#buffer')
|
let s:BUFFER = SpaceVim#api#import('vim#buffer')
|
||||||
|
|
||||||
let g:_spacevim_tabline_loaded = 1
|
let g:_spacevim_tabline_loaded = 1
|
||||||
|
let s:buffers = s:BUFFER.listed_buffers()
|
||||||
|
|
||||||
function! s:tabname(id) abort
|
function! s:tabname(id) abort
|
||||||
let id = s:messletters.bubble_num(a:id, g:spacevim_buffer_index_type) . ' '
|
let id = s:messletters.bubble_num(a:id, g:spacevim_buffer_index_type) . ' '
|
||||||
@ -68,23 +69,23 @@ function! SpaceVim#layers#core#tabline#get() abort
|
|||||||
let t .= '%=%#SpaceVim_tabline_a_b#'
|
let t .= '%=%#SpaceVim_tabline_a_b#'
|
||||||
let t .= '%#SpaceVim_tabline_a# Tabs'
|
let t .= '%#SpaceVim_tabline_a# Tabs'
|
||||||
else
|
else
|
||||||
let buffers = s:BUFFER.listed_buffers()
|
let s:buffers = s:BUFFER.listed_buffers()
|
||||||
if len(buffers) == 0
|
if len(s:buffers) == 0
|
||||||
return ''
|
return ''
|
||||||
endif
|
endif
|
||||||
let ct = bufnr('%')
|
let ct = bufnr('%')
|
||||||
let pt = index(buffers, ct) > 0 ? buffers[index(buffers, ct) - 1] : -1
|
let pt = index(s:buffers, ct) > 0 ? s:buffers[index(s:buffers, ct) - 1] : -1
|
||||||
if ct == get(buffers, 0, -1)
|
if ct == get(s:buffers, 0, -1)
|
||||||
let t = '%#SpaceVim_tabline_a# '
|
let t = '%#SpaceVim_tabline_a# '
|
||||||
else
|
else
|
||||||
let t = '%#SpaceVim_tabline_b# '
|
let t = '%#SpaceVim_tabline_b# '
|
||||||
endif
|
endif
|
||||||
for i in buffers
|
for i in s:buffers
|
||||||
if i == ct
|
if i == ct
|
||||||
let t .= '%#SpaceVim_tabline_a#'
|
let t .= '%#SpaceVim_tabline_a#'
|
||||||
endif
|
endif
|
||||||
let name = fnamemodify(bufname(i), ':t')
|
let name = fnamemodify(bufname(i), ':t')
|
||||||
let id = s:messletters.bubble_num(index(buffers, i) + 1, g:spacevim_buffer_index_type)
|
let id = s:messletters.bubble_num(index(s:buffers, i) + 1, g:spacevim_buffer_index_type)
|
||||||
let icon = s:file.fticon(name)
|
let icon = s:file.fticon(name)
|
||||||
if !empty(icon)
|
if !empty(icon)
|
||||||
let name = icon . ' ' . name
|
let name = icon . ' ' . name
|
||||||
@ -105,6 +106,18 @@ function! SpaceVim#layers#core#tabline#get() abort
|
|||||||
endfunction
|
endfunction
|
||||||
function! SpaceVim#layers#core#tabline#config() abort
|
function! SpaceVim#layers#core#tabline#config() abort
|
||||||
set tabline=%!SpaceVim#layers#core#tabline#get()
|
set tabline=%!SpaceVim#layers#core#tabline#get()
|
||||||
|
for i in range(1, 9)
|
||||||
|
exe "call SpaceVim#mapping#space#def('nmap', [" . i . "], 'b" . i . "', 'window " . i . "', 1)"
|
||||||
|
endfor
|
||||||
|
call SpaceVim#mapping#space#def('nmap', ['-'], 'bprevious', 'window previous', 1)
|
||||||
|
call SpaceVim#mapping#space#def('nmap', ['+'], 'bnext', 'window next', 1)
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! SpaceVim#layers#core#tabline#jump(id) abort
|
||||||
|
if len(s:buffers) > a:id + 1
|
||||||
|
let bid = s:buffers[a:id - 1]
|
||||||
|
exe 'b' . bid
|
||||||
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! SpaceVim#layers#core#tabline#def_colors() abort
|
function! SpaceVim#layers#core#tabline#def_colors() abort
|
||||||
|
Loading…
Reference in New Issue
Block a user