Vì ediff-files
và ediff-buffers
kết quả là apply: Searching for program: no such file or directory, diff
lỗi trên máy windows.
Làm cách nào để so sánh hai tệp bằng Emacs trên hệ thống windows?
exec-path
biến.
Vì ediff-files
và ediff-buffers
kết quả là apply: Searching for program: no such file or directory, diff
lỗi trên máy windows.
Làm cách nào để so sánh hai tệp bằng Emacs trên hệ thống windows?
exec-path
biến.
Câu trả lời:
Như @nanny đã nói trong các bình luận, giải pháp đã cài đặt Cygwin với diffutils. Đây là cách làm:
diffutils: A GNU collection of diff utilities
gói. Gói này có thể được tìm thấy trong Utils
phần trong một vài bước cài đặt Cygwin.
Sau này, bạn có thể gọi ediff-buffers
, ediff-files
và những người khác thành công. Trông giống như thế này:
Thưởng thức!
Điều này có thể giúp mọi người tiết kiệm thời gian vì vậy tôi sẽ trả lời ở đây. Nếu bạn không muốn thêm bin
thư mục cygwin vào đường dẫn của mình (hoặc bất kỳ thư mục nào khác được đề xuất trong các câu trả lời khác), bạn có thể đặt đường dẫn của chương trình ediff sử dụng bằng cách đặt biến ediff-diff-program
. Ví dụ: bạn có thể đặt nó thành C:\cygwin\bin
(hoặc bất cứ đường dẫn thực tế nào trong trường hợp của bạn) nếu sử dụng cygwin. Tôi phải mất một thời gian để tìm ra biến nào cần thiết lập. Một số DID KHÔNG hoạt động là: ediff-custom-diff-program
và diff-command
.
Ví dụ:
(setq ediff-diff-program "c:/CYGWIN64/bin/diff.exe")
Phải không.
PATH
đặt biến chính xác. Sửa tôi nếu tôi sai.
Nếu bạn không cần phải tạo khác biệt, nhưng chỉ muốn tìm sự khác biệt giữa các tệp, một cách để làm điều đó là sử dụng M-x compare-windows
thay thế.
Mở hai tệp sao cho bạn thấy cả hai cùng một lúc, di chuyển điểm đến điểm bắt đầu trong cả hai bộ đệm và chạy M-x compare-windows
. Nó sẽ di chuyển điểm đến vị trí đầu tiên nơi các tệp khác nhau. Điều này sẽ làm việc mà không có bất kỳ thực thi bên ngoài.
Nếu bạn sử dụng trình cài đặt dòng lệnh https://scoop.sh/, bạn có thể nhận được diff
bằng cách nhập scoop install diffutils
lời nhắc của mình.