2012-11-10 2 views
4

파일을 열 때 상대 경로를 사용하여 Vim에 내 세션을 저장하려고합니다. sessionoptionscur_dir을 사용하면 파일 경로가 상대 wrt가됩니다. 현재 디렉토리하지만, 세션 파일은 cd /path/to/base/directory 명령이 포함되어Vim의 mksession이 상대 경로를 사용하도록 강요 하시겠습니까?

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

나 sessionoptions에서 curdir두면에서, cd 명령이 사라,하지만 파일의 경로는 절대 될 것입니다 :

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

이 방식이 있는가 에만 상대 경로가 있습니다. 플러그인이 없거나 스크립트를 작성하지 않고 세션이 생성 될 때 현재 디렉토리가 무엇이든간에? 따라서 세션 파일에는 다음과 같은 내용 만 포함됩니다.

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

궁극적 인 목표는 내가 복사 할 수있는 세션 파일을 만드는 것입니다. SVN 체크 아웃에서 다른 것으로.

+1

왜 더 인기있는 질문이 아닌가요? 나는 이것이 많은 vim 사용자들과 관련이있을 것으로 기대한다. git, svn 등에서 사용하기위한 것이지만 어쩌면 사람들은 mksession없이 뛰어난 워크 플로우를 사용하고있을 것이다. – Brean

+0

@Brean 워크 플로우에 대해 자세히 알려주는 링크가 있습니까? 세션 파일의 버전을 고려하지 않았습니다. 나는 그들을 좀더 특별하게 본다. 나는 그들을 사용자 또는 호스트간에 공유하지 않는다. – Bluu

답변

4

AFAIK에 대한 래퍼 기능을 설정하지 않으면이를 수행 할 수 없습니다.

예. 다음과 같음 :

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 
관련 문제