2

我只是想从终端向 emacs 提供两个文件,它应该在两个单独的窗口中以差异模式打开它们。

4

1 回答 1

3

您正在寻找 ediff。在 emacs 中,您可以通过 Mx ediff 和文件名来激活它。要从命令行调用它,请尝试这样的操作(取自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

为了让您从这里开始,这里有一些额外的“更明智的”默认值”

;; 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)

这些将始终拆分为并排的 ediff 窗口。

如果您想始终强制使用新框架(这样更干净),请另外尝试以下操作:

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

我希望这对开始有帮助。

于 2013-09-02T12:18:37.810 回答