Как я могу использовать vimdiff для просмотра различий, описанных в файле diff?
Использовать vimdiff с файлом diff
Ответ 1
Вместо использования команды /usr/bin/vimdiff
попробуйте следующее:
$ vim file :vertical diffpatch path/to/diff
(:vert diffpa
для краткости.)
Это эквивалентно вызову vimdiff
в исходном файле и впоследствии исправленном файле, но vim
вызывает patch
во временном файле для вас.
Изменить
Если вы хотите ввести автоматический режим vim
diff-mode, используйте это:
$ vim file +'vert diffpa path/to/diff'
где +command
просит vim
выполнить команду. (+123
переходит к строке 123, +/abc
переходит к первому совпадению для "abc", все это задокументировано.)
Что касается запроса Кена: если файл diff включает в себя ханки, применяемые к файлам, отличным от файла, который вы сейчас редактируете, не беспокойтесь; vim
вызывает исполняемый файл patch
под ним, который будет запрашивать местоположение этих таинственно отсутствующих файлов, и вы можете сказать patch
просто пропустить эти куски.
Ответ 2
Переход с другого направления. Я написал плагин Vim, который показывает изменения, внесенные в файл с момента последнего сохранения в формате vimdiff или унифицированного diff.
Получите его здесь: diffchanges.vim
Ответ 3
Сделайте копию исходного файла, примените diff, а затем
vimdiff original_file patched_file
Вы также можете посмотреть скрипты vim.org, которые были написаны для работы с выходом svn diff. Если вы создаете свой diff из системы управления версиями, посмотрите на vcscommand.vim: плагин интеграции CVS/SVN/SVK/ git.
Ответ 4
Не могли бы вы сказать больше о том, почему вы хотите использовать vimdiff для этого?
Например, хотите ли вы визуализировать различия в символах в (объединенном) файле diff?. Если это так, кто-то ответил мой вопрос о том же с предложением , чтобы в принципе просто запустить emacs на diff и нажмите ALT-n
, чтобы циклически перебирать ханки, красиво выделяя изменения в каждом слове или на каждом персонаже (похоже на vimdiff). Он работает хорошо, но это облом, чтобы запустить emacs только для этого. Я знаю только достаточно emacs, чтобы сделать это, а затем выйти, не опуская патч.:)
Во всяком случае, ответ emacs дал мне несколько идей. Я уверен, что Vim можно уговорить обеспечить лучшую подсветку файлов diff, возможно, нечто большее, чем ediff. Я просмотрел это некоторое время назад, и у кого-то из списка пользователей vim было отличное предложение включить google-diff-match-patch. Интерфейс Python может использоваться, например, из Python Vim ftplugin.
Извините за использование ответа "ответ", когда это может быть не лучшим ответом, форматирование "добавить комментарий" было слишком ограничено для того, что я хотел сказать.
Для потомков здесь ссылка на другой подобный вопрос (который уже здесь также упоминается).