第一步,安装合适的配色。
Plugin 'altercation/vim-colors-solarized'
然后在.gvimrc中指定当使用gvimdiff时,采用独特的配色方案
if &diff
colorscheme solarized
set background=dark
syntax off
endif
其中syntax off可加可不加。加了会使得只有有差异的地方显示彩色。
第二步,采用更好的diff算法
Plugin 'chrisbra/vim-diff-enhanced'
在.vimrc里,指定用更佳的算法来进行diff
let &diffexpr='EnhancedDiff#Diff("git diff", "--diff-algorithm=patience")'
这里采用了patience算法。h EnhancedDiff可以看到更多可选的算法。
需要提及的是这个插件实际上利用了Git Diff作为外部工具。需要1.8版本以上的Git配合才可以正常使用
第三步,将vimdiff配置成git的diff和merge工具
[diff]
tool = gvimdiff
[difftool]
prompt = false
[merge]
tool = gvimdiff
[mergetool]
prompt = false
至此设置完成。使用gvimdiff可以直接比较两个不同的文件,也可以使用git difftool和git mergetool在git环境下观察code change
在vimdiff窗口下的操作
]c | 下一个差异 |
[c | 上一个差异 |
do | 将另一个buffer中的当前差异内容复制到活动buffer中来 |
dp | 把活动buffer中的当前差异内容复制到另一个buffer中去 |
最后提一下另一个相关的插件,dirdiff
Plugin 'will133/vim-dirdiff'
安装了这个插件后,可以在vim的窗口中调用
:DirDiff <dir1> <dir2>
来比较两个目录的内容,下面是一个截图。需要说明的是DirDiff并不会默认调用前面设置的配置方案,而需要手工再调用一次