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