2011-04-05 6 views
3

WinXP에서 gVim을 실행 중입니다."Diff로 Vim"명령이 작동하지 않는 이유는 무엇입니까?

폴더를 열고 두 개의 파일을 선택하고 "Diff로 Vim"을 클릭하십시오. 스크린 샷 :

Vimdiff issue

GVIM GUI는 자신의 탭에서 각 파일과 함께 시작됩니다. 나는 각 탭이 DIFF 모드임을 알아 차렸다. 그러나 두 탭간에 비교가 이루어지지 않습니다. 두 파일은 완전히 다른, 아직 강조, 아무것도 없다 - 나는 'DIFF'모드로 해석 왼쪽에 단지 회색 라인 :

Result of diff

을 무슨 일이? 내 vimdiff이 작동하지 않습니까? 아니면 다른 것입니까?


내 솔루션

이전, 내가 Open files in multiple tabs using the Windows Context Menu을 필요로 할 때, 나는 포스터의 조언을 따라 내 의 .vimrc 파일에 다음 줄을 추가 : 그 날을 허용하는 동안 :autocmd BufReadPost * tab ball

하나의 Vim 창에서 두 개의 파일을 별도의 탭으로 열려면 원하는 경우 두 파일을 비교할 수있는 기능이 없어졌습니다. 이 두 기능을 켜기위한 해결책은 diff 두 파일을 원하지 않는 경우에만 위의 autocmd을 활성화하는 것입니다. 이는 &diff==0 일 때 발생합니다. 나는 또한 언급 Vim Wikia link의 주석 부분에이 솔루션을 추가 한

if (&diff==0) 
    :autocmd BufReadPost * tab ball 
endif 

: 나는 아래로 내 의 .vimrc 파일의 코드를 수정하는 경우 따라서, 나는 빔 기능을 내 DIFF을 회복 위.

+0

아무 일도 일어나지 않습니다. gvim을 다시 설치해야하는 것 같습니다. 이 기능은 XP에서 최신 vim으로 작동합니다. 이 작업을 시도하면 명령 창을보고 diff 모드에서 vim 창을 볼 수 있습니다. – IanNorton

+0

각 탭에': diffthis' 명령을 실행 해 보셨습니까? 이것은 필수적이지는 않지만. –

+0

@David : 파일이 이미 DIFF 모드입니다. 그러나 아니,': diffthis'는 새로운 것은 없습니다. – drapkin11

답변

2

윈도우를 실행하지 않거나 리눅스에서 gvim을 사용하기 때문에 이것은 힌트 일뿐입니다. -pvimdiff에 제공되면 별도의 탭에 인수가 열립니다. diffing은 동일한 탭의 창을 통해서만 수행되므로 diffing을 효과적으로 비활성화합니다. vimdiffvim -d ...을 호출하기 때문에 -p을 계속 사용할 수 있습니다. -p은 vim에게 각 인수를 별도의 탭에 넣도록 지시합니다. 일반적으로 vim을 호출 할 때 매우 유용합니다. 그래서 당신은 어떻게 든 Vim이 항상 이것을하도록 구성되어있을 수 있습니다.

나는 Diff with Vim 옵션이 실제로 무엇을하는지 확인하고 호출 체인을 따라 일괄 파일 (요즘은 요즘 뭐라 부르는 지)을보고 추적하여 정상적인 호출에 -p 옵션을 추가합니다. 정력. IIRC는 Windows 탐색기에서이 작업을 수행 할 수 있습니다. 모든 파일 형식을 보여주는보기 메뉴를 선택할 수있는 옵션이 있습니다. 이러한 파일 형식을 "열"도록 구성된 응용 프로그램을보고 편집 할 수 있습니다.내가 잘못 아니에요 경우 증권 _vimrc의에서

+0

귀하의 게시물 (@ sehe뿐만 아니라)은 제게 적합한 솔루션으로 안내합니다. 내 질문에 대한 업데이트로 게시했습니다. 감사! – drapkin11

2

는 gvim을 사용자 정의 VimDiff() 함수를 정의 (:e +/Diff $MYVIMRC)

당신은

:call VimDiff() 

당신을 수행하여 여부 작품을 확인 할 수 있습니다

윈도우 머신이 없기 때문에 실제 함수 이름과 매개 변수 (있는 경우)를 확인해야합니다.

+0

감사합니다. _vimrc에 함수 정의가 있습니다. 그것은 'MyDiff'라고 불리며 실제로 전화를 걸 때 작동했습니다. – drapkin11

관련 문제