Diff Tool для Linux, в который можно вставить два текста без файлов?

leeand00

Diff Tool для Linux, в который можно вставить два текста без файлов?

Мне часто приходится сравнивать два текстовых блока без создания файла для каждого из них, а затем запускать сравнение между ними.

Есть ли инструмент, который я могу использовать и просто копировать и вставлять оба в пустые буферы, а затем получать разницу между ними двумя?

ненор

Meld ( статья в Википедии ) это позволяет.

Когда вы открываете новую вкладку различий ( Ctrl+ n), всплывающее окно предлагает вам выбрать два (или три) файла. Вы можете просто нажать OKздесь, ничего не выбирая.

Он открывает пустые буферы, как в текстовом редакторе, что позволяет вставлять (или печатать) текст. Различие происходит на лету (пока вы вставляете/набираете/редактируете текст).

Когда вы закрываете вкладку diff, инструмент спрашивает, хотите ли вы сохранить файлы.

Скриншот с http://meldmerge.org/features.html :

Графический интерфейс Meld, показывающий разницу между двумя файлами, выделяя разные части красным на синем фоне и новые строки на зеленом фоне.

Гейб3886

Мне нравится мелд. У него также есть преимущество в том, что он кроссплатформенный (я использую его для разработки Windows). Вы можете выбрать сравнение файлов, а затем нажать «пустое сравнение», чтобы получить тот же результат, если у вас нет существующего сравнения.

leeand00

Мне пришлось нажать CTRL + N, а затем нажать кнопку File Comparison, а затем щелкнуть Blank comparison, и это помогло.

Натаниэль М. Бивер

Другой вариант — диффузный: http://diffuse.sourceforge.net/index.html .

По умолчанию он открывается с двумя пустыми панелями, и вы можете вставлять все, что хотите, в каждую сторону.

пример двухпанельного diff

Эрик Ренуф

Не обязательно самый красивый, но вы могли бы сделать это с заменой процесса и heredocs:

diff <(cat <<EOF1
First text
and more
EOF1) <(cat <<EOF2
Second text
and more
EOF2)

будет производить вывод:

1c1
< First text
---
> Second text

и вы, конечно, можете поместить все, что хотите, в каждый блок текста.

Другой вариант - использовать vim, как в ответах здесь

Процесс, который я хотел бы сделать с этим, должен был бы сделать следующее внутри vim:

  • вставить текст в текущий буфер
  • запустить :diffthis, чтобы включить это окно вdiff
  • запустите :vnew, чтобы разделить другое окно по вертикали, чтобы они были бок о бок
  • вставить текст из второго источника
  • бежать:diffthis

presto, у вас есть выделенный diff