はドイツ語のテキスト( "KEIN Zeilenumbruch午前Dateiende")が含まれるように変数ediff-diff-ok-lines-regexp
の値を変更してみてください:
(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は「doesnのように見えるんdiff
からのメッセージのローカライゼーションの問題に対処しようとしています。また、例えば、シェルスクリプトでdiff
をラップすることによってこの問題を回避することが可能です:
(setq ediff-diff-program "~/bin/my-diff.sh")
のEmacsの他のコード:代わりにラッパーを呼び出すためにediff-diff-program
をカスタマイズ
#!/bin/bash
LANG=C diff $*
..then
(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)))
...
Ediffも行っていないことを少し奇妙に思える:ソースディレクトリのlisp/VCは、たとえばvc-hg-state
のために、これを処理するように見えるんこれは、おそらく私は何かが欠けている。
ediff 'erroring'と 'failing'はどういう意味ですか?ファイルの末尾に欠けている改行を違いとして扱いたいのですか?そうでない場合は、 'ediff-diff-options'を' '-w" 'に設定して空白の違いを無視できますか? –
"失敗"とは、diffを取得する代わりに、 'ediff-files'が'エラー出力中のエラー 'というエラーメッセージで停止することを意味します。 diff出力は# 'にあり、バッファ' * ediff-errors * 'は' \ Kein Zeilenumbruch ... 'でポップアップします。そして、はい、私は問題が私に警告として表示され、次に差分が表示されることを希望します。 '-w'を指定すると、引き続きエラーが発生します。 (でも、空白の違いを探したいと思えば、これは役に立たないでしょう。) –
OK、私はあなたが今何を意味しているのかを見て、自分の言語をドイツ語に設定すると同じエラーになります。あなたの答えで言うように、Emacsはdiffの出力を英語で期待しています。私は別の回避策を提案しました。 –