如何区分重新包装的文本?

mat*_*ath 5 diff word-wrap

编辑文档时,我总是坚持最大80或150个字符的某个行宽,这取决于我写的内容(代码,文本等).如果我只改变一点,整个段落将会移动,因此多行现在处于不同的顺序,以便最佳地适合给定的行宽.我如何区分它以查看实际的真实变化而不是重新封装的工件?

例如,textwidth = 30: 在此输入图像描述

实际的变化相当小:

  • 第9行插入:"现在我改变一点"
  • 第15行插入:"在这里填写一些东西并用更多的线条写出全新的东西."
  • 第18行更改:s/Duis/TYPO /

我在这里使用(g)vimdiff的事实无论如何,如果其他软件可以实现所需的差异.

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

huo*_*uon 4

GNU wdiff进行逐字比较,不对空格和换行进行任何不同的处理。人们甚至可以找到它的 vim 语法文件(例如这里)。

$ 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
Run Code Online (Sandbox Code Playgroud)

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

(还有其他 diff 程序可以执行类似的操作:例如adiff ,也许还有/sf/ask/883781/中列出的一些程序)