运维经–目录
vimdiff快速比较合并少量文件
在需要快速比较和合并少量文件的时候,vimdiff是很好的选择。
1.使用
vimdiff file1 file2 …
vim -d file1 file2 …
2.左右窗口同步滚动
# 同步混动(默认)
:set scrollbind
# 取消同步
:set noscrollbind
3.差一点跳转
# 下一个差一点
]c
# 上一个差一点
[c
# 下n个差一点
n]c
4.merge差异
# 文件比较的最终目的之一就是合并,以消除差异。如果希望把一个差异点中当前文件的内容复制到另一个文件里,可以使用命令
dp (diff "put")
# 如果希望把另一个文件的内容复制到当前行中,可以使用命令
do (diff "get",之所以不用dg,是因为dg已经被另一个命令占用了)
# 在修改一个或两个文件之后,vimdiff会试图自动来重新比较文件,来实时反映比较结果。但是也会有处理失败的情况,这个时候需要手工来刷新比较结果:
:diffupdate
上下文折叠与展开
# 比较和合并文件的时候经常需要结合上下文来确定最终要采取的操作。Vimdiff 缺省是会把不同之处上下各 6 行的文本都显示出来以供参考。其他的相同的文本行被自动折叠。如果希望修改缺省的上下文行数,可以这样设置:
:set diffopt=context:3
# 可以用简单的折叠命令来临时展开被折叠的相同的文本行:
zo (folding open,之所以用z这个字母,是因为它看上去比较像折叠着的纸)
# 然后可以用下列命令来重新折叠:
zc (folding close)