Membandingkan konten dua file dalam Teks Sublime

397

Saya memiliki dua repositori kloning dari dua proyek open-source yang sangat mirip, yang telah saya kerjakan dalam beberapa contoh berbeda dalam Sublime Text 2 untuk mencapai hasil yang saya inginkan. Kode dari kedua proyek ini digunakan. Saya telah menggunakan Git sebagai kontrol versi untuk proyek saya, tetapi belum termasuk proyek aslinya. Jadi, saya ingin dapat dengan cepat membandingkan isi dua file dari proyek asli dan membandingkan perbedaan antara mereka dan proyek saya.

Saya berharap Sublime Text 2 akan memiliki fitur "Bandingkan File", tetapi saya tidak dapat menemukan apa pun yang terkait dengannya di pengaturan atau online. Paket ST2 pihak ketiga untuk menyelesaikan tugas ini juga akan berfungsi dengan baik. Apakah tugas seperti itu mungkin dilakukan dalam editor teks ST2?

LanceLafontaine
sumber

Jawaban:

705

Anda benar-benar dapat membandingkan file secara native tepat di Sublime Text.

  1. Arahkan ke folder yang berisi mereka melalui Open Folder...atau dalam suatu proyek
  2. Pilih dua file (yaitu, dengan menahan Ctrlpada Windows atau pada macOS) yang ingin Anda bandingkan di sidebar
  3. Klik kanan dan pilih Diff files...opsi.

Derek 朕 會 功夫
sumber
19
@ Serek: menggunakan pilih dapat memilih tetapi tidak dapat menemukan opsi file diff pada klik kanan, hanya mendapat opsi tutup pada klik kanan.
Mohamed Hussain
66
@MohamedHussain Sebenarnya ada dua sidebar yang berbeda dan Anda harus berada di sisi yang benar agar bisa berfungsi. Jika Anda pergi ke File> Open Folder ..., Pilih folder tempat file Anda berada, lalu pilih View> Side Bar> Show Side Bar, Anda akan mendapatkan yang Anda butuhkan. Anda mendapatkan yang lain dengan memilih View> Side Bar> Show Open Files, tetapi yang ini tidak akan membiarkan Anda menggunakan opsi Diff Files ....
Jeramy
25
Sayangnya ini sepertinya tidak berfungsi lagi di build luhur 3103 di mac. Segera setelah saya klik kanan file kedua akan terpilih,
merlin
8
Tidak bekerja untuk saya di Build 3144 di OSX. Saya dapat memilih dua file di antarmuka file, tetapi ketika saya Ctrl-klik hanya satu yang dipilih dan opsi diff tidak ada.
James J
4
Tidak bekerja untuk saya juga di 3114 - windows. Tidak ada opsi berbeda ketika saya mengklik kanan pada file.
dangsonbk
216

Bandingkan Side-by-Side sepertinya yang paling nyaman bagi saya meskipun itu bukan yang paling populer:

UPD: Saya perlu menambahkan bahwa plugin ini dapat membekukan ST sambil membandingkan file besar. Ini tentu bukan keputusan terbaik jika Anda akan membandingkan teks besar.

Dany
sumber
11
ini adalah solusi IMO termudah dan paling nyaman. Bekerja dengan baik di ST3
mihai
5
Bekerja dengan baik dan dapat membandingkan file dari lokasi berbeda yang belum berhasil saya lakukan dengan membandingkan asli.
Leo
3
Ini juga berfungsi dengan menyalin konten yang disisipkan di tab baru yang belum disimpan, yang berguna dalam keadaan darurat.
mtone
1
Saya berharap saya akan melihat ini sebelumnya, akan menyelamatkan saya hari yang tidak produktif.
0_o
1
Bandingkan Side-by-Side hanya membantu saya.
noob
61

Ada sejumlah plugin berbeda yang tersedia melalui Kontrol Paket. Saya telah menggunakan Sublimerge Pro , yang bekerja dengan cukup baik, tetapi ini adalah produk komersial (dengan masa uji coba tidak terbatas) dan sumber tertutup, jadi Anda tidak dapat men-tweak jika Anda ingin mengubah sesuatu, atau hanya melihat internal. FileDiffs cukup populer, dilihat dari jumlah pemasangannya, jadi Anda mungkin ingin mencobanya.

MattDMo
sumber
2
Saya sekarang menggunakan FileDiffs dan itu berfungsi seperti pesona. Terima kasih, jawaban diterima.
LanceLafontaine
1
Yah saya tidak tahu bagaimana cara menggunakan FileDiffs. Bisakah Anda jelaskan secara singkat bagaimana saya dapat membandingkan dua file dengannya.
Jamil Ahmed
4
@LanceLafontaine Saya biasanya tidak akan melakukan ini, tetapi apakah Anda keberatan mengubah jawaban yang diterima untuk jawaban Derek 朕 會 功夫 di bawah ini? Tidak satu pun dari kami yang benar - benar membutuhkan poin, tetapi saya tidak tahu ada perbedaan bawaan pada saat itu. Saya sekarang menggunakannya sepanjang waktu di Sublime. Satu-satunya waktu saya tidak melakukannya adalah ketika saya membutuhkan fitur tambahan alat eksternal.
MattDMo
Manakah dari plugin tersebut yang dapat mendeteksi pergerakan seluruh blok teks? Dan bukan hanya memberi tahu beberapa garis yang hilang di sini dan muncul di sana tetapi juga menunjukkan dengan panah bagaimana mereka bergerak?
skan
Berkat jawaban ini, saya menginstal FileDiffs dan menambahkan commad untuk menggunakan TortoiseMerge.exe untuk perbandingan. Itu merupakan peningkatan besar bagi saya setiap hari menggunakan perbandingan kode yang luhur. Terima kasih!
lyubeto
48

PEMBARUAN
(Mengingat upvotes, saya merasa ada kebutuhan untuk penjelasan langkah-demi-langkah lengkap ...)

  1. Di bilah Menu, klik pada File->Open Folder...
  2. Pilih folder (folder sebenarnya tidak terlalu penting, langkah ini hanya untuk membuat FOLDERSsidebar tersedia)
  3. Jika belum ada Bilah Sisi yang ditampilkan, buat itu muncul melalui View-> Side Bar->Show Side Bar
  4. Gunakan FOLDERSBilah Sisi bertanda ini untuk menavigasi ke file pertama yang ingin Anda bandingkan.
  5. Pilih itu (klik di atasnya), tahan ctrl dan pilih file kedua.
  6. Setelah dua file dipilih, klik kanan pada salah satu dari dua dan pilih Diff Files...

Seharusnya ada Tab baru yang sekarang menunjukkan perbandingan.


Jawaban singkat asli:
Perhatikan bahwa:

"Diff file" hanya muncul dengan sidebar "folder" (untuk membuka folder: File-> Open Folder), bukan dengan sidebar "file terbuka".

langlauf.io
sumber
Apakah ada cara untuk memilih jalur yang berbeda? Satu muncul dalam warna merah, dan yang lain berwarna hijau
zeristor
1
Apa yang Anda maksud dengan pilih? Sorot mereka dan misalnya salin? Atau mengekstraksi mereka? Terimakasih atas klarifikasinya!
langlauf.io
Karena baris yang hilang diawali dengan '-' Saya memilih satu dan kemudian mencocokkan semuanya, memilih baris penuh dan disalin. Cara yang dibangun hanya akan lebih halus untuk dilupakan.
zeristor
5
Saya pikir perlu dijelaskan bahwa kedua file tidak dapat dibuka dengan susah payah. Jika Anda menggandakan klik pada keduanya sehingga keduanya dibuka, maka Anda tidak dapat menyorot kedua file di bilah sisi menggunakan tombol ctrl. Anda harus memastikan salah satu dari mereka ditutup sebelum Anda dapat memilih kedua file. Saya menemukan ini karena saya sudah membuka kedua file dan ingin menggunakan file diff ...
Battousai
1
@NaveenDA Saya menyesuaikan jawaban saya untuk dapat menghapus tautan yang rusak. Terima kasih atas petunjuknya!
langlauf.io
25

UPDATE JAN 2018 - terutama untuk Sublime / Mac

(Ini sangat mirip dengan jawaban Marty F, tetapi membahas beberapa masalah dari respons sebelumnya, menggabungkan beberapa saran berbeda dan membahas perbedaan kritis yang memberi saya masalah pada awalnya.)

Saya menggunakan Sublime Text 3 (build 3143) pada Mac dan telah mencoba selama sekitar 30 menit untuk menemukan fitur Bandingkan File ini. Saya telah menggunakannya sebelumnya di Sublime / Mac tanpa masalah, tapi kali ini, lebih sulit. Tapi, saya akhirnya menemukan jawabannya.

  1. Format file tidak harus UTF-8 . Saya telah berhasil membandingkan file yang UTF-8, ISO-8559-1, dan Windows-1252.

  2. Tidak ada File> Buka Folder di Sublime / Mac . Banyak instruksi di atas dimulai dengan "Pilih File> Buka Folder," tetapi itu tidak ada pada Sublime / Mac.

  3. File membandingkan karya berdasarkan Proyek . Jika Anda ingin membandingkan dua file, mereka harus disimpan ke disk dan bagian dari proyek saat ini.

  4. Cara membuka proyek

    • Jika Sublime / Mac tidak berjalan atau jika berjalan tetapi tidak ada jendela yang terbuka, seret folder ke aplikasi Sublime.
    • Jika Sublime / Mac sedang berjalan, pilih "File> Open", navigasikan ke folder yang diinginkan, jangan pilih file atau folder dan klik "Open".
  5. Tambahkan folder ke proyek . Jika file yang ingin Anda bandingkan bukan bagian dari hierarki yang sama, pertama buka folder yang berisi salah satu file. Kemudian, pilih "Project> Add Folder to Project", navigasikan ke folder yang Anda inginkan dan klik "Open". Anda sekarang akan melihat dua folder level root di sidebar Anda.

  6. Sidebar harus terlihat . Anda bisa "Lihat> Bilah Sisi> Tampilkan Bilah Sisi" atau menggunakan pintasan, Command-K, Command-B.

  7. File harus ditutup (mis. Disimpan) untuk membandingkan . Mengklik tunggal file di Bilah Sisi tidak membuka file, tetapi menampilkannya. Anda dapat mengetahui apakah suatu file terbuka jika terdaftar di bagian "Buka File" di bagian atas Bilah Samping. Mengklik dua kali file atau membuat modifikasi file akan secara otomatis mengubah status file menjadi "Buka". Dalam hal ini, pastikan untuk menutupnya sebelum mencoba membandingkan.

  8. Pilih file dari hierarki folder . Shorcut Mac standar di sini, ( tunggal ) klik file pertama, lalu Command-klik file kedua. Saat Anda memilih file pertama, Anda akan melihat isinya, tetapi tidak terbuka. Kemudian, ketika Anda Command-klik file yang kedua, Anda akan melihat nya isinya, tapi sekali lagi, tidak terbuka. Anda hanya akan melihat satu tab di panel pengeditan.

  9. Kontrol-klik tidak sama dengan klik kanan . Inilah yang membuat saya. Saya menggunakan trackpad dan sering menggunakan Control-klik sebagai klik kanan atau klik sekunder. Ini tidak bekerja untuk saya. Namun, karena saya mengonfigurasi trackpad saya di System Preferences untuk menggunakan sudut kanan bawah trackpad saya sebagai klik kanan, itu berfungsi, menampilkan menu kontekstual, dengan "Delete", "Reveal in Finder", dan .... "File Diff ..."

Voa! Saya harap ini membantu seseorang.

Zonker.in.Geneva
sumber
2
Apakah mungkin untuk melakukan perbandingan folder daripada membandingkan file?
DCBoy
1
Astaga! Anda baru saja menyelamatkan pengguna mac!
analyst045
10

UPDATE OKTOBER 2017 Saya tidak pernah tahu fitur ini ada di Sublime Text, tetapi antarmuka tampaknya telah sedikit berubah dari jawaban sebelumnya - setidaknya pada OS X. Berikut adalah langkah-langkah terperinci yang saya ikuti:

  1. Di Bilah Menu, klik File -> Open ...
  2. Arahkan ke FOLDER yang berisi file yang akan dibandingkan dan dengan FOLDER yang dipilih, klik tombol Open, ini membuat sidebar FOLDER muncul
  3. Di sidebar FOLDERS, klik pada file pertama yang akan dibandingkan
  4. Tahan Ctrl pada Windows atau ⌘ pada OS X, dan klik file kedua
  5. Dengan kedua file yang dipilih, klik kanan pada satu dan pilih Diff Files ...

Ini membuka tab baru yang menunjukkan perbandingan. File pertama berwarna merah, yang kedua berwarna hijau.

Marty F
sumber
8

Tampilan - Tata Letak dan Tampilan - Grup akan dilakukan di Sublime 3 terbaru

misalnya:

Shift+ Alt+ 2-> membuat 2 kolom

Ctrl+ 2-> pindahkan file yang dipilih ke kolom 2

Ini untuk perbandingan berdampingan. Untuk diff sebenarnya, ada fungsi diff lain yang telah disebutkan. Sayangnya, saya tidak dapat menemukan cara untuk membuat kolom gulir pada saat yang bersamaan, yang merupakan fitur yang bagus.

Daniele Dellafiore
sumber
1
Dan untuk menutup grup Anda dapat menggunakan Ctrl+ K Ctrl+down
Alex Raj Kaliamoorthy
2

Tidak ada yang berbicara tentang Linux tetapi semua jawaban di atas akan berfungsi. Cukup gunakan Ctrl untuk memilih lebih dari satu file. Jika Anda ingin membandingkan secara berdampingan, Meld memang menyenangkan.

Wannabe JavaGeek
sumber
2

Opsi Diff hanya muncul jika file berada di folder yang merupakan bagian dari Proyek.

Daripada Anda benar-benar dapat membandingkan file secara native tepat di Sublime Text.

Arahkan ke folder yang berisi mereka melalui Open Folder ... atau dalam proyek Pilih dua file (yaitu, dengan menahan Ctrl pada Windows atau ⌘ pada macOS) yang ingin Anda bandingkan di sidebar Klik kanan dan pilih file Diff ... pilihan.

Ricardo
sumber
0

Ada juga plugin BeyondCompare. Ini membuka 2 file di BeyondComparejendela. Cukup nyaman untuk membuka file dari jendela sublim.

Anda akan membutuhkan instalasi BC3 yang ada di sistem. Setelah menginstal plugin , Anda harus menyediakan jalur untuk instalasi.

Contoh:

{
    //Define a custom path to beyond compare
    "beyond_compare_path": "G:/Softwares/Beyond Compare 3/BCompare.exe"
}
Aditya Gupta
sumber