进入 diff 模式编辑的最简单方法就是用 "vimdiff" 命令。它象通常启动 Vim 一样,
不过额外地,它设定一些参数来设定查看不同之处。vimdiff file1 file2 [file3 [file4]]
这等同于:vim -d file1 file2 [file3 [file4]]
你也可以使用 "gvimdiff" 或 "vim -d -g"。GUI 就启动了。
你也可以使用 "viewdiff" 或 "gviewdiff" 。Vim 会进入只读模式。
有两条命令可用于在 diffs 之间跳转:
*[c*
[c 向后至上一个更改的开始。当加上个数字后,便重复执行相应
次。
*]c*
]c 向前至下一个更改的开始。当加上个数字后,便重复执行相应
次。
如果不存在光标可以跳转到的更改,将产生错误。
有两个命令可用来在两个缓冲之间拷贝。相应的结果是,在一定的范围内两缓冲的内容
被统一。
*:diffg* *:diffget*
:[range]
diffg[et] [bufspec]
用另一个缓冲来修改当前的缓冲,消除不同之处。如果给定
[bufspec],就使用该缓冲。否则,它仅当有另一个在 diff 模式下
的缓冲时才起作用。
[range]
参考下面。
*:diffpu* *:diffput*
:[range]
diffpu[t] [bufspec]
用当前缓冲来修改另一个缓冲,消除不同之处。就象 ":diffget"
但更改的是另一个缓冲,而不是当前的。
[range]
参考下面。
*do*
do 同 ":diffget" 但没有参数和范围。"o" 表示 "obtain" ("dg"
是不能这样使用的。那可能是 "dgg" 的开始!)。
*dp*
dp 同 ":diffput" 但没有参数和范围。
当没有给定[range]
时,受影响的不同之处仅是当前光标所处位置或其紧上方的文本。
当指定[range]
时,Vim 试图仅改动所指定的行。当有被删除的行时,这并不总有效。
如果已经在VIM中打开了一个文件,需要同另一个文件进行比较的话,可以使用diffsplit命令:
:vert diffsplit FILE_RIGHT
参考资料
评论