Ambil perbedaan dari dua jendela yang terbuka vertikal di Vim

103

Saya telah membuka dua file. Mereka dibuka dalam mode vertikal, di samping berikutnya. Bisakah saya langsung membedakan kedua file ini tanpa meninggalkan atau menutup Vim?

Fatih Arslan
sumber

Jawaban:

154

Untuk memulai diff di semua jendela yang terlihat:

:windo diffthis

yang dijalankan :diffthisdi setiap jendela.

Untuk mengakhiri mode diff:

:diffoff!

(The !merek diffoffberlaku untuk semua jendela tab saat ini - itu akan sangat baik jika diffthismemiliki fitur yang sama, tapi tidak.)

Nefrubyr
sumber
The :windoperintah membuatnya lebih baik. Terima kasih. Saya akan memetakannya agar lebih mudah.
Fatih Arslan
1
Itu jawaban yang bagus, tetapi perhatikan bahwa jendela minibufexplorer harus ditutup sebelum operasi ini, jika dibuka. Jika tidak, diff menunjukkan hasil yang salah.
baldrs
Seseorang dapat menggunakan alias :windo difft[this]. Ref::help diff
DmitrySandalov
@FatihArslan,: windo diffthis tidak melakukan apa-apa dalam kasus saya, tetapi hanya meninggalkan di kolom abu-abu sisi kiri di sebelah nomor baris. Saya memiliki dua file Vim berbeda yang terbuka.
earik87
22

di setiap jendela yang ingin Anda bedakan ketik:

:diffthis

Jika Anda ingin membedakan semua jendela yang terbuka, Anda dapat melakukan:

:windo diffthis

( windoakan menerapkan perintah ke semua jendela yang terbuka)

Nathan Fellman
sumber
7

Menindaklanjuti jawaban sebelumnya,

  • :windo difft(kependekan dari diffthis) akan memulai mode diff di semua jendela yang terbuka.
  • :windo diffo(kependekan dari diffoff) akan menghentikan mode diff di semua jendela yang terbuka.

Saya memiliki pemetaan berikut di saya vimrcuntuk membuatnya lebih mudah:

command! Difft windo diffthis
command! Diffo windo diffoff
cxw
sumber
3

Mengikuti jawaban sebelumnya saya mengadaptasi pemetaan yang disediakan oleh @cxw Pemetaan berikut secara otomatis menutup NERDTree dan membeda-bedakan jendela yang terbuka. Tidak masalah jika NERDTree dekat, cara kerjanya sama. Saya melakukan ini cukup sering sehingga menghemat waktu saya.

command! Difft NERDTreeClose | windo diffthis
Jordi Freixa
sumber