Как мне выйти из грязного слияния при использовании vimdiff - PullRequest
2 голосов
/ 14 марта 2020

Я использую vimdiff как инструмент слияния в Mercurial. Иногда я начинаю ребазинг, который оказывается довольно грязным, и я просто хочу попытаться выйти из процесса и сделать что-то другое. То, как я это делаю, обычно просто спамит :qa, пока я не пробежусь по всем конфликтующим файлам, но для более крупных наборов конфликтов это может означать, что я делаю это довольно долго. Иногда, если мне повезет, я могу прокрасться в Ctrl+C за время до того, как следующий конфликт загрузится в vim, но часто я просто получаю что-то еще большее, и весь мой сеанс терминала теряется.

Есть ли более изящный способ выхода из грязного ребэза при использовании vimdiff?

Ответы [ 2 ]

3 голосов
/ 14 марта 2020

С vimdiff вы можете использовать команду :cq для выхода из Vim с кодом ошибки.

Mercurial должен быть в состоянии сказать, что это произошло, и интерпретировать, как вы говорите это остановить операцию, давая вам возможность прервать операцию слияния.

1 голос
/ 14 марта 2020

Вы можете использовать Ctrl + Z , чтобы приостановить процесс переднего плана (который vimdiff, но также hg, который его породил), возвращая вас обратно в оболочку .

На этом этапе вы можете завершить задание переднего плана с помощью kill %% или, возможно, kill -INT %% (SIGINT эквивалентно нажатию Ctrl + C ), который должен завершить процесс hg и завершить vimdiff нажатием SIGHUP (Hang-Up).

При приостановке vimdiff вам удастся найти время для отправки hg эквивалента a Ctrl + C.

...