如何突出显示Emacs中的CVS更改?

如何突出显示Emacs中的CVS更改?,emacs,highlight,cvs,Emacs,Highlight,Cvs,我将emacs与cvs一起使用,并启用了cvs模式。我想逐行突出显示CVS中最新版本的更改。我在intellij中看到过这种情况,在intellij中,添加的行有一个绿色指示,修改的行有另一个指示,删除的行有第三个符号 emacs是否有cvs高亮显示模式来显示最新版本cvs的更改?我不是在寻找一个将在新缓冲区中打开的cvs diff类型的功能,而是在我当前的缓冲区中指示修改了哪些行的功能 在下图中,Intellij称之为“槽”的左侧有一个蓝色矩形,表示代码与源代码管理中的代码不同 (来源:)

我将emacs与cvs一起使用,并启用了cvs模式。我想逐行突出显示CVS中最新版本的更改。我在intellij中看到过这种情况,在intellij中,添加的行有一个绿色指示,修改的行有另一个指示,删除的行有第三个符号

emacs是否有cvs高亮显示模式来显示最新版本cvs的更改?我不是在寻找一个将在新缓冲区中打开的
cvs diff
类型的功能,而是在我当前的缓冲区中指示修改了哪些行的功能

在下图中,Intellij称之为“槽”的左侧有一个蓝色矩形,表示代码与源代码管理中的代码不同


(来源:)


我正在emacs中寻找类似的功能。

也许您愿意,它似乎能完全满足您的需求。

这里还有一个答案,它也不能满足您的需求,但可能很有用

C-x v g 
运行命令
vc annotate

这将弹出一个新的缓冲区(我知道,你不想要一个),但它将有所有的行标记谁碰他们时。另外,它们还带有热图的颜色编码(红色是最新的,蓝色是最少的),便于识别最近的变化

当然,vc annotate的内置版本不会适当地滚动缓冲区,因此您需要以下建议:

(defadvice vc-annotate (around vc-annotate-and-scroll)
  "scroll buffer to view current line in the annotated buffer"
  (let ((pos (count-lines (point-min) (point))))
    ad-do-it
    (let ((orig-window (selected-window))
          (window (other-window-for-scrolling)))
      (select-window window)
      (goto-line pos)
      (select-window orig-window))))

(ad-activate 'vc-annotate)

您需要的是
vc diff
,默认情况下,它位于
C-xv=
上。这将在临时缓冲区中提供原始差异输出。缓冲区使用diff模式,这有一些巧妙的技巧。。。例如,可以使用
C-C-e
将差异作为修补程序应用于另一个文件。在diff缓冲区中使用
descripe mode
C-hm
默认设置)查找其他技巧。

您现在可以检出,它在左侧窗口边缘提供高亮显示


到目前为止,我只在一些现代DVCSE上测试过它,但是如果您仍在使用CVS,并且它不起作用,请提交一个问题。

这与我想要的不完全一样。我想要一个次要模式,这样在编辑代码时它就可以一直打开。我还想直接与CVS进行比较,而不需要获得原始版本的第二个本地副本。IntelliJ如何处理这个问题?看起来你问的东西太贵了……请输入s/cvs/vcs,这样我们就可以得到任何git/bzr/hg/svn的答案……至少对我来说是有用的:)