Git commit завершается с Vim и GVim
Когда я пытаюсь сделать git commit -a
, я получаю хороший экземпляр vim. Я ввожу свое сообщение, do :wq
, vim закрывается, а терминал имеет сообщение,
Aborting commit due to empty commit message.
В соответствии с этот вопрос Я убедился, что мой core.editor говорит "gvim" (также делает user.editor, fwiw), но я все еще получаю это сообщение об ошибке.
Есть ли у кого-нибудь другая идея?
Изменить 1. Я могу зафиксировать, указав файл. Мои сообщения слишком длинны, чтобы разумно использовать опцию -m.
Изменить 2:
$ git config core.editor
vim
error: More than one value for the key core.editor: vim
error: More than one value for the key core.editor: gvim
Изменить 3:
По-прежнему имеет ту же проблему, даже с сортировкой core.editor. Любые другие идеи?
$ git config core.editor
gvim -f
$ git commit
Aborting commit due to empty commit message.
Изменить 4:
Другие сообщения об ошибках. Это все, что я вижу. Я исключил несколько из моего первоначального вопроса, потому что я получил их на многих машинах, ни одна из которых не имела проблем с использованием vim/gvim с git (кроме текущего). В показанном здесь случае core.editor имеет значение vim -f
.
$ git commit
(gvim:21655): GLib-WARNING **: g_set_prgname() called multiple times
** (gvim:21655): CRITICAL **: gtk_form_set_static_gravity: assertion `static_gravity_supported' failed
** (gvim:21655): CRITICAL **: gtk_form_set_static_gravity: assertion `static_gravity_supported' failed
** (gvim:21655): CRITICAL **: gtk_form_set_static_gravity: assertion `static_gravity_supported' failed
** (gvim:21655): CRITICAL **: gtk_form_set_static_gravity: assertion `static_gravity_supported' failed
** (gvim:21655): CRITICAL **: gtk_form_set_static_gravity: assertion `static_gravity_supported' failed
Aborting commit due to empty commit message.
Когда для core.editor установлено значение gvim -f
, я получаю точно такие же сообщения об ошибках, кроме числа 21641, а не 21655. Когда я один из строк в Google, я не получаю совпадений (мне трудно поверить, но там вы есть).
Ответы
Ответ 1
Если вы используете gvim, вам нужно убедиться, что он остается на переднем плане, иначе он вернет управление до git, прежде чем вы сможете редактировать и сохранять свое сообщение. Указание переключателя -f
как часть настройки редактора должно включить это.
gvim -f
У вас есть несколько значений, установленных для параметра core.editor
, вызывающего проблему. У вас должна быть только одна настройка.
Try:
git config --global --unset-all core.editor
git config --unset-all core.editor
git config --global core.editor "gvim -f"
Ответ 2
Использование gvim -f
должно быть решением (работает для меня), но просто установка core.editor
может не обязательно вызывать использование git. Чтобы узнать, что используется git на самом деле, запустите git var GIT_EDITOR
. Он должен напечатать gvim -f
. Если нет, проверьте man git-var
и перейдите в раздел в переменной GIT_EDITOR
, чтобы узнать, что может быть переопределяющим ваш параметр core.editor
.
Ответ 3
Вы префикс строк в сообщении с сообщением #
? Если вы, Git будет относиться к ним как к строкам комментариев, игнорировать их и не находить контент в своем сообщении.
Ответ 4
Я столкнулся с подобной ошибкой.
Запуск :wq
или :q!
завершится с проблемами. Я пробовал другие редакторы (TextMate), и после сохранения и выхода из этого редактора коммит будет завершен.
Установлено, что при закрытии документа с помощью :x
коммит будет закрыт без необходимости переходить на gvim и всю конфигурацию, которая там была нужна.
Сводка -
:x
был моим ответом.
Ответ 5
Рассмотрите возможность использования плагина fugitive git для vim.
Вы можете выполнить наиболее часто используемую команду git прямо из (g) vim.