Lança o emacs com o arquivo de ediff (de ediff-directories) a partir da linha de comando

0

Eu gostaria de lançar o emacs para construir arquivos ou diretórios. Por exemplo, eu gostaria de algo como:

emacs -f ediff-files file1 file2

Mas quando eu faço isso, não é necessário arquivo1 e arquivo2 como os dois arquivos para diferenciar. Em vez disso, o emacs me pede que os arquivos façam diferença.

Alguém sabe como fazer isso em uma linha de comando?

    
por Madeleine P. Vincent 16.11.2014 / 00:31

1 resposta

0

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
    
por 01.12.2014 / 21:47