Я прочитал Vimdiff и Просмотр различий с помощью Vimdiff плюс выполнение различных поисков в Google с использованием таких вещей, как "vimdiff множественный", "vimdiff git", "команды vimdiff" и т. Д.
При использовании do или diffg я получаю ошибку «Более двух буферов в режиме сравнения, не знаю, какой использовать».
При использовании diffg v: fname_in я получаю «Нет соответствующего буфера для v: fname_in».
Из документации vimdiff:
: [range] diffg [et] [bufspec]
Изменить текущий буфер, чтобы отменить разницу с другим
буфер. Если задан [bufspec], этот буфер используется. Если
[bufspec] ссылается на текущий буфер, тогда ничего не происходит.
В противном случае это работает, только если в diff есть еще один буфер
режим.
и более:
Когда 'difxpr' не пуст, Vim вычисляет файл diff в
упомянутый формат. Эти переменные устанавливаются на используемые имена файлов:
v: fname_ в исходном файле
v: fname_new новая версия того же файла
v: fname_out результирующий файл различий
Итак, мне нужно получить имя bufspec, но переменные по умолчанию (fname_in, fname_new и fname_out) не установлены.
Я запустил команду git mergetool на компьютере с Linux через терминал.
[Изменить]
Частичное решение, которое породило больше вопросов. Я использовал «имя файла» в нижней части буфера. Это только половина ответа, потому что иногда я получаю файл, не существует ошибки. Я считаю, что это удаленная версия файла, которая "не существует". Я подозреваю, что это как-то связано с git и индексацией.
Как получить значение bufspec последовательно при использовании vimdiff через git-mergetool?