Vim에서 두 개의 수직으로 열린 창을 비교해보십시오.


102

두 개의 파일이 열려 있습니다. 다음 옆에 수직 모드로 열립니다. Vim을 종료하거나 닫지 않고이 두 파일을 즉시 비교할 수 있습니까?

답변:


154

보이는 모든 창에서 비교를 시작하려면 :

:windo diffthis

:diffthis각 창에서 실행 됩니다.

diff 모드를 종료하려면 :

:diffoff!

합니다 ( !차종은 diffoff- 경우에 좋을 것 현재 탭의 모든 창에 적용되는 diffthis동일한 기능을 가지고 있지만, 그렇지 않습니다.)


:windo명령은 더 나아졌습니다. 감사. 더 쉽게 매핑 할 것입니다.
Fatih Arslan

1
좋은 대답이지만 minibufexplorer 창이 열리면이 작업 전에 닫아야합니다. 그렇지 않으면 diff는 잘못된 결과를 표시합니다.
baldrs 2014-07-30

별칭을 사용할 수 있습니다 :windo difft[this]. 참고 ::help diff
DmitrySandalov

@FatihArslan, : windo diff 이것은 내 경우에는 아무것도하지 않지만 줄 번호 옆의 왼쪽 회색 열에 남겨 둡니다. 두 개의 다른 Vim 파일이 열려 있습니다.
earik87

22

diff 유형을 원하는 각 창에서 :

:diffthis

열려있는 모든 창을 비교하려면 다음을 수행 할 수 있습니다.

:windo diffthis

( windo열려있는 모든 창에 명령을 적용합니다.)


6

이전 답변에 이어

  • :windo difft(줄임말 diffthis) 열려있는 모든 창에서 diff 모드를 시작합니다.
  • :windo diffo(줄임말 diffoff)은 열려있는 모든 창에서 diff 모드를 중지합니다.

vimrc더 쉽게하기 위해 다음과 같은 매핑이 있습니다 .

command! Difft windo diffthis
command! Diffo windo diffoff

3

이전 답변에 따라 @cxw에서 제공하는 매핑을 조정했습니다. 다음 매핑은 NERDTree를 자동으로 닫고 열린 창을 비교합니다. NERDTree가 가까워도 똑같은 방식으로 작동합니다. 이 작업을 자주 수행하므로 시간이 많이 절약되었습니다.

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