windows - 在 vim 中区分窗口

标签 windows vim vimdiff

我正在编写一个相当复杂的脚本。我怀疑有几个部分具有几乎相同的代码。我可以(以及如何)在 vim 中打开文件,缓冲区上有两个(或更多)窗口,并在同一个文件上区分窗口的内容吗? vimdiff 似乎只适用于两个文件。如果我复制该文件并尝试对这两个版本进行 vimdiff,则差异源仍然锁定在文件的开头。虽然我可以取消滚动锁定窗口,并将窗口移动到我想要比较的文件部分,但差异并没有显示出来。有什么提示或技巧吗?我可以剪切并粘贴我想与不同文件进行比较的部分,然后应用 vimdiff 但是当我尝试将单独的文件修补在一起时,我可能会迷失在哪个部分来自哪里,我确信必须有一个更直接的方法,更简单的方法。

最佳答案

我通常做的是比较副本

:%w %.alt
:vert diffsplit %.alt

然后愉快地重新排列“alt”版本,以便伪匹配位对齐。


请注意(大概)git 包含漂亮的合并/差异 cow-powers,应该能够检测子文件移动的 block 更改

虽然我还没有(还)实际将其付诸实践,但我有一种预感,用于 vim 的非常好的 git 插件 fugitive 可能能够利用其中的一些强大功能来使这更容易. 注意:完全期望这在可用之前需要 scriptinh,但我仍然认为分享这个想法会很好(如果你先得到它,也许你可以分享一个脚本!)

关于windows - 在 vim 中区分窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5779566/

相关文章:

vim - 在VIM命令模式下如何使用vimdiff?

vim - 使用 gvim 打印差异?

c++ - 如何使用 C++ : When STDIN is NOT redirected 通过标准输入获取可用数据的大小

Windows批处理文件读取文本文件并全部转换为大写

windows - 使用批处理脚本组织文件

vim - 在vim中进入ex模式的更快方法?

C语言,串口阅读器

vim - 如何在 vim 中映射 Shift+- (Shift+dash)?

java - 使用java库

mercurial - 自 hg 书编写以来 `hg backout` 的行为是否发生了变化?