ตั้งแต่ediff-files
และediff-buffers
ส่งผลให้เกิดapply: Searching for program: no such file or directory, diff
ข้อผิดพลาดในเครื่อง windows
วิธีเปรียบเทียบสองไฟล์โดยใช้ Emacs บนระบบ windows
exec-path
ตัวแปร
ตั้งแต่ediff-files
และediff-buffers
ส่งผลให้เกิดapply: Searching for program: no such file or directory, diff
ข้อผิดพลาดในเครื่อง windows
วิธีเปรียบเทียบสองไฟล์โดยใช้ Emacs บนระบบ windows
exec-path
ตัวแปร
คำตอบ:
ดังที่ @nanny กล่าวไว้ในความคิดเห็นวิธีการแก้ปัญหาก็คือการติดตั้ง Cygwin ด้วย diffutils นี่คือวิธีที่จะทำ:
diffutils: A GNU collection of diff utilities
แพ็คเกจ แพคเกจนี้สามารถพบได้ในUtils
ส่วนหนึ่งในไม่กี่ขั้นตอนของการติดตั้ง Cygwin
หลังจากนี้คุณสามารถโทรไปediff-buffers
, ediff-files
และคนอื่น ๆ ที่ประสบความสำเร็จ ซึ่งมีลักษณะดังนี้:
สนุก!
หากคุณมี git สำหรับ windows ติดตั้งอยู่ก็เพียงพอที่จะเพิ่ม
C:\Program Files\Git\usr\bin\
ไปที่ PATH ของคุณเพราะมันมาพร้อมกับไฟล์ปฏิบัติการ diff และติดตั้งไว้ในโฟลเดอร์นั้น
นี่อาจช่วยชีวิตผู้คนได้บ้างดังนั้นฉันจะตอบที่นี่ หากคุณไม่ต้องการเพิ่ม Cygwin bin
ไดเรกทอรีไปยังเส้นทางของคุณ (หรือของคนอื่น ๆ ที่แนะนำในคำตอบอื่น ๆ ) คุณสามารถกำหนดเส้นทางของการใช้โปรแกรม ediff ediff-diff-program
โดยการตั้งค่าตัวแปร ตัวอย่างเช่นคุณสามารถตั้งค่าเป็นC:\cygwin\bin
(หรือเส้นทางใดก็ตามที่เป็นจริงในกรณีของคุณ) หากใช้ cygwin ฉันใช้เวลาพอสมควรกว่าจะหาว่าจะตั้งค่าตัวแปรใด บางอย่างที่ไม่ได้ทำงานคน: และediff-custom-diff-program
diff-command
ตัวอย่างเช่น:
(setq ediff-diff-program "c:/CYGWIN64/bin/diff.exe")
ทำมัน.
PATH
ตั้งค่าตัวแปรอย่างถูกต้อง ช่วยแก้ให้ด้วยนะถ้าฉันผิด.
หากคุณไม่ต้องการสร้างความแตกต่าง แต่เพียงต้องการค้นหาความแตกต่างระหว่างไฟล์วิธีหนึ่งที่ทำได้คือใช้M-x compare-windows
แทน
M-x compare-windows
เปิดแฟ้มที่สองเช่นที่คุณเห็นทั้งสองคนในเวลาเดียวกันชี้ย้ายไปจุดเริ่มต้นทั้งในบัฟเฟอร์และเรียกใช้ มันจะย้ายจุดไปยังตำแหน่งแรกที่ไฟล์ต่างกัน สิ่งนี้จะทำงานได้โดยไม่ต้องมีการปฏิบัติการจากภายนอก
หากคุณใช้ตัวติดตั้งบรรทัดคำสั่งhttps://scoop.sh/คุณสามารถรับได้diff
โดยพิมพ์scoop install diffutils
พรอมต์ของคุณ