diff --git a/autoload/startify.vim b/autoload/startify.vim index 2e38aa9..1e35b31 100644 --- a/autoload/startify.vim +++ b/autoload/startify.vim @@ -24,6 +24,14 @@ 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) echo 'The session directory does not exist: '. g:startify_session_dir diff --git a/doc/startify.txt b/doc/startify.txt index 8e50a40..ef5721c 100644 --- a/doc/startify.txt +++ b/doc/startify.txt @@ -74,6 +74,8 @@ default values. The directory to save/load sessions to/from. +The default for Windows systems is '$HOME\vimfiles\session'. + ============- @@ -103,6 +105,18 @@ The amount of files to list. A list of files to bookmark. Those files will always be shown at the bottom of the start screen. +============- + + let g:startify_skiplist = [] + +A list of Vim regular expressions to filter recently used files. + +Example: let g:startify_skiplist = [ + \ 'COMMIT_EDITMSG', + \ $VIMRUNTIME .'/doc', + \ 'bundle/.*/doc' + \ ] + ============- diff --git a/plugin/startify.vim b/plugin/startify.vim index 90b8b4e..a6d888b 100644 --- a/plugin/startify.vim +++ b/plugin/startify.vim @@ -43,9 +43,8 @@ function! s:start() abort let numfiles = get(g:, 'startify_show_files_number', 10) call append('$', '') for fname in v:oldfiles - if !filereadable(expand(fname)) - \ || (expand(fname) =~# $VIMRUNTIME . sep .'doc') - \ || (fname =~# 'bundle'. sep .'.*'. sep .'doc') + let expfname = expand(fname) + if !filereadable(expfname) || (exists('g:startify_skiplist') && startify#process_skiplist(expfname)) continue endif call append('$', ' ['. cnt .']'. repeat(' ', 3 - strlen(string(cnt))) . fname)