代码之家  ›  专栏  ›  技术社区  ›  codeasone

让vc diff在emacs23.2中使用ediff

  •  4
  • codeasone  · 技术社区  · 14 年前

    它在emacs23.1.x中运行得很好,但在迁移到emacs23.2的过程中似乎出现了问题

    而ediff的运行是因为my.emacs中的以下配置

    ;; Use ediff and not diff 
    (setq diff-command "ediff")
    

    但是,唉,我仍然得到正常的vc差异缓冲区出现,没有ediff会话。。。

    有没有其他人遇到过这种情况,知道可能是什么问题?

    3 回复  |  直到 14 年前
        1
  •  8
  •   Trey Jackson    14 年前

    我有点怀疑上面的设置是否像你说的那样。

    也就是说,这将绑定“=”以使用 'ediff-revision :

    (eval-after-load "vc-hooks"
             '(define-key vc-prefix-map "=" 'ediff-revision))
    
        2
  •  5
  •   Feiming Chen    12 年前

    vc-ediff 要跳过输入文件名:只需将当前修改的副本与基本版本(HEAD)进行比较。

    (eval-after-load "vc-hooks"
             '(define-key vc-prefix-map "=" 'vc-ediff))
    

    C-x v = 将启动Ediff会话。

        3
  •  4
  •   Trey Jackson    14 年前

    发现我可以重新绑定 以下内容:

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

    http://www.groupsrv.com/computers/about152826.html