2010-11-03 25 views
128

Ich muss nicht oft mehrere Commit-Nachrichten ändern, aber es ist ein oder zweimal passiert und ich erinnere mich nie daran, dies zu sehen. Ich hoffe, dass jemand anderes hat. Wenn ich git rebase -i HEAD~7, wird die erwartete Liste in Vi genau wie erwartet geöffnet. Ich ändere die Werte zu edit wo erforderlich und dann :wq.Editor konnte nicht ausgeführt werden

Ergebnis: Could not execute editor

Die core.editor Einstellung in meinem globalen .gitconfig ist vi (ich habe es auch zu vim in einem wild verzweifelten Schachzug geändert). Ich versuchte mit mate, aber das öffnete nicht einmal die ursprüngliche Liste richtig, also änderte ich es zurück.

Ich benutze v1.7.3 und würde irgendwelche Vorschläge begrüßen.

+1

Die Quelle enthält 'git_editor„$ TODO“|| die_abort "Editor konnte nicht ausgeführt werden" '. Da Sie sagen, dass der Editor tatsächlich auftaucht, bedeutet dies, dass ein Exit-Code ungleich Null zurückgegeben wird. Können Sie dieses Verhalten in der Befehlszeile normal replizieren? – Cascabel

+0

Was mir komisch ist, ist, dass vi startet, um die Liste der Commits anzuzeigen, aber wenn ich alles speichere und schließe, stirb einfach. Sehen Sie meine Antwort für die Änderung, die ich gemacht habe, um es magisch anzufangen zu arbeiten. –

+0

Welches Betriebssystem haben Sie ausgeführt? Running OSX Lion Ich hatte die gleichen Probleme und Ihre Antwort repariert es. +1 –

Antwort

171

Gestern war nur einer dieser Tage. Auf einer Lerche entschied ich, den vollständigen Pfad zu vi (z. B. /usr/bin/vi) und nicht nur die ausführbare Datei festzulegen. Jetzt funktioniert alles. Ich muss zugeben, dass ich es nicht bekomme, da vi perfekt eigenständig ausführbar ist (meine $EDITOR env-Variable ist ebenfalls auf vi gesetzt), aber es funktioniert und mein technisches Karma war in letzter Zeit nicht so toll, vielleicht sollte ich es einfach nicht tun 't Frage die Gottheiten werden ...

+5

Wo haben Sie den vollständigen Pfad zu/usr/bin/vi festgelegt? – Amala

+111

Ich lege es in meine globale Konfigurationsdatei: 'git config --global core.editor"/usr/bin/vim "'. –

+2

Seltsam, aber das hat auch für mich funktioniert. – EndangeredMassa

4

Ich hatte dieses Problem, und es wurde von einem Teil des vcscommand-Plugins für vim verursacht. Ab vim mit einem dieser Befehle in Exit-Code in Folge 1 ("Fehler"):

  • vi
  • vim

Aber das gab mir Exit-Code 0 ("Erfolg"):

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

konnte ich es wieder auf das spezifische Plugin verfolgen, indem Sie durch die Umbenennung sie ~/.vimrc und Dateien in ~/.vim deaktivieren und vi -c q ; echo $? läuft schnell vim laufen und den Exit-Code zu drucken.

+1

Ich hatte das gleiche Problem und die Einstellung des vollständigen Pfades zu vim arbeitete: git config --global core.editor /usr/bin/vim – James

+0

Ein weiterer möglicher Schuldiger scheint [das Pathogen-Plugin auf Mac OS X] (http : //pivotallabs.com/ny-stand-up-gonna-get-down-on-friday-the-13th/). – sschuberth

0

Sind Sie sicher, dass/usr/bin/vim auf 1.7.3 war? Ich hatte das gleiche Problem, weil ich das Backup-Plugin installiert hatte, das nur in Version 1.7.3 unterstützt wird, und aus irgendeinem Grund wurde/usr/bin/vim plötzlich auf 1.7.2 heruntergestuft, vielleicht wegen eines größeren Updates von XCode. ..

0

Ich hatte dieses Problem auch, als ich vim bereits für eine Rebase in einem anderen Terminal geöffnet hatte. Ich hatte mit dem Rebase angefangen, wurde unterbrochen und als ich zurückkam, versuchte ich es im zweiten Terminal noch einmal von vorne. Ich hatte nicht mitbekommen, dass ich irgendwo in der Mitte der gleichen Rebase war. Die vim rebase-Sitzung im anderen Terminal zu beenden, hat gut funktioniert.

1

Es dauerte nur eine Weile, bis ich mein Problem zu einem meiner Plugins fand.

(genauer gesagt, war es https://github.com/ervandew/supertab)

Ich denke, das ist die Kehrseite ist automatisch alle meine Plugins zu aktualisieren.

Also besten Rat, deaktivieren Sie die Hälfte Ihrer vimrc und Plugins. Wenn das nicht hilft, ist das Problem mit Ihrer anderen Hälfte.

+0

Ich habe das gleiche Problem mit Supertab. – harithski

+0

Wie hast du es auf den Supertab-Track aufgespürt? Das wären wirklich hilfreiche Informationen. –

0

Seltsamerweise funktionierte es für mich nur, es erneut zu versuchen.

Die Variablen core.editor und $ EDITOR sind nicht gesetzt.

3

Für mich war es ein Problem mit meiner .vimrc. Diese Datei wurde vorübergehend umbenannt. Gefolgt von Debugging meiner .vimrc. Dies ist der Erfahrung von Ignu sehr ähnlich.

+0

Ja, ich hatte in meinem .vimrc stummen Farbschemavakim, um das Farbschema auf das zu setzen, wenn es existierte, und um mich nicht zu stören, wenn es nicht funktionierte (also würde die Befehlszeile vim funktionieren). Auf der anderen Seite hat das den Exit-Status auf 1 geändert, als es fehlgeschlagen ist, sogar mit Silent !. – Max

127

Der folgende Befehl

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

es Behebungen.

[Bearbeiten]

Jetzt sehe ich, dass jemand gepostet es bereits in den Kommentaren. Ich hoffe, es ist immer noch hilfreich für einige blinde Leute wie mich.

+4

Für Windows zum Beispiel (einfache Anführungszeichen fehlen, waren mein Problem): git config---global core.editor " 'C: \ Program Files (x86) \ Vim \ vim74 \ vim.exe'" – chrjs

+1

Ja, das ^. Um dies zu verdeutlichen, verwenden Sie doppelte Anführungszeichen um einfache Anführungszeichen um den Pfad zur ausführbaren Datei. – Jacob

+0

In der Tat war es! das hat für mich funktioniert, danke! – davidawad

3

Wenn wollte Sie aus irgendeinem Grund Verwendung Sublime Sie so etwas wie die folgenden in Ihrer globalen Konfigurationsdatei tun könnte:

git config --global core.editor "/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl" 
Verwandte Themen