• vimdiff: 使用Vim中强大的文件diff功能[转]


    学习了一段时间的Vim,直到最近才发现Vim的diff功能是如此方便,对比代码变化再也不用到处去找diff软件或者依靠版本控制的diff了。强大的Vim。

    下图是我在macVim中的diff效果。

    屏幕快照-2014-05-28-下午9.26.59.png

    下面是vimdiff的常见用法,总结了一下,不仔细看一遍手册,在各种场景下还真不一定能马上想到最合适的命令。

    在终端中直接以diff模式打开Vim:

    1 vimdiff file1 file2 [file3 [file4]] #或者
    2 vim -d file1 file2 [file3 [file4]]
     

    使用GUI(gVim)的话:

    1 gvimdiff file1 file2 [file3 [file4]]
    2  
    3 #或者
    4  
    5 vim -d -g file1 file2 [file3 [file4]]

    mac用户使用macVim的话如下,这是vim doc中没有提到的:

    1 mvim -d -g file1 file2 [file3 [file4]]

    上面的操作将会用vertical分割的方式打开文件进行diff,如果要使用水平分割,可以加入参数-o

    1 vimdiff -o file1 file2
    2  
    3 #或者如下,gvim和macvim类推
    4  
    5 vim -d -o file1 file2

    前面是使用diff模式直接打开Vim的方法,如果已经在Vim中要启用diff模式,则使用以下命令:

    1 :diffs[plit] {filename} #在当前窗口分割,载入另一个文件filename进行diff
    2  
    3 :difft[his] #将当前文件加入diff
    4  
    5 :diffp[atch] {patchfile} #将buffer中的文件载入当前窗口进行diff
     

    以上操作都可以加入 vimdiff 的其他 -options。

    如果在载入文件时要使用纵向分割,可以加上vert前缀命令:

    1 :vert diffs file2.txt
     

    文件改动后,要刷新diff,可以使用diffupdate命令

    1 :diffu[pdate] #更新diff
    2  
    3 :diffu[pdate] ! #对所有文件更新diff

    在diff中的跳转:

    1 ] c #下一个不同
    2 [ c #上一个不同

    在diff模式中,要关闭diff模式返回正常模式,可以使用diffoff命令:

    1 :diffo[ff] #将目前文件退出diff模式
    2  
    3 :diffo[ff]! #将目前窗口中的所有文件退出diff模式

    以上就是常用的vimdiff命令和方法,还有很多复杂的命令没有研究和列举,例如diffexpr, diffcopying 等等,功能就更加强大了。

    在版本文件中随意切换、diff和跳转查看变更,在Vim中就是如此简单!

  • 相关阅读:
    codevs 1115 开心的金明
    POJ 1125 Stockbroker Grapevine
    POJ 2421 constructing roads
    codevs 1390 回文平方数 USACO
    codevs 1131 统计单词数 2011年NOIP全国联赛普及组
    codevs 1313 质因数分解
    洛谷 绕钉子的长绳子
    洛谷 P1276 校门外的树(增强版)
    codevs 2627 村村通
    codevs 1191 数轴染色
  • 原文地址:https://www.cnblogs.com/galoishelley/p/4045611.html
Copyright © 2020-2023  润新知