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

Git передавать сообщения, потерянные vi

Я неуклюжая машинистка, и я не часто использую vi/vim, но я использую ее для сообщений о фиксации. Однако, если вы введете неправильную команду при редактировании сообщения фиксации (:Wq, скажем, вместо :Wq), когда вы правильно закроете сообщение фиксации в vim с помощью :Wq или :x, вы получите следующее:

error: There was a problem with the editor 'vi'.
Please supply the message using either -m or -F option.

Обычно неправильная команда типа :W не проблема, vim просто игнорирует ее, и вы можете продолжать работать с файлом и сохранять его, но в git фиксировать сообщения, как только я ошибаюсь, я безвозвратно потерял сообщение фиксации.

Что происходит здесь и как его исправить? (Используя git 1.9.1 через homebrew, vim 7.3 в упаковке с OS X 10.9)

4b9b3361

Ответ 1

Вы должны установить vim, чтобы не отсоединиться от оболочки и быть на переднем плане. Вы можете сделать это с помощью следующей команды:

git config --global core.editor vim -f

От человека:

   -f          Foreground.  For the GUI version, Vim will not fork and detach from the shell it
               was  started in.  On the Amiga, Vim is not restarted to open a new window.  This
               option should be used when Vim is executed by a program that will wait  for  the
               edit  session  to  finish (e.g. mail).  On the Amiga the ":sh" and ":!" commands
               will not work.

Ответ 2

Как упоминалось в нескольких сообщениях, vim выходит с кодом выхода, отличным от нуля. Вы можете исправить это, явно настроив редактор git на полный путь vim:

git config --global core.editor /usr/bin/vim

Если я правильно помню, я исправил проблему, установив vim. Убедитесь, что ваш путь установлен правильно.