Не удалось запустить редактор - PullRequest
151 голосов
/ 04 ноября 2010

Мне не часто приходится изменять несколько сообщений коммита, но это случалось один или два раза, и я никогда не помню, чтобы это видел. Я надеюсь, что кто-то еще. Когда я git rebase -i HEAD~7, ожидаемый список открывается в vi точно так, как ожидалось. Я изменяю значения pick на edit, где это необходимо, а затем :wq.

Результат: Could not execute editor

Значение core.editor в моем глобальном .gitconfig равно vi (я также изменил его на vim в диком отчаянном движении). Я попытался использовать mate, но это даже не открыло первоначальный список должным образом, поэтому я изменил его обратно.

Я использую v1.7.3 и буду рад любым предложениям.

Ответы [ 14 ]

182 голосов
/ 04 ноября 2010

Вчера был только один из тех дней. В общем, я решил установить полный путь к vi (например, /usr/bin/vi), а не просто к исполняемому файлу. Теперь все работает. Я должен признать, что я не понимаю, так как vi отлично исполняется сам по себе (моя переменная $EDITOR env также установлена ​​на vi), но это работает, и моя техническая карма не так хороша в последнее время, может быть, я просто не должен подвергать сомнению, что божества ...

154 голосов
/ 08 июля 2014

Следующая команда

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

исправляет это.

[править]

Теперь я вижу, что кто-то уже опубликовал это в комментариях,Надеюсь, это все еще полезно для некоторых слепых людей, как я.

7 голосов
/ 03 мая 2018

В отличие от других приведенных здесь ответов, для меня было недостаточно использовать абсолютный путь к vi и установить конфиг git core.editor, чтобы решить проблему.(Они уже были на месте.)

В моей ситуации проблема была решена путем добавления флага -f к команде vi:

git config --global core.editor '/usr/bin/vi -f'

Один разэта опция -f установлена, я могу использовать git rebase -i, и когда я сохраняю и выхожу из списка фиксации, перебазирование происходит, как и должно быть, вместо того, чтобы выдавать ошибку «не удалось выполнить редактор».1013 * Справочная страница vim говорит о параметре -f,

Для версии с графическим интерфейсом Vim не будет разветвляться и отсоединяться от оболочки, в которой он был запущен... Эту опцию следует использовать, когда Vim запускается программой, которая будет ждать окончания сеанса редактирования (например, по почте).

Ну, я не использую версию с графическим интерфейсом, которую я знаюиз.Я запускаю git в командной строке bash в окне терминала на masOS Sierra 10.12.6.Но так как git rebase -i ожидает окончания сеанса редактирования, я полагаю, поэтому здесь необходима опция -f.Возможно, vim (без -f) пытается отключить / отделить от оболочки по какой-то причине, которую я не смог выяснить.

5 голосов
/ 31 января 2011

У меня была эта проблема, и она была вызвана некоторой частью плагина vcscommand для vim. Запуск vim с любой из этих команд привел к коду выхода 1 («ошибка»):

  • vi
  • vim

Но они дали мне код выхода 0 («успех»):

  • /usr/bin/vi
  • /usr/bin/vim
  • vi -u NONE
  • vim -u NONE

Мне удалось отследить его до определенного плагина, отключив ~/.vimrc и файлы в ~/.vim, переименовав их и запустив vi -c q ; echo $?, чтобы быстро запустить vim и напечатать код выхода.

3 голосов
/ 27 октября 2016

Если вы хотите по какой-либо причине использовать возвышенное, вы можете сделать что-то вроде следующего в вашем глобальном конфигурационном файле:

 git config --global core.editor "/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl"
3 голосов
/ 01 мая 2012

Для меня это была проблема с моим .vimrc.Временное переименование этого файла исправило его.Затем следует отладка моего .vimrc.Это очень похоже на опыт Игну.

1 голос
/ 18 декабря 2018

Я пытался раздавить коммиты, как показано здесь https://www.youtube.com/watch?v=V5KrD7CmO4o. Мой редактор git (notepad ++) открылся на шаге перебазирования.Но на шаге сообщения о внесении изменений я обнаружил проблему «Не удалось выполнить редактор».Возможно, это произошло из-за неправильных настроек редактора git, а также из-за того, что я установил notepad ++ в нестандартном месте в моей системе Windows.То есть 'git config core.editor' дал мне notepad++ -multilnst- nosession.

. Чтобы устранить проблему, укажите полный путь, например:

git config --global core.editor "'C:\CustomFolder\NPP\notepad++.exe' -multiInst -notabbar -nosession -noPlugin"

См .: https://www.youtube.com/watch?v=YLxdkcT6H4g

1 голос
/ 22 апреля 2018

Другой вариант - использовать nano редактор.

$ whereis nano
$ git config --global core.editor path/to/nano

Исправляет это.

1 голос
/ 07 апреля 2012

Мне понадобилось некоторое время, чтобы отследить мою проблему до одного из моих плагинов.

(в частности, это было https://github.com/ervandew/supertab)

Полагаю, это недостаток автоматического обновления всех моих плагинов.

Так что лучший совет, отключите половину вашего vimrc и плагинов. Если это не поможет, проблема с вашей второй половиной.

0 голосов
/ 07 ноября 2018

VS Кодовое решение:

git config --global core.editor "/Applications/Visual\ Studio\ Code.app/Contents/MacOS/Electron"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...