Попробуйте изменить значение переменной ediff-diff-ok-lines-regexp
, чтобы включить текст на немецком языке ("Kein Zeilenumbruch am Dateiende"):
(setq ediff-diff-ok-lines-regexp
(concat
"^\\("
"[0-9,]+[acd][0-9,]+\C-m?$"
"\\|[] "
"\\|---"
"\\|.*Warning *:"
"\\|.*No +newline"
"\\|.*missing +newline"
"\\|.*Kein +Zeilenumbruch +am +Dateiende"
"\\|^\C-m?$"
"\\)"))
Обновление: Глядя на исходный код,похоже, что Ediff не предпринимает никаких попыток решить проблему локализации сообщений из diff
.Также можно обойти это, обернув diff
в сценарий оболочки, например:
#!/bin/bash
LANG=C diff $*
.. затем настроив ediff-diff-program
для вызова оболочки вместо:
(setq ediff-diff-program "~/bin/my-diff.sh")
Другой код в исходном каталоге Emacs lisp / vc, кажется, справляется с этим, например: vc-hg-state
:
(defun vc-hg-state (file)
"Hg-specific version of `vc-state'."
...
(with-output-to-string
(with-current-buffer
standard-output
(setq status
(condition-case nil
;; Ignore all errors.
(let ((process-environment
;; Avoid localization of messages so we
;; can parse the output.
(append (list "TERM=dumb" "LANGUAGE=C")
process-environment)))
...
Кажется немного странным, что Эдифф также не делает этого, но, возможно,Я что-то упустил.