oeasy教您玩转vim - 66 - # 比较修改模式 vimdiff
?
vimdiff
回忆上次
- 
上次有三种批量替换,分别是
:windo:bufdo:argdo
 - 
执行的
{cmd}可以用|按顺序增加update自动更新:set autowrite自动写入:set hidden可以隐藏未保存buffer
 - 分别对应的
window、buffers、arguments - 各有各自的列表、切换、删除、增加的方式
 - 多文件多窗口还有什么可玩的么???
 - 下次再说 ??
 
观察对比
- 首先编辑一个
go.java 
- 
连续数字产生方法
- ctrl-v进入块·可视化
 - 纵向选中1
 - g之后ctrl-a
 - 完成加法操作
 
 
进行修改
- 
对于这个
go.java复制粘贴出一个副本:saveas go2.java:e go2.java- 新增一行
 - 修改一行
 - 删除一行
 
 - 然后保存并退出vim
 
进行比较
vimdiff go.java go2.javavimdiff就是专门用比较的- 后面两个参数是待比较的文件
 
- 
{1..9}行被折叠了
- 因为都是相同的
 
 - 
16行有修改
- 紫色的
 
 - 
19行被删除了
- 左蓝色右青色
 - 右边是
----------- 
 - 
22行是增加的一行
- 左青右蓝
 - 左边是
----------- 
 
编辑的时候比较
:vi go.java- 如果文件已经打开
 - 
:vertical diffsplit go2.java可以开启比较- 如果
vertical被省略 - 就会横向打开文件
 
 - 如果
 - 
同步滚动
- 属性为
scrollbind - 默认同步滚动
 - 可取消同步
 
 - 属性为
 - 
遍历所有的修改change
]c下一条修改[c上一条修改- 
其中
[]指的是跳转c指的是change变化
 
 - 
根据当前光标位置
- 
把当前的改成对比的
dodiff obtain
 - 
把对比的改成当前的
dpdiff put
 
 - 
 
总结
- 我们可以用vimdiff快速的比较文件
 - 这很实用!!!
 - 实用的一些跳转方式
 - 
遍历所有的修改change
]c下一条修改[c上一条修改
 - 
遍历所有的函数method
]m下一条修改[m上一条修改
 - 
面对不同点
- 把当前的改成对比的 - do - diff obtain
 - 把对比的改成当前的 - dp - diff put
 
 - 关于多窗口
 - 还有什么好玩的吗???
 - 下次再说 ??
 
[Github地址] (
?

