Linux `Vimdiff`命令 - 如何在命令行中比较两个文件

618 阅读5分钟

软件开发和维护有时会变得很复杂。而你可能会发现自己在比较代码或配置的变化。

当你手动比较它们时,你可能会犯错,而且很容易错过微小的变化。除此以外,在大文件中寻找变化也是很累的。

有许多在线工具和文本编辑器可以帮助你有效地比较文件。但是有一种更简单、更省事的方法,就是使用Linux命令行来比较文件。

Linux命令行非常强大,在vim 内提供了一个文件比较工具,可以并排区分文件。

在命令行中学习文件比较很有帮助,因为许多服务器只使用CLI(命令行界面)。这意味着你没有一个可以运行浏览器或其他文本编辑器的GUI。

什么是vimdiff?

Vimdiff 是一个Linux命令,可以用 编辑一个文件的两个、三个或四个版本,并显示它们的差异。Vim

Vimdiff 语法

对于比较两个文件,其语法如下:

 vimdiff [options] file1 file2

让我们比较两个文件index.jsindex.js.bkp ,看看它们的区别:

vimdiff index.js index.js.bkp 

输出

image-13

Vimdiff 输出

在这里,我们可以看到高亮行的差异。

为了方便起见,我们也可以显示行号。当你在Vim ,按两次escape键进入扩展命令模式,然后输入:set number 。这将显示出当前会话的行号。

image-14

行号在vim

让我们再仔细看一下输出。

image-16

vimdiff 的详细输出:

  • 未折叠的行:这 些是没有被改变的代码行。这些是被包裹的,可以使用z+cz+o 键的组合来解除折叠。
  • 突出显示的变化: 这些是文件中存在的差异。
  • 行号:这些是文件中相应的行号。
  • 文件名:左边的文件名是命令中提到的第一个文件名。右边的文件名是命令中提供的第二个文件名。

还有一种方法可以在Vim中默认启用行号,这样你就不必每次都手动设置。

如何在Linux上的Vim中默认显示行号

如果你喜欢在Vim 中默认查看行号,你可以按照以下步骤进行:

  1. 找到vimrc 文件。

Vim 配置存在于 文件中。该文件的位置可能因不同的Linux发行版而不同。在 Ubuntu 中, 文件位于 。vimrc vimrc /usr/share/vim/

2. 编辑vimrc 文件。

只需在文件中添加set number ,然后保存并退出。

现在,无论何时你打开Vim ,行号都会默认出现。

Vimdiff 操作

让我们看看如何利用vimdiff 的力量。

首先,确保你是在命令模式下。

你可以通过按两次escape 键进入命令模式。

如何水平分割屏幕

默认情况下,vimdiff 是垂直分割屏幕的。如果你喜欢看水平分割的文件,你可以像这样使用标志-o

vimdiff -o index.js index.js.bkp

输出

image-17

水平分割

如何在差异窗口中导航

  • 在差异窗口之间导航

要在窗格之间导航,可以使用Ctrl+W+W 的组合键。一旦你按下这些键,光标将在文件之间切换:

  • 跳到变化处

你可以用一个特定的组合键跳到变化处,而不是逐行向下滚动并扫描变化处:

  1. 要移动到上一个变化,使用:[ + c
  2. 要移动到上一个变化,请使用。] + c

如何从差异窗口应用修改

  • 要把左边文件的修改应用到右边文件。

要把左边文件的修改应用到右边文件,首先,移动到突出显示的修改处。然后,使用该命令:

:diffput

记住,你需要在命令模式下:

image-18

使用diffput ,从左到右应用修改:

  • 要把右边文件中的修改应用到左边文件中。

要把右边文件的修改应用到左边文件,首先,移动到突出显示的修改处。然后,使用命令:

:diffget

image-19

使用diffget ,从右到左应用修改。

如何撤销修改

如果你犯了一个错误,只要你没有保存文件,你就可以撤消更改。

当你在命令模式下,按u ,可以撤销最后的修改。

如果你最近撤销了一个改动,你将不能像以前那样看到突出显示的改动。你需要刷新一下才能再次看到这些变化。你可以通过使用命令来做到这一点。

:diffupdate

如何打开和关闭折页

未改变的行被包裹起来,以提供更好的可读性。

image-33

要查看未折叠的行,如上图所示,将光标移到那里,使用以下组合键:

  • 要打开折页:z + o
  • 关闭折页:z + c

如何退出差异窗口

根据最终结果,有许多方法可以退出差异窗口:

  • :qa 退出所有的文件而不保存。
  • :q 一个一个地退出文件而不保存。
  • :wq! 一个一个地保存和退出文件。

结论

使用vimdiff ,比较文件是很容易和快速的,因为我们在命令行中比较文件。在本教程中,你学会了如何使用vimdiff 命令来有效地查找代码或配置文件的差异。

我希望你认为本教程对你有帮助,谢谢你读到最后。