ดูไฟล์ข้อความสองไฟล์ในเวลาเดียวกันแบบเคียงข้างกัน


21

ฉันมีไฟล์ข้อความสองไฟล์ แต่ละบรรทัดแสดงถึงบรรทัดในหนึ่งภาษา ฉันต้องตรวจสอบว่าการจัดตำแหน่งเหมาะกับทุกครั้งหรือไม่ ดังนั้นฉันต้องการโปรแกรมที่แสดงไฟล์ข้อความทั้งสองพร้อมกันพร้อมหมายเลขบรรทัด

ฉันพยายามกระจาย แต่ก็พยายามจัดแนวไฟล์ - ถ้าโดยบังเอิญสองบรรทัดมีค่าเท่ากันการเปรียบเทียบด้วยสายตาแบบ line-wise ทั้งหมดไม่ทำงาน

คำตอบ:


28

ใช้เป็นกลุ่มพร้อมscrollbindชุด ตัวอย่างเช่น:

vim -O +'windo set scrollbind' /etc/profile /etc/profile.pacnew

ป้อนคำอธิบายรูปภาพที่นี่

ด้วยscrollbindถ้าคุณเลื่อนในหน้าต่างหนึ่งหน้าต่างอื่นที่ถูกผูกไว้ก็เลื่อนในเวลาเดียวกัน ในการมีหมายเลขบรรทัดการ~/.vimrcมีค่าต่ำสุดของสองบรรทัดต่อไปนี้ก็เพียงพอแล้ว:

set nocompatible
set number

ไม่ใช่ว่าคุณต้องการสิ่งvimrcนี้ - สามารถทำได้ทั้งหมดจาก commandline:

vim -NO +'set nu' +'windo set scrollbind' file1 file2 ...

12

แล้วคำสั่งจาก Unix ในยุคแรก ๆ ล่ะ?

pr -m file1 file2

ตัวอย่างเช่น:

pr  -m English Spanish

2016-01-18 00:34                                                  Page 1

this is something                esto es algo
hello, there                     Hola

อัปเดต:คุณสามารถใส่เอาต์พุตให้พอดีกับขนาดของเทอร์มินัลโดยใช้less

pr -m file1 file2 | less

4
หากฉันอาจแนะนำให้ใช้ไพพ์เอาต์พุตless -Nเพื่อแสดงหมายเลขบรรทัดพร้อมกัน pr -m file1 file2 | less -N.
Sergiy Kolodyazhnyy

11

จาก GUI คุณสามารถลองmeld:

ภาพหน้าจอ

มันไม่ได้เป็นอย่างที่คุณต้องการ แต่มันก็มีประโยชน์มากสำหรับจุดประสงค์ของคุณ

ส่วนของข้อความเพิ่มเติมจะถูกเน้นด้วยสีเขียวส่วนของข้อความที่แตกต่างจะถูกเน้นด้วยสีน้ำเงินและในทำนองเดียวกันในส่วนต่าง ๆ ของข้อความตัวอักษรเพิ่มเติมจะถูกเน้นด้วยสีน้ำเงินเข้ม

ทำงานได้มากกว่าสองไฟล์ในเวลาเดียวกัน


ฉันชอบ & ใช้ meld, kdiff3, แม้แต่ sdiff; แต่ถ้าฉันต้องการดูไฟล์สองไฟล์เคียงข้างกัน (ควรจะ) แตกต่างกัน (เช่น i18n กลุ่มทรัพยากรการแปล - การจับคู่คุณสมบัติ, ค่าไม่ได้; กำลังมองหาคุณสมบัติที่ขาดหายไป) จากนั้นพยายามเรียงแถวการจับคู่ เส้นและเครื่องหมายเส้นที่แตกต่างกันจริง ๆ แล้วเป็นลบ
ไมเคิล

@michael_n ฉันสูญเสียที่จะเข้าใจว่าทำไมมันถึงเป็นลบ บางทีฉันอาจจะพลาดประเด็นนี้ไป แต่ถ้าคุณใช้meldคุณควรสังเกตว่าในกรณีเช่นกรณีที่คุณกำลังอธิบายบรรทัดถูกไฮไลต์ในสีฟ้าที่อ่อนกว่าและอักขระเพิ่มเติมเฉพาะในสีน้ำเงินเข้มทำให้ความแตกต่างที่แน่นอนเกิดขึ้นทันที . หรือว่าฉันขาดอะไรไป?
คอส

คุณถูกต้องอย่างแน่นอนและฉันควรจะชี้แจง; ปัญหาคือเครื่องมือเหล่านี้ไม่มีตัวเลือกการกำหนดค่าที่คาดหวังและอนุญาตให้มีความแตกต่างบางอย่างที่ควรมี (afaik) ในบางกรณีพวกเขาพิจารณาไฟล์ทั้งหมดแตกต่างกันเกินไปที่จะรำคาญที่จะเข้าแถว ตัวอย่างเช่นตัวเลือกที่มีประโยชน์ (จากตัวอย่างของฉัน: msg.text = "Hello" vs msg.text = "Bonjour") จะไม่สนใจบางส่วนของไฟล์ทั้งสองโดยใช้ "ch N แรก" หรือ regexp: "^. * = "
ไมเคิล

ที่จริงฉันคิดว่า sdiff มีตัวเลือกที่จะไม่สนใจโดย regexp (แต่ฉันไม่ได้บวก) ถึงกระนั้นถ้ามันเป็นเพียงข้อความแบบฟรีจากภาษาฝรั่งเศสและภาษาอังกฤษก็ไม่จำเป็นต้องเน้นอะไรเลยและความพยายามใด ๆ ที่จะจับคู่บรรทัดที่ฉันพูดถึงจะเป็นค่าลบ บางครั้งเราแค่ต้องการเห็นไฟล์เคียงข้างกัน (และนั่นคือสาระสำคัญของคำถามเดิมตามที่ฉันเข้าใจ)
ไมเคิล

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


0

หากคุณกำลังมองหาคำแปลคุณอาจพบว่าPoeditมีประโยชน์ มันสามารถแสดงข้อความทั้งสองแบบเคียงข้างกันสำหรับคุณและสร้างขึ้นเพื่อทำงานกับการแปล


1
แทนที่จะวางลิงก์ไปยังโซลูชันคุณควรอธิบายว่า 'เป็นอย่างไร'
Edward Torvalds

อันนี้ดูเหมือนจะถูก จำกัด ให้ทำงานกับ gettext
carnendil
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.