Vim 上的目录差异比较插件

By | 2022-07-11

前言

BeyondCompare 大家应该都很熟了, GUI 下非常好使的目录比较工具

然而命令行环境下居然没有什么好使的目录比较工具, 要么徒手 diff 再敲命令操作, 要么各种小工具格式化 diff 辅助操作,
和 BeyondCompare 的体验可谓差距甚远

于是又造了这么个大轮子, 用 vim 实现好使的目录比较工具

功能

  • vimdiff 相似的左右分屏布局, 相似的文件同步操作
  • 异步比较, 支持文件数量很多的大目录
  • 支持 vim 7.3 及以上版本, 并且同样支持大目录的比较

安装和使用

  1. 安装 vim 插件

    Plug 'ZSaberLv0/ZFVimDirDiff'
    Plug 'ZSaberLv0/ZFVimJob'     " 必须
    Plug 'ZSaberLv0/ZFVimIgnore'  " 可选, 自动忽略文件, 自动识别 .gitignore
    Plug 'ZSaberLv0/ZFVimBackup'  " 可选, 自动备份
  2. 开始目录比较

    " 指定比较目录
    :ZFDirDiff "path_left" "path_right"
    :call ZFDirDiff("path_left", "path_right")
    
    " 或者: mark 当前目录
    :ZFDirDiffMark
    " mark 当前文件所在目录
    :edit some_file
    :ZFDirDiffMark
    " mark 指定路径
    :ZFDirDiffMark some_path
  3. 比较操作

    • DD : 刷新当前比较结果
    • o / <cr> : 打开目录或比较文件
    • O / x / X : 打开所有子目录 / 折叠目录 / 折叠所有目录
    • cd / u / U : 切换当前路径 / 切换到父路径 / 左右两侧都切换到父路径
    • DM : 标记当前路径, 再一次 DM 可以比较两个指定的路径
    • ]c/DJ/Dj / [c/DK/Dk : 跳转到上一个或下一个有差异的文件或目录
    • do/DH / dp/DL : 同步文件或目录
    • a / dd : 添加 / 删除当前文件或目录
    • DN : 标记多个文件, 标记后可以 do/DH/dp/DL/dd 同步或删除文件
    • p / P : 复制当前文件路径
    • q : 退出

转载请注明来自: http://zsaber.com/blog/p/341

既然都来了, 有啥想法顺便留个言呗? (无奈小广告太多, 需审核, 见谅)

Category: vim

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注