From bc35463da0668df7493f24e6bd78d1807409031d Mon Sep 17 00:00:00 2001 From: wsdjeg Date: Sun, 15 Jan 2017 08:11:23 +0800 Subject: [PATCH] Fix custom layer support --- autoload/SpaceVim.vim | 6 +++--- autoload/SpaceVim/default.vim | 33 +++++++++++++++------------------ autoload/SpaceVim/mapping.vim | 17 +++++++++++++++-- 3 files changed, 33 insertions(+), 23 deletions(-) diff --git a/autoload/SpaceVim.vim b/autoload/SpaceVim.vim index cb19c68cd..05f6a293f 100644 --- a/autoload/SpaceVim.vim +++ b/autoload/SpaceVim.vim @@ -199,21 +199,21 @@ function! SpaceVim#loadCustomConfig() abort endif if !empty(custom_confs) - exe 'source ' . custom_confs[0] if isdirectory('.SpaceVim.d') exe 'set rtp ^=' . expand('.SpaceVim.d') endif + exe 'source ' . custom_confs[0] if filereadable(custom_glob_conf) && g:spacevim_force_global_config - exe 'source ' . custom_glob_conf if isdirectory(expand('~/.SpaceVim.d/')) set runtimepath^=~/.SpaceVim.d endif + exe 'source ' . custom_glob_conf endif elseif filereadable(custom_glob_conf) - exe 'source ' . custom_glob_conf if isdirectory(expand('~/.SpaceVim.d/')) set runtimepath^=~/.SpaceVim.d endif + exe 'source ' . custom_glob_conf endif endfunction diff --git a/autoload/SpaceVim/default.vim b/autoload/SpaceVim/default.vim index 65bf86ee7..6262fe5a0 100644 --- a/autoload/SpaceVim/default.vim +++ b/autoload/SpaceVim/default.vim @@ -323,44 +323,41 @@ function! SpaceVim#default#SetMappings() abort nnoremap :call chat#qq#OpenMsgWin() "weixin hot key nnoremap :call chat#weixin#OpenMsgWin() - "chatting hot key - nnoremap :call chat#chatting#OpenMsgWin() + call SpaceVim#mapping#def('nnoremap ','',':call chat#chatting#OpenMsgWin()','Open chatting room','call chat#chatting#OpenMsgWin()') - "format current buffer - nnoremap g= :call zvim#format() + call SpaceVim#mapping#def('nnoremap ','g=',':call zvim#format()','format current buffer','call zvim#format') - - call zvim#util#defineMap('vnoremap', 'S', "y:execute @@:echo 'Sourced selection.'", + call SpaceVim#mapping#def('vnoremap', 'S', "y:execute @@:echo 'Sourced selection.'", \ 'Sourced selection.', \ "echo 'Use S to sourced selection.'") - call zvim#util#defineMap('nnoremap','S',"^vg_y:execute @@:echo 'Sourced line.'",'Source line', + call SpaceVim#mapping#def('nnoremap','S',"^vg_y:execute @@:echo 'Sourced line.'",'Source line', \ "echo 'Use S to sourced line.'") - call zvim#util#defineMap('nnoremap ', '', ':call zvim#util#CopyToClipboard()', + call SpaceVim#mapping#def('nnoremap ', '', ':call zvim#util#CopyToClipboard()', \ 'Copy buffer absolute path to X11 clipboard','call zvim#util#CopyToClipboard()') - call zvim#util#defineMap('nnoremap ', '', + call SpaceVim#mapping#def('nnoremap ', '', \ ':call zvim#util#CopyToClipboard(1)', \ 'Yank the github link of current file to X11 clipboard', \ 'call zvim#util#CopyToClipboard(1)') - call zvim#util#defineMap('nnoremap ', '', + call SpaceVim#mapping#def('nnoremap ', '', \ ':call zvim#util#CopyToClipboard(2)', \ 'Yank the github link of current line to X11 clipboard', \ 'call zvim#util#CopyToClipboard(2)') - call zvim#util#defineMap('vnoremap ', '', + call SpaceVim#mapping#def('vnoremap ', '', \ ':call zvim#util#CopyToClipboard(3)', \ 'Yank the github link of current selection to X11 clipboard', \ 'call zvim#util#CopyToClipboard(3)') - call zvim#util#defineMap('nnoremap ', '', ':wincmd w', 'Switch to next window or tab','wincmd w') - call zvim#util#defineMap('nnoremap ', '', ':wincmd p', 'Switch to previous window or tab','wincmd p') - call zvim#util#defineMap('nnoremap ', 'q', ':call zvim#util#SmartClose()', + call SpaceVim#mapping#def('nnoremap ', '', ':wincmd w', 'Switch to next window or tab','wincmd w') + call SpaceVim#mapping#def('nnoremap ', '', ':wincmd p', 'Switch to previous window or tab','wincmd p') + call SpaceVim#mapping#def('nnoremap ', 'q', ':call zvim#util#SmartClose()', \ 'Smart close windows', \ 'call zvim#util#SmartClose()') - call zvim#util#defineMap('nnoremap ', 'qr', 'q', 'Toggle recording','') - call zvim#util#defineMap('nnoremap ', 'sv', ':split:wincmd p:e#', + call SpaceVim#mapping#def('nnoremap ', 'qr', 'q', 'Toggle recording','') + call SpaceVim#mapping#def('nnoremap ', 'sv', ':split:wincmd p:e#', \'Open previous buffer in split window' , 'split|wincmd p|e#') - call zvim#util#defineMap('nnoremap ', 'sg', ':vsplit:wincmd p:e#', + call SpaceVim#mapping#def('nnoremap ', 'sg', ':vsplit:wincmd p:e#', \'Open previous buffer in vsplit window' , 'vsplit|wincmd p|e#') - call zvim#util#defineMap('nnoremap ', 'gf', ':call zvim#gf()', 'Jump to a file under cursor', '') + call SpaceVim#mapping#def('nnoremap ', 'gf', ':call zvim#gf()', 'Jump to a file under cursor', '') endfunction fu! s:tobur(num) abort diff --git a/autoload/SpaceVim/mapping.vim b/autoload/SpaceVim/mapping.vim index b9227e409..1593058c9 100644 --- a/autoload/SpaceVim/mapping.vim +++ b/autoload/SpaceVim/mapping.vim @@ -1,3 +1,16 @@ -function! SpaceVim#mapping#def() abort - +let g:unite_source_menu_menus = + \ get(g:,'unite_source_menu_menus',{}) +let g:unite_source_menu_menus.CustomKeyMaps = {'description': + \ 'Custom mapped keyboard shortcuts [unite]'} +let g:unite_source_menu_menus.CustomKeyMaps.command_candidates = + \ get(g:unite_source_menu_menus.CustomKeyMaps,'command_candidates', []) + +function! SpaceVim#mapping#def(type,key,value,desc,...) abort + exec a:type . ' ' . a:key . ' ' . a:value + let description = '➤ ' + \. a:desc + \. repeat(' ', 80 - len(a:desc) - len(a:key)) + \. a:key + let cmd = len(a:000) > 0 ? a:000[0] : a:value + call add(g:unite_source_menu_menus.CustomKeyMaps.command_candidates, [description,cmd]) endfunction