各种 IDE 大行其道的同时,传统的命令行工具以其短小精悍,随手可得的特点仍有很大的生存空间,这篇短文介绍了一个文本比较和合并的小工具:vimdiff。希望能对在 Unix/Linux 系统上进行研发的朋友有所帮助。
源程式文档(通常是纯文本文档)比较和合并工具一直是软件研发过程中比较重要的组成部分。现在市场上很多功能很强大的专用比较和合并工具,比如 BeyondCompare;很多IDE 或软件配置管理系统,比如Eclipse, Rational ClearCase都提供了内建的功能来支持文档的比较和合并。
当远程工作在Unix/Linux平台上的时候,恐怕最简单而且到处存在的就是命令行工具,比如diff。可惜diff的功能有限,使用起来也不是很方便。作为命令行的比较工具,我们仍然希望能拥有简单明了的界面,能够使我们能够对比较结果一目了然;我们还希望能够在比较出来的多处差异之间快速定位,希望能够很容易的进行文档合并……。而Vim提供的diff模式,通常称作vimdiff,就是这样一个能满足任何这些需求,甚至能够提供更多的强力工具。在最近的工作中,因为需要做很多的文档比较和合并的工作,因此对Vimdiff的使用做了一个简单的总结。我们先来看看vimdiff的基本使用。
启动方法
首先确保系统中的diff命令是可用的。Vim的diff模式是依赖于diff命令的。Vimdiff的基本用法就是:
# vimdiff FILE_LEFT FILE_RIGHT
|
或
# vim -d FILE_LEFT FILE_RIGHT
|
图一就是vimdiff命令的执行结果的画面。
从上图我们能够看到一个清楚的比较结果。屏幕被垂直分割,左右两侧分别显示被比较的两个文档。两个文档中连续的相同的行被折叠了起来,以便使用者能把注意力集中在两个文档的差异上。只在某一文档中存在的行的背景色被配置为蓝色,而在另一文档中的对应位置被显示为绿色。两个文档中都存在,但是包含差异的行显示为粉色背景,引起差异的文字用红色背景加以突出。
除了用这种方法启动vim的diff模式之外,我们还能够用分割窗口命令来启动diff模式:
# vim FILE_LEFT
|
然后在vim的ex模式(也就是"冒号"模式)下输入:
:vertical diffsplit FILE_RIGHT
|
也能够达到同样的效果。假如希望交换两个窗口的位置,或希望改变窗口的分割方式,能够使用下列命令:
1. Ctrl-w K(把当前窗口移到最上边)
2. Ctrl-w H(把当前窗口移到最左边)
3. Ctrl-w J(把当前窗口移到最下边)
4. Ctrl-w L(把当前窗口移到最右边)
其中1和3两个操作会把窗口改成水平分割方式。
光标移动
接下来试试在行间移动光标,能够看到左右两侧的屏幕滚动是同步的。这是因为"scrollbind"选项被配置了的结果,vim会尽力确保两侧文档的对齐。假如不想要这个特性,能够配置:
:set noscrollbind
|
能够使用快捷键在各个差异点之间快速移动。跳转到下一个差异点:
]c
|
反向跳转是:
[c
|
假如在命令前加上数字的话,能够跳过一个或数个差异点,从而实现跳的更远。比如假如在位于第一个差异点的行输入"2]c",将越过下一个差异点,跳转到第三个差异点。
文档合并
文档比较的最终目的之一就是合并,以消除差异。假如希望把一个差异点中当前文档的内容复制到另一个文档里,能够使用命令
|
文章整理:西部数码--专业提供域名注册、虚拟主机服务 0
相关文章
最新评论共有 0 位网友发表了评论
查看所有评论
发表评论
热点关注
相关文章
IDC资讯
虚拟主机
域名注册
托管租用
vps主机
智能建站
网站运营 建站经验 策划盈利 搜索优化 网站推广 免费资源 网站联盟 联盟新闻 联盟介绍 联盟点评 网赚技巧 行业资讯 业界动态 搜索引擎 网络游戏 门户动态 电子商务 广告传媒 网络编程 Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它 服务器技术 Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护 软件技巧 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷 Internet Explorer 网页制作 FrontPages Dreamweaver Javascript css photoshop fireworks Flash 程序设计 Java技术 C/C++ VB delphi 网络知识 网络协议 网络安全 网络管理 组网方案 Cisco技术 操作系统 Win2000 WinXP Win2003 Mac OS Linux FreeBSD |



