Wie kann ich Sublime Text zum Standardeditor für Git machen?

216

Ich habe ein Problem beim Einstellen von Sublime Text 2 als core.editormit git.

Ich habe jeden Beitrag gelesen, den ich finden konnte, um das Problem zu beheben, aber für mich funktioniert immer noch nichts. Ich verwende Windows.

Ich habe getan:

git config --global core.editor "'C:/Program Files/Sublime Text 2/sublime_text.exe'"

und versuchte das mit verschiedenen Argumenten wie -m. Wenn ich meine öffne .gitconfig, ist Folgendes drin:

[user]
    name = Spencer Moran
    email = [email protected]
[core]
    editor = 'C:/Program Files/Sublime Text 2/sublime_text.exe'

Wenn ich zu Git gehe und tippe:

README.markdown --edit

Die README-Datei wird im Editor und nicht im erhabenen Text geöffnet.

Hat jemand eine Idee, was ich falsch mache oder wie ich das beheben könnte?

Spencer Moran
quelle
11
Wenn Sie nur README.markdown --edit in cmd.exe eingeben , gitist dies überhaupt nicht beteiligt. Ändern Sie Ihre Dateizuordnungen in Windows, wenn dies funktionieren soll.
Mat
1
Eine allgemeine Information für die meisten der folgenden Antworten: -wbedeutet "Warten Sie, bis die Datei geschlossen ist, bevor Sie zurückkehren" und -nbedeutet "Neues Fenster öffnen". Quelle: docs.sublimetext.info/en/latest/command_line/command_line.html
MarredCheese
Meine bevorzugten Einstellungen für die Verwendung von Sublime Text 3 als Git-Editor: stackoverflow.com/questions/2596805/…
Gabriel Staples

Antworten:

343

Windows

Erhabener Text 2 (Build 2181)

Der neueste Build 2181 hat gerade die Unterstützung für das -wBefehlszeilenargument (Warten) hinzugefügt . Mit der folgenden Konfiguration kann ST2 unter Windows als Standard-Git-Editor verwendet werden. Dadurch kann git ST2 für Commit-Nachrichten und dergleichen öffnen.

git config --global core.editor "'c:/program files/sublime text 2/sublime_text.exe' -w"

Erhabener Text 3 (Build 3065)

Sublime Text 3 (Build 3065) hat den subl.exeBefehlszeilen-Helfer hinzugefügt . Verwenden Sie subl.exe -hfür die Optionen, die Ihnen zur Verfügung stehen. Ich habe hot_exit: trueund remember_open_files: truesetze in meinen Sublime Text Benutzereinstellungen. Ich habe Folgendes gefunden, damit git config für mich gut funktioniert.

git config --global core.editor "'c:/program files/sublime text 3/subl.exe' -w"

Mac und Linux

Legen Sie Sublime als Editor für Git fest, indem Sie den folgenden Befehl in das Terminal eingeben:

git config --global core.editor "subl -n -w"


Mit dieser Git-Konfiguration wird die neue Registerkarte in meinem Editor geöffnet. Ich bearbeite meine Commit-Nachricht, speichere die Registerkarte ( Ctrl+ S) und schließe sie ( Ctrl+ W).

Git wartet, bis der Tab geschlossen ist, um seine Arbeit fortzusetzen.

Jrotello
quelle
14
Zusätzlich zum Festlegen meines Editors, wie @jrotello vorschlägt, hat sich meine ST2 / git-Erfahrung erheblich verbessert, wenn ich meinen ST2-Einstellungen die folgenden Optionen hinzufüge: {"hot_exit": false, "Remember_open_files": false, "close_windows_when_empty": true }
Sandy
6
@Phrogz: Ich konnte es in meiner .gitconfig mit der folgenden Syntax zum editor = 'C:\\Program Files\\Sublime Text 2\\sublime_text.exe' -w
Laufen bringen
4
Für mich wird dadurch eine neue Registerkarte geöffnet, wenn bereits erhabener Text geöffnet ist. Wenn Sie den Tab schließen, wird Git nicht darüber informiert, dass er fertig ist. Ich habe --multiinstance ausprobiert, aber es scheint nichts zu tun.
David Faivre
5
Beachten Sie, dass, wenn hot_exites falsch ist und die Lichter ausgehen, alle nicht gespeicherten Arbeiten beginnen werden !!!!!!!!!!
Jürgen Paul
4
Tatsächlich scheint git mit "-n -w" nicht in der Lage zu sein, zu erkennen, dass das erhabene Textfenster geschlossen wurde (wenn mindestens ein vorhandenes erhabenes Fenster geöffnet ist). "-w --multiinstance" scheint immer noch am besten zu funktionieren, obwohl im neuen erhabenen Fenster alle vorhandenen Registerkarten erneut geöffnet werden. Es scheint, dass sie sicher ignoriert werden können.
David Faivre
94

Sie können diesen Befehl unter Mac und Linux verwenden:

git config --global core.editor "subl -n -w"
sfufoet
quelle
26
Tatsächlich wird heutzutage auf dem Mac empfohlen, subl mit irgendwo in Ihrem $ PATH zu verknüpfen und Ihren Editor auf 'subl -w' zu setzen. Es ist in den offiziellen Dokumenten.
Sandy
8
Die Dokumente, auf die ich mich bezog, sind: sublimetext.com/docs/2/osx_command_line.html
Sandy
8
Die Dokumente sagen zu verwenden subl -w, aber wenn Sie andere Registerkarten geöffnet haben, funktioniert dies nicht richtig. Ich habe festgestellt, dass es subl -n -wbesser funktioniert, da es ein neues Fenster öffnet.
Iano
1
@iano Wenn ich das tue, sollte ich die Registerkarte oder das Fenster schließen, um ein Commit durchzuführen? Fenster schließen hat nicht funktioniert
Karthik T
Dies öffnet ein leeres Dokument in Sublime für mich, bis ich diese Anweisungen befolgt habe : sublimetext.com/docs/3/osx_command_line.html, aber den Pfad von Sublime Text.app zu Sublime Text 2.app geändert
Evanss
14

Für Mac OS X in der Datei ~ / .gitconfig unter [core] musste ich diesen Code einfügen, um das Problem auf meiner Seite zu lösen.

editor = /Applications/Sublime\\ Text.app/Contents/SharedSupport/bin/subl  -n -w

Dies war, als subl gut funktionierte, aber git nicht darauf zugreifen konnte. Und zeigte diese Fehler an

subl -n -w: subl: command not found
error: There was a problem with the editor 'subl -n -w'.
Ahmad Awais
quelle
11

Für Mac & Sublime Text 3 :

Wenn git config --global core.editor "subl -n -w"dies nicht funktioniert, verwenden Sie diesen git configBefehl:

$ git config --global core.editor "'/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl' -n -w"

Hinweis: Es enthält keine Escape-Backslashes.

nu-bo
quelle
7

was hat bei mir in cygwin / zsh funktioniert:

Erstellen Sie in / usr / local / bin die Datei subl_git

#!/bin/bash
/cygdrive/c/Program\ Files/Sublime\ Text\ 2/sublime_text.exe -w -n `cygpath -w $@`

in gitconfig:

editor = /usr/local/bin/subl_git
meeech
quelle
Entschuldigen Sie meine Neulingsfrage, aber wie greife ich auf die gitconfig zu? Ist das anders als laufen git config --list? Danke im Voraus.
Ryan Chase
das listet sie nur auf. Sie müssen Ihre gitconfig
meeech
Ich hatte ein Leerzeichen in meinem Benutzerordner, also habe ich einen modifizierten -"/cygdrive/c/Program Files/Sublime Text 3/subl.exe" -w -n "`cygpath -d -w "$@"`
Mark
6

Wenn mit Sublime Text 2 und der folgenden Konfiguration nichts passiert, wenn Sie die Kommentardatei des Git-Commits schließen:

git config --global core.editor "'c:/program files/sublime text 2/sublime_text.exe' -w"

Wenn das Git-Commit beim Schließen der COMMIT_EDITMSG-Kommentardatei in Sublime nicht beendet wird, liegt dies wahrscheinlich daran, dass Sie CMD im Administratormodus ausführen (und einen Sublime-Text bereits im Nicht-Administratormodus geöffnet haben). Ich hatte das gleiche Problem und es funktionierte für mich , als ich begann meinen CMD im normalen Modus.

Ps: Ich wollte nur auf das Problem antworten, auf das @david in den Kommentaren der akzeptierten Antwort hingewiesen hat, aber ich konnte keinen Kommentar posten, da ich neu hier bin ... also habe ich eine neue Antwort gegeben, weil ich denke, dass dies möglich ist nützlich für einige Leute, die auf das Problem stoßen.

Francois
quelle
Danke für den Tipp. Kennen Sie eine Lösung?
Scott Wegner
@ScottWegner Starten Sie Ihr CMD als Problemumgehung einfach im Nicht-Administrator-Modus. Sie müssen sich nicht im Admin-Modus befinden, um Git-Befehle ausführen zu können. Wenn Sie sich jedoch wirklich im Administratormodus befinden müssen, habe ich keine Lösung dafür gefunden, außer eine andere CMD-Instanz zu öffnen.
Francois
Vielen Dank für das Follow-up. Ich habe erhöhte Shells, weil meine Entwicklungsumgebung den Admin-Modus für andere Tools (Visual Studio) erfordert. Daher führe ich meine gesamte Shell mit erhöhten Shells aus. Ich denke, ich werde nur die Werkzeuge untersuchen, die es brauchen.
Scott Wegner
1
@ScottWegner Ich persönlich benutze Cmder (die Vollversion enthält sogar msysgit). Es ermöglicht mehrere Instanzen von CMD, Bash oder anderen Shells in einem eindeutigen Fenster mit Registerkarten. Sie können einige Registerkarten im Administratormodus und andere im normalen Modus starten. Normalerweise habe ich eine Registerkarte für Git und andere Registerkarten für meine anderen Tools. Vielleicht möchten Sie es versuchen. Es ist ein großartiges Werkzeug!
Francois
re: admin mode - Ich denke, der Trick ist, dass Ihre Shell und Sublime die gleichen Berechtigungen verwenden müssen. Wenn Sie also Ihr Terminal erhöht und erhaben betreiben, funktioniert es reibungslos.
Joseph Evensen
5

Ich habe es gerade erfolgreich mit Hilfe von PowerShell geschafft (Befehlszeilentools für Windows, die auch als Standardbefehlszeile in GithubforWindows verwendet werden).

Erstellen Sie einfach einen Ordner "WindowsPowerShell" unter "C: \ Benutzer \% Benutzername% \ Eigene Dateien". Erstellen Sie dann eine Datei mit dem Namen "profile.ps1". Stellen Sie sicher, dass Sie die richtige Dateierweiterung .ps1 und nicht .txt haben. Fügen Sie in der Datei profile.ps1 diese Zeile ein, um einen Alias-Befehl festzulegen:

Set-Alias subl 'c:\program files\sublime text 2\sublime_text.exe'

Stellen Sie sicher, dass das erhabene Verzeichnis auf Ihrem Computer korrekt ist. Sie können auch die Konfigurationsdetails hier sehen .

Jetzt kann ich Dateien mit Sublime Text 2 über den PowerShell-Befehl bearbeiten, indem ich Folgendes eingebe:

subl filename

Hoffentlich ist das nützlich ...

rwinzhang
quelle
4
Um den aktuellen Ordner in Sublime Text 2 zu öffnen, können Sie verwenden: subl .
awayken
Verwenden Sie für Sublime Text 3 die neue Datei subl.exe:Set-Alias subl 'c:\program files\sublime text 3\subl.exe'
wtjones
3

Ich habe heute Abend das gleiche Problem mit dem Git-Editor in Windows gehabt, und endlich habe ich es.

Sie müssen Ihren Editorpfad mit der Bash-Syntax und dem DOS 8.3-Format festlegen , um Leerzeichen zu vermeiden :

Das funktioniert (bei mir) nicht:

git config --global core.editor "C://Program files/Sublime Text/sublime_text.exe"

Dies tun:

git config --global core.editor /C/PROGRA~1/SUBLIME~1/sublime_text.exe

Sie können den DOS 8.3-Namen für ein Verzeichnis mit dir / x erhalten

Diego Buendia
quelle
1

Ich hatte aus irgendeinem Grund nur damit zu kämpfen, keines der obigen Beispiele hat für mich wirklich funktioniert. Dies war jedoch meine Lösung:

 git config --global core.editor "'c:/<path to sublime>/sublime_text.exe' -w $*"

Sie benötigen speziell das ' 'um den Pfad und das $*am Ende der Argumente, alles in " ".

justin.m.chase
quelle
1

Wenn Sie ein Mac-Benutzer sind, gehen Sie wie folgt vor:

git config --global core.editor '/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl'
Mainframer
quelle
1

Nun, ich hatte einige Probleme beim Aufrufen von Notepad ++ von Gitbash, selbst nachdem ich es als meinen core.editor festgelegt hatte.

Ich habe alles gelöst, indem ich die folgende Zeile an meine .bashrc-Datei in meinem Gitbash-Installationsverzeichnis angehängt habe.

alias npp='winpty "C:/Program Files (x86)/Notepad++/notepad++.exe"'

so kann ich notepad ++ mit dem alias "npp" aufrufen. Ich denke, dies kann Ihnen helfen, wenn Sie das Verzeichnis in den jeweiligen Editor ändern, den Sie verwenden möchten.

OLATOMID
quelle
1

Für MAC-Benutzer kann ich für Sublime Folgendes verwenden:

Überprüfen Sie zuerst die .gitconfig-Datei mit dem folgenden Befehl:

  1. cd ~
  2. ls -la
  3. cat .gitconfig

Jetzt kann man diese Konfiguration hinzufügen:

git config --global core.editor "subl -n -wl1"

Wo l1wird gesagt, um in Zeile 1 zu beginnen.

bvmCoder
quelle
0

Für Windows 7 habe ich festgestellt, dass die folgende Lösung funktioniert:

git config --global core.editor "C:/Program\ Files/Sublime\ Text\ 2/sublime_text.exe -n -w"
tscott1
quelle
0

Wenn Sie git unter Windows installieren, können Sie einen anderen Editor auswählen und die folgende Befehlszeile eingeben. C: \ Programme \ Sublime Text 3 \ sublime_text.exe -w Installer-Image

Xavier John
quelle
0

Ich habe keine Updates für Windows gesehen, die es der Git-Installation ermöglichen, Sublime Text aktiv als Standardtexteditor auszuwählen, ohne dass die ursprünglichen Überschreibungscodes durcheinander geraten ... Erhabener Text wird als Option bei der (Neu-) Installation von Git angezeigt

Angelfirenze
quelle
0

Unter MacOS (Mojave) arbeitet unten für mich für Sublime 3 :

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

Pratik Patel
quelle