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)
Ответы
Ответ 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. Убедитесь, что ваш путь установлен правильно.