Подтвердить что ты не робот

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, я не получаю совпадений (мне трудно поверить, но там вы есть).

4b9b3361

Ответ 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.