diff --git a/autoload/SpaceVim/mapping/guide.vim b/autoload/SpaceVim/mapping/guide.vim index 275cbd7b6..d04c33c52 100644 --- a/autoload/SpaceVim/mapping/guide.vim +++ b/autoload/SpaceVim/mapping/guide.vim @@ -605,6 +605,9 @@ call SpaceVim#mapping#guide#register_prefix_descriptions( call SpaceVim#mapping#guide#register_prefix_descriptions( \ g:spacevim_denite_leader, \ 'g:_spacevim_mappings_denite') +call SpaceVim#mapping#guide#register_prefix_descriptions( + \ g:spacevim_windows_leader, + \ 'g:_spacevim_mappings_windows') call SpaceVim#mapping#guide#register_prefix_descriptions( \ '[KEYs]', \ 'g:_spacevim_mappings_prefixs') diff --git a/autoload/SpaceVim/mapping/leader.vim b/autoload/SpaceVim/mapping/leader.vim index de1cf21f9..415c33da3 100644 --- a/autoload/SpaceVim/mapping/leader.vim +++ b/autoload/SpaceVim/mapping/leader.vim @@ -121,36 +121,50 @@ endfunction function! SpaceVim#mapping#leader#defindWindowsLeader(key) abort if !empty(a:key) - call zvim#util#defineMap('nnoremap', '[Window]', '', - \ 'Defind window prefix', 'normal [Window]') - call zvim#util#defineMap('nmap' , a:key, '[Window]', - \ 'Use ' . a:key . ' as window prefix', 'normal ' . a:key) - - call zvim#util#defineMap('nnoremap ', '[Window]p', - \ ':vsplit:wincmd w', - \ 'vsplit vertically,switch to next window','vsplit | wincmd w') - call zvim#util#defineMap('nnoremap ', '[Window]v', - \ ':split', 'split window', 'split') - call zvim#util#defineMap('nnoremap ', '[Window]g', - \ ':vsplit', 'vsplit window', 'vsplit') - call zvim#util#defineMap('nnoremap ', '[Window]t', - \ ':tabnew', 'Create new tab', 'tabnew') - call zvim#util#defineMap('nnoremap ', '[Window]o', - \ ':only', 'Close other windows', 'only') - call zvim#util#defineMap('nnoremap ', '[Window]x', - \ ':call zvim#util#BufferEmpty()', - \ 'Empty current buffer', 'call zvim#util#BufferEmpty()') - call zvim#util#defineMap('nnoremap ', '[Window]\', - \ ':b#', 'Switch to the last buffer','b#') - call zvim#util#defineMap('nnoremap ', '[Window]q', - \ ':close', 'Close current windows','close') - call zvim#util#defineMap('nnoremap ', '[Window]Q', - \ ':call SpaceVim#mapping#close_current_buffer()', - \ 'delete current windows', - \ 'call SpaceVim#mapping#close_current_buffer()') - call zvim#util#defineMap('nnoremap ', '[Window]c', - \ ':call SpaceVim#mapping#clearBuffers()', - \ 'Clear all the buffers', 'call SpaceVim#mapping#clearBuffers()') + exe 'nnoremap [Window] :LeaderGuide "' . + \ a:key . '"' + exe 'nmap ' .a:key . ' [Window]' + let g:_spacevim_mappings_windows = {} + nnoremap [Window]p + \ :vsplit:wincmd w + let g:_spacevim_mappings_windows.p = ['vsplit | wincmd w', + \ 'vsplit vertically,switch to next window'] + nnoremap [Window]v + \ :split + let g:_spacevim_mappings_windows.v = ['split', + \ 'split window'] + nnoremap [Window]g + \ :vsplit + let g:_spacevim_mappings_windows.g = ['vsplit', + \ 'vsplit window'] + nnoremap [Window]t + \ :tabnew + let g:_spacevim_mappings_windows.t = ['tabnew', + \ 'create new tab'] + nnoremap [Window]o + \ :only + let g:_spacevim_mappings_windows.o = ['only', + \ 'Close other windows'] + nnoremap [Window]x + \ :call zvim#util#BufferEmpty() + let g:_spacevim_mappings_windows.x = ['call zvim#util#BufferEmpty()', + \ 'Empty current buffer'] + nnoremap [Window]\ + \ :b# + let g:_spacevim_mappings_windows['\'] = ['b#', + \ 'Switch to the last buffer'] + nnoremap [Window]q + \ :close + let g:_spacevim_mappings_windows.q = ['close', + \ 'Close current windows'] + nnoremap [Window]Q + \ :call SpaceVim#mapping#close_current_buffer() + let g:_spacevim_mappings_windows.Q = ['call SpaceVim#mapping#close_current_buffer()', + \ 'delete current windows'] + nnoremap [Window]c + \ :call SpaceVim#mapping#clearBuffers() + let g:_spacevim_mappings_windows.c = ['call SpaceVim#mapping#clearBuffers()', + \ 'Clear all the buffers'] endif endfunction @@ -304,6 +318,8 @@ function! SpaceVim#mapping#leader#getName(key) abort return '[g]' elseif a:key == 'z' return '[z]' + elseif a:key == g:spacevim_windows_leader + return '[WIN]' else return '' endif @@ -315,6 +331,8 @@ function! SpaceVim#mapping#leader#defindKEYs() abort call extend(g:_spacevim_mappings_prefixs[g:spacevim_unite_leader], g:_spacevim_mappings_unite) let g:_spacevim_mappings_prefixs[g:spacevim_denite_leader] = {'name' : '+Denite prefix'} call extend(g:_spacevim_mappings_prefixs[g:spacevim_denite_leader], g:_spacevim_mappings_denite) + let g:_spacevim_mappings_prefixs[g:spacevim_windows_leader] = {'name' : '+Window prefix'} + call extend(g:_spacevim_mappings_prefixs[g:spacevim_windows_leader], g:_spacevim_mappings_windows) endfunction