2012-11-10 21 views
4

我試圖用Vim來保存我的會話與打開文件的相對路徑。 cur_dirsessionoptions中,文件的路徑將是相對的。當前目錄,但會話文件包含cd /path/to/base/directory命令:強制Vim的mksession使用相對路徑?

... 
cd /path/to/base 
badd +0 relpath1/file 
badd +0 relpath2/file 
... 

如果我離開curdir出sessionoptions中,cd命令消失,但文件路徑將是絕對的:

badd +0 /path/to/base/relpath1/file 
badd +0 /path/to/base/relpath2/file 

有沒有一種辦法有只有相對路徑wrt。到會話創建時的當前目錄是什麼 - 沒有插件或寫腳本?因此,會話文件將只有:

badd +0 relpath1/file 
badd +0 relpath2/file 

我的最終目標是有一個會議文件,我可以複製,例如,從SVN結帳到另一個。

+1

爲什麼不是這一種比較流行的問題嗎?我希望這與許多vim用戶有關,完全可以用於git,svn等,但是也許人們在沒有mksession的情況下使用了一些卓越的工作流程? – Brean

+0

@Brean有鏈接告訴我們更多關於您的工作流程的信息嗎?我從來沒有考慮版本化我的會話文件。我看到他們更特別。我不會在用戶或主機之間共享它們。 – Bluu

回答

4

你不能這樣做,如果沒有建立一個包裝函數吧,據我所知。

E.g.是這樣的:

function! MakeSession() 
    let b:sessiondir = getcwd() 
    let b:filename = b:sessiondir . '/session.vim' 
    exe "mksession! " . b:filename 
    exe "edit! " . b:filename 
    exe "g:^cd :d" 
    exe "x" 
endfunction