Это выполнимо без каких-либо изменений в оболочке, установив все параметры diffy глобально (вместе с некоторыми автокомандами, потому что vim разозлится, если вы попытаетесь разнести более 8 файлов одновременно)
vim -c 'windo set diff scrollbind cursorbind scrollopt+=hor nowrap foldmethod=diff foldcolumn=2 | au BufWinEnter * setlocal diff | au BufWinLeave * setlocal nodiff' -O2 your filenames here
Это будетоткройте все ваши файлы в буферах и разделите по вертикали vim на два окна (используйте -o2
, если вы хотите горизонтальный), и всегда переходите в режим сравнения, даже если вы переключаетесь между буферами или открываете новые файлы.
ЕслиВы объединяете все свои файлы в один суперфайл, и тогда вам будет удобно использовать :bn
.
Если вы объединяете пары файлов, то вам понадобятся некоторые варианты :windo bn N
, где N зависит от того, как вы перечислили свои файлы:
- Для
A1 A2 B1 B2 C1 C2
, :windo bn 2
будет действовать правильно - Для
A1 B1 C1 A2 B2 C2
вам понадобитсясначала перейти в буфер A2
, а затем :windo bn 1
сделает все правильно
Я извлек настройки из файла справки :
В каждом из отредактированных файлов установлены следующие параметры:
'diff' on
'scrollbind' on
'cursorbind' on
'scrollopt' includes "hor"
'wrap' off
'foldmethod' "diff"
'foldcolumn' value from 'diffopt', default is 2
Эти параметры устанавливаются локально для окна.При редактировании другого файла они сбрасываются до глобального значения.
И только эмпирически обнаружили необходимость бессмысленной автокоманды.