使用 vimdiff 合并更改

2023-12-30

就我而言,我有两个文件 file1 和 file2。使用 vimdiff,我想合并更改,如下所示:

  1. 第一个区别是,将 file1 中的行放在 file2 中的行上方。这意味着差异,例如Listing 2在文件2和List 2应该List 2其次是Listing 2在合并的文件中。
  2. 在另一个更改中反转大小写。

快照如下所示。

我们如何使用 vimdiff 来实现这一点?


您可以使用以下基本命令进行合并:

  • do - Get changes from other window into the current window.

  • dp - Put the changes from current window into the other window.

  • ]c - Jump to the next change.

  • [c - Jump to the previous change.

  • zo - Open folded lines.

  • zc - Close folded lines.

  • zr - Unfold both files completely.

  • zm - Fold both files completely.

  • Ctrlww - change window.

  • :only | wq- 退出其他窗口,写入并退出。

需要注意的怪癖

  • Both do and dp work if you are on a block of change (or just one line under a single line of change) in Normal mode, but not in Visual mode.

  • The undo command will only work in the buffer that was changed, so if you use dp and change your mind, you need to switch to the other buffer to undo.

  • :diffupdate将重新扫描文件中的更改(Vim 可能会感到困惑,并显示虚假内容)。

可视化模式和更细粒度的控制

在可视模式下选择文本行时,必须使用普通命令:

  • :'<,'>diffget and
  • :'<,'>diffput.

例如:

  1. 进入视觉模式并标记一些文本/线条。
  2. 然后输入:diffput将选定的行推送到其他文件或:diffget从另一个文件中获取选定的行。

详细说明一下:这意味着如果存在由多行组成的更改块,则选择行的子集并发出:diffput只会在另一个缓冲区中应用这些更改。

(:diffget and :diffput也接受范围,请参阅:h copy-diffs了解更多。)

比较 Vim 内的两个缓冲区

如果您分片加载两个文件(:vs or :sp), 你可以做:diffthis在每个窗口上并实现已加载到缓冲区中的文件的差异。

:diffoff可用于关闭 diff 模式。

此 Vimcast 帖子和视频 http://vimcasts.org/episodes/fugitive-vim-resolving-merge-conflicts-with-vimdiff/在实践中展示这一点。

如何应用缓冲区之间的所有更改

  1. 确保所有参与缓冲区都处于 diff 模式(请参阅:h start-vimdiff)

  2. A。获取从缓冲区到当前缓冲区的更改::%diffget <buffer-number>

  3. b.将当前缓冲区中的所有更改放入另一个缓冲区中::%diffput <buffer-number>

(:%是选择整个文件的范围;看:h :%. :ls将显示当前打开的缓冲区。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 vimdiff 合并更改 的相关文章

  • 文件保存期间语法突出显示随机消失

    我正在使用 vim 编辑一些 python 文件 最近偶尔会出现在 vim 中保存缓冲区后语法高亮消失的情况 我尝试重置syntax on and set filetype python但无济于事 我根本不知道是什么原因导致了这个问题 所以
  • VIM:在窗口顶部显示自定义参考栏

    我想设置一个 vim 环境来使用基本的 HTML 编辑 由其他人 为此 我想设置一个快速参考栏 显示在窗口顶部 例如
  • Vim 关闭窗口而不关闭缓冲区

    如何在不删除缓冲区的情况下关闭窗口或取消分割 A window is a viewport on a buffer In vim to manage windows it is CTRL w the leading command that
  • Foldmethod=同时标记和语法?

    同一文件是否可以根据标记和语法使用折叠 Since foldmethod一次只能设置为一个 我认为您真正可以做到这一点的唯一方法是使用 set foldmethod expr并与foldexpr 即使如此 我也不确定它是否能够完全按照您的要
  • 在 Vim 中的缩进线上按“Home”

    我有一个坏习惯 就是使用 home 键返回到行首 当我最近开始使用 vim 时 我注意到当我在缩进的行上按 home 键时 它会让我回到该行的开头 在 Notepad 我曾经使用的编辑器 中 它会让我返回到该行代码的开头 就在缩进之后 有没
  • 以 Vim 的 -o - 模式打开 Grep 输出中的文件

    如何将文件列表放入 Vim 的 o 模式 我有一个文件列表作为 Grep 的输出 我运行失败 1 grep il sid vim o 2 grep il sid xargs vim o 3 grep il sid xargs vim 4 v
  • Redhat Vim 中的可视化块插入

    我的 ec2 服务器附带了 redhat vim ec2 user vim version VIM Vi IMproved 7 2 2008 Aug 9 compiled Jul 7 2012 08 03 48 Included patch
  • 如何使用 Vim 和 Eclipse 提高 PHP5.3 项目的工作效率(可能使用 Eclim 与 Zend Studio 集成)

    在开发应用程序时 我总是努力提高生产力 在过去的几年里 我可以说我在提高生产力方面取得了良好的进展 但我仍然发现我需要更多的工具或方法 我需要更快地编辑并学习盲打 目前正在过程中 因此我发现需要转向 Vim 现在已经一年多了 我已经放弃了
  • 使用 svn diff 时如何获取无上下文

    当我从命令行使用 svn diff 时 它会打印出已更改的行 以及前后 3 个未更改的行以获取上下文 我更喜欢只看到没有上下文的更改行 我无法确定任何命令行选项可以让我让它以这种方式运行 默认情况下 标准 diff 和 cvs diff 执
  • :set 选项的显示值

    如果你不给 colorscheme一个参数 然后它显示 vim 当前使用的颜色方案的名称 vim 中是否有类似的方法来显示是否设置了选项或如果选项的值不是布尔值则设置为什么 例如 如果我想知道是否autoindent已设置或者我想知道的值t
  • 使用 vim pythoncomplete 的 Python 文档字符串不显示我自己的类函数的换行符

    我在尝试使用时得到了一些意想不到的结果Python 全方位补全 http www vim org scripts script php script id 1542在我自己的类函数上 函数的文档字符串未正确设置换行符格式 如下图所示 当我从
  • Vim 脚本中的“reduce”函数

    Vim 脚本有一些非常基本的函数式编程工具 It has map and filter 但据我所知它缺乏reduce 功能 Reduce https en wikipedia org wiki Fold 28higher order fun
  • 使 'n' 始终向前搜索,无论是否 / 或 ?用于搜索

    我几乎总是在 Vim 中搜索 然后继续向前搜索n并向后N 然而 有时我会使用 跳转到我当前所在行上方几行的项目 在这种情况下 如果我想向前搜索同一项目 我必须使用N代替n 令人烦恼的心理减速带 所以我的问题是 是否有可能使n永远向前走 并且
  • 文件类型更改时颜色方案也会更改

    当我打开 vim htm html xml 或 vimrc 文件时 是否可以更改 Vim 中的颜色方案 当我切换到具有上述扩展名的已打开文件时 也会更改颜色方案 这就是我想要我的 vim 做的事情 file txt 或新的 未保存 缓冲区
  • 在 Vim 分割窗口中打开函数定义?

    我知道你可以使用ctrl 在 Vim 中跳转到定义 但是有没有办法让它在分割窗口而不是当前缓冲区中打开 我知道我可以打开一个新的分割窗口 然后使用ctrl 但是有没有更快的方法呢
  • Ubuntu 上的 Vim:文本渲染错误,奇怪地重复和消失

    不久前我在 ubuntu 12 04 上安装了 vim 有时 当我在代码上运行光标 使用键盘 而不是鼠标 时 文本会消失 就好像渲染字符时出现问题一样 当我再次运行光标时 它通常会重新出现 这似乎是随机发生的 但通常足以让人恼火 为了更清楚
  • vim 中的正则表达式查找和替换:向数字添加 .0

    我有一个如下所示的文件 1 1 0 1 6 1 0 2 8 1 0 3 10 1 0 4 12 1 0 6 如何为所有数字添加 0 后面的数字除外 我认为用正则表达式来做到这一点应该不会太难 但是我的正则表达式知识太生疏了 使用 VIM s
  • .NET 程序集差异/比较工具 - 有什么可用? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我希望能够在两个程序集之间进行代码级差异 Reflector 的 Diff 插件是迄今为止我发现的最接
  • 如何在 Vimscript 中获取光标下的单词和当前行的文本?

    我正在写一个 Vim 脚本 如何获取光标下的单词和当前行的文本 你可以与expand https vimdoc sourceforge net htmldoc eval html expand and getline https vimdo
  • VIM:我如何知道关键字使用了哪个突出显示规则?

    colorscheme default 文件类型是php 谁能帮我找出突出显示规则 hi light 将列出所有定义的规则并进行预览 您还可以查询单个项目 hi Keyword 手动查找任何语法组在光标下 有选择 我的是一个绑定到键的函数

随机推荐

  • InvalidOperationException:集合已修改 - 尽管锁定了集合

    我有一个同步哈希表 我定期从中删除一些条目 多个线程运行此代码 因此 我锁定了整个 foreach 但有时仍然会收到 InvalidOperationException Collection was generated at Hashtab
  • 该类不符合键的键值编码[重复]

    这个问题在这里已经有答案了 我目前正在通过 Jeff LaMarche 的 iPhone 4 开发入门 学习如何为 iPhone 编写代码 但遇到了一个问题 我似乎看不出问题出在哪里 我在许多论坛上读到 这是 IBOutlet 连接不正确的
  • 给定运行时数据,如何知道排序程序是使用冒泡排序还是插入排序?

    我测量了一个排序程序 算法 并根据运行时数据 将其范围缩小为两种排序算法 冒泡排序和插入排序 有没有办法确定它是哪一个 当然是在不知道代码的情况下 它们都有相同的时间复杂度 我已经没有主意了 时间复杂度数据 排序 O n 1000 个数字所
  • Android 谷歌地图 api v2 夜间模式

    我正在开发一个使用全屏谷歌地图 API 2 的Android应用程序 例如 使用我的应用程序的司机希望在晚上 10 点到早上 6 点之间使用 夜间模式 这在 Android 中可能吗 将地图模式更改为 夜间 类似于Android手机中已有的
  • 我可以控制 IE 10 选择框的位置吗?

    在 Internet Explorer 10 中 下拉框的行为
  • C++ 从字符串中去除非 ASCII 字符

    在开始之前 是的 我知道这是一个重复的问题 是的 我已经查看了发布的解决方案 我的问题是我无法让他们工作 bool invalidChar char c return isprint unsigned c void stripUnicode
  • 从 Firebase 中删除 Google 或 Facebook 用户

    要从身份验证选项卡中删除用户 我使用以下代码 if let user FIRAuth auth currentUser user delete completion nil 当用户使用电子邮件 密码组合注册时 这工作得很好 但当他们使用社交
  • `alloc::rc::Rc` 和 `std::rc::Rc` 有什么区别?

    我很好奇这两个模块在实践中是否有区别 如果没有 为什么会有这两个副本呢 std rc Rc只是再出口alloc rc Rc 你可以看到在src std lib rs https doc rust lang org nightly src s
  • 使用 Nginx 在 OpenSuse 上启用 php5-curl

    我有 OpenSuse Server 10 3 和 nginx 作为 Web 服务器 我需要启用 php5 curl 安装成功了 然后重新启动网络服务器 但没有任何变化 有任何想法吗 谢谢 您可能还没有真正加载扩展 查看 phpinfo 以
  • 如何将 darknet YOLOv4 视频的每一帧输出保存在 txt 文件中?

    我在用darknet https github com AlexeyAB darknet在我的定制数据集上使用 YOLOv4 检测对象 对于视频检测 我使用 darknet detector demo data obj data yolo
  • 将 UIImage 剪辑到 UIBezierPath(不遮罩)

    我正在尝试剪辑UIImage基于给定的UIBezierPath 但生成的图像保留原始形状和大小 我希望形状和大小类似于路径 即新图像的可见内容 看看下面的例子 以下是我用来屏蔽给定路径的图像的代码 func imageByApplyingC
  • Angular2,如何防止HTTP重定向

    我正在尝试通过 angular2 Http 模拟用户登录 让我们描述一下情况如下 我有一个 php 应用程序 用户可以登录http sample com login phpurl 存在用户名和密码输入的表单 用户应填写输入并按提交按钮 如果
  • 使用 Inno Setup 安装所有文件后运行的代码

    我得到了以下小函数 我需要在所有文件之后调用它 Files 部分已被复制 procedure DllAfterInstall platform Integer begin if not installDriver platform then
  • Java 中的一维数组 N 皇后拼图

    我正在解决一个在初级程序员中似乎有点出名的问题 即 8 个皇后难题 我已经看到了使用二维数组 递归等解决这个问题的几种方法 但是这个问题是CS课程书籍介绍一维数组的章节中给出的作业 所以解决这个问题的可用技术是有限的 我使用的过程是首先创建
  • 如何更改 MAC cmd 中的默认 python3 路径?

    我的 Mac 包含多个 python 版本 因此我想修复一个作为我的默认 python In the current it has set the path of anaconda python I have stopped to use
  • 了解 Excel VBA 中“特殊单元格”的语法

    我的代码的一部分如下所示 With Selection Set ConstantCell SpecialCells xlCellTypeConstants xlNumber Set FormulaCell SpecialCells xlty
  • 在 Delphi XE2 FireMonkey 中 - 如何在按下按钮后更改按钮的颜色

    我只想在按下按钮后更改按钮的颜色 我必须使用 样式 来执行此操作还是 您可以更改button StyleLookup属性来更改样式 颜色 您需要将新样式添加到样式簿中 从按钮的鼠标右键菜单中选择 编辑自定义样式 更改背景下 TRectang
  • CoordinatorLayout:隐藏/显示一半可见的工具栏?

    我想达到与您在其中看到的类似的效果谷歌应用商店 通过滚动内容Toolbar当您滚动时会离开屏幕 这适用于CoordinatorLayout 1 http developer android com reference android sup
  • 确保矩阵行的长度都相同(python3)

    所以我有这个 python 3 代码来输入矩阵 matrix lop True while lop line input if not line lop False if matrix if len line split len matri
  • 使用 vimdiff 合并更改

    就我而言 我有两个文件 file1 和 file2 使用 vimdiff 我想合并更改 如下所示 第一个区别是 将 file1 中的行放在 file2 中的行上方 这意味着差异 例如Listing 2在文件2和List 2应该List 2其