2012-08-16 2 views
3

저는 MacVim을 편집자로 사용하고 Atlassian SourceTree (v1.5.3)를 VCS 프론트 엔드로 사용하고 있습니다. MacVim의 명령 행 도우미 스크립트 mvim이 설치되어 있고 mvimdiff이 올바르게 기호 링크되어 있습니다.MacVim - SourceTree와 함께 작동하도록 vimdiff를 올바르게 설정하는 방법은 무엇입니까?

mvimdiff을 SourceTree의 다양한 종류의 VCS 저장소 (Git, Hg, SVN)에 대한 외부 diff 도구로 사용하고 싶습니다.

SourceTree를 통해 파일/병합 충돌이 "외부 diff"되는 경우 두 diff 창 모두가 비어 있습니다.

mvimdiff file1 file2을 통해 파일을 수동으로 diffing하면 제대로 작동합니다.

이 내 설정은 SourceTree에 있습니다 http://i.stack.imgur.com/2eQZD.png

가 어떻게 SourceTree 작업을 MacVim/GVIM을 설정할 수 있습니다?

+0

exec "$binary" -g $opts ${1:+"[email protected]"} 

에서 mvimdiff의 마지막 3 행을 변경하면이주는 시도 되세요 mvimdiff의 절대 경로? – Conner

답변

0

diff 설정의 설정이 거의 정확하므로 (예를 들어) git이 바이너리를 찾을 수 있도록 약간의 조정 만하면됩니다. git 문서에서는 이진 파일 (귀하의 경우 mvimdiff)이 경로에 있거나 전체 경로가 주어져야 함을 나타냅니다. 이 옵션을 잎

, mvimdiff/usr/local/bin 또는 /usr/bin에 있는지 확인하십시오 (또는 맥의 기본 경로에있는 다른 장소), 아니면 그냥 완료 및 테스트 한 일을 중 다음 mvim를 넣어 스크립트를 $HOME 디렉토리의 알려진 위치에 복사하고 ~ (git이 지원하는 유일한 확장 기능)과 함께 참조하십시오.

따라서 홈 폴더에 .bin이라는 이름의 폴더를 만들었습니다 (점으로 시작하여 Finder에서 숨김). 그리고 거기에 mvim 스크립트를 넣습니다. 그런 다음 SourceTree에서 나는

~/.bin/mvim -d 

에 'DIFF 명령'으로 설정하고 난 당신이 가지고있는 유사한 '인수'를 설정,하지만 난에 공백 및 기타 특수 문자가 포함 된 파일을 처리하는 따옴표에 넣어했다 그 때문에

"$LOCAL" "$REMOTE" 

참고 : 나는 hg 또는 전복으로이 테스트를하지 않은,하지만 svngit-svn를 통해 지원되기 때문에, 너무 그 구성에서 전복을 위해 작동합니다.

+0

그건 작동하지 않습니다. 어떤 이유로 SourceTree는 $ LOCAL 변수를 vim으로 올바르게 전파하지 않습니다. 이상한 것은 다른 편집기에서 작동하지만, 어떤 이유로 vim은 파일을 찾을 수 없으며 대신 빈 파일을 새로 만듭니다. vim이 너무 빨리 열리고 SourceTree가 repo에서 소스를 임시 파일로 빠르게 추출 할 수 없다는 느낌이 들었습니다.나는 모른다. – Agzam

+0

아 실제로 문제를 발견했다. 이유가 무엇이든간에 macvim은 파일 이름 앞에 다른 슬래시를 추가합니까? – Agzam

0

-f 옵션을 사용하여 MacVim에게 새 프로세스를 포크하지 않도록 지시해야하지만 SourceTree가 인수를 올바르게 전달하지 못하는 것처럼 보입니다.

그래서, mvimdiff을 사용하려면 (대신 심볼릭 링크 그것의) mvimdiff로 mvim 복사

exec "$binary" -g -f $opts ${1:+"[email protected]"}