使用Vim比较两个文件的内容

原文地址:http://blog.chinaunix.net/uid-22548820-id-3477464.html

1. 使用vim的比较模式打开两个文件:

vim -d file1 file2

vimdiff file1 file2

2. 如果已经打开了文件file1,再打开另一个文件file2进行比较:

:vert diffsplit file2

如果没有用vert命令,diffsplit则会分上下两个窗口。

3. 如果已经用split方式打开了两个文件file1,file2,又想比较两文件的不同。

分别在两个窗口里面输入命令:

:diffthis

4. 如果更改了某个窗口的内容,vim又没有自动更新diff检查,可以使用如下命令更新:

:diffupdate

5. 定位到不同点:

[c     跳到前一个不同点

]c     跳到后一个不同点

6. 在窗口间跳转:

ctrl-w w    跳到下一个窗口

ctrl-w h    跳到左侧窗口

ctrl-w l    跳到右侧窗口

ctrl-w j    跳到下方的窗口

ctrl-w k    跳到上方的窗口

7. 合并文档:

dp          将差异点的当前文档内容应用到另一文档(diff put)

do          将差异点的另一文档的内容拷贝到当前文档(diff get)

8. 上下文的展开和查看

比较和合并文件的时候经常需要结合上下文来确定最终要采取的操作。Vimdiff 缺省是会把不同之处上下各 6 行的文本都显示出来以供参考。其他的相同的文本行被自动折叠。如果希望修改缺省的上下文行数为3行,可以这样设置:

:set diffopt=context:3

zf   创建折叠(使用数字表示创建有当前行到下多少行的折叠,比如3j就创建包括4行的折叠)

zo   打开折叠(l也可以打开折叠)

zc   关闭当前折叠

zm   关闭所有折叠

zr   打开所有折叠

zE   删除所有折叠

zd   删除当前折叠

za   若当前打开则关闭,若当前关闭则打开

zj   到下一折叠的开始处

zk   到上一折叠的末尾

时间: 2024-11-17 21:43:44

使用Vim比较两个文件的内容的相关文章

【转载】vim 比较两个文件的内容

1. 使用vim的比较模式打开两个文件: vim -d file1 file2 或 vimdiff file1 file2 2. 如果已经打开了文件file1,再打开另一个文件file2进行比较: :vert diffsplit file2 如果没有用vert命令,diffsplit则会分上下两个窗口. 3. 如果已经用split方式打开了两个文件file1,file2,又想比较两文件的不同. 分别在两个窗口里面输入命令: :diffthis 4. 如果更改了某个窗口的内容,vim又没有自动更新

同时实现两个文件的内容

字面上很容易理解,两个文件的内容在同一个水平画面上.文件1占1-30列,然后中间20列用空格隔开,文件2占剩下的30列. 下面我说下我的思路: 比如说规定两篇文章水平的长度为80,文件1先输入1-30个字符(输够的话就用空格符来顶替),然后在用20个空格副隔开,接着再输入文件2的内容30个字符(输够的话也用空格补充),这样就完成了一行的输入.这么想就简单了,两个循环,先外循环输入一行,再内循环输入80个字符.行数是不确定的,因为不知道文件的内容(就算知道了计算也很麻烦),但是列数是确定的,就80

C实现两个文件的内容输出到同一个屏幕

编制一个程序,实现将两个文件的内容同时显示在屏幕上,并且最左边的第1-30列 显示文件1的内容,右边第41-70列显示文件2的内容:第75-76列显示两文件该行字符总和,其余列显示空白符.另外,每输出20行内容后,另输出2行空行. 下面看一下我的函数实现: #include <stdio.h> #include <stdlib.h> #define size 31 char file1[size]; char file2[size]; int i; int readline(FIL

用python比较两个文件中内容的不同之处, 并输出行号和内容.

代码部分: '''cmpfile.py - 比对两个文件, 如果有不同之处, 打印内容和行号''' import os class cmpFile: def __init__(self, file1, file2): self.file1 = file1 self.file2 = file2 def fileExists(self): if os.path.exists(self.file1) and os.path.exists(self.file2): return True else: r

比较两个文件内容是否相同

/* 判断两个文件的内容是否相同,文件名要用绝对路径 * @param fileName1 :文件1的绝对路径 * @param fileName2 :文件2的绝对路径 * @return 相同返回true,不相同返回false */ public boolean isSameFile(String fileName1,String fileName2){ FileInputStream fis1 = null; FileInputStream fis2 = null; try { fis1 =

linux比较两个文件的不同(6/21)

cmp 命令:比较任意两个类型的文件,且吧结果输出到标准输出,默认文件相同不输出,不同的文件输出差异 必要参数 -c 显示不同的信息-l 列出所有的不同信息-s 错误信息不提示 选择参数 -i<字符数> 指定字符数目-v 显示版本信息--help 显示帮助信息 [函数的返回值] 0 :文件时同样的1 :文件是不同的>1:发生错误 comm将逐行比较已经排序的两个文件.显示结果包括3列: 第1列为只在file1中找到的行;第2列为只在file2中找到的行;第3列为两个文件的公用行. 参数

diff - 找出两个文件的不同点

总览 diff [选项] 源文件 目标文件 描述 在最简单的情况是, diff 比较两个文件的内容 (源文件 和 目标文件). 文件名可以是 - 由标准输入设备读入的文本. 作为特别的情况是, diff - - 比较一份标准输入的它自己的拷贝如果 源文件 是一个目录和 目标文件 不是(目录), diff 会比较在 源文件(目录) 里的文件的中和 目标文件同名的(文件), 反过来也一样. 非目录文件不能是 -. 如果 源文件 和 目标文件 都是目录, diff 比较两个目录中相应的文件,依照字母次

Shell命令-文件及内容处理之vi、vim

文件及内容处理 - vi.vim 1.Linux vi/vim 所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在. 但是目前我们使用比较多的是 vim 编辑器. vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计. 2.什么是 vim? Vim 是从 vi 发展出来的一个文本编辑器.代码补完.编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用. 简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可

Vim复制文件全部内容到系统剪贴板

参考:http://vim.wikia.com/wiki/%22copy_all_to_clipboard%22_howto vim中有两个buffer为系统的剪贴板,它们为: * (primary selection) 和 + (clipboard),其中 + 就是我们平常可以用Ctrl-C 和 Ctrl-V 的缓冲区,而要取出 * 缓冲区的内容,点击鼠标中间划轮即可. 查看缓冲区内容可以用命令 :reg ,上面两个buffer显示为 "* 和 "+ 1.Normal Mode gg