Не удалось выполнить редактор
Мне не часто приходится изменять несколько сообщений о совершении, но это произошло один или два раза, и я никогда не помню этого. Надеюсь, кто-то еще. Когда я git rebase -i HEAD~7
, ожидаемый список открывается в vi точно так, как ожидалось. Я меняю значения pick
на edit
, если это необходимо, а затем :wq
.
Результат: Could not execute editor
Значение core.editor
в моем глобальном .gitconfig
равно vi
(я также изменил его на vim
в отчаянном движении). Я попытался использовать mate
, но это даже не открыло исходный список, поэтому я изменил его.
Я использую v1.7.3 и буду приветствовать любые предложения.
Ответы
Ответ 1
Вчера был только один из тех дней. На жаворонке я решил установить полный путь к vi (например, /usr/bin/vi
), а не только исполняемый файл. Теперь все работает. Я должен признать, что я не получаю его с тех пор, как vi
отлично выполним сам по себе (моя переменная $EDITOR
env также установлена в vi
), но она работает, и моя техническая карма не была такой большой в последнее время, может быть, я просто не должен сомневаться в том, что божества будут...
Ответ 2
Следующая команда
git config --global core.editor /usr/bin/vim
исправляет его.
[править]
Теперь я вижу, что кто-то уже разместил его в комментариях. Надеюсь, он по-прежнему полезен для некоторых слепых, таких как я.
Ответ 3
В отличие от других ответов, приведенных здесь, до сих пор для решения проблемы было недостаточно использования абсолютного пути к vi и настройки конфигурации git core.editor
. (Они уже были на месте.)
В моей ситуации проблема была решена путем добавления флага -f
к команде vi:
git config --global core.editor '/usr/bin/vi -f'
Как только эта опция -f
установлена, я могу использовать git rebase -i
, и когда я сохраняю и git rebase -i
из списка коммитов, ребаз происходит как надо, вместо того, чтобы выдавать ошибку "не удалось выполнить редактор".
Страница -f
vim говорит о опции -f
,
Для версии с графическим интерфейсом Vim не будет разветвляться и отсоединяться от оболочки, в которой он был запущен.... Этот параметр следует использовать, когда Vim выполняется программой, которая будет ожидать завершения сеанса редактирования (например, по почте).
Ну, я не использую версию GUI, о которой я знаю. Я запускаю git
в командной строке bash в окне терминала на masOS Sierra 10.12.6. Но поскольку git rebase -i
ожидает завершения сеанса редактирования, я полагаю, что здесь необходима опция -f
. Возможно, vim (без -f
) пытается отключить/отделить от оболочки по какой-то причине, которую я не смог выяснить.
Ответ 4
У меня была эта проблема, и она была вызвана частью модуля vcscommand для vim. Запуск vim с помощью любой из этих команд привел к выводу кода 1 ( "ошибка" ):
Но они дали мне код выхода 0 ( "успех" ):
-
/usr/bin/vi
-
/usr/bin/vim
-
vi -u NONE
-
vim -u NONE
Мне удалось отследить его до определенного плагина, отключив ~/.vimrc
и файлы в ~/.vim
, переименовав их и запустив vi -c q ; echo $?
, чтобы быстро запустить vim и распечатать код выхода.
Ответ 5
Для меня это была проблема с моим .vimrc. Временно переименовать этот файл, исправил его. Затем отладка моего .vimrc. Это очень похоже на опыт Ignu.
Ответ 6
Если вы хотите по какой-либо причине использовать возвышенное, вы можете сделать что-то вроде следующего в вашем глобальном файле конфигурации:
git config --global core.editor "/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl"
Ответ 7
Мне просто потребовалось некоторое время, чтобы отследить мою проблему до одного из моих плагинов.
(в частности, это https://github.com/ervandew/supertab)
Я предполагаю, что недостатком является автоматическое обновление всех моих плагинов.
Итак, лучший совет, отключите половину своего vimrc и плагинов. Если это не поможет, проблема с вашей другой половиной.
Ответ 8
Другой вариант - использовать nano
редактор.
$ whereis nano
$ git config --global core.editor path/to/nano
Исправляет это.
Ответ 9
Вы уверены, что /usr/bin/vim был на 1.7.3? У меня была такая же проблема, потому что у меня был установлен плагин резервного копирования, который поддерживается только в версии 1.7.3, и по какой-то причине /usr/bin/vim внезапно понизился до 1.7.2, возможно, из-за большого обновления XCode...
Ответ 10
У меня была и эта проблема, когда у меня уже был vim, открытый для переустановки в другом терминале. Я начал переустановку, получил прерван, и когда я вернулся, я попробовал это снова с нуля в другом терминале, не понимая, что я был в середине той же перестановки в другом месте. Просто закончив сеанс rebum vim в другом терминале, он отлично работал.
Ответ 11
Как ни странно, просто попытка снова работала для меня.
Мои переменные core.editor и $EDITOR не установлены.
Ответ 12
Для меня, используя windows: закройте текущий терминал и откройте другой (win + R, введите "cmd", затем "enter"), затем он неожиданно заработает.
Ответ 13
VS Code Solution:
git config --global core.editor "/Applications/Visual\ Studio\ Code.app/Contents/MacOS/Electron"
Ответ 14
Я пытался раздавить коммиты, как показано здесь 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.