vimdiff的常用命令

摘要:
【描述】vimdiff将尽可能多地在同一位置列出两个文件的相同点,以便于比较。它的命令与vim基本一致。Vimdiff使用vim启动两个或多个文件,每个文件都有自己的窗口*打开一个新的水平窗口以加载文件文件进行比较:输入“:diffsplit file”新打开的窗口是水平排列的。在不同窗口之间移动的命令与vim相同。然而,更复杂的更改或行内的更改可能会导致不同的位置无法及时更新。此时,您可以运行此命令来强制更新。

★ 跳转到下一个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的常用命令》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇关于redis性能问题分析和优化JAVA四类八种基本数据类型下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

一步一步带你安装史上最难安装的 vim 插件

YouCompleteMe is a fast, as-you-type, fuzzy-search code completion engine for Vim.参考:https://github.com/Valloric/YouCompleteMe#full-installation-guide本篇文章默认读者知道什么是 unix/linux,vim/...

vim中执行shell命令

1):!command   不退出vim,并执行shell命令command,将命令输出显示在vim的命令区域,不会改变当前编辑的文件的内容   例如   :!ls -l   特别的可以运行:!bash来启动一个bash shell并执行命令,不需要退出vim   2):r !command     将shell命令command的结果插入到当前行的下一行...

R语言入门:处理缺失值和数据清洗

R语言给我们提供了一些有用的函数来处理数据的缺失值,让我们先来看看什么是数据的缺失值吧! 一.数据的缺失值 在R语言当中数据的缺失值用NA来表示,有的时候我们会发现在一个数据集当中的某些值显示的是NA,那么就说明这个值是缺失的值了,那么缺失值是否可以用来做运算呢? 比如说我们建立一个第一个数字为缺失值的向量,第一个数字为NA,后面的数字为1到49,那因此我...

vim命令删除后重新安装

个人原创博客,转载请注明,否则追究法律责任 2017-09-30-09:51:20 1,删除vim命令。模拟错误 [root@localhost ~]# which vim/usr/bin/vim[root@localhost ~]# rpm -qf /usr/bin/vimvim-enhanced-7.4.160-1.el7.x86_64[root@lo...

用Vim 加密文本

  Vim强大就在于 可以干任何想要做的事情,比如加密。Fedora 18上给大家做一个测试。首先安装 vim: sudo yum install vim -y然后检验模块是否有加密: vim --version | grep +cryptv应该输出一行,其中有 +cryptv然后 vim -x test 输入密码后编辑一下内容,我的是: test 然后...

Linux最全vi命令

1. 关于Vim vim是我最喜欢的编辑器,也是linux下第二强大的编辑器。 虽然emacs是公认的世界第一,我认为使用emacs并没有使用vi进行编辑来得高效。 如果是初学vi,运行一下vimtutor是个聪明的决定。 (如果你的系统环境不是中文,而你想使用中文的vimtutor,就运行vimtutor zh) 1.1 Vim的几种模式...