在编辑文档时,我总是坚持最大80或150个字符的特定行宽,这取决于我所写的内容(代码,文本等)。如果仅更改一点,则整个段落都会移动,因此,多行现在以不同的顺序排列,以最佳地适应给定的行宽。我该如何比较以查看实际的实际变化而不是重新包装的工件?

例如,textwidth = 30:

实际的变化很小:

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

  • 我是否在这里使用(g)vimdiff的事实与其他软件能否完成所需的差异无关。

    当然,软件设计为在文本到达窗口边界时自动换行,因此我也尝试仅在段落末尾使用换行符。之所以这样不好,是因为自动比较是基于行的,对于段落中的微小更改,我得到了整行,这意味着整个段落都将作为diff update :(.。

    最佳答案

    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中列出的一些程序)

    关于diff - 如何区分重新包装的文字?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8831704/

    10-13 05:51