Frage

Ich probiere es aus Git unter Windows.Ich bin an dem Punkt angelangt, an dem ich „Git Commit“ ausprobiert habe, und habe folgende Fehlermeldung erhalten:

Das Terminal ist dumm, aber weder visuell noch Editor definiert.Bitte geben Sie die Nachricht entweder -m- oder -F -Option an.

Also habe ich herausgefunden, dass ich eine Umgebungsvariable namens EDITOR brauche.Kein Problem.Ich habe es so eingestellt, dass es auf Notepad zeigt.Das hat fast funktioniert.Die Standard-Commit-Nachricht wird im Editor geöffnet.Notepad unterstützt jedoch keine bloßen Zeilenvorschübe.Ich ging raus und holte Notepad++, aber ich kann nicht herausfinden, wie ich Notepad++ als einrichten kann %EDITOR% so, dass es wie erwartet mit Git funktioniert.

Ich bin nicht mit Notepad++ verheiratet.An dieser Stelle ist es mir egal, welchen Editor ich verwende.Ich möchte es einfach können Geben Sie Commit-Nachrichten in einen Editor ein statt der Befehlszeile (mit -m).

Diejenigen unter Ihnen, die Git unter Windows verwenden:Mit welchem ​​Tool bearbeiten Sie Ihre Commit-Nachrichten und was mussten Sie tun, damit es funktioniert?

War es hilfreich?

Lösung

Update September 2015 (6 Jahre später)

Der letzte Version von git-for-Windows (2.5.3) beinhaltet jetzt:

Durch Konfigurieren git config core.editor notepad, Benutzer kann jetzt verwendet werden notepad.exe als Standardeditor.
Konfigurieren git config format.commitMessageColumns 72 wird vom Notepad-Wrapper erfasst und die Commit-Nachricht umbrochen, nachdem der Benutzer sie bearbeitet hat.

Sehen Commit 69b301b von Johannes Schindelin (dscho).

Und Git 2.16 (Q1 2018) zeigt eine Nachricht an, um dem Benutzer mitzuteilen, dass er darauf wartet, dass der Benutzer die Bearbeitung beendet, wenn ein Editor hervorgeht, falls sich der Editor zu einem versteckten Fenster öffnet oder irgendwo dunkel und der Benutzer verloren geht.

Sehen begehen Sie abfb04d (07. Dezember 2017) und Commit a64f213 (29. November 2017) von Lars Schneider (larsxschneider).
Unterstützt von: Junio ​​C Hamano (gitster).
(Zusammengeführt von Junio ​​C Hamano -- gitster -- In Commit 0c69a13, 19. Dezember 2017)

launch_editor():geben an, dass Git auf Benutzereingaben wartet

Wenn eine grafische GIT_EDITOR wird durch einen Git -Befehl hervorgebracht, der auf Benutzereingaben öffnet und wartet (z. B."git rebase -i"), dann könnte das Editor -Fenster durch andere Fenster verdeckt werden.
Der Benutzer könnte auf das ursprüngliche Fenster des Git -Terminals starren, ohne zu erkennen, dass er/er mit einem anderen Fenster interagieren muss, bevor Git fortgesetzt wird.Zu diesem Benutzer wird Git hängen.

Drucken Sie eine Nachricht aus, die Git im ursprünglichen Terminal auf den Editor -Eingang wartet, und lassen Sie sie bei der Rückgabe des Editors los, wenn das Terminal unterstützt, die die letzte Zeile auszulöschen


Ursprüngliche Antwort

Ich habe es gerade mit der Git-Version 1.6.2.msysgit.0.186.gf7512 und Notepad++5.3.1 getestet

ich bevorzuge nicht Ich muss eine EDITOR-Variable festlegen, also habe ich Folgendes versucht:

git config --global core.editor "\"c:\Program Files\Notepad++\notepad++.exe\""
# or
git config --global core.editor "\"c:\Program Files\Notepad++\notepad++.exe\" %*"

Das ergibt immer:

C:\prog\git>git config --global --edit
"c:\Program Files\Notepad++\notepad++.exe" %*: c:\Program Files\Notepad++\notepad++.exe: command not found
error: There was a problem with the editor '"c:\Program Files\Notepad++\notepad++.exe" %*'.

Wenn ich eine npp.bat definiere, einschließlich:

"c:\Program Files\Notepad++\notepad++.exe" %*

und ich tippe:

C:\prog\git>git config --global core.editor C:\prog\git\npp.bat

Es funktioniert nur aus der DOS-Sitzung, aber nicht aus der Git-Shell.
(nicht, dass mit dem core.editor-Konfigurationsmechanismus ein Skript mit „start /WAIT..." drin würde nicht funktionieren, sondern nur ein neues DOS-Fenster öffnen)


Bennetts Antwort erwähnt die Möglichkeit, das Hinzufügen eines Skripts zu vermeiden, sondern direkt auf das Programm selbst zu verweisen zwischen einfachen Anführungszeichen.Beachten Sie die Richtung der Schrägstriche!Verwenden / NICHT \ um Ordner im Pfadnamen zu trennen!

git config --global core.editor \
"'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"

Oder wenn Sie sich in einem 64-Bit-System befinden:

git config --global core.editor \
"'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"

Aber ich bevorzuge die Verwendung eines Skripts (siehe unten):So kann ich mit verschiedenen Pfaden oder verschiedenen Optionen spielen, ohne mich erneut registrieren zu müssen git config.


Die eigentliche Lösung (mit einem Skript) bestand darin, Folgendes zu erkennen:
Was Sie in der Konfigurationsdatei meinen, ist eigentlich eine Shell (/bin/sh) Skript, kein DOS-Skript.

Was also funktioniert, ist:

C:\prog\git>git config --global core.editor C:/prog/git/npp.bat

mit C:/prog/git/npp.bat:

#!/bin/sh
"c:/Program Files/Notepad++/notepad++.exe" -multiInst "$*"

oder

#!/bin/sh
"c:/Program Files/Notepad++/notepad++.exe" -multiInst -notabbar -nosession -noPlugin "$*"

Mit dieser Einstellung kann ich Folgendes tun:git config --global --edit' von DOS oder Git Shell, oder ich kann es tun 'git rebase -i ...' von DOS oder Git Shell.
Bot-Befehle lösen eine neue Instanz von Notepad++ aus (daher die -multiInst'Option) und warten Sie, bis diese Instanz geschlossen wird, bevor Sie fortfahren.

Beachten Sie, dass ich nur „/“ verwende, nicht \'.Und ich msysgit mit Option 2 installiert. (Ergänzen Sie die git\bin Verzeichnis zum PATH Umgebungsvariable, aber ohne einige integrierte Windows-Tools zu überschreiben)

Die Tatsache, dass der Notepad++-Wrapper .bat heißt, ist nicht wichtig.
Es wäre besser, es „npp.sh“ zu nennen und es in die Datei zu schreiben [git]\cmd Verzeichnis (oder in einem beliebigen Verzeichnis, auf das Ihre PATH-Umgebungsvariable verweist).


Siehe auch:


Lichtfeuer228 fügt hinzu in den Kommentaren:

Für alle, die ein Problem haben, bei dem N++ einfach eine leere Datei öffnet und Git Ihre Commit-Nachricht nicht entgegennimmt, lesen Sie „Commit wird wegen leerer Nachricht abgebrochen":ändere dein .bat oder .sh Datei zu sagen:

"<path-to-n++" .git/COMMIT_EDITMSG -<arguments>. 

Dadurch wird Notepad++ angewiesen, die temporäre Commit-Datei zu öffnen und nicht eine leere neue.

Andere Tipps

Aufbauend auf Darrens Antwort, um Notepad++ zu verwenden, können Sie einfach Folgendes tun (alles in einer Zeile):

git config --global core.editor "'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"

Offensichtlich C:/Program Files/Notepad++/notepad++.exe Teil sollte der Pfad zur ausführbaren Notepad++-Datei auf Ihrem System sein.Es könnte zum Beispiel sein C:/Program Files (x86)/Notepad++/notepad++.exe .

Funktioniert für mich wie ein Zauber.

Wie auch immer, ich habe gerade damit herumgespielt und festgestellt, dass Folgendes für mich gut funktioniert:

git config --global core.editor "'C:/Program Files/TextPad 5/TextPad.exe' -m"

Ich glaube nicht, dass CMD einfache Anführungszeichen mag, daher müssen Sie doppelte Anführungszeichen verwenden, „um das in Leerzeichen eingebettete Zeichenfolgenargument anzugeben“.

Cygwin (von dem ich glaube, dass es die zugrunde liegende Plattform für Git's Bash ist) mag dagegen beides ' Und ";Sie können mithilfe von CMD-ähnliche Pfade angeben / anstatt \, solange die Zeichenfolge in Anführungszeichen steht, d. h.In diesem Fall werden einfache Anführungszeichen verwendet.

Der -m überschreibt/zeigt die Verwendung mehrerer Editoren an und es besteht keine Notwendigkeit für einen %* am Ende angeheftet.

Bearbeiten: Nach dem Update auf vim 7.3 bin ich zu dem Schluss gekommen, dass dies der sauberste und einfachste Weg ist:

  1. Fügen Sie den Hauptordner von Vim zu Ihrem Pfad hinzu (Rechtsklick auf Arbeitsplatz -> Eigenschaften -> Erweitert -> Umgebungsvariablen).

  2. Führen Sie Folgendes aus:git config --global core.editor "gvim --nofork '%*'"

Wenn Sie es auf diese Weise machen, bin ich mir ziemlich sicher, dass es auch mit Cygwin funktioniert.

Ursprüngliche Antwort:

Trotz einiger vim-bezogener Antworten hatte ich Probleme, dies mit gvim unter Windows zum Laufen zu bringen (ohne eine Batch-Datei oder %EDITOR% oder Cygwin zu verwenden).

Was ich letztendlich herausgefunden habe, ist schön und sauber und basiert auf einigen der Lösungen hier:

git config --global core.editor \
"'C:/Program Files/Vim/vim72/gvim.exe' --nofork '%*'"

Ein Problem, das eine Weile gedauert hat, ist, dass es sich hierbei nicht um Backslashes im Windows-Stil handelt, sondern um normale Schrägstriche.

Notepad++ funktioniert einwandfrei, obwohl ich mich dafür entscheide, bei Notepad, -m oder manchmal sogar beim integrierten „Bearbeiten“ zu bleiben.

Das Problem, auf das Sie bei der Verwendung von Notepad++ stoßen, hängt damit zusammen, wie Git die ausführbare Datei des Editors startet.Meine Lösung hierfür besteht darin, EDITOR auf eine Batchdatei und nicht auf die eigentliche ausführbare Editordatei festzulegen, die Folgendes bewirkt:

start /WAIT "E:\PortableApps\Notepad++Portable\Notepad++Portable.exe" %*

/WAIT weist die Befehlszeilensitzung an, anzuhalten, bis die Anwendung beendet wird, sodass Sie nach Herzenslust bearbeiten können, während Git glücklich auf Sie wartet.%* übergibt alle Argumente der Batchdatei an Notepad++.

c:\src>echo %EDITOR%
c:\tools\runeditor.bat

Wordpad!

Ich nutze vim gerne, aber da ich versuche, Git dem Unternehmen vorzustellen, wollte ich etwas, das wir alle haben, und stellte fest, dass Wordpad anscheinend gut funktioniert (d. h.Git wartet, bis Sie mit der Bearbeitung fertig sind, und schließt das Fenster.

git config core.editor '"C:\Program Files\Windows NT\Accessories\wordpad.exe"'

Das ist die Verwendung von Git Bash auf msysgit;Ich habe es nicht über die Windows-Eingabeaufforderung versucht (falls das einen Unterschied macht).

Ich verwende Cygwin auch unter Windows, aber mit gvim (im Gegensatz zum Terminal-basierten vim).

Damit dies funktioniert, habe ich Folgendes getan:

  1. Erstellt eine einzeilige Batchdatei (benannt git_editor.bat), die Folgendes enthält:
    "C:/Program Files/Vim/vim72/gvim.exe" --nofork "%*"
  2. Platziert git_editor.bat auf in meinem PATH.
  3. Satz GIT_EDITOR=git_editor.bat

Nachdem dies erledigt ist, git commit, usw.ruft die ausführbare gvim-Datei korrekt auf.

ANMERKUNG 1:Der --nofork Die Option von gvim stellt sicher, dass es blockiert, bis die Commit-Nachricht geschrieben wurde.

ANMERKUNG 2:Der Pfad zu gvim muss in Anführungszeichen gesetzt werden, wenn der Pfad Leerzeichen enthält.

NOTIZ 3:Die Anführungszeichen um „%*“ werden nur für den Fall benötigt, dass Git einen Dateipfad mit Leerzeichen übergibt.

Danke an die SO-Community ...und ein wenig Recherche konnte ich meinen Lieblingsredakteur finden, EditPadPro, um als Kernredakteur mit MSYSGIT 1.7.5.git und Tortoisegit v1.7.3.0 über WinXP SP3 zu arbeiten ...

Den obigen Ratschlägen folgend, habe ich den Pfad zu einem Bash-Skript für den Code-Editor hinzugefügt ...

git config --global core.editor c:/msysgit/cmd/epp.sh

Nach mehreren gescheiterten Versuchen mit den oben genannten Lösungen ...Endlich konnte ich das zum Laufen bringen.Gemäß der Dokumentation von EditPadPro würde das Hinzufügen des Flags „/newinstance“ es der Shell ermöglichen, auf die Editoreingabe zu warten ....

Der '/newinstance' Flagge war in meinem Fall der Schlüssel ...

#!/bin/sh
"C:/Program Files/JGsoft/EditPadPro6/EditPadPro.exe" //newinstance "$*"

Dies ist das erste Symptom größerer Probleme.Insbesondere, dass Sie etwas haben, das TERM=dumm setzt.Andere Dinge, die nicht richtig funktionieren, sind die less Befehl, der besagt, dass Sie kein voll funktionsfähiges Terminal haben.Es scheint, dass dies am häufigsten dadurch verursacht wird, dass TERM in Ihren globalen Windows-Umgebungsvariablen auf etwas gesetzt ist.Bei mir ist das Problem aufgetreten, als ich Strawberry Perl installiert habe. Weitere Informationen dazu finden Sie hier msysgit-Fehler für dieses Problem sowie mehrere Lösungen.

Die erste Lösung besteht darin, das Problem in Ihrer ~/.bashrc zu beheben, indem Sie Folgendes hinzufügen:

export TERM=msys

Sie können dies über die Git-BASH-Eingabeaufforderung wie folgt tun:

echo "export TERM=msys" >> ~/.bashrc

Die andere Lösung, die ich letztendlich getan habe, weil mir die Gründe von Strawberry Perl für das Hinzufügen von TERM=dumb zu meinen Umgebungseinstellungen egal sind, besteht darin, TERM=dumb als zu entfernen In diesem Kommentar zum msysgit-Fehlerbericht wird darauf hingewiesen.

Bedienfeld/System/Erweiterte/Umgebungsvariablen ...(oder ähnlich, abhängig von Ihrer Windows -Version) sind die Klickumgebungsvariablen auf Windows eingestellt.Standardmäßig wird der Begriff nicht festgelegt.Wenn der Term dort eingestellt ist, dann (oder eines der Programme, die Sie installiert haben - z.Strawberry Perl) hat es gesetzt.Löschen Sie diese Einstellung, und Sie sollten in Ordnung sein.

Wenn Sie Strawberry Perl verwenden und sich für den CPAN-Client oder ähnliches interessieren, können Sie dies ebenfalls belassen TERM=dumb allein und verwenden unset TERM in Ihrer ~/.bashrc-Datei, was einen ähnlichen Effekt hat wie das Festlegen eines expliziten Begriffs wie oben.

Natürlich sind alle anderen Lösungen korrekt, die Sie verwenden können git config --global core.editor $MYFAVORITEEDITOR um sicherzustellen, dass Git Ihren bevorzugten Editor verwendet, wenn er einen für Sie starten muss.

Für Atom du kannst tun

git config --global core.editor "atom --wait"

und ähnliches für VSCode

git config --global core.editor "code --wait"

was ein öffnen wird Atom oder VSCode Fenster, durch das Sie sich verpflichten können,

oder für Sublimieren

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

Bearbeiten Sie die .gitconfig-Datei im Ordner c:\Users\YourUser und fügen Sie Folgendes hinzu:

[core]
editor = 'C:\\Program files\\path\\to\\editor.exe'

Vim/Gvim Funktioniert gut für mich.

>echo %EDITOR%

c:\Vim\Vim71\vim.exe

Bei mir funktionierte PortableGit 1.6 einwandfrei, aber nach dem Upgrade auf PortableGit-1.7 gab es bei der Windows-Version Probleme.Einige der Git-Befehle öffnen Notepad++.exe einwandfrei, andere jedoch nicht, insbesondere Git Rebase verhält sich anders.

Das Problem besteht darin, dass einige Befehle den Windows-CMD-Prozess ausführen, andere den Unix-CMD-Prozess verwenden.Ich möchte dem Notepad++-Editor Startattribute zuweisen und benötige daher ein angepasstes Skript.Meine Lösung ist diese.

1) Erstellen Sie ein Skript, um einen geeigneten Texteditor auszuführen.Das Skript sieht seltsam aus, verarbeitet aber sowohl Windows- als auch Unix-Varianten.c:/PortableGit/cmd/git-editor.bat

#!/bin/sh
#open a new instance

function doUnix() {
  "c:\program files\notepad++\notepad++.exe" -multiInst -nosession -notabbar $*
  exit
}

doUnix $*

:WINCALL
"c:\program files\notepad++\notepad++.exe" -multiInst -nosession -notabbar %*

2) Setzen Sie Global Core.Editor Variable Skript wurde in Git/CMD -Ordner gespeichert, sodass es bereits in einem Gitconsole -Pfad ist. Dies ist obligatorisch, da der vollständige Pfad möglicherweise nicht ordnungsgemäß funktioniert.

git config --global core.editor "git-editor.bat"

Jetzt kann ich laufen git commit -a Und git rebase -i master Befehle.Probieren Sie es aus, wenn Sie Probleme mit dem Git-Windows-Tool haben.

Ich verwende Git auf mehreren Plattformen und verwende gerne auf allen die gleichen Git-Einstellungen.(Tatsächlich habe ich alle meine Konfigurationsdateien unter Release-Kontrolle mit Git und lege auf jeder Maschine einen Git-Repository-Klon ab.) Die Lösung, die ich mir ausgedacht habe, ist folgende:

Ich habe meine eingestellt Editor Zu Giteditor

git config --global core.editor giteditor

Dann erstelle ich einen symbolischen Link namens Giteditor Das ist in meinem WEG.(Ich habe eine persönliche Behälter Verzeichnis, sondern irgendwo im WEG funktioniert.) Dieser Link verweist auf meinen aktuellen Editor meiner Wahl.Auf unterschiedlichen Maschinen und unterschiedlichen Plattformen verwende ich unterschiedliche Editoren, was bedeutet, dass ich meine universelle Git-Konfiguration nicht ändern muss (.gitconfig), nur der Link, der Giteditor verweist auf.

Symbolische Links werden von jedem mir bekannten Betriebssystem verarbeitet, obwohl sie möglicherweise unterschiedliche Befehle verwenden.Für Linux verwenden Sie ln -s.Für Windows verwenden Sie die cmd eingebaut mklink.Sie haben unterschiedliche Syntaxen (die Sie nachschlagen sollten), aber im Grunde funktioniert alles auf die gleiche Weise.

Bezogen auf VonC Vorschlag oben, das hat bei mir funktioniert (hat mich verrückt gemacht):

git config --global core.editor "'C:/Program Files (x86)/Sublime Text 3/subl.exe' -wait"

Weglassen -wait kann Probleme verursachen, insbesondere wenn Sie mit Gerrit- und Änderungs-IDs arbeiten, die manuell an das Ende Ihrer Commit-Nachricht kopiert werden müssen

Dies ist mein Setup, das ich verwenden möchte Geany als Editor für Git:

git config --global core.editor C:/path/to/geany.bat

mit folgendem Inhalt in geany.bat:

#!/bin/sh
"C:\Program Files\Geany\bin\Geany.exe" --new-instance "$*"

Es funktioniert sowohl in der DOS-Konsole als auch in msysgit.

Ich verwende Cygwin unter Windows, also verwende ich:

export EDITOR="emacs -nw"

Der -nw ist für no-windows, d.h.Sagen Sie Emacs, er solle nicht versuchen, X11 zu verwenden.

Die Emacs-Tastenkombinationen funktionieren bei mir nicht über eine Windows-Shell, daher würde ich sie nur über eine Cygwin-Shell verwenden ...(rxvt empfohlen.)

Ich verwende lieber Emacs.Die Einrichtung kann etwas schwierig sein.

  1. Laden Sie Emacs herunter und entpacken Sie es irgendwo c:\emacs.
  2. Laufen c:\emacs\bin\addpm.exe.Wenn Sie Windows Vista oder höher verwenden, müssen Sie mit der rechten Maustaste klicken und „Als Administrator ausführen“ wählen.Dadurch werden die ausführbaren Dateien in Ihren Pfad verschoben.
  3. Hinzufügen (server-start) irgendwo in deinem .emacs Datei.Siehe die Häufig gestellte Fragen zu Emacs Windows für Ratschläge, wo Sie Ihr Gerät unterbringen können .emacs Datei.
  4. git config --global core.editor emacsclientw

Git öffnet jetzt Dateien innerhalb eines vorhandenen Emacs-Prozesses.Sie müssen diesen vorhandenen Prozess manuell ausführen c:\emacs\bin\runemacs.exe.

Ich hatte Schwierigkeiten, Git dazu zu bringen, mit Wordpad, KomodoEdit und so ziemlich jedem anderen Editor, den ich ihm gebe, zusammenzuarbeiten.Die meisten sind zum Bearbeiten geöffnet, aber Git wartet offensichtlich nicht darauf, dass das Speichern/Schließen erfolgt.

Als Krücke habe ich gerade gemacht, d.h.

git commit -m "Fixed the LoadAll method"

um die Dinge in Bewegung zu halten.Meine Commit-Nachrichten werden tendenziell etwas kürzer gehalten, als sie wahrscheinlich sein sollten, aber es gibt offensichtlich noch einiges an Arbeit an der Windows-Version von Git zu erledigen.

Die GitGUI ist auch nicht so schlecht.Es erfordert ein wenig Orientierung, aber danach klappt es ganz gut.

Ich musste es tun beide der folgenden, um Git dazu zu bringen, Notepad++ in Windoze zu starten:

-Fügen Sie Folgendes zu .gitconfig hinzu:

editor = 'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin

-Ändern Sie die Verknüpfung, um die Git-Bash-Shell zu starten, um sie als Administrator auszuführen, und verwenden Sie diese dann, um die Git-Bash-Shell zu starten.Ich vermutete, dass der Kontextmenüeintrag „Git Bash hier“ NPP nicht mit den erforderlichen Berechtigungen startete.

Nachdem ich beide oben genannten Schritte ausgeführt hatte, funktionierte es.

Es scheint, als würde Git den Editor nicht finden, wenn der Pfad Leerzeichen enthält.Sie müssen also die erwähnte Batch-Datei einfügen Patricks Antwort in einen Nicht-Leerzeichen-Pfad.

Ich hatte gerade das gleiche Problem und habe eine andere Lösung gefunden.Ich bekam

error: There was a problem with the editor 'ec'

ich habe VISUAL=ec, und eine Batchdatei namens ec.bat auf meinem Pfad, der eine Zeile enthält:

c:\emacs\emacs-23.1\bin\emacsclient.exe %*

Dadurch kann ich Dateien über die Befehlszeile bearbeiten ec <filename>, und weil es ein visuelles Set gibt, können die meisten Unixy-Programme es auch übernehmen.Git scheint den Pfad jedoch anders zu durchsuchen als meine anderen Befehle – als ich mir a ansah git commit In ProcMon Ich habe gesehen, dass in jedem Ordner auf dem Pfad danach gesucht wurde ec und für ec.exe, aber nicht für ec.bat.Ich habe eine weitere Umgebungsvariable hinzugefügt (GIT_EDITOR=ec.bat) und alles war in Ordnung.

Ich habe es geschafft, die Umgebungsversion zum Laufen zu bringen, indem ich die EDITOR-Variable mit Anführungszeichen und gesetzt habe /:

EDITOR="c:/Program Files (x86)/Notepad++/notepad++.exe"

Ich verwende GitHub für Windows, was eine schöne visuelle Option ist.Aber ich bevorzuge auch die Befehlszeile. Damit es funktioniert, wenn ich ein Repo in einer Git-Shell öffne, stelle ich einfach Folgendes ein:

git config --global core.editor vim

was super funktioniert.

Dies funktioniert für Powershell und cmder-1.2 (bei Verwendung mit Powershell).In ~/.gitconfig

[core]
    editor = 'c:/program files/sublime text 3/subl.exe' -w

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

Ich lasse einen alten Thread wieder aufleben, aber ich habe eine schöne, einfache Lösung gefunden Hier - obwohl möglicherweise ein Fehler im Pfad vorliegt, in den Sie die vom Autor angegebene „subl“-Datei kopieren müssen.Ich verwende Win 7 x64 und musste die Datei „subl“ in mein Verzeichnis einfügen /Git/cmd/ Ordner, damit es funktioniert.Es funktioniert jedoch wie ein Zauber.

ATOM und Windows 10

  1. Klicken Sie mit der rechten Maustaste auf das Atom-Symbol auf dem Desktop und dann auf „Eigenschaften“.
  2. Der Standortpfad „Start in“ wurde kopiert
  3. Habe dort mit dem Windows Explorer nachgeschaut und „atom.exe“ gefunden.
  4. Habe Folgendes in die Git-Bash eingegeben:

    git config --global core.editor C:/Users/YOURNAMEUSER/AppData/Local/atom/app-1.7.4/atom.exe"

Notiz:Ich habe alles geändert \ für / .Ich habe in meinem Home-Verzeichnis eine .bashrc-Datei erstellt und verwendet / Ich habe mein Home-Verzeichnis eingerichtet und es hat funktioniert, also habe ich angenommen / wird der richtige Weg sein.

Bei Verwendung eines remote gemounteten Homedrives (Samba-Freigabe, NFS, ...) Ihr ~/.git Der Ordner wird auf allen Systemen gemeinsam genutzt, was zu mehreren Problemen führen kann.Daher bevorzuge ich ein Skript, um den richtigen Editor für das richtige System zu ermitteln:

#!/usr/bin/perl
# Detect which system I'm on and choose the right editor
$unamea = `uname -a`;
if($unamea =~ /mingw/i){
    if($unamea =~ /devsystem/i){#Check hostname
        exec('C:\Program Files (x86)\Notepad++\notepad++.exe', '-multiInst', '-nosession', @ARGV);
    }
    if($unamea =~ /testsystem/i){
        exec('C:\Program Files\Notepad++\notepad++.exe', '-multiInst', '-nosession', @ARGV);
    }
}
$MCEDIT=`which mcedit`;
if($MCEDIT =~ /mcedit/){
    exec($MCEDIT, @ARGV);
}
$NANO=`which nano`;
if($NANO =~ /nano/){
    exec($NANO, @ARGV);
}
die "You don't have a suitable editor!\n";

Man könnte ein einfaches Shell-Skript in Betracht ziehen, aber ich habe Perl verwendet, da Perl mit msysgit ausgeliefert wird und Ihre Unixoid-Systeme auch eines bereitstellen.Das Skript einbinden /home/username/bin, was hinzugefügt werden sollte PATH In .bashrc oder .profile.Einmal hinzugefügt mit git config --global core.editor giteditor.pl Sie haben den richtigen Editor, wo immer Sie sind.

Das funktioniert bei mir mit Cygwin und Textpad 6 (BEARBEITEN:funktioniert auch mit Textpad 5, solange man die offensichtliche Änderung am Skript vornimmt), und vermutlich könnte das Modell auch für andere Editoren verwendet werden:

~/.gitconfig:

[core]
    editor = ~/script/textpad.sh

~/script/textpad.sh

#!/bin/bash

APP_PATH=`cygpath "c:/program files (x86)/textpad 6/textpad.exe"`
FILE_PATH=`cygpath -w $1`

"$APP_PATH" -m "$FILE_PATH"

Dieser Einzeiler funktioniert auch:

~/script/textpad.sh (Option 2):

"`cygpath "c:/program files (x86)/textpad 6/textpad.exe"`" -m "`cygpath -w $1`"

Das hat bei mir funktioniert:

  1. Fügen Sie das Verzeichnis, das die ausführbare Datei des Editors enthält, zu Ihrem hinzu WEG Variable.(z.B. „C:\Programme\Sublime Text 3\“)
  2. Starte deinen Computer neu.
  3. Ändere das core.editor Fügen Sie der globalen Git-Variable den Namen der ausführbaren Datei des Editors hinzu ohne die Erweiterung '.exe' (z.B.git config --global core.editor sublime_text)

Das ist es!

NOTIZ: Sublime Text 3 ist der Editor, den ich für dieses Beispiel verwendet habe.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top