문제

I simply want to supply two files to emacs from terminal and it should open them in two separate windows in diff mode.

도움이 되었습니까?

해결책

You're looking for ediff. In emacs you can activate it via M-x ediff and the file names. To call it from commandline try something like this (taken from emacs wiki):

(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

To get you started here are a few additional "saner" defaults"

;; saner ediff default
(setq ediff-diff-options "-w")
(setq ediff-split-window-function 'split-window-horizontally)
(setq ediff-window-setup-function 'ediff-setup-windows-plain)

These will always split to have ediff windows side-by-side.

If you want to always force a new frame (it is cleaner this way), try these additionally:

(add-hook 'ediff-before-setup-hook 'new-frame)
(add-hook 'ediff-quit-hook 'delete-frame)

I hope that helps for the beginning.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top