vimdiff 是 Linux 开发者必备的轻量级文件对比工具,结合 Vim 的编辑能力和直观的差异标记,适合终端环境下的快速文件对比。本文聚焦核心用法,通过场景化案例讲解高效操作流程。

使用 vimdiff

比较两个文件差异:

vimdiff file1 file2

比较多个文件:
你可以同时比较多个文件,vimdiff 会以分屏的形式打开这些文件,每个文件占据一个单独的窗口区域来展示其内容。

vimdiff file1 file2 file3

界面布局

vimdiff 的界面会将两个或多个文件的内容分别显示在垂直或水平分割的窗口中。相同行的文本会被折叠起来,而只有在一个文件中存在的行会被标记为蓝色,另一个文件中存在的行会被标记为绿色。如果两个文件都存在但内容不同的行,会被标记为粉红色,并且差异部分会用红色高亮显示。

快捷键操作

差异点跳转

  • 跳转到下一个差异点:]c

  • 跳转到上一个差异点:[c

  • 跳转到更远的差异点:n]c(n为数字,表示跳过n个差异点)

文件合并

将当前文件内容合并到另一边:dp(diff “put”)
将另一边内容合并到当前行:do(diff “obtain”)

窗口移动与焦点切换

  • 在窗口之间切换:
    • Ctrl-w h:跳转到左边的窗口

    • Ctrl-w j:跳转到下面的窗口

    • Ctrl-w k:跳转到上面的窗口

    • Ctrl-w l:跳转到右边的窗口

    • Ctrl-w w:跳转到另一个窗口

    • Ctrl-w Ctrl-w:同 Ctrl-w w

  • 移动窗口位置:
    • Ctrl-w K:把当前窗口移到最上边
    • Ctrl-w H:把当前窗口移到最左边
    • Ctrl-w J:把当前窗口移到最下边
    • Ctrl-w L:把当前窗口移到最右边

其他常用操作

  • 手动刷新比较结果::diffupdate

  • 展开折叠区:zo

  • 关闭折叠区:zc

  • 设置上下文行数::set diffopt=context:X(X为你想要的上下文行数)

  • 保存所有文件并退出::wqa

  • 强制退出所有窗口,不保存更改::qa!

    高级技巧

    • 区分大小写:

      • set ignorecase:不区分大小写

      • set noignorecase:区分大小写

      • 粘贴格式不乱::set paste,按原来的格式粘贴过来

      • 关闭语法高亮::syntax off,有时能让差异更容易看出来

总结

vimdiff 是一款功能强大的文件比较工具,通过其直观的界面和丰富的快捷键操作,可以大大提高文件对比与同步的效率。无论是日常开发中的代码对比,还是文档编辑中的差异查找,vimdiff 都能为你提供极大的便利。希望本文的介绍能帮助你更好地掌握 vimdiff 的使用技巧,提升你的工作效率。

nvm全英文也叫node.js version management,是一个nodejs的版本管理工具。nvm和n都是node.js版本管理工具,为了解决node.js各种版本存在不兼容现象可以通过它可以安装和切换不同版本的node.js。

阅读全文 »

在Ruby或者Python等高级语言里,你很容易知道错误是哪行什么类型的错误,还有IDE的Debugger加持。而Bash只能看源码,通过打印log等非常低效的方式调试。

本文将介绍Bash中 set -euxo pipefail,它们可以帮助你写出更容易维护也更安全的脚本

阅读全文 »

众所周知,在md文件中插入图片的语法为![]()
其中方括号是图片描述,圆括号是图片路径。
一般来说有三种图片路径,分别是相对路径,绝对路径和网络路径
所谓的网络路径就是直接引用网上的图片,直接复制图片地址,放在圆括号中就完事了。
这种方式十分的方便,但是也存在一定的问题:

阅读全文 »
0%