diff --git a/autoload/SpaceVim/mapping/space.vim b/autoload/SpaceVim/mapping/space.vim index 5197dcddd..5454ac369 100644 --- a/autoload/SpaceVim/mapping/space.vim +++ b/autoload/SpaceVim/mapping/space.vim @@ -6,3 +6,24 @@ function! SpaceVim#mapping#space#init() abort nnoremap [SPC]tn :set nu! let g:_spacevim_mappings_space.t.n = ['set nu!', 'toggle line number'] endfunction + +function! SpaceVim#mapping#space#def(m, keys, cmd, desc, is_cmd) abort + if a:is_cmd + let cmd = ':' . a:cmd . '' + let lcmd = a:cmd + else + let cmd = a:cmd + let feedkey_m = a:m =~# 'nore' ? 'n' : 'm' + if a:cmd =~? '^' + let lcmd = 'call feedkeys("\' . a:cmd . '", "' . feedkey_m . '")' + else + let lcmd = 'call feedkeys("' . a:cmd . '", "' . feedkey_m . '")' + endif + endif + exe a:m . ' [SPC]' . join(a:keys) . ' ' . cmd + if len(a:keys) == 2 + let g:_spacevim_mappings_space[a:keys[0]][a:keys[1]] = [lcmd, a:desc] + elseif len(a:keys) == 1 + let g:_spacevim_mappings_space[a:keys[0]] = [lcmd, a:desc] + endif +endfunction diff --git a/config/plugins/vim-airline.vim b/config/plugins/vim-airline.vim index 977b8258f..313df60f3 100644 --- a/config/plugins/vim-airline.vim +++ b/config/plugins/vim-airline.vim @@ -49,6 +49,17 @@ call SpaceVim#mapping#def('nmap', '8', 'AirlineSelectTab8', 'Switc call SpaceVim#mapping#def('nmap', '9', 'AirlineSelectTab9', 'Switch to airline tab 9', '', 'window 9') call SpaceVim#mapping#def('nmap', '-', 'AirlineSelectPrevTab', 'Switch to previous airline tag', '', 'window previous') call SpaceVim#mapping#def('nmap', '+', 'AirlineSelectNextTab', 'Switch to next airline tag', '', 'window next') +call SpaceVim#mapping#space#def('nmap', [1], 'AirlineSelectTab1', 'window 1', 0) +call SpaceVim#mapping#space#def('nmap', [2], 'AirlineSelectTab2', 'window 2', 0) +call SpaceVim#mapping#space#def('nmap', [3], 'AirlineSelectTab3', 'window 3', 0) +call SpaceVim#mapping#space#def('nmap', [4], 'AirlineSelectTab4', 'window 4', 0) +call SpaceVim#mapping#space#def('nmap', [5], 'AirlineSelectTab5', 'window 5', 0) +call SpaceVim#mapping#space#def('nmap', [6], 'AirlineSelectTab6', 'window 6', 0) +call SpaceVim#mapping#space#def('nmap', [7], 'AirlineSelectTab7', 'window 7', 0) +call SpaceVim#mapping#space#def('nmap', [8], 'AirlineSelectTab8', 'window 8', 0) +call SpaceVim#mapping#space#def('nmap', [9], 'AirlineSelectTab9', 'window 9', 0) +call SpaceVim#mapping#space#def('nmap', ['-'], 'AirlineSelectPrevTab', 'window previous', 0) +call SpaceVim#mapping#space#def('nmap', ['+'], 'AirlineSelectNextTab', 'window next', 0) if !exists('g:airline_symbols') let g:airline_symbols = {} endif