vim比较目录diff

虽然现在有很多图形界面的diff工具,但对于有命令行情节的人来说,当飞快的在terminal下敲击键盘时,总不希望再拿鼠标去点击其它地方,况且有时候图形界面占用资源多,我的MBA就经常启动diffmerge时卡住,但vimdiff又只能在一个标签里比较一组文件的diff,如果想比较两个目录下文件的diff,它就显得无能为力了

假设我们要实现一个工具叫diffdir,先让我们脑洞打开设想一下它应该是怎样的

  1. 我希望能列出两个目录下文件名相同但内容不同的所有文件,并进行编号
  2. 我希望通过选择编号,打开需要比较diff的文件
  3. 如果想比较多组文件的diff,我希望每个vim标签打开一组文件比较
  4. 最好能过滤掉非文本文件,因为我不希望用vim打开一对二进制乱码
  5. 最好还能有交互,我可以选择只查看我感兴趣的文件,而不是一次打开所有文件的diff,当退出vim时我还可以继续选择

假设有两个目录分别是A和B,目录结构如下

A
├── file1
├── file2
└── file3   

B和A目录结构以及对应文件名都相同,其中file1和file2的内容不同,file3内容相同,那么当我们运行diffdir A B时,它应该是这样的界面

这里写图片描述

当我们选择编号1时,vim会打开一个标签对比两个目录下file1的差异
当我们选择1,21-2时,vim会打开两个标签分别比较file1和file2的差异
由于这个例子有diff的文件数量较少,我们还可以选择a一次打开所有文件的diff
如果diff文件个数较多,我们可以分批打开,并且当我们退出vim后还可以继续选择

接下来是实现

vim比较文件diff

我们都知道vimdiff的用法,其实vimdiff A/file1 B/file1等价于vim -d A/file1 B/file2,又或者更原始一点,我们可以分两步来比较两个文件的diff

  1. 执行vim A/file1
  2. 在normal模式下输入:vertical diffsplit B/file1

虽然人们不会用这么麻烦的命令去比价文件的diff,但往

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值