我知道将以下内容添加到~/.vimrc
将自动保存当前目录中名为“Session.vim”的会话文件。
autocmd BufWritePre :mksession!
但是,这些文件会乱丢目录。我宁愿将会话文件保存到/tmp/[some filename which specifies the directory]
。
有没有办法做到这一点?
答案 0 :(得分:2)
您可以使用此表达式生成文件名:
"/tmp/vimSessions/".substitute(expand("%:p:h"),"/","_","g")
当然,您可以更改第一个字符串以包含您想要的任何目录。
<强>更新强>
将此添加到您的vimrc
文件中:
function GetSessionName(useFileName)
if a:useFileName
let l:dir=expand("%:p:h")
else
let l:dir=getcwd()
endif
return fnameescape("/tmp/vimSessions/".substitute(l:dir,"/","_","g"))
endfunction
if !isdirectory("/tmp/vimSessions")
call mkdir("/tmp/vimSessions")
endif
autocmd VimEnter * if filereadable(GetSessionName(0))|exe "source ".GetSessionName(0)|endif
autocmd BufWritePost * exe "mksession! ".GetSessionName(1)