したがって、マークはセッションに保存されず、viminfo ファイルに保存されることがわかります。だから私はあなたのvimrcからのコードを基礎として使用し、vimヘルプファイルのセッションに関するセクションの下部にあるコードを使用して、セッションとviminfoファイルを保存できるようにする関数を作成しました。私にとってうまく機能する基本的なプロジェクト管理を作成します!
これが私が最終的に得たコードです。
if version >= 700
" localoptions has to be here:
" for some reason, new session loading code fails to set filetype of files in session
set sessionoptions=blank,tabpages,folds,localoptions,curdir,resize,winsize,winpos
endif
command! -nargs=1 Project :call LoadProject('<args>')
command! -nargs=+ SaveProject :call SaveProject('<args>')
let s:projectloaded = 0
let s:loadingproject = 0
let s:projectname = ''
function! LoadProject(name)
let s:projectloaded = 1
let s:projectname = a:name
exe "source ~/vimfiles/projects/".a:name.".vim"
exe "rviminfo! ~/vimfiles/projects/".a:name.".viminfo"
endfunction
function! SaveProject(name)
if a:name ==# ''
if s:projectloaded == 1
let pname = s:projectname
endif
else
let pname = a:name
endif
if pname !=# ''
let s:projectloaded = 0
let s:projectname = ''
exe "mksession! ~\\vimfiles\\projects\\".pname.".vim"
exe "wviminfo! ~\\vimfiles\\projects\\".pname.".viminfo"
endif
endfunction
autocmd VimLeave * call SaveProject()