像vimdiff这样的emacs中有选项吗?

时间:2013-09-02 11:47:47

标签: emacs emacs23 emacs24

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

1 个答案:

答案 0 :(得分:3)

你在寻找ediff。在emacs中,您可以通过M-x 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”默认值“

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

这些将始终拆分为并排编辑窗口。

如果你想总是强制一个新的框架(这样更清洁),另外试试这些:

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

我希望这有助于开始。