我一直希望能够得到一个相当优雅的方式让vimdiff使用CVS控制文件。 我在互联网上发现了许多(有点hacky)脚本( 这里最好的例子)基本上将你正在编辑的文件从CVS检出到临时文件,并vimdiff这两个。 这些都没有考虑到分支,并且总是假设你在MAIN工作,这对我来说完全没用。

所以,我的问题是这样的:有没有人在那里找到一个不错的解决方案比这个脚本更多?

或者失败了,是否有人对他们如何实现这一点有任何想法,或者建议您认为哪些功能对于这样做至关重要? 我的意图是,如果没有人可以建议已经构建的解决方案来使用或构建,我们从这里开始构建一个。

===============>>#1 票数:3 已采纳

我一直在研究类似的脚本: http//github.com/ghewgill/vim-scmdiff (事实上​​,它们可能具有相同的祖先)。 我没有使用scmdiff与cvs,但它应该对你检查的分支做一个差异。 您还可以指定要针对特定​​修订进行区分(使用:D 修订版 )。 希望这有帮助,如果你有所改进,可以随时做出贡献!

===============>>#2 票数:1

@Greg Hewgill:谢谢你的剧本! 我有几个问题,所以这就是我要改变的:

第21行:

< map <silent> <C-d> :call <SID>scmToggle()<CR>
--
> map <silent> <C-h> :call <SID>scmToggle()<CR>

我使用Ctrl - d进行向下翻页(懒得一直移动到PdDn),所以不得不切换到Ctrl-h。

第112行:

<         let cmd = 'cd ' . g:scmBufPath . ' && ' . g:scmDiffCommand . ' diff ' . g:scmDiffRev . ' ' . expand('%:p') . ' > ' . tmpdiff
--
> if g:scmDiffUseAbsPaths 
>     let cmd = 'cd ' . g:scmBufPath . ' && ' . g:scmDiffCommand . ' diff ' . g:scmDiffRev . ' ' . expand('%:p') . ' > ' . tmpdiff
> else
>     let cmd = g:scmDiffCommand . ' diff ' . g:scmDiffRev . ' ' . bufname('%') . ' > ' . tmpdiff
> endif

我遇到了无法使用CVS的绝对路径的问题。 我不知道这是否是我们当地设置的奇怪之处,或者它是否是一个全球性的CVS事物。 所以,我已经制作了一个可配置的变量,你可以放在你的.vimrc中来代替使用相对路径。

它现在似乎正是我想要的,所以我会继续抨击,看看我是否能找到其他任何打破的东西,随时发布补丁。

编辑:忘记添加:如果你觉得它们值得,请随意在github上的脚本中添加这些更改。

===============>>#3 票数:0

VCSCommand是另一个用于VCS集成的主动维护的vim脚本。 它支持CVS / SVN / SVK / git。

我一直都在使用SVN,从来没有抱怨过。 快捷方式使用mapleader ,因此它们不太可能覆盖现有的映射。

===============>>#4 票数:0

您可以将调用更改为cvs以考虑分支。 那应该不是很难。 更难以改变整个函数并使分支工作变量(参数,会话,全局或其他)。

  ask by sanmiguel translate from so

未解决问题?本站智能推荐:

2回复

如何获取vimdiff以显示cvs diff的输出--side-by-side

CVS diff可以并排显示修订,并用常用的补丁符号表示diff,例如: 无论如何,是否有管道将输出传递给vimdiff,以便在两个并排缓冲区中显示这两列以及vimdiff的所有diff-highlighting优点? 我知道cvsvimdiff.vim之类的工具,但是这些工具的问
1回复

使用vim在两列中查看“ cvs diff”输出

我有统一差异格式的“ cvs diff”输出(对于项目中的所有文件)。 格式可能是这样的: 甚至像这样: 有什么办法可以和vim一起查看此文本吗? 或者也许可以将CVS中的默认diff工具更改为vimdiff?
4回复

vimdiff和MacVim

我想在MacVim上运行vimdiff。 有没有一种简单的方法可以做到这一点?
1回复

抑制Vimdiff消息

我尝试在线查看,似乎没有人有一个简单的答案。 在我的bash脚本中,我使用vimdiff作为两个文件,但在我关闭vimdiff之后,只要文件不同,就会显示“2个要编辑的文件”。 似乎没有人有解决方案我想知道我的bash脚本中是否有一个简短的方法来抑制该消息而不是通过.vimrc编辑。
3回复

vimdiff作为合并工具

vimdiff有助于以图形方式显示两个文件的差异,并允许我们从左到右/从右到左选择更改。 我正在处理的文件是大文件,大多数差异vimdiff报告可以自动合并,除了少数。由于需要花费大量时间在vimdiff中通过diff进行差异并采取行动。 我想知道vimdiff中是否有一个选项可以自动
3回复

在vimdiff中使用diffget

我正在努力学习使用vimdiff。 目前我想出了如何从缓冲区获取一个diff块到另一个缓冲区(使用do ),但我现在愿意做的是简单地在另一个缓冲区中获取一个块的一行(或某些行)。 vimdiff文档说: 但我无法想象如何使用正确的范围参数来简单地将我从缓冲区中的行复制到另一个缓冲
4回复

git,vimdiff和dirdiff

我正在尝试使用vimdiff + dirdiff.vim在Vim中使用Git版本化多个文件。 对于Mercurial,可以使用mercurial extdiff扩展。 我在网上Vim的Git的差异整合上发现的唯一的办法就是在烧毛文件用Vimdiff,在描述这个职位 。 有谁知道
2回复

vimdiff与autocmd不兼容吗?

我习惯于使用vimdiff并加载比较的文件。 现在,在执行vimdiff ,它发生了: 唯一的配置更改是引入了这两个autocmd指令: 这是正常现象吗? 这是我的错误吗? 可能取决于Vim版本控制吗? 可以将所需的配置更改与直接的vimdiff加载结合使用(不需要E
5回复

保存vimdiff输出?

我过去多次谷歌这个,但我从来没有找到答案。 有没有办法保存vimdiff的输出(最好是保持颜色,高光等)? 我想将这一个输出文件发送给其他人并告诉他们“只需打开此文件,这里是差异,并排并突出显示”。 如果为此目的有更好的vimdiff替代方案,我愿意接受建议 - 这在Windows和L
2回复

使用vimdiff与不同的.vimrc?

在过去一周左右的时间里,我一直在使用Vim进行大部分编辑,我很喜欢这种体验。 但是我有一个问题。 我用NERD_tree和其他一些东西设置了我的.vimrc文件。 这适用于我编码的时候。 但有时我通过Git使用vimdiff ,这会导致一些问题。 当我执行此操作或我在.vimrc文