`

vimdiff使用方法

    博客分类:
  • VIM
阅读更多

首先保证系统中的diff命令是可用的。Vim的diff模式是依赖于diff命令的。Vimdiff的基本用法就是:
# vimdiff  FILE_LEFT  FILE_RIGHT
或者
# vim -d  FILE_LEFT  FILE_RIGHT
除了用这种方法启动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",将越过下一个差异点,跳转到第三个差异点。
回页首
文件合并
文件比较的最终目的之一就是合并,以消除差异。如果希望把一个差异点中当前文件的内容复制到另一个文件里,可以使用命令
dp (diff "put")
如果希望把另一个文件的内容复制到当前行中,可以使用命令
do (diff "get",之所以不用dg,是因为dg已经被另一个命令占用了)
如果希望手工修改某一行,可以使用通常的vim操作。如果希望在两个文件之间来回跳转,可以用下列命令序列:
Ctrl-w, w
在修改一个或两个文件之后,vimdiff会试图自动来重新比较文件,来实时反映比较结果。但是也会有处理失败的情况,这个时候需要手工来刷新比较结果:
:diffupdate
如果希望撤销修改,可以和平常用vim编辑一样,直接
<ESC>, u
但是要注意一定要将光标移动到需要撤销修改的文件窗口中。
回页首
同时操作两个文件
在比较和合并告一段落之后,可以用下列命令对两个文件同时进行操作。比如同时退出:
:qa (quit all)
如果希望保存全部文件:
:wa (write all)
或者是两者的合并命令,保存全部文件,然后退出:
:wqa (write, then quit all)
如果在退出的时候不希望保存任何操作的结果:
:qa! (force to quit all)
回页首
上下文的展开和查看
比较和合并文件的时候经常需要结合上下文来确定最终要采取的操作。Vimdiff 缺省是会把不同之处上下各 6 行的文本都显示出来以供参考。其他的相同的文本行被自动折叠。如果希望修改缺省的上下文行数,可以这样设置:
:set diffopt=context:3
可以用简单的折叠命令来临时展开被折叠的相同的文本行:
zo (folding open,之所以用z这个字母,是因为它看上去比较像折叠着的纸)
然后可以用下列命令来重新折叠:
zc (folding close)

分享到:
评论

相关推荐

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

    描述中的“一个更好的Vimdiff Git合并工具”意味着我们将寻找优化这一过程的方法。 Vimdiff允许用户在两个或更多版本的文件之间进行对比,并直观地看到差异。它将不同之处用不同的颜色高亮显示,用户可以方便地接受...

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

    默认情况下,`git diff`以文本形式显示差异,但通过以下命令,我们可以让Git使用Vimdiff作为默认的差异工具: ```bash git config --global diff.tool vimdiff git config --global difftool.prompt false git ...

    vimdiff命令 同时编辑多个文件

    使用vimdiff的前提是保证系统中的diff命令是可用的,vim的diff模式是依赖于diff命令的。 启动方法:1. vimdiff file1 file2 … 2. vim -d file1 file2 … 语法格式:vimdiff [参数] 常用参数: w 在命令模式下,...

    vi的使用方法

    ### vi编辑器的使用方法详解 #### 一、vi编辑器模式介绍 vi编辑器是Unix/Linux系统下非常重要的文本编辑工具,具有三种主要的工作模式:命令模式(Command Mode)、插入模式(Insert Mode)和底行模式(Ex Mode)。...

    MySQL查询结果导出到文件的另类方法.txt

    本文将深入探讨一种另类但实用的方法,即利用MySQL的`SELECT INTO OUTFILE`命令以及结合系统命令行工具如`cat`和`vim`来实现这一目标。这种方法不仅能够有效避免文件覆盖问题,还能进行数据对比,为数据管理和分析...

    vim-mergetool:将Vim用作Git合并工具的有效方法

    这段配置告诉Git使用`vimdiff`作为合并工具,并提供了一个命令来启动Vim-mergetool。 在处理合并冲突时,可以运行`git mergetool`,Vim会打开四个窗口,分别显示本地(LOCAL)、远程(REMOTE)、基线(BASE)和合并...

    Vim编辑器使用教程(官方中文版)

    - **差异显示**: 使用`vimdiff`命令比较两个文件之间的差异。 - **标签页管理**: 创建和管理标签页,实现更灵活的多文件编辑。 #### 六、使用GUI版本 **6.1 GUI组件** - **界面元素**: 介绍Vim GUI版本中的各种界面...

    vim 中文帮助手册

    - **差异显示**:如何使用vimdiff命令比较两个文件的不同之处。 - **标签页管理**:介绍如何使用标签页来更好地组织文件。 #### 九、使用GUI版本 - **GUI组件**:介绍Vim GUI版本的主要组成部分。 - **鼠标使用**:...

    Vim中文用户手册

    - **差异显示**:讲解了如何使用vimdiff命令来显示两个文件之间的差异。 - **标签页管理**:介绍了如何使用标签页来组织和管理多个文件。 - **使用GUI版本**(`usr_09.txt`) - **GUI组件介绍**:介绍了Vim GUI...

    VIm帮助手册(中文版)

    - **差异显示**:介绍如何使用`vimdiff`命令显示文件间的差异。 - **其他特性**:提供额外的窗口管理技巧和提示。 #### 使用GUI版本 - **GUI组件**:列出GUI版本提供的组件,如工具栏、菜单栏等。 - **鼠标使用**...

    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 全局命令 ...

    Vi 学习笔记

    本学习笔记全面涵盖了Vi的使用方法,从基础操作到高级技巧,旨在帮助读者掌握Vi的强大编辑能力。 #### Vim初步 - **第一次运行Vim**:启动Vim后,你会看到一个空白的编辑界面。Vim默认处于命令模式,通过输入命令...

    Hacking Vim

    使用 `vimdiff` 或 `:diffsplit` 命令可以对比两个文件之间的差异。例如,`vim –d file1 file2` 将打开 Vim 并显示两个文件的差异。 **2.19 缩进** Vim 支持多种缩进操作,如 `%` 缩进块中内容、`反缩进块中内容、...

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

    建议的方法是: 打开 Vim,在左边的文件之前,在右边的文件之后,以均匀的垂直分割方式打开 Vim。 修改前文件,直到它与后文件匹配。 再次尝试使用不同的 vim 功能? ... 利润! 每个问题都可以使用许多不同的 Vim ...

    vim用户手册中文版

    - 模式切换:理解正常模式、插入模式、可视模式和命令行模式等不同工作模式,并掌握在它们之间切换的方法。 2. **移动与选择** - 键位操作:熟练掌握h、j、k、l键进行水平和垂直移动,以及其它快捷键如w、b、e、...

    116-应用新安全组 1

    使用vimdiff或其他工具检查iptables规则的变更,可以看到新引入的两条规则允许ingress的SSH和ping流量。现在,你应该能够成功ping通和SSH连接到cirros-vm1。 安全组的关键特性包括: 1. **基于iptables控制流量**...

    学习liunx编程

    使用`vimdiff`命令比较两个文件的差异。 #### 三、嵌入式Linux开发环境构建 **6.1 嵌入式Linux开发模型** - **交叉编译**:在一个平台上编译代码,在另一个平台上运行。 - **交叉编译器**:专门用于嵌入式系统的...

    linux150个常用命令.docx

    例如,`man ls` 可以查看`ls`命令的使用方法。 2. **help**:查看shell内置命令的帮助。如`help cd`可查看`cd`命令的使用方法。 3. **ls**:列出目录的内容及其属性信息。例如,`ls -l`以长列表格式显示文件详情。 4...

    Linux运维命令

    - **功能说明**: 查看命令的手册页,提供详细的命令使用方法。`man` 是 Linux 中最常用的帮助文档查看工具之一。除了 `man`,还有一个更详细的帮助文档工具 `info`,但是使用频率较低。 **2. help** - **命令**: `...

    git基础知识

    **创建纯仓库的方法**: ```shell git clone --bare my_project my_project.git ``` 这里的`--bare`选项指定了克隆操作的目标是创建一个纯仓库。 #### 三、Git传输协议 Git支持多种传输协议,包括但不限于以下几...

Global site tag (gtag.js) - Google Analytics