С учетом описания параметров командной строки из руководства Emacs:
'-f function' '--funcall = function' Вызвать функцию функции Lisp. Если это интерактивная функция (команда), она читает аргументы в интерактивном режиме так же, как если бы вы вызывали ту же функцию с последовательностью клавиш. В противном случае он вызывает функцию без аргументов.
это ожидается. Вместо этого вы можете попробовать использовать -e
:
'--eval = expression' '--execute = expression' Оценить выражение выражения Lisp.
Вам, вероятно, понадобится что-то вроде этого:
emacs --eval '(ediff-files "file1" "file2")'
Проверьте это для чего-то похожего на готовый скрипт, который вы можете использовать:
Альтернатива показана на странице руководства по режиму Ediff:
который добавляет ключ командной строки -diff
:
(defun command-line-diff (switch)
(let ((file1 (pop command-line-args-left))
(file2 (pop command-line-args-left)))
(ediff file1 file2)))
(add-to-list 'command-switch-alist '("diff" . command-line-diff))
;; Usage: emacs -diff file1 file2