【问题标题】:How to diff rewrapped text?如何区分重新包装的文本?
【发布时间】:2012-03-28 22:34:02
【问题描述】:

在编辑文档时,我总是坚持最大 80 或 150 个字符的特定行宽,这取决于我在写什么(代码、文本等)。如果我只改变一点,整个段落就会发生变化,因此现在多行的顺序不同,以最佳地适合给定的线宽。我如何区分这个以查看实际的真实变化而不是重新包装的工件?

例如,文本宽度=30:

实际变化很小:

  • 第 9 行插入:“现在我改变了一点”
  • 第 15 行插入:“在此处填写一些内容并用更多行编写全新的内容。”
  • 第 18 行更改:s/Duis/TYPO/

我在这里使用 (g)vimdiff 的事实无关紧要,如果其他软件可以完成所需的差异。

当然,软件设计为在文本到达窗口边框时自动换行,所以我也尝试在段落末尾使用换行符。这不好的原因是,自动差异是基于行的,对于段落中的微小变化,我得到整行,这意味着整个段落作为差异更新:(。

【问题讨论】:

  • 我在这里没有看到任何开发问题,您能提供更多详细信息吗?

标签: diff word-wrap


【解决方案1】:

GNU wdiff 进行逐字比较,不会以任何不同的方式处理空格和换行符。甚至可以找到它的 vim 语法文件(例如here)。

$ cat file1
Lorem ipsum dolor sit amet, consectetur
adipiscing elit. Aenean vel molestie
nulla. Pellentesque placerat lacus vel
eros malesuada tristique. Nulla vitae
volutpat justo. Donec est mauris,

$ cat file2
Lorem amet, consectetur adipiscing some
inserted text! elit. Aenean vel molestie
nulla. Pellentesque placerat lacus vel
eros malesuada replacement. Nulla vitae
volutpat justo. Donec est mauris,

$ wdiff file1 file2
Lorem [-ipsum dolor sit-] amet, consectetur
adipiscing {+some inserted text!+} elit. Aenean vel molestie
nulla. Pellentesque placerat lacus vel
eros malesuada [-tristique.-] {+replacement.+} Nulla vitae
volutpat justo. Donec est mauris

[- ... -] 是删除文本,{+ ... +} 是插入文本)。

(还有其他 diff 程序可以做类似的事情:例如 adiff,也许还有一些列在 https://stackoverflow.com/questions/12625/best-diff-tool 中的程序)

【讨论】:

【解决方案2】:

我喜欢Beyond Compare 这种并排的文件比较。还可以让你做文件夹比较和位级比较,你可以右键选择左边的文件进行比较,然后另一个选择右边的文件;或选择两个文件并右键单击比较以立即将它们都显示出来。

【讨论】:

    【解决方案3】:

    我使用DiffMerge,它是免费的,可在许多平台上使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-15
      • 2021-11-17
      • 2014-01-27
      • 2016-10-14
      • 2011-09-01
      • 2011-02-02
      • 2021-07-20
      • 2019-11-24
      相关资源
      最近更新 更多