vimdiff命令,基于vim编辑器打造,可视化对比文件差异,分栏显示、高亮标注、直接编辑修改,运维、后端开发必备工具。vimdiff是vim编辑器自带的文件对比工具,本质是调用vim,同时打开多个文件,自动对内容进行逐行比对,用不同颜色高亮显示新增、删除、修改的内容。主要特点如下:配置文件新旧版本对比、代码提交前后版本核对、备份文件还原校验、脚本修改内容排查等 Linux 高频场景。二、基础用法:快速启动vimdiff1. 对比两个文件vimdiff 文件1 文件2vimdiff sshd.conf sshd.confbak

默认左右两栏布局:左侧文件 A、右侧文件 B;
vimdiff test1.sh test2.sh test3.sh
]c:跳转到下一处差异位置[c:跳转到上一处差异位置日常排查差异,只用这两个快捷键就能快速遍历所有不同点,不用上下翻页查找。
对比配置文件后,经常需要把一个文件的差异内容复制到另一个文件,不用手动复制粘贴,一键合并:
:diffget(简写:do)光标停留在目标文件窗口,执行命令,把另一文件当前差异内容复制过来;作用:将另一侧文件内容合并到当前文件。:diffput(简写:dp)光标停留在源文件窗口,执行命令,把当前文件内容推送至另一侧文件;作用:把当前窗口修改内容同步到对面文件。
生产环境中:备份配置文件是正确版本,当前配置文件出错。打开两个文件对比,光标定位错误行,输入do,直接把备份文件的正确配置覆盖当前错误配置。
分屏状态下快速切换左右窗口:Ctrl+w w:循环切换左右或上下窗口;
Ctrl+w h:光标切到左边窗口;
Ctrl+w l:光标切到右边窗口。
vimdiff 默认会折叠大量无差异的相同行,有时候需要查看完整上下文:
zo:展开当前折叠区域的内容;zc:重新折叠已展开的内容;zR:展开文件所有被折叠的内容,查看完整全部文件。修改合并完成之后,需要分别保存两个文件:
:w保存当前文件修改;:qa退出所有窗口;只退出当前窗口::q。运维经常修改配置文件后服务启动失败,保留了备份文件。操作步骤:
vimdiff /etc/nginx/nginx.conf /etc/nginx/nginx.conf.20260803
[c、]c遍历所有修改位置;do,从备份文件恢复原始配置;:w保存配置,:qa退出,重启服务即可。开发编写脚本 v1、v2 两个版本,需要整合两个版本功能:
vimdiff script_v1.sh script_v2.sh打开对比;把多台服务器相同配置文件拷贝到本地,执行多文件对比:
vimdiff server1_redis.conf server2_redis.conf server3_redis.conf界面颜色看不清差异?终端配色问题,可以在 vim 配置文件调整高亮,或者直接更换终端主题,不影响核心功能。
文件很大,差异查找很慢?先用grep筛选关键字缩小范围,再用 vimdiff 对比局部内容;也可以使用zR展开全部内容后快速检索。
不习惯终端分屏?vimdiff 也可以配合图形界面终端使用,布局更加清晰,服务器ssh工具(Xshell、FinalShell 等)全部原生支持 vimdiff 命令。
只想查看差异,不需要编辑?对比查看完成直接输入:qall退出所有窗口,无需保存任何修改。
vimdiff是linux系统原生的轻量级文件对比工具,不用安装第三方软件,ssh远程服务器随时随地可用。不管是运维人员排查配置错误,还是开发人员核对代码版本,掌握vimdiff基础命令和几组核心快捷键,能够大幅提升文件版本对比、内容合并的效率,告别肉眼逐行对比的低效工作方式。
如果你觉得文章对你的运维工作有帮助,记得点赞加关注。