★ 跳转到下一个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的常用命令的更多相关文章

  1. Git 常用命令

    一.初始環境配置 git config --global user.name "John Doe"git config --global user.email johndoe@ex ...

  2. Git 基本概念及常用命令

    一.基本概念 文件的三种状态:(任何一个文件在git中都有以下三种状态) 1) 已提交(committed):表示该文件已经被安全地保存在本地数据库中了. 2) 已修改(modified):表示修改了 ...

  3. Linux 常用命令小结

    学习脚本几天了,总结下linux debian下脚本常用命令. Linux    1.添加删除账户 useradd / userdel    2.修改"张三"密码 passwd 张 ...

  4. Linux下Vim工具常用命令

    原文地址: http://www.cnblogs.com/lizhenghn/p/3675011.html 在linux下做开发,甚至是只做管理维护工作,也少不了Vim的使用.作为一个新手,我也是刚刚 ...

  5. Github 常用命令

    小记一些Github常用命令 : 在一个项目中... 假如要修补问题追踪系统上的 #53 问题.顺带说明下,Git 并不同任何特定的问题追踪系统打交道.这里为了说明要解决的问题,把新建的分支取名为 i ...

  6. Vim的常用命令笔记

    [简介] Vim是vi编辑器的改进版.vi是类UNIX系统里最常用的编辑器. [模式] 在shell中直接打vim filename就会进入普通模式.按i键进入编辑模式,此时Vim底部显示INSERT ...

  7. 常用命令和sql

    常用命令: mvn idea:idea //生成.ipr项目文件 mvn clean install -Dmaven.test.skip=true mvn install:install-file - ...

  8. Git 和 Repo常用命令

    这篇博客总结的也不错: git常用及进阶命令总结 Git与Repo入门 一.初始環境配置 git config --global user.name "John Doe"git c ...

  9. vim常用命令总结(转)

    vim常用命令 -------------------------------------------------------------------------------------------- ...

随机推荐

  1. idea 项目添加web支持

    选中项目添加 add - web

  2. maven relativePath

    父项目的pom.xml文件的相对路径.默认值为../pom.xml.maven首先从当前构建项目开始查找父项目的pom文件,然后从本地仓库,最有从远程仓库.RelativePath允许你选择一个不同的 ...

  3. 获得discuz7.2 目录下所有文件,并写到txt

    # -*- coding: utf-8 -*- import os fileList = [] dzList = [] def GetFileList(path): List = [] for roo ...

  4. PHP 图片处理类 错误处理方法:

    call an undefined function exif_imagetype() 打开扩展php.ini 将 ; 去掉: extension=php_exif.dll 并将extension=p ...

  5. 基于jQuery功能非常强大的图片裁剪插件

    今天我们要来介绍一款基于jQuery功能非常强大的图片裁剪插件,这款jQuery图片裁剪插件可以选择裁剪框的尺寸比例,可以设置高宽尺寸,同时可以设置图片翻转角度,当然也支持图片的缩放,裁剪框也可以用鼠 ...

  6. Android RecyclerView网格布局

    一个简单的网格布局activity_main.xml <?xml version="1.0" encoding="utf-8"?> <andr ...

  7. 【Unity笔记】根骨骼动画/运动(Root Motion)

    根骨骼动画:当动画中角色发生位移后,动作坐标原点跟随角色移动.例如一个向前跳跃的动画,如果在场景中重复该动画,能够看到角色一路往前跳跃,位置一直在前进.适用于有位移的放技能动作等. 非根骨骼动画:当动 ...

  8. Mask R-CNN详解和安装

    Detectron是Facebook的物体检测平台,今天宣布开源,它基于Caffe2,用Python写成,这次开放的代码中就包含了Mask R-CNN的实现. 除此之外,Detectron还包含了IC ...

  9. 使用jquery将表单元素转json提交后台

    今天帮朋友解决一个问题,朋友的框架用的layui的,发现layui的里面的data.field不能获取动态生成的标签的值的. 于是使用jquery的方法如下: var formObject = {}; ...

  10. JProfiler远程监控Linux上Tomcat的安装过程细讲(步骤非常详细!!!)

    JProfiler远程监控Linux上Tomcat的安装过程细讲(步骤非常详细!!!) 1.文件准备: 服务器:CentOS Linux release 7.3.1611 (Core)     Apa ...