83 lines
2.5 KiB
VimL
83 lines
2.5 KiB
VimL
" Plugin: https://github.com/mhinz/vim-startify
|
|
" Description: Start screen displaying recently used stuff.
|
|
" Maintainer: Marco Hinz <http://github.com/mhinz>
|
|
" Version: 1.2
|
|
|
|
if exists('g:autoloaded_startify') || &cp
|
|
finish
|
|
endif
|
|
let g:autoloaded_startify = 1
|
|
|
|
function! startify#get_session_names(lead, ...) abort
|
|
return map(split(globpath(g:startify_session_dir, '*'.a:lead.'*', '\n')), 'fnamemodify(v:val, ":t")')
|
|
endfunction
|
|
|
|
function! startify#get_session_names_as_string(lead, ...) abort
|
|
return join(map(split(globpath(g:startify_session_dir, '*'.a:lead.'*', '\n')), 'fnamemodify(v:val, ":t")'), "\n")
|
|
endfunction
|
|
|
|
function! startify#escape(path) abort
|
|
return !exists('+shellslash') || &shellslash ? a:path : escape(a:path, '\')
|
|
endfunction
|
|
|
|
function! startify#get_sep() abort
|
|
return !exists('+shellslash') || &shellslash ? '/' : '\'
|
|
endfunction
|
|
|
|
function! startify#process_skiplist(arg) abort
|
|
for regexp in g:startify_skiplist
|
|
if a:arg =~# regexp
|
|
return 1
|
|
endif
|
|
endfor
|
|
endfunction
|
|
|
|
function! startify#save_session(...) abort
|
|
if !isdirectory(g:startify_session_dir)
|
|
if exists('*mkdir')
|
|
echo 'The session directory does not exist: '. g:startify_session_dir .'. Create it? [y/n]' | redraw
|
|
if nr2char(getchar()) == 'y'
|
|
call mkdir(g:startify_session_dir, 'p')
|
|
else
|
|
echo
|
|
return
|
|
endif
|
|
else
|
|
echo 'The session directory does not exist: '. g:startify_session_dir
|
|
return
|
|
endif
|
|
endif
|
|
let spath = g:startify_session_dir . startify#get_sep() . (exists('a:1')
|
|
\ ? a:1
|
|
\ : input('Save under this session name: ', '', 'custom,startify#get_session_names_as_string'))
|
|
\ | redraw
|
|
if !filereadable(spath)
|
|
execute 'mksession '. spath | echo 'Session saved under: '. spath
|
|
return
|
|
endif
|
|
echo 'Session already exists. Overwrite? [y/n]' | redraw
|
|
if nr2char(getchar()) == 'y'
|
|
execute 'mksession! '. spath | echo 'Session saved under: '. spath
|
|
else
|
|
echo 'Did NOT save the session!'
|
|
endif
|
|
endfunction
|
|
|
|
function! startify#load_session(...) abort
|
|
if !isdirectory(g:startify_session_dir)
|
|
echo 'The session directory does not exist: '. g:startify_session_dir
|
|
return
|
|
endif
|
|
let spath = g:startify_session_dir . startify#get_sep() . (exists('a:1')
|
|
\ ? a:1
|
|
\ : input('Load this session: ', '', 'custom,startify#get_session_names_as_string'))
|
|
\ | redraw
|
|
if filereadable(spath)
|
|
execute 'source '. spath
|
|
else
|
|
echo 'No such file: '. spath
|
|
endif
|
|
endfunction
|
|
|
|
" vim: et sw=2 sts=2
|