Я ищу что-то, что я могу установить на сервер Ubuntu, что позволит мне сравнивать содержимое PHP, Javascript, CSS, HTML и других текстовых файлов более презентабельным и понятным способом, чем команда по умолчанию diff
.
Должны быть
Хотел бы иметь
В идеале мне бы понравилось что-то вроде функции сравнения файлов WinMerge:
для Ubuntu, но я понимаю, что не все функции могут быть доступны для консольного приложения.
vimdiff file1 file2
Вы также можете использовать его с git, например:
git difftool --tool=vimdiff HEAD^ HEAD
Итак, вам нужен интерактивный инструмент сравнения с очень простыми функциями. Очевидный ответ — Emacs (Ubuntu :) emacs
, который включает Ediff около 20 лет назад.
Откройте два файла, которые вы хотите сравнить, и выберите в меню «Инструменты → Сравнить (Ediff) → Два буфера…». Или выберите «Инструменты → Сравнить (Ediff) → Два файла…» и введите имена файлов. Вместо этого вы можете использовать команду ediff-buffers
или ediff
(псевдоним ediff-files
) (нажмите Alt+ X, затем введите ediff
и нажмите Enter). Основные команды в режиме Ediff:
|
для переключения между отображением двух файлов один над другим (по умолчанию) или рядомn
для перехода к следующему другому блоку строкp
для перехода к предыдущему другому блоку строкq
выйти из режима Ediff?
за помощьюC-x o
( Ctrl+ Xзатем нижний регистр O) для навигации между тремя буферами (файл 1, файл 2 и панель управления Ediff).Ediff также может выполнять трехсторонние сравнения, если у вас есть общий файл-предок, и может помочь в слиянии. Записей в меню «Инструменты» должно быть достаточно, чтобы начать работу; подробности см. в руководстве .
Emacs также может автоматически извлекать версии из svn и других систем контроля версий. Посмотрите в меню «Инструменты → Контроль версий» или в руководстве для получения дополнительной информации.
Вам может быть удобнее использовать версию Emacs с графическим интерфейсом. Emacs работает во всех основных операционных системах (в Windows я использую EmacsW32 ) и может прозрачно получать доступ к удаленным файлам через SSH (и другие методы). Чтобы открыть удаленный файл через SSH, введите /name-of-host:/path/to/file
имя файла. В Windows, если вы используете PuTTY для SSH, убедитесь, что вы plink
установили и на Emacs PATH
, и вставили (setq tramp-default-method "plink")
свой файл ~/.emacs
. Подробнее см. в руководстве Tramp .
Если вам нравится, diff
но вы хотите, чтобы он был немного более легким для понимания и чтения, есть colordiff
- в основном то же самое, diff
но с цветным выделением.
Чтобы получить параллельное сравнение с использованием diff или colordiff, вы можете добавить -y
опцию. Вы также можете использовать sdiff
- он выводит параллельное сравнение немного чище, чем diff
с -y
опцией (по крайней мере, в Fedora, в Debian они выглядят почти одинаково, хотя не уверен, что это одинаково для всех).
Он выделяет разные слова, а не всю строку.
Вы также можете установить ширину столбца терминала в соответствии с вашей текущей шириной/столбцами:
colordiff -y --width=$COLUMNS mylovelyfile1.txt mylovelyfile2.txt
Кристиан Чиупиту