2012-07-05 3 views
0

vim에서 diff 파일이 로컬 페이지에 있다는 것을 알고 있습니다. 즉, 하나의 탭 페이지에 하나의 diff 만 가질 수 있습니다. 그러나 하나의 탭 페이지에 두 개의 차이점을 표시하려면 어떻게해야합니까? 예를 들어, 한 쪽 diff는 위쪽 두 창 사이에 있고 다른 한 쪽 diff는 아래쪽 두 창 사이에 있습니다. 이것은 git merge confilict를 다룬 커맨더입니다. 원격 커밋 변경 사항을 상위 2 개 창에서 비교하고 로컬 파일과 로컬 confilict 파일을 아래쪽 두 창에 비교하도록 할 수 있습니다. 그런 다음 리모컨에서 변경된 사항을 정확하게 파악하여 수동으로 수정합니다.하나의 vim 탭에서 두 개의 diff를 볼 수있는 방법이 있습니까?

어떻게하면됩니까? 플러그인이 있습니까?

답변

1

diff에 버퍼의 참여는 탭 페이지 (최대 4 개의 버퍼)에서 볼 수있는 모든 버퍼에 대해 'diff' 버퍼 설정에 의해 결정됩니다. 원하는 것을 구현하려면 '차이 그룹'이라는 개념이 필요합니다. :setlocal diff=group1하지만이 같은 것은 현재 존재하지 않습니다.

오늘 내가 Vim에 대한 패치없이 이것을 달성하는 유일한 방법은 분할 윈도우 화면 또는 tmux 세션에서 두 개의 별도 Vim 인스턴스를 실행하는 것이다.

echo two way diffs separator > separator 
cat A.txt separator A.java > A 
cat B.txt separator B.java > B 
vimdiff A B 

그런 다음 왼쪽 창을 분할 명령

G:sp|set noscrollbind|normal gg<enter>를 입력 : 당신이 B.java에 B.txt와 A.java에 a.txt이 비교하려면

+0

그럼에도 불구하고 해킹을 할 수 있습니다. – user2987828

0

을 수행 할 수 있습니다

G:sp|set noscrollbind|normal gg<enter>

가 오른쪽 창에 같은 일을,

<c-W>l

가 오른쪽 창을 이동 가고, 새로운 창 스크롤 디 바인딩.

물론 이상적인 것은 아닙니다. 상단 창 커서는 연결되어 있지 않으며 너무 많이 위 또는 아래로 스크롤하면 각 버퍼에도 다른 버퍼가 포함됩니다.

관련 문제