From 85a7168d7133e54f5ff4288f58ae2101d3aefb9b Mon Sep 17 00:00:00 2001 From: UncleBill Date: Thu, 20 Feb 2014 22:30:59 +0800 Subject: [PATCH] Delete open buffers before loading a new session Closes #70. --- autoload/startify.vim | 16 ++++++++++++++++ doc/startify.txt | 8 ++++++++ 2 files changed, 24 insertions(+) diff --git a/autoload/startify.vim b/autoload/startify.vim index ae9753b..2e491df 100644 --- a/autoload/startify.vim +++ b/autoload/startify.vim @@ -14,6 +14,7 @@ let g:autoloaded_startify = 1 let s:numfiles = get(g:, 'startify_files_number', 10) let s:show_special = get(g:, 'startify_enable_special', 1) let s:restore_position = get(g:, 'startify_restore_position') +let s:delete_buffers = get(g:, 'startify_session_delete_buffers') let s:session_dir = resolve(expand(get(g:, 'startify_session_dir', \ has('win32') ? '$HOME\vimfiles\session' : '~/.vim/session'))) @@ -153,6 +154,7 @@ function! startify#session_load(...) abort echo 'There are no sessions...' return endif + call startify#session_delete_buffers() let spath = s:session_dir . s:sep . (exists('a:1') \ ? a:1 \ : input('Load this session: ', fnamemodify(v:this_session, ':t'), 'custom,startify#session_list_as_string')) @@ -235,6 +237,20 @@ function! startify#session_delete(...) abort endif endfunction +" Function: #session_delete_buffers {{{1 +function! startify#session_delete_buffers() abort + if !s:delete_buffers + return + endif + let n = 1 + while n <= bufnr('$') + if buflisted(n) + silent execute 'bdelete' n + endif + let n += 1 + endwhile +endfunction + " Function: #session_list {{{1 function! startify#session_list(lead, ...) abort return map(split(globpath(s:session_dir, '*'.a:lead.'*'), '\n'), 'fnamemodify(v:val, ":t")') diff --git a/doc/startify.txt b/doc/startify.txt index 64d13ae..236dc3b 100644 --- a/doc/startify.txt +++ b/doc/startify.txt @@ -92,6 +92,7 @@ default values. |g:startify_session_detection| |g:startify_session_autoload| |g:startify_session_persistence| + |g:startify_session_delete_buffers| |g:startify_skiplist| |g:startify_skiplist_server| |g:startify_change_to_dir| @@ -213,6 +214,13 @@ Great way to create a portable project folder. < Automatically update sessions before exiting Vim. +------------------------------------------------------------------------------ + *g:startify_session_delete_buffers* +> + let g:startify_session_delete_buffers = 0 +< +Delete open buffers before loading a new session. + ------------------------------------------------------------------------------ *g:startify_change_to_dir* >