`

vimdiff

 
阅读更多

vimdiff的常用命令

http://www.ibm.com/developerworks/cn/linux/l-vimdiff/

http://hi.baidu.com/_jg_/blog/item/ff62e6d5d9ecf315a08bb77c.html

http://hi.baidu.com/nkhzj/blog/item/e6b5a7017222100a1d958307.html

★ 跳转到下一个diff点:

请使用]c命令

★ 跳转到前一个diff点:
请使用[c命令

如果在命令前加上数字的话,可以跳过一个或数个差异点,从而实现跳的更远。比如如果在位于第一个差异点的行输入"2]c",将越过下一个差异点,跳转到第 三个差异点。

★ 文件比较的最终目的之一就是合并,以消除差异。如果希望把一个差异点中当前文件的内容复制到另一个文件里,可以使用命令:
dp (diff "put")


★ 如果希望把另一个文件的内容复制到当前行中,可以使用命令:
do (diff "get",之所以不用dg,是因为dg已经被另一个命令占用了,所以用了diff "obtain")


★ 如果希望手工修改某一行,可以使用通常的vim操作。如果希望在两个文件之间来回跳转,可以用下列命令序列:Ctrl-w, w


★ 在修改一个或两个文件之后,vimdiff会试图自动来重新比较文件,以便实时地反映比较结果。但是有时候会处理失败,这个时候就需要手工来刷新。
:diffupdate


★ 如果希望撤销修改,可以和平常用vim编辑一样,直接<ESC>, u


★ zo (folding open)打开折叠代码。之所以用z这个字母,是因为它看上去比较像折叠着的纸:)

★ zc (folding close)重新折叠起来。

★ 补充一条: 如果想交换上/下、左/右两个分隔窗口的位置,可以使用 ctrl-w,r 命令

 

更详细的介绍如下

http://blog.chinaunix.net/u1/34500/article_129477.html

vimdiff [options] file1 file2 [file3]

[功能]

同时打开两个或者多个文件,进行比较。

 

[描述]

vimdiff会将两个文件的相同指出尽量列在同一位置上面,便于查对比较。其命令基本和vim是一致的。

vimdiff使用vim启动两个或者多个文件,每个文件有其自己的窗口。每个文件中不同的地方会用高亮显示出来。它在进行改变的检查以及将改动从一个版本的文件移动到另一个版本的情况下非常方便。首先你得保证安装了vim才能是用vimdiff.用这个命令安装:

#apt-get install vim-full

其他类似的工具还tkdiff,meld 和 xfdiff4等。

 

[举例]

*同时打开main.cpp和main2.cpp,垂直方向分屏:

$vimdiff main.cpp main2.cpp

或$vim -d main.cpp main2.cpp

这样会同时打开两个文件垂直在两栏显示,可以打开不止两个文件。

 

*同时打开main.cpp和main2.cpp,水平方向分屏:

$vimdiff -o main.cpp main2.cpp

这样会同时打开两个文件在上下两栏显示.

 

**打开文件之后

可以看见不同的地方会高亮显示,相同的地方默认会被折叠起来。如下常用操作:

*跳到下一个不同的地方:

输入"]c".

 

*跳到上一个不同的地方:

输入"[c".

 

*用另外一个窗口的不同处替换当前:

输入"do".

这里,前提是用']c'或者'[c'跳到相应的不同处,执行完毕之后,当前窗口当前位置内容被替换为另外一个窗口的当前位置内容。注意这里是两个文件的情况,当前窗口有多于两个文件时无法进行。

 

*先指定范围1-100行,再用另外一个窗口的不同处替换当前:

输入"1,100 diffg".

或输入"1,100 diffget".

这里,等同于do不过指定了范围,如果有缓冲还可在diffg后面指定缓冲名字。

 

*先指定范围1-100行,再用指定3号缓冲(假设是文件file3)的不同处替换当前:

输入"1,100 diffg 3".

或输入"1,100 diffget 3".

这里,在diffg后面指定缓冲名字。

 

*用当前替换另外一个窗口的不同处:

输入"dp".

这里,前提是用']c'或者'[c'跳到相应的不同处,执行完毕之后,另外一个窗口的当前位置内容被替换成当前窗口当前的位置内容。注意这里是两个文件的情况,当前窗口有多于两个文件时无法进行。

 

*先指定范围1-100行,再用另外一个窗口的不同处替换当前:

输入"1,100 diffpu".

或输入"1,100 diffput".

这里,等同于dp不过指定了范围,如果有缓冲还可在diffpu后面指定缓冲名字。

 

*先指定范围1-100行,再用指定3号缓冲(假设是文件file3)的不同处替换当前:

输入"1,100 diffpu 3".

或输入"1,100 diffput 3".

这里,在diffpu后面指定缓冲名字。

 

*新开一个水平窗口载入file文件进行对比:

输入":diffsplit file".

这里新开的窗口是水平排列的,在不同窗口间移动的命令同vim。

 

*新开一个垂直窗口载入file文件进行对比:

输入"vert diffsplit file".

这里,vert实际是vertical前缀的简写。新开的窗口是垂直排列的,在不同窗口间移动的命令同vim。

 

*强制更新文件的不同状态:

输入":diffupdate".

这里,当我们修改某一个文件的时候,vim会试图使它和另外一个文件的不同之处保持更新,例如插入和删除行。但是,更复杂的修改或者在一个行内的修改可能会导致不同处(vimdiff)没有及时更新,这时候可以运行这个命令(diffupdate)进行强制更新。

 

*修改缺省的上下文行为3行:

输入":set diffopt=context:3".

这里vimdiff 缺省是会把不同之处上下各 6 行的文本都显示出来以供参考。其他的相同的文本行被自动折叠。如果希望修改缺省的上下文行数,可以这样设置.

 

 

*打开折叠的文本:

输入"zo".

 

*折叠折叠的文本:

输入"zc".

 

*修改完毕之后保存所有文件:

输入"wqa".

**

 

[其他]

其实vimdiff就是vim,只是一个符号链接而已,你可以file /etc/alternatives/*|grep bin/vim看看。

分享到:
评论

相关推荐

    linux-一个更好的VimdiffGit合并工具

    一个更好的Vimdiff Git合并工具

    diffconflicts:更好的Vimdiff Git mergetool

    diffconflicts:更好的Vimdiff Git mergetool

    vim-unified-diff:在vimdiff中使用统一diff的插件

    vim-unified-diff:在vimdiff中使用统一diff的插件

    vimdiff命令 同时编辑多个文件

    纯文本文件比较和合并工具一直是软件开发过程中比较重要的组成部分,vimdiff 能够在比较出来的多处差异之间快速定位,很容易的进行文件合并操作。在需要快速比较和合并少量文件的时候,vimdiff是很好的选择。使用...

    git-mergetool-vimdiff-wrapper:git mergetool vimdiff 包装器

    Git Mergetool Vimdiff 包装器 这是什么? 修改 git mergetool vimdiff 的 BAD UI(当 git 的 BASE 不存在时,UI 会发生变化)。 总是合并疼痛是底部! 设置 git clone ...

    emacs-vdiff:类似于vimdiff for Emacs

    emacs-vdiff:类似于vimdiff for Emacs

    如何巧用vimdiff来替代原始的svn diff和git diff(效率提升)

    主要介绍了如何巧用vimdiff来替代原始的svn diff和git diff(效率提升),需要的朋友可以参考下

    Hacking Vim

    2.18文件比较vimdiff 2.19缩进 2.20使用文件模板 2.21识别中文字体 3. 常用插件 3.1 ctags 3.2 taglist 3.3 A 3.4 NERDtree 3.5 MiniBuffer 3.6 calendar 1.引言 如果你已经使用Vim超过一年半载,对hjkl,i,a,yy,dd,...

    svndiffwrapper

    Linux 下有一些比较好的比较程序,比如 kdiff3, gdiff, vimdiff 等,kdiff3 可以用不同颜色显示两个文档中不同的行、字符,算是比较理想的比较程序。我们可以拿它来替换掉 svn diff 默认的比较程序。 很显然这种...

    vim窗口分割

    本文档讲述了vim编辑器的窗口垂直和水平分割的以及对窗口大小调整的办法,有兴趣的的可以看看

    Vi and Vim: Questions and Answers

    Topics covered include: Folding, Split, Save, Buffers, Spell Checking, Multiple Files, Highlight, Vimdiff, Insert Mode, Tabbed User Interface, External Command, Alignment, Vimscript Python, GVim, ...

    Vim用户手册中文版72.pdf

    08.7 使用vimdiff查看不同 08.8 其它 08.9 页签 第09章 使用GUI 09.1 GUI的各部分 09.2 使用鼠标 09.3 剪贴板 09.4 选择模式 第10章 大刀阔斧 10.1 命令的记录与回放 10.2 替换 10.3 命令作用范围 10.4 全局命令 ...

    vim user manual ---vim用户手册

    j08.7j 使用vimdiff查看不同 j08.8j 其它 jusr 09.txtj 使用GUI j09.1j GUI的各部分 j09.2j 使用鼠标 j09.3j 剪贴板 j09.4j 选择模式 jusr 10.txtj 大刀阔斧 j10.1j 命令的记录与回放 j10.2j 替换 11 12 第00章目录 ...

    发展环境

    使用vimdiff作为git diff工具 git config --global diff.tool vimdiff git config --global difftool.prompt false git config --global alias.vimdiff difftool 运行git vimdiff [file]并查看VIM中的更改。 您仍然...

    shell中常用的基础命令

    文章目录前言diff (对比不同)vimdiff用法diff用法patch(只更改要变化的部分)cut(截取数据)sort(排序)uniq(重复检测)tr(转换字符的大小写)testtest命令test数字对比test的条件关系test对空的判定test对于...

    home-commands:我的〜bin *命令

    将git-diff(1)与vimdiff(1)结合使用的包装器 参考:在vimdiff-Qiita中使用更智能的算法(耐心,直方图) httpstatus(sh) 使用httpstatus快速查找HTTP状态代码! ifne(Perl)仅在有输入时执行指定的命令 ...

    vim-kata-meetup:支持 2012-11-12 波士顿 Vim 聚会的回购

    Vim Kata 聚会这个 repo 是 2012 年 11 月 ...维姆迪夫Vimdiff(两个缓冲区中的:diffthis命令)对理解问题有很大帮助。 以下地图可以帮助激活 vimdiff 模式。 要启用差异模式,只需在两个缓冲区中使用&lt;leader&gt;dt映射。

    Facebookgit-review.zip

    git-review 为 git 新增了一个很方便的代码 review 途径,利用这个命令,可以调用别的工具比如 vimdiff 来 review代码的改动。 标签:Facebook

    agit.vim:强大的 Git 日志查看器

    vimdiff 的并排差异 没有逃亡的依赖,但如果存在则合作良好。 支持多字节字符 安装 如果您使用 , NeoBundle ' cohama/agit.vim ' 用法 当您在 git 存储库中编辑文件时,请键入以下内容 :Agit 要求 Vim 7.4.52 或...

    systool命令 显示系统中设备的信息

    systool命令指令显示基于总线、类和拓扑显示系统中...与该功能相关的Linux命令:gdbserver – 调试远程服务器vimdiff命令 – 同时编辑多个文件gcov命令 – 测试代码覆盖率dpkg-split命令 – 分割软件包mattrib命令 –

Global site tag (gtag.js) - Google Analytics