diff --git a/autoload/SpaceVim.vim b/autoload/SpaceVim.vim index 498a8a628..723c7f48f 100644 --- a/autoload/SpaceVim.vim +++ b/autoload/SpaceVim.vim @@ -66,7 +66,7 @@ let g:spacevim_vim_plug_installed = 0 " > " let g:spacevim_plugin_bundle_dir = '~/.cache/vimplugs' " < -let g:spacevim_plugin_bundle_dir = $HOME. join(['', '.cache', 'vimfiles', ''], '/') +let g:spacevim_plugin_bundle_dir = $HOME. join(['', '.cache', 'vimfiles', ''], SpaceVim#api#import('file').separator) "" " Disable/Enable realtime leader guide, by default it is 0. " to enable this feature: diff --git a/autoload/SpaceVim/api.vim b/autoload/SpaceVim/api.vim new file mode 100644 index 000000000..f912ca5e4 --- /dev/null +++ b/autoload/SpaceVim/api.vim @@ -0,0 +1,8 @@ +function! SpaceVim#api#import(name) abort + let p = {} + try + let p = SpaceVim#api#{a:name}#get() + catch /^Vim\%((\a\+)\)\=:E117/ + endtry + return p +endfunction diff --git a/autoload/SpaceVim/api/file.vim b/autoload/SpaceVim/api/file.vim new file mode 100644 index 000000000..3660c60ac --- /dev/null +++ b/autoload/SpaceVim/api/file.vim @@ -0,0 +1,15 @@ +let s:file = {} +let s:system = SpaceVim#api#import('system') + +if s:system.isWindows + let s:file['separator'] = '\' +else + let s:file['separator'] = '/' +endif + +function! SpaceVim#api#file#get() abort + return deepcopy(s:file) +endfunction + + + diff --git a/autoload/SpaceVim/api/system.vim b/autoload/SpaceVim/api/system.vim new file mode 100644 index 000000000..ec767f308 --- /dev/null +++ b/autoload/SpaceVim/api/system.vim @@ -0,0 +1,12 @@ +let s:system = {} + +let s:system['isWindows'] = has('win16') || has('win32') || has('win64') + +let s:system['isLinux'] = has('unix') && !has('macunix') && !has('win32unix') + +let s:system['isOSX'] = has('macunix') + + +function! SpaceVim#api#system#get() abort + return deepcopy(s:system) +endfunction diff --git a/autoload/zvim/plug.vim b/autoload/zvim/plug.vim index c5916e479..bc05cfe16 100644 --- a/autoload/zvim/plug.vim +++ b/autoload/zvim/plug.vim @@ -1,6 +1,6 @@ let s:save_cpo = &cpo set cpo&vim -function! s:install_manager() +function! s:install_manager() abort " Fsep && Psep if has('win16') || has('win32') || has('win64') let s:Psep = ';' @@ -21,19 +21,19 @@ function! s:install_manager() \ .'https://github.com/' \ .'Shougo/neobundle.vim' \ . ' ' - \ . g:spacevim_plugin_bundle_dir + \ . fnameescape(g:spacevim_plugin_bundle_dir) \ . 'neobundle.vim' let g:spacevim_neobundle_installed = 1 else echohl WarningMsg - echom "You need install git!" + echom 'You need install git!' echohl None endif endif exec 'set runtimepath+=' - \ . g:spacevim_plugin_bundle_dir + \ . fnameescape(g:spacevim_plugin_bundle_dir) \ . 'neobundle.vim' - elseif g:spacevim_plugin_manager == 'dein' + elseif g:spacevim_plugin_manager ==# 'dein' "auto install dein if filereadable(expand(g:spacevim_plugin_bundle_dir) \ . join(['repos', 'github.com', @@ -42,21 +42,21 @@ function! s:install_manager() let g:spacevim_dein_installed = 1 else if executable('git') - exec '!git clone https://github.com/Shougo/dein.vim ' + exec '!git clone https://github.com/Shougo/dein.vim "' \ . g:spacevim_plugin_bundle_dir \ . join(['repos', 'github.com', - \ 'Shougo', 'dein.vim'], s:Fsep) + \ 'Shougo', 'dein.vim"'], s:Fsep) let g:spacevim_dein_installed = 1 else echohl WarningMsg - echom "You need install git!" + echom 'You need install git!' echohl None endif endif - exec 'set runtimepath+='.g:spacevim_plugin_bundle_dir + exec 'set runtimepath+='. fnameescape(g:spacevim_plugin_bundle_dir) \ . join(['repos', 'github.com', 'Shougo', \ 'dein.vim'], s:Fsep) - elseif g:spacevim_plugin_manager == 'vim-plug' + elseif g:spacevim_plugin_manager ==# 'vim-plug' "auto install vim-plug if filereadable(expand('~/.cache/vim-plug/autoload/plug.vim')) let g:spacevim_vim_plug_installed = 1 @@ -70,7 +70,7 @@ function! s:install_manager() let g:spacevim_vim_plug_installed = 1 else echohl WarningMsg - echom "You need install curl!" + echom 'You need install curl!' echohl None endif endif @@ -90,22 +90,22 @@ function! zvim#plug#begin(path) abort let g:unite_source_menu_menus.AddedPlugins.command_candidates = [] nnoremap lp :Unite -silent \ -winheight=17 -start-insert menu:AddedPlugins - if g:spacevim_plugin_manager == 'neobundle' + if g:spacevim_plugin_manager ==# 'neobundle' call neobundle#begin(a:path) - elseif g:spacevim_plugin_manager == 'dein' + elseif g:spacevim_plugin_manager ==# 'dein' call dein#begin(a:path) - elseif g:spacevim_plugin_manager == 'vim-plug' + elseif g:spacevim_plugin_manager ==# 'vim-plug' call plug#begin(a:path) endif endfunction function! zvim#plug#end() abort - if g:spacevim_plugin_manager == 'neobundle' + if g:spacevim_plugin_manager ==# 'neobundle' call neobundle#end() if g:spacevim_checkinstall == 1 NeoBundleCheck endif - elseif g:spacevim_plugin_manager == 'dein' + elseif g:spacevim_plugin_manager ==# 'dein' call dein#end() if g:spacevim_checkinstall == 1 silent! let flag = dein#check_install() @@ -117,18 +117,18 @@ function! zvim#plug#end() abort endif endif call dein#call_hook('source') - elseif g:spacevim_plugin_manager == 'vim-plug' + elseif g:spacevim_plugin_manager ==# 'vim-plug' call plug#end() endif endfunction function! zvim#plug#defind_hooks(bundle) abort - if g:spacevim_plugin_manager == 'neobundle' + if g:spacevim_plugin_manager ==# 'neobundle' let s:hooks = neobundle#get_hooks(a:bundle) func! s:hooks.on_source(bundle) abort call zvim#util#source_rc('plugins/' . split(a:bundle['name'],'\.')[0] . '.vim') endf - elseif g:spacevim_plugin_manager == 'dein' + elseif g:spacevim_plugin_manager ==# 'dein' call dein#config(g:dein#name, { \ 'hook_source' : "call zvim#util#source_rc('plugins/" . split(g:dein#name,'\.')[0] . ".vim')" \ }) @@ -136,32 +136,32 @@ function! zvim#plug#defind_hooks(bundle) abort endfunction function! zvim#plug#fetch() abort - if g:spacevim_plugin_manager == 'neobundle' + if g:spacevim_plugin_manager ==# 'neobundle' NeoBundleFetch 'Shougo/neobundle.vim' - elseif g:spacevim_plugin_manager == 'dein' + elseif g:spacevim_plugin_manager ==# 'dein' call dein#add('Shougo/dein.vim') endif endfunction let s:plugins = [] -fu! s:parser(args) +fu! s:parser(args) abort return a:args endf function! zvim#plug#add(repo,...) abort let g:spacevim_plugin_name = '' - if g:spacevim_plugin_manager == 'neobundle' + if g:spacevim_plugin_manager ==# 'neobundle' exec 'NeoBundle "'.a:repo.'"'.','.join(a:000,',') let g:spacevim_plugin_name = split(a:repo, '/')[-1] - elseif g:spacevim_plugin_manager == 'dein' + elseif g:spacevim_plugin_manager ==# 'dein' if len(a:000) > 0 call dein#add(a:repo,s:parser(a:000[0])) else call dein#add(a:repo) endif let g:spacevim_plugin_name = g:dein#name - elseif g:spacevim_plugin_manager == 'vim-plug' + elseif g:spacevim_plugin_manager ==# 'vim-plug' if len(a:000) > 0 exec "Plug '".a:repo."', ".join(a:000,',') else @@ -185,9 +185,9 @@ function! zvim#plug#add(repo,...) abort endfunction function! zvim#plug#tap(plugin) abort - if g:spacevim_plugin_manager == 'neobundle' + if g:spacevim_plugin_manager ==# 'neobundle' return neobundle#tap(a:plugin) - elseif g:spacevim_plugin_manager == 'dein' + elseif g:spacevim_plugin_manager ==# 'dein' return dein#tap(a:plugin) endif endfunction @@ -199,7 +199,7 @@ function! zvim#plug#enable_plug() abort endfunction function! zvim#plug#loadPluginBefore(plugin) abort - if matchend(a:plugin, ".vim") == len(a:plugin) + if matchend(a:plugin, '.vim') == len(a:plugin) call zvim#util#source_rc('plugins_before/' . a:plugin) else call zvim#util#source_rc('plugins_before/' . a:plugin . '.vim')