2016-07-16 13 views
3

ich ein Problem in dem Sie haben, wenn ich git laufen begehen dies zeigt sich:git commit nicht geöffnet Editor

error: cannot spawn subl: No such file or directory 
error: unable to start editor 'subl' 
Please supply the message using either -m or -F option. 

subl ein Alias ​​für erhaben ist. Ich spiele git Bash auf Win10.
Wenn ich nur 'subl' ausführen, öffnet es den Editor ohne ein Problem, aber mit git commit es nicht. Hier ist meine git config file:

[core] 
    editor = subl -w -n 

Antwort

3

Führen Sie git config --global core.editor "\"C:\Program Files\Sublime Text 3\sublime_text.exe\" %*" aus, um Sublime als Editor in Windows zu konfigurieren.

BEARBEITEN: Das obige geht davon aus, dass Sie Sublime 3 installiert haben. Wenn Sie Sublime 2 installiert haben, ändern Sie den vollständigen Pfad in den korrekten Pfad zu sublime_text.exe.

+0

Verwendet git-bash keine Dateipfade im UNIX-Stil? Würde es Windows-Dateipfade erkennen? – Vidur

+0

Funktioniert für mich auf Windows 7 mit Git Bash. – player87

+0

Es scheint, dass Git beim Aufrufen des Pfades die Leerzeichen nicht erkennt. C:/Programme/Sublime Text 3/sublime_text.exe -w -n: C:/Programm: Keine solche Datei oder Verzeichnis. Das Hinzufügen von \ before spaces funktioniert auch nicht (fatal: bad config line 4 in Datei C: /Users/Lucas/.gitconfig ) - Lucas Rebelo vor 8 Minuten –

1

Versuchen Sie, den ganzen Weg zu subl wie /usr/local/bin/subl Einstellung oder was auch immer es auf Ihrem System ist. Sie können dies herausfinden, indem Sie in Ihrem Terminal which subl ausführen.

Es ist möglich, dass, egal in welcher Umgebung Ihr Git läuft, es Ihre Aliase nicht kennt.

2

Shell-Aliase sind ein Merkmal der Shell und nicht des Betriebssystems. Sie können daher nur direkt von der Shell ausgeführt werden und nicht durch externe Tools wie git.

Aus dem gleichen Grund können Sie keine Aliase mit find -exec, xargs oder sudo verwenden.

Wenn Sie eine kürzere Möglichkeit benötigen, etwas auszuführen, das auch mit externen Tools funktioniert, erstellen Sie stattdessen ein Shell-Skript mit diesem Namen.