diff --git a/plugin/gitsessions.vim b/plugin/gitsessions.vim index fec4567..c8bd053 100644 --- a/plugin/gitsessions.vim +++ b/plugin/gitsessions.vim @@ -109,7 +109,6 @@ endfunction function! g:GitSessionSave() let l:dir = s:session_dir() - let l:file = s:session_file() if !isdirectory(l:dir) call mkdir(l:dir, 'p') @@ -126,24 +125,23 @@ function! g:GitSessionSave() endif let s:session_exist = 1 - if filereadable(l:file) - execute 'mksession!' l:file - echom "session updated:" l:file + if filereadable(s:s_file) + execute 'mksession!' s:s_file + echom "session updated:" s:s_file else - execute 'mksession!' l:file - echom "session saved:" l:file + execute 'mksession!' s:s_file + echom "session saved:" s:s_file endif redrawstatus! endfunction function! g:GitSessionUpdate(...) let l:show_msg = a:0 > 0 ? a:1 : 1 - let l:file = s:session_file() - if s:session_exist && filereadable(l:file) - execute 'mksession!' l:file + if s:session_exist && filereadable(s:s_file) + execute 'mksession!' s:s_file if l:show_msg - echom "session updated:" l:file + echom "session updated:" s:s_file endif endif endfunction @@ -154,32 +152,35 @@ function! g:GitSessionLoad(...) endif let l:show_msg = a:0 > 0 ? a:1 : 0 - let l:file = s:session_file() - if filereadable(l:file) + if filereadable(s:s_file) let s:session_exist = 1 - execute 'source' l:file - echom "session loaded:" l:file + execute 'source' s:s_file + echom "session loaded:" s:s_file elseif l:show_msg - echom "session not found:" l:file + echom "session not found:" s:s_file endif redrawstatus! endfunction function! g:GitSessionDelete() - let l:file = s:session_file() let s:session_exist = 0 - if filereadable(l:file) - call delete(l:file) - echom "session deleted:" l:file + if filereadable(s:s_file) + call delete(s:s_file) + echom "session deleted:" s:s_file endif endfunction +function! g:GitCacheVariables() + let s:s_file = s:session_file() +endfunction + augroup gitsessions autocmd! if ! exists("g:gitsessions_disable_auto_load") autocmd VimEnter * :call g:GitSessionLoad() endif + call g:GitCacheVariables() autocmd BufEnter * :call g:GitSessionUpdate(0) autocmd VimLeave * :call g:GitSessionUpdate() augroup END