การเปรียบเทียบเนื้อหาของสองไฟล์ใน Sublime Text


397

ฉันมีที่เก็บโคลนสองแห่งในโครงการโอเพนซอร์ซสองโครงการที่คล้ายกันมากซึ่งฉันได้ทำงานในหลาย ๆ กรณีใน Sublime Text 2 เพื่อให้ได้ผลลัพธ์ตามที่ต้องการ ใช้รหัสจากทั้งสองโครงการ ฉันใช้ Git เป็นตัวควบคุมเวอร์ชันสำหรับโครงการของฉัน แต่ไม่ได้รวมโครงการดั้งเดิมไว้ ดังนั้นฉันต้องการที่จะสามารถเปรียบเทียบเนื้อหาของสองไฟล์ในโครงการต้นฉบับได้อย่างรวดเร็วและเปรียบเทียบความแตกต่างระหว่างพวกเขากับโครงการของฉัน

ฉันหวังว่า Sublime Text 2 จะมีคุณสมบัติ "เปรียบเทียบไฟล์" แต่ฉันดูเหมือนจะไม่พบสิ่งใดที่เกี่ยวข้องกับมันในการตั้งค่าหรือออนไลน์ แพ็คเกจ ST2 ของบุคคลที่สามเพื่อให้ภารกิจนี้สำเร็จก็จะทำงานได้ดีเช่นกัน เป็นงานที่สามารถทำได้ภายในโปรแกรมแก้ไขข้อความ ST2 หรือไม่?

คำตอบ:


705

คุณสามารถเปรียบเทียบไฟล์ได้โดยตรงใน Sublime Text

  1. นำทางไปยังโฟลเดอร์ที่บรรจุโฟลเดอร์เหล่านั้นผ่านOpen Folder...หรือในโครงการ
  2. เลือกไฟล์สองไฟล์ (เช่นโดยการกดCtrlบน Windows หรือบน macOS) คุณต้องการเปรียบเทียบในแถบด้านข้าง
  3. คลิกขวาและเลือกDiff files...ตัวเลือก


19
@Derek: การใช้ select สามารถเลือกได้ แต่ไม่สามารถหาตัวเลือก diff file ได้ในการคลิกขวา แต่จะมีตัวเลือก close เมื่อคลิกขวา
Mohamed Hussain

65
@MohamedHussain มีแถบด้านข้างที่แตกต่างกันสองแบบและคุณต้องอยู่ในตำแหน่งที่ถูกต้องเพื่อการทำงาน หากคุณไปที่ไฟล์> เปิดโฟลเดอร์ ... ให้เลือกโฟลเดอร์ที่ไฟล์ของคุณอยู่แล้วเลือกมุมมอง> แถบด้านข้าง> แสดงแถบด้านข้างคุณจะได้รับสิ่งที่คุณต้องการ คุณได้อีกอันด้วยการเลือกดู> แถบด้านข้าง> แสดงไฟล์ที่เปิด แต่อันนี้จะไม่ยอมให้คุณใช้ตัวเลือก Diff ไฟล์ ...
Jeramy

25
น่าเสียดายที่ดูเหมือนว่ามันจะไม่ทำงานอีกต่อไปใน sublime build 3103 บน mac ทันทีที่ฉันคลิกขวาไฟล์ที่สองจะถูกยกเลิกการเลือก
merlin

8
ไม่ทำงานสำหรับฉันใน Build 3144 บน OSX ฉันสามารถเลือกสองไฟล์ในส่วนต่อประสานไฟล์ แต่เมื่อฉันกดปุ่ม Ctrl จะมีเพียงไฟล์เดียวที่ถูกเลือกและตัวเลือก diff ไม่อยู่ที่นั่น
James J

4
ไม่ทำงานสำหรับฉันด้วยใน 3114 - windows ไม่มีตัวเลือกต่างกันเมื่อฉันคลิกขวาที่ไฟล์
dangsonbk

216

เปรียบเทียบ Side-By-Sideดูเหมือนจะสะดวกที่สุดสำหรับฉันแม้ว่าจะไม่ใช่ที่นิยมที่สุด:

UPD: ฉันต้องการเพิ่มว่าปลั๊กอินนี้สามารถตรึง ST ขณะเปรียบเทียบไฟล์ขนาดใหญ่ แน่นอนว่าไม่ใช่การตัดสินใจที่ดีที่สุดหากคุณจะเปรียบเทียบข้อความขนาดใหญ่


11
นี่เป็นทางออกที่ง่ายที่สุดและสะดวกที่สุด IMO ทำงานได้ดีใน ST3
mihai

5
ทำงานได้ดีและสามารถเปรียบเทียบไฟล์จากสถานที่ต่าง ๆ ซึ่งฉันไม่ได้จัดการกับการเปรียบเทียบแบบเนทีฟ
Leo

3
วิธีนี้ใช้ได้กับการคัดลอกเนื้อหาที่วางในแท็บใหม่ที่ไม่ได้บันทึกซึ่งมีประโยชน์ในการบีบ
mtone

1
ฉันหวังว่าฉันจะได้เห็นสิ่งนี้ก่อนหน้านี้จะช่วยฉันในวันที่ไม่ก่อผล
0_o

1
เปรียบเทียบเคียงข้างกันเพียงช่วยฉัน
noob

61

มีปลั๊กอินต่าง ๆจำนวนมากผ่านการควบคุมแพ็คเกจ ฉันใช้Sublimerge Proซึ่งทำงานได้ดีพอ แต่เป็นผลิตภัณฑ์เชิงพาณิชย์ (มีระยะเวลาทดลองใช้ไม่ จำกัด ) และแหล่งปิดดังนั้นคุณไม่สามารถปรับแต่งได้หากคุณต้องการเปลี่ยนบางสิ่งหรือเพียงแค่ดูที่ภายใน FileDiffsค่อนข้างเป็นที่นิยมโดยพิจารณาจากจำนวนการติดตั้งดังนั้นคุณอาจต้องการลองใช้มัน


2
ตอนนี้ฉันกำลังใช้ FileDiffs และมันใช้งานได้อย่างมีเสน่ห์ ขอบคุณตอบรับแล้ว
LanceLafontaine

1
ฉันไม่สามารถหาวิธีใช้ FileDiffs ได้ คุณสามารถอธิบายสั้น ๆ ว่าฉันจะเปรียบเทียบสองไฟล์ได้อย่างไร
Jamil Ahmed

4
@ LanceLafontaine ปกติฉันจะไม่ทำเช่นนี้ แต่คุณจะเปลี่ยนคำตอบที่ยอมรับไปเป็นคำตอบของ Derek 朕會功夫ด้านล่างหรือไม่ พวกเราทั้งคู่ต่างก็ไม่ต้องการจุด แต่ฉันไม่รู้ว่ามีความแตกต่างในตัวในเวลานั้น ตอนนี้ฉันใช้มันตลอดเวลาเมื่ออยู่ใน Sublime ครั้งเดียวที่ฉันไม่ได้คือเมื่อฉันต้องการคุณสมบัติเพิ่มเติมของเครื่องมือภายนอก
MattDMo

ปลั๊กอินใดที่สามารถตรวจจับการเคลื่อนไหวของบล็อคข้อความทั้งหมดได้ และไม่เพียงแค่บอกว่าบางบรรทัดหายไปที่นี่และปรากฏที่นั่น แต่ยังแสดงด้วยลูกศรว่าพวกเขาเคลื่อนไหวอย่างไร?
skan

ขอบคุณคำตอบนี้ฉันติดตั้ง FileDiffs และเพิ่ม commad เพื่อใช้ TortoiseMerge.exe เพื่อเปรียบเทียบ มันเป็นการปรับปรุงที่ยิ่งใหญ่สำหรับการเปรียบเทียบโค้ดประเสริฐทุกวันของฉัน ขอบคุณ!
lyubeto

48

UPDATE
(จาก upvotes ฉันรู้สึกว่ามีความต้องการคำอธิบายทีละขั้นตอนอย่างสมบูรณ์ ... )

  1. ในแถบเมนูคลิกที่File->Open Folder...
  2. เลือกโฟลเดอร์ (โฟลเดอร์จริงไม่สำคัญเลยขั้นตอนนี้เป็นเพียงการทำให้FOLDERSแถบด้านข้างพร้อมใช้งาน)
  3. หากไม่มีแถบด้านข้างปรากฏขึ้นทำให้ปรากฏผ่านView-> Side Bar->Show Side Bar
  4. ใช้FOLDERSแถบด้านข้างที่มีชื่อนี้เพื่อไปยังไฟล์แรกที่คุณต้องการเปรียบเทียบ
  5. เลือก (คลิกที่มัน) กด ctrl ค้างไว้แล้วเลือกไฟล์ที่สอง
  6. มีสองไฟล์ที่เลือกคลิกขวาที่หนึ่งในสองและเลือก Diff Files...

ควรมีแท็บใหม่ที่แสดงการเปรียบเทียบ


คำตอบสั้น ๆ ดั้งเดิม:
โปรดทราบว่า:

"ไฟล์ต่าง ๆ " จะปรากฏขึ้นพร้อมกับแถบข้าง "โฟลเดอร์" (เพื่อเปิดโฟลเดอร์: ไฟล์ -> เปิดโฟลเดอร์) ไม่ใช่กับแถบด้านข้าง "ไฟล์ที่เปิด"


มีวิธีเลือกเส้นต่าง ๆ เหล่านั้นหรือไม่? หนึ่งปรากฏในสีแดงและสีเขียวอื่น ๆ
zeristor

1
คุณหมายถึงอะไรโดยเลือก? ไฮไลต์พวกเขาและเช่นคัดลอกพวกเขา? หรือแยกพวกเขา? ขอขอบคุณสำหรับการชี้แจง!
langlauf.io

เนื่องจากบรรทัดที่ขาดหายไปจะมีคำนำหน้าด้วย '-' ฉันเลือกหนึ่งรายการแล้วจับคู่ทั้งหมดให้เลือกเต็มบรรทัดและคัดลอก การสร้างทางจะทำให้หลงลืมได้มากกว่า
zeristor

5
ฉันคิดว่ามันคุ้มค่าที่จะอธิบายว่าไฟล์ทั้งสองไม่สามารถเปิดได้ยาก หากคุณคลิกสองครั้งที่ทั้งคู่เพื่อให้ทั้งคู่เปิดอยู่คุณจะไม่สามารถเน้นทั้งสองไฟล์ในแถบด้านข้างโดยใช้ปุ่ม ctrl คุณต้องให้แน่ใจว่าหนึ่งในนั้นถูกปิดก่อนที่คุณจะสามารถเลือกไฟล์ทั้งสอง ฉันพบนี้ออกมาเพราะฉันแล้วก็ทั้งสองไฟล์เปิดและต้องการที่จะใช้ไฟล์ diff ...
Battousai

1
@ NaveenDA ฉันปรับคำตอบเพื่อให้สามารถลบลิงค์ที่เสียหายได้ ขอบคุณสำหรับคำใบ้!
langlauf.io

25

อัปเดต ม.ค. 2018 - โดยเฉพาะอย่างยิ่งสำหรับ Sublime / Mac

(นี่คล้ายกับคำตอบของ Marty F แต่เน้นปัญหาบางประการจากคำตอบก่อนหน้านี้รวมคำแนะนำที่แตกต่างกันหลายอย่างและพูดถึงความแตกต่างที่สำคัญซึ่งทำให้ฉันมีปัญหาในตอนแรก)

ฉันใช้ Sublime Text 3 (build 3143) บน Mac และพยายามใช้เวลาประมาณ 30 นาทีเพื่อหาคุณสมบัติการเปรียบเทียบไฟล์นี้ ฉันเคยใช้มันมาก่อนบน Sublime / Mac โดยไม่มีปัญหา แต่คราวนี้มันยุ่งยากกว่า แต่ในที่สุดฉันก็คิดออก

  1. รูปแบบไฟล์ที่ไม่จำเป็นต้องเป็น UTF-8 ฉันได้ทำการเปรียบเทียบไฟล์ที่เป็น UTF-8, ISO-8559-1 และ Windows-1252 เรียบร้อยแล้ว

  2. มีไฟล์ไม่มี> เปิดโฟลเดอร์บน Sublime คำแนะนำมากมายด้านบนเริ่มต้นด้วย "เลือกไฟล์> เปิดโฟลเดอร์" แต่ไม่มีอยู่ใน Sublime / Mac

  3. แฟ้มผลงานเปรียบเทียบบนพื้นฐานโครงการ หากคุณต้องการเปรียบเทียบสองไฟล์จะต้องบันทึกไว้ในดิสก์และเป็นส่วนหนึ่งของโครงการปัจจุบัน

  4. วิธีในการเปิดโครงการ

    • หาก Sublime / Mac ไม่ทำงานหรือทำงานอยู่ แต่ไม่มีหน้าต่างเปิดอยู่ให้ลากโฟลเดอร์ไปยังแอป Sublime
    • หาก Sublime / Mac ทำงานอยู่ให้เลือก "ไฟล์> เปิด" นำทางไปยังโฟลเดอร์ที่ต้องการอย่าเลือกไฟล์หรือโฟลเดอร์แล้วคลิก "เปิด"
  5. เพิ่มโฟลเดอร์โครงการ หากไฟล์ที่คุณต้องการเปรียบเทียบไม่ใช่ส่วนหนึ่งของลำดับชั้นเดียวกันให้เปิดโฟลเดอร์ที่มีไฟล์ใดไฟล์หนึ่งก่อน จากนั้นเลือก "โครงการ> เพิ่มโฟลเดอร์ในโครงการ" นำทางไปยังโฟลเดอร์ที่คุณต้องการและคลิก "เปิด" ตอนนี้คุณจะเห็นโฟลเดอร์ระดับรากสองโฟลเดอร์ในแถบด้านข้างของคุณ

  6. แถบด้านข้างจะต้องมองเห็น คุณสามารถ "ดู> แถบด้านข้าง> แสดงแถบด้านข้าง" หรือใช้ทางลัด Command-K, Command-B

  7. ไฟล์จะต้องปิด (เช่นบันทึกไว้) เพื่อเปรียบเทียบ คลิกครั้งเดียวที่ไฟล์ในแถบด้านข้างไม่ได้เปิดไฟล์ แต่มันจะแสดงมัน คุณสามารถบอกได้ว่าไฟล์เปิดอยู่หรือไม่หากไฟล์นั้นอยู่ในรายการในส่วน "เปิดไฟล์" ที่ด้านบนของแถบด้านข้าง การดับเบิลคลิกที่ไฟล์หรือทำการดัดแปลงไฟล์จะเป็นการเปลี่ยนสถานะของไฟล์เป็น "เปิด" โดยอัตโนมัติ ในกรณีนี้โปรดปิดก่อนลองเปรียบเทียบ

  8. เลือกไฟล์จากลำดับชั้นโฟลเดอร์ ชอร์คัท Mac มาตรฐานที่นี่ (เดี่ยว ) คลิกไฟล์แรกจากนั้นคลิกคำสั่งคลิกไฟล์ที่สอง เมื่อคุณเลือกไฟล์แรกคุณจะเห็นเนื้อหา แต่จะไม่เปิด จากนั้นเมื่อคุณสั่งคลิกที่ไฟล์ที่สองคุณจะเห็นมันเนื้อหาอีกครั้ง แต่ไม่เปิดให้บริการ คุณจะสังเกตเห็นเพียงแท็บเดียวในแผงการแก้ไข

  9. ควบคุมคลิกคือไม่เหมือนกับการคลิกขวา นี่คือสิ่งที่ทำให้ฉันได้รับ ฉันใช้แทร็คแพดและมักใช้วิธีควบคุมคลิกเป็นคลิกขวาหรือคลิกรอง สิ่งนี้ไม่ได้ผลสำหรับฉัน อย่างไรก็ตามเนื่องจากฉันกำหนดค่าแทร็คแพดของฉันในการตั้งค่าระบบเพื่อใช้มุมขวาล่างของแทร็คแพดของฉันเป็นคลิกขวาที่ใช้งานได้แสดงเมนูตามบริบทด้วย "ลบ", "เปิดเผยใน Finder" และ .... "กระจายไฟล์ ... "

Voila! ฉันหวังว่านี่จะช่วยให้ใครบางคน


2
เป็นไปได้ไหมที่จะทำการเปรียบเทียบโฟลเดอร์แทนที่จะเปรียบเทียบไฟล์?
DCBoy

1
jeez! คุณเพิ่งบันทึกผู้ใช้ mac!
วิเคราะห์ 045

10

อัปเดตตุลาคม 2017 ฉันไม่เคยรู้มาก่อนว่ามีฟีเจอร์นี้ใน Sublime Text แต่ดูเหมือนว่าอินเทอร์เฟซจะเปลี่ยนไปเล็กน้อยจากคำตอบก่อนหน้า - อย่างน้อยใน OS X นี่คือขั้นตอนโดยละเอียดที่ฉันปฏิบัติตาม:

  1. ในแถบเมนูคลิกไฟล์ -> เปิด ...
  2. นำทางไปยังโฟลเดอร์ที่มีไฟล์ที่จะเปรียบเทียบและเมื่อเลือกโฟลเดอร์ให้คลิกปุ่มเปิดนี่จะทำให้แถบด้านข้างของโฟลเดอร์ปรากฏขึ้น
  3. ในแถบด้านข้างโฟลเดอร์ให้คลิกไฟล์แรกที่จะเปรียบเทียบ
  4. กดปุ่ม Ctrl บน Windows หรือ⌘บน OS X ค้างไว้แล้วคลิกไฟล์ที่สอง
  5. เมื่อเลือกทั้งไฟล์แล้วให้คลิกขวาที่หนึ่งแล้วเลือก Diff Files ...

นี่เป็นการเปิดแท็บใหม่ที่แสดงการเปรียบเทียบ ไฟล์แรกเป็นสีแดงไฟล์ที่สองเป็นสีเขียว


8

มุมมอง - เลย์เอาต์และมุมมอง - กลุ่มจะดำเนินการใน Sublime 3 ล่าสุด

เช่น:

Shift+ Alt+ 2-> สร้าง 2 คอลัมน์

Ctrl+ 2-> ย้ายไฟล์ที่เลือกไปยังคอลัมน์ 2

นี่คือการเปรียบเทียบแบบเคียงข้างกัน สำหรับ diff ที่เกิดขึ้นจริงมีฟังก์ชั่น diff ที่กล่าวถึงแล้ว น่าเสียดายที่ฉันไม่สามารถหาวิธีเลื่อนคอลัมน์ในเวลาเดียวกันซึ่งจะเป็นคุณลักษณะที่ดี


1
และเพื่อปิดกลุ่มคุณสามารถใช้Ctrl+ K Ctrl+down
Alex Raj Kaliamoorthy

2

ไม่มีใครพูดถึง Linux แต่คำตอบข้างต้นจะใช้ได้ เพียงใช้ Ctrl เพื่อเลือกมากกว่าหนึ่งไฟล์ หากคุณกำลังมองหาการเปรียบเทียบแบบเคียงข้างกันเมลด์น่ารักมาก


2

ตัวเลือกต่าง ๆ จะปรากฏขึ้นหากไฟล์อยู่ในโฟลเดอร์ที่เป็นส่วนหนึ่งของโครงการ

กว่าที่คุณจะสามารถเปรียบเทียบไฟล์ได้โดยตรงใน Sublime Text

นำทางไปยังโฟลเดอร์ที่มีไฟล์เหล่านั้นผ่าน Open Folder ... หรือในโครงการเลือกไฟล์สองไฟล์ (เช่นโดยการกด Ctrl บน Windows หรือ⌘บน macOS) คุณต้องการเปรียบเทียบในแถบด้านข้างคลิกขวาและเลือกไฟล์ Diff ... ตัวเลือก


0

มีปลั๊กอิน BeyondCompare เช่นกัน มันเปิดไฟล์ 2 ไฟล์ในBeyondCompareหน้าต่าง ค่อนข้างสะดวกในการเปิดไฟล์จากหน้าต่างประเสริฐ

คุณจะต้องมีการติดตั้ง BC3 ในระบบ หลังจากติดตั้งปลั๊กอินคุณจะต้องระบุเส้นทางไปยังการติดตั้ง

ตัวอย่าง:

{
    //Define a custom path to beyond compare
    "beyond_compare_path": "G:/Softwares/Beyond Compare 3/BCompare.exe"
}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.