1
我知道將以下內容添加到~/.vimrc
會自動保存當前目錄中的會話文件名爲'Session.vim'。如何爲自動保存的VIM會話自動生成文件名?
autocmd BufWritePre :mksession!
但是,這些文件會亂丟目錄。我寧願將會話文件保存到/tmp/[some filename which specifies the directory]
。
有沒有辦法做到這一點?
我知道將以下內容添加到~/.vimrc
會自動保存當前目錄中的會話文件名爲'Session.vim'。如何爲自動保存的VIM會話自動生成文件名?
autocmd BufWritePre :mksession!
但是,這些文件會亂丟目錄。我寧願將會話文件保存到/tmp/[some filename which specifies the directory]
。
有沒有辦法做到這一點?
您可以用這句話來生成的文件名:
"/tmp/vimSessions/".substitute(expand("%:p:h"),"/","_","g")
Ofcourse,您可以更改第一個字符串包含任何你想要的目錄。
UPDATE:
添加到您的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)
感謝 - 這工作得很好,雖然我現在意識到,當我打開VIM以及我想這自動加載。 – adarsh 2012-02-16 03:57:32
@Adarsh我更新了答案,包括保存和恢復會話。 – 2012-02-16 16:02:28
酷!非常感謝。如果可以的話,我會加倍努力。 – adarsh 2012-02-16 17:42:08