Vim에서 두 개의 탭 비교


121

시나리오 : Vim을 열고 일부 텍스트를 붙여 넣었습니다. 두 번째 탭을 열고 :tabe거기에 다른 텍스트를 붙여 넣습니다.

목표 : 두 텍스트를 모두 파일에 쓰고 .NET으로 여는 것과 동일한 출력이있는 세 번째 탭을 원합니다 vimdiff.

내가 찾을 수있는 가장 가까운 것은 "현재 버퍼를 파일과 비교" diff하는 것이지만 두 개의 열려 있지만 저장되지 않은 버퍼는 없습니다.


1
tabe 명령은 무엇입니까?
hhafez

1
@hhafez - 새 탭에서 새로운 버퍼를 열
루크

3
: tabedit, 일명 : tabnew의 약자입니다.
TSomKes

답변:


188

새 파일 대신 동일한 탭에서 두 번째 파일을 여는 것이 좋습니다.

내가 보통하는 일은 다음과 같습니다.

:edit file1
:diffthis
:vnew
:edit file2
:diffthis

:vnew명령은 현재보기를 세로로 분할하여 두 번째 파일을 열 수 있습니다. 그런 다음 :diffthis(또는 short :) :difft명령이 각보기에 적용됩니다.


1
Fwiw, MacVim에는 기본적으로이 기능이없는 것 같지만 터미널로 이동하여 입력 vimdiff file1.txt file2.txt하고 자신을 녹아웃 시킬 수 있어야한다고 생각합니다 .
ruffin 2012 년

11
당신은 내 마음을 날려 버렸습니다. 내 인생은 결코 같지 않을 것 :diffthis입니다. 정말 고맙습니다. 감사합니다!
저스틴 포스

3
이것은 굉장합니다. 이 edit fileN부분은 버퍼에서 붙여 넣기 만하면됩니다. 이렇게하면 각각을 tmp 파일에 붙여 넣지 않고 두 개의 텍스트 청크를 비교할 수 있습니다 (meld를 사용하면 할 수 있지만 Mac의 시각적 차이 도구에는 부족함). 그것은 나를 위해 MacVim에서 작동했습니다.
yshavit 2013

38

: diffthis 또는 : diffsplit 시도하는 것이 좋습니다 .


10
:vert diffsplit없는 것보다 더 전통적인 DIFF 뷰있게:vert
ephemient

7
: set diffopt + = vertical을 사용하여 : vert를 기본값으로 만들 수 있습니다.
graywh

3
또한 두 개의 창을 동시에 스크롤하려면 :set scrollbind둘 다에서.
Dmytro Sirenko 2012

질문에서 묻는 것과 같이 탭이 필요한 경우 작동하지 않습니다. 그렇게 :diffsplit하면 두 개의 연결된 버퍼를 얻습니다.
erik

25

수직 분할에서 두 개의 파일을 열었 으면 다음을 실행하십시오.

:windo diffthis


8
:diffoffdiff 모드 끄기 사용
AB

2
그러나 두 개의 탭에서 수직 분할로 어떻게 변경합니까?
erik 2015

1

모든 탭의 내용은 버퍼 안에 있습니다. 버퍼를 살펴보십시오.

:buffers

현재 탭 콘텐츠와 비교되어야하는 콘텐츠에 적합한 번호를 찾으세요.

현재 탭에서 버퍼를 엽니 다 (fe 버퍼 번호 4).

:sb 4

또는 세로보기 :

:vertical sb 4

그런 다음 내용을 간단히 비교할 수 있습니다.

:windo diffthis

차이 분석을 마치면 다음을 입력 할 수 있습니다.

:windo diffoff
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.