Prendere diff di due finestre aperte verticali in Vim
Domanda
ho avere due file aperti. Essi sono aperti in modo verticale, vicino al prossimo. Posso diff immediatamente questi due file senza lasciare o chiudere Vim?
Soluzione
Per iniziare diffing su tutte le finestre visibili:
:windo diffthis
che esegue :diffthis
su ogni finestra.
Per terminare diff modalità:
:diffoff!
(La !
rende diffoff
applica a tutte le finestre della scheda corrente -. Sarebbe bello se diffthis
ha avuto la stessa funzione, ma non è così)
Altri suggerimenti
in ciascuna delle finestre che si desidera diff tipo:
:diffthis
Se si vuole diff tutte le finestre aperte, si può fare:
:windo diffthis
(windo
applicherà il comando per tutte le finestre aperte)
In seguito alle risposte precedenti,
-
:windo difft
(abbreviazione didiffthis
) inizierà diff modalità in tutte le finestre aperte. -
:windo diffo
(abbreviazione didiffoff
) si fermerà diff modalità in tutte le finestre aperte.
Ho le seguenti mappature nel mio vimrc
per rendere più facile:
command! Difft windo diffthis
command! Diffo windo diffoff
A seguito delle risposte precedenti mi sono adattato la mappatura fornita da @cxw Il seguente mappatura si chiude automaticamente NERDTree e diff le finestre aperte. Non importa se NERDTree è vicino, funziona allo stesso modo. Lo faccio abbastanza spesso in modo che mi ha salvato un bel po 'di tempo.
command! Difft NERDTreeClose | windo diffthis