cod*_*one 4 emacs version-control diff
如果这在Emacs 23.1.x中运行良好,但似乎已经打破了向Emacs 23.2的转变
我想在将文件的工作副本与SVN HEAD进行比较时使用ediff.
通常我按Cx v =和ediff运行,因为我的.emacs中有以下配置
;; Use ediff and not diff 
(setq diff-command "ediff")
但是,唉,我仍然会出现正常的vc-diff缓冲区而没有ediff会话......
有没有其他人遇到这个,知道可能是什么问题?
有点怀疑上述设置是否符合您的说法.
也就是说,这将绑定'='使用'ediff-revision:
(eval-after-load "vc-hooks"
         '(define-key vc-prefix-map "=" 'ediff-revision))
小智 5
我使用命令vc-ediff跳过输入文件名:只需将当前修改的副本与基本版本 (HEAD) 进行比较。
(eval-after-load "vc-hooks"
         '(define-key vc-prefix-map "=" 'vc-ediff))
然后C-x v =将调出 Ediff 会话。
发现我可以重新绑定C-x v =到以下内容:
(defun ediff-current-buffer-revision () 
  "Run Ediff to diff current buffer's file against VC depot. 
Uses `vc.el' or `rcs.el' depending on `ediff-version-control-package'." 
  (interactive) 
  (let ((file (or (buffer-file-name) 
          (error "Current buffer is not visiting a file")))) 
(if (and (buffer-modified-p) 
     (y-or-n-p (message "Buffer %s is modified. Save buffer? " 
                (buffer-name)))) 
    (save-buffer (current-buffer))) 
(ediff-load-version-control) 
(funcall 
 (intern (format "ediff-%S-internal" ediff-version-control-package)) 
 "" "" nil))) 
这种方法意味着您不必指定要比较的版本,因为它默认比较 HEAD 和当前文件状态。
资料来源: http: //www.groupsrv.com/computers/about152826.html