help - изменить символ сравнения "<", "|" или ">" до желаемого? - PullRequest
5 голосов
/ 29 декабря 2010

Команда diff -w используется для создания файла сравнения сравнения бок о бок (вместо параллельного).
Я затем просматриваю их, используя vi через терминал ssh. Изменения обозначаются либо "<", либо "|"или ">"
Поскольку файл, который я просматриваю, является исходным кодом, переход к одним только изменениям
с использованием вышеуказанных символов затруднен, поскольку они также находятся в исходном коде C.

Как я могу изменитьсимволы по умолчанию для желаемых?
Пожалуйста, помогите.Спасибо.

Ответы [ 2 ]

5 голосов
/ 29 декабря 2010

Вместо просмотра вывода diff -w в vim, вы можете использовать встроенный diff vim:

vim -d file1 file2

Это открывает vim в вертикальном разделении с открытыми файлами и разметкой diff вкод.Вот как это выглядит:

alt text

И работает в терминале тоже:

alt text

Вы можете найти короткийучебник здесь

2 голосов
/ 29 декабря 2010

Согласно моей версии diff (2.8.1 из GNU diffutils от FSF) -w используется для изменения ширины вывода;Параметр -y выводит параллельное сравнение.В совокупности эти два эффекта не показывают большего эффекта, чем параметр -y, используемый отдельно, что означает, что у вас может быть псевдоним в вашем профиле терминала или в глобальном профиле терминала, который псевдоним diff к diff -y.

Я говорювсе это потому, что все параметры для изменения символов ("<", "|" и ">") конфликтуют с параметром -y.Если вы можете жить без бок о бок, у вас есть возможность выбора двух других включенных стилей вывода или определения своего собственного.Два выходных стиля: -c (контекст) и -u (унифицированный).(Для получения дополнительной информации о том, что они делают, см. Страницу diff в Википедии . Для получения дополнительной информации о параметрах см. Страницу руководства diff .)

Более подробное исправлениебудет использовать следующие параметры:

diff --old-group-format="(deleted)---" \
     --new-group-format="(added)---" \
     --changed-group-format="(updated)---" \
     --unchanged-group-format="(nodiff)---" \
     old_file.c new_file.c

Теперь строки старого файла, которых нет в новом файле, представлены как (удалено) ---

Строки нового файла, которых нет в старом файле, представлены (добавлено) ---

Измененные строки представлены (обновлено) --

Линии, общие для обоих файлов, представлены (nodiff) ---

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

Конечно, если вы должны иметь бок о бок, попробуйте идею Натана Феллмана выше.В противном случае есть возможность использовать для него специальный инструмент с графическим интерфейсом, например Kompare.

...