使用 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 中粘贴拉出的行后,为什么不能再次粘贴它?

    这个问题以前可能已经回答过 但我尝试搜索 但找不到任何答案 我对 Vim 有点陌生 遇到以下问题 一旦我拉出一行并粘贴它 我就无法再次粘贴它 例如 假设在Word环境中您将复制文本 粘贴它 然后您可以进一步粘贴它 但在 Vim 中 一旦我粘
  • 有没有办法在 (g)Vim 中突出显示多个搜索?

    我想在 Vim gVim 中搜索多个字符串 并用不同的颜色突出显示它们 有没有办法用开箱即用的 Vim 或插件来做到这一点 在 vim 编辑器中突出显示多个单词有两种简单的方法 进入搜索模式 即输入 然后输入 v后面是您要搜索的单词 以 分
  • 如何在 vim 中为 cscope 输出添加颜色?

    我使用的是 vim 7 4 vim 中的 cscope 输出全是白色 可以变得更加丰富多彩吗 我尝试了cecscope 它使用quickfix给vim带来颜色 但它的输出不适合小屏幕 使用笔记本电脑时它没有那么有用 那么还有其他方法可以为
  • git commit 保存 vim 文件时出错

    我正在遵循简单的 git 指南nettuts 简易 git 指南 http net tutsplus com tutorials other easy version control with git 我在我的中初始化了一个空的 git 实
  • 如何在 VIm 和终端中始终拥有相同的当前目录?

    我希望我的终端当前目录跟随我的 VIM 目录 Example 在终端中 gt pwd gt Users rege gt vim 然后在VIM中 cd Users rege project
  • Vim 与 tmux 相得益彰

    NERDTree 在 tmux 会话中出现问题 如图所示 当窗口被分割时也存在同样的问题 但现在我正在使用电源线 https github com Lokaltog powerline这次 Vim 状态在 tmux 中变得混乱 在图中看到状
  • 如何在 Vim 中仅在某些上下文中启用语法隐藏?

    我想隐藏名称基于希腊符号的变量 并将它们转换为 Unicode 等效符号 类似于vim 可爱的 python https github com ehamberg vim cute python作品 例如 我有这个 syntax match
  • Vim 插入模式下光标线颜色变化

    有一个很好的片段可以改变光标颜色 if term xterm rxvt use an orange cursor in insert mode let t SI
  • Vim 和 Tmux 渲染错误

    我在使用 Tmux 和 Vim 时遇到问题 正如您在图片中看到的那样 当我使用 nerdtree 或 irssi 实际上是任何终端应用程序 时 我遇到了此类渲染问题 我输入的每个键都会修改整个终端渲染 这只是一个图形错误 但它使我无法正常工
  • 如何以统一的 diff 格式打印两个多行字符串的比较?

    您知道有什么图书馆可以帮助做到这一点吗 我会编写一个函数 以统一的 diff 格式打印两个多行字符串之间的差异 像这样的东西 def print differences string1 string2 Prints the comparis
  • Perforce Excel 文件差异

    我有一堆 excel 文件放在 perforce 上 我想对这些 excel 文件进行 diff 类似于我在 perforce 中对其他文件 如 java cs 等 所做的操作 我尝试寻找一个插件 发现 P4OFC 只适合对 word 文件
  • GVIM可以有背景图片吗?

    我想知道是否可以将背景图像放入 gVim 中 这可以通过编程来完成吗 如果你必须的话 我建议你做以下几件事 使用合成窗口管理器 例如 Linux Windows Vista 和 Mac OS 上的 Compiz 可能有类似的工具 设置桌面背
  • 有没有可以在 HTML 文档之间进行比较的 ruby​​ gem?

    事实证明 对两个不同的 html 文档进行比较是一个完全不同的问题 而不仅仅是对纯文本进行比较 例如 如果我在以下之间进行简单的 LCS 差异 Google and Google diff 结果不是 but a gt github com
  • Vim 在 Mingw 上表现异常

    我在 MinGW 4 6 2 上的 Vim 表现得很奇怪 例如 在插入模式下按 Backspace 会删除字符 但我必须用箭头键移动光标才能删除的字符消失 而且它也会使我退出插入模式 另一个例子 按 Del 删除字符有时会生成奇怪的字符 例
  • 在.vimrc中设置expandtab不生效

    由于某种原因set expandtab命令在我的 vimrc文件没有任何作用 这是我的 vimrc tab settings set expandtab set smarttab set softtabstop 2 set tabstop
  • 代码折叠未保存在我的 vimrc 中

    我将以下代码添加到我的 vimrc 中 save and restore folds when a file is closed and re opened autocmd BufWinLeave mkview autocmd BufWin
  • Perforce - 如何获取已本地修改的文件列表?

    我正在寻找一个 perforce 命令来获取已在本地修改且 未 签入存储库的文件列表 我知道我 应该 获取待处理更改列表中的已修改文件列表 但在某些情况下我看不到该列表中的已修改文件 然后 在 手动 检查文件并进行比较时 我意识到了差异 是
  • Vim + tmux + WSL 在导航文档时显示方块和奇怪的字符

    我可以在 Windows Ubuntu 子系统中使用 vim 没有任何问题 然后 当在 tmux 中运行 Vim 并输入文本时 大多数字符都会显示为奇怪的方块 里面有引号而不是实际的字母 这是 vim 文本的屏幕截图 1 在 tmux 中突
  • 自定义 Vim HTML 语法

    我有一个脚本可以读取 HTML 文件并替换出现的 foo 具有 Perl 设置的值 像这样的东西 span class hi mom span 会在浏览器中产生类似这样的内容 span class classyclass Hello Wor
  • Vim - 在插入模式下删除行

    我可以在插入模式下删除一行吗 因为目前我必须按

随机推荐

  • 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其