Dada a descrição da opção de linha de comando do manual do Emacs :
‘-f function’ ‘--funcall=function’ Call Lisp function function. If it is an interactive function (a command), it reads the arguments interactively just as if you had called the same function with a key sequence. Otherwise, it calls the function with no arguments.
isso é esperado. Você pode tentar usar -e
:
‘--eval=expression’ ‘--execute=expression’ Evaluate Lisp expression expression.
Você provavelmente precisará de algo assim:
emacs --eval '(ediff-files "file1" "file2")'
Verifique se há algo parecido com um script pronto que você pode usar:
Uma alternativa é mostrada na página de manual do modo Ediff:
que adiciona uma linha de comando -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