Взять разность двух вертикальных открытых окон в Vim - PullRequest
84 голосов
/ 08 декабря 2010

У меня два открытых файла.Они открываются в вертикальном режиме, рядом с рядом.Могу ли я мгновенно изменить эти два файла, не выходя и не закрывая Vim?

Ответы [ 4 ]

125 голосов
/ 08 декабря 2010

Чтобы начать диффузию во всех видимых окнах:

:windo diffthis

, которая выполняет :diffthis в каждом окне.

Чтобы завершить режим сравнения:

:diffoff!

(! делает diffoff применимым ко всем окнам текущей вкладки - было бы хорошо, если бы diffthis имела такую ​​же функцию, но это не так.)

19 голосов
/ 08 декабря 2010

в каждом из окон, которые вы хотите ввести, введите:

:diffthis

Если вы хотите различить все открытые окна, вы можете сделать:

:windo diffthis

(windo применит команду ко всем открытым окнам)

1 голос
/ 29 июня 2015

Продолжая предыдущие ответы,

  • :windo difft (сокращение от diffthis) запустит режим сравнения во всех открытых окнах.
  • :windo diffo (сокращение от diffoff) остановит режим сравнения во всех открытых окнах.

В моем vimrc есть следующие сопоставления, чтобы было проще:

command! Difft windo diffthis
command! Diffo windo diffoff
0 голосов
/ 06 июня 2018

Следуя предыдущим ответам, я адаптировал сопоставление, предоставляемое @cxw. Следующее сопоставление автоматически закрывает NERDTree и отображает открытые окна. Неважно, если NERDTree близко, он работает так же. Я делаю это довольно часто, так что это сэкономило мне довольно много времени.

command! Difft NERDTreeClose | windo diffthis
...