різний характер


9

Чи є в Linux стабільний інструмент (опція / плагін існуючого інструменту: vimdiff, diff та ін.), Щоб зробити різницю між двома текстовими файлами в однаковій формі?

Я хотів би, щоб найдовша загальна послідовність між моїми двома файлами була виділена. Для цього існує класичний алгоритм поліноміального часу , але, здається, стандартні інструменти працюють лише за рядком.

Відповіді:


2

Добрий старий cmpне відрізняється характером. Він входить до складу UNIX близько 40 років. https://www.freebsd.org/cgi/man.cgi?query=cmp&apropos=0&sektion=0&manpath=Unix+Seventh+Edition&arch=default&format=html

На жаль, він зупиняється на першому різному характері, тому я не знаю, чи корисна ця відповідь для вас.


Дякую. Я щойно побіг, cmp -bl ...знайшовши цю відповідь, і він повідомив про численні розбіжності та їх позиції. Моя версія така cmp (GNU diffutils) 3.6.
Дзамо Нортон

2

Встановити diffchar( посилання Github для тих, хто використовує автозавантажувач плагінів). Оскільки v4.7 з увімкненим плагіном Vim автоматично показує більш точні відмінності:

введіть тут опис зображення

  • Ви можете натиснути F7(клавіша за замовчуванням), щоб переключитися між звичайним і плагіном. Перепризначити:

    nmap <silent> <key> <Plug>ToggleDiffCharAllLines
    

    заміни <key>відповідним кодом ключа.

  • Ви можете використовувати більше кольорів:

    let g:DiffColors=100
    

На жаль, це не працює між лініями, найкраще, що я можу сказати. Однак загальні регіони залишаються ООН -highlighted (і скласти, якщо вони ростуть занадто довго), так що ви могли б скористатися цим.


Скопійовано з моєї пошти з обміну стеками Vi та Vim .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.