655 Stimmen

Wie kann ich einen Editor für die Arbeit mit Git unter Windows einrichten?

Ich probiere aus Git unter Windows . Ich kam zu dem Punkt, an dem ich "git commit" versuchte, und erhielt diesen Fehler:

Terminal ist stumm, aber kein VISUAL noch EDITOR definiert. Bitte geben Sie die Nachricht entweder mit der Option -m oder -F.

Also habe ich herausgefunden, dass ich eine Umgebungsvariable namens EDITOR benötige. Kein Problem. Ich habe sie so gesetzt, dass sie auf Notepad zeigt. Das hat funktioniert, fast. Die Standardübertragungsnachricht wird in Notepad geöffnet. Aber Notepad unterstützt keine reinen Zeilenvorschübe. Ich ging los und holte Notepad++ aber ich kann nicht herausfinden, wie ich Notepad++ als den %EDITOR% so zu gestalten, dass es wie erwartet mit Git funktioniert.

Ich bin nicht mit Notepad++ verheiratet. Zu diesem Zeitpunkt ist es mir egal, welchen Editor ich verwende. Ich möchte nur in der Lage sein Commit-Meldungen in einem Editor eingeben und nicht über die Befehlszeile (mit -m ).

Diejenigen von Ihnen, die Git unter Windows verwenden: Welches Tool verwenden Sie, um Ihre Commit-Nachrichten zu bearbeiten, und was mussten Sie tun, damit es funktioniert?

7voto

lambacck Punkte 9504

Dies ist ein Symptom für ein größeres Problem. Insbesondere, dass Sie etwas eingestellt haben TERM=dumb . 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 auf etwas in Ihren globalen Windows-Umgebungsvariablen gesetzt ist. Bei mir trat das Problem auf, als ich Folgendes installierte Erdbeerperle Einige Informationen dazu finden Sie auf der Website msysgit-Fehler für dieses Problem sowie mehrere Lösungen.

Die erste Lösung ist, dies in Ihrer ~/.bashrc zu korrigieren, indem Sie hinzufügen:

export TERM=msys

Sie können dies von der Git-Bash-Eingabeaufforderung aus wie folgt tun:

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

Die andere Lösung, die ich letztlich gewählt habe, weil mir die Gründe von Strawberry Perl für das Hinzufügen von TERM=dumb zu meinen Umgebungseinstellungen, indem ich die TERM=dumb como in diesem Kommentar zum msysgit-Fehlerbericht gerichtet .

Kontrolle Systemsteuerung/System/Erweitert/Umgebung Variablen... (oder ähnlich, je nach Ihrer Windows-Version), wo Sticky-Umgebungsvariablen gesetzt werden unter Windows festgelegt. Standardmäßig ist TERM nicht gesetzt. Wenn TERM dort gesetzt ist, dann können Sie (oder eines der Programme, die Sie installiert haben - z.B. Strawberry Perl) gesetzt. Löschen Sie diese Einstellung, und Sie sollte alles in Ordnung sein.

Ähnlich verhält es sich, wenn Sie Strawberry Perl verwenden und sich um die CPAN Client oder etwas Ähnliches, können Sie die TERM=dumb allein und verwenden unset TERM in Ihrer ~/.bashrc-Datei, was eine ähnliche Wirkung hat wie das Setzen eines expliziten Begriffs wie oben.

Natürlich sind alle anderen Lösungen insofern richtig, als dass man die git config --global core.editor $MYFAVORITEEDITOR um sicherzustellen, dass Git Ihren bevorzugten Editor verwendet, wenn es einen für Sie starten muss.

6voto

Matt McMinn Punkte 15223

Vim/gVim funktioniert gut für mich.

>echo %EDITOR%

c:\Vim\Vim71\vim.exe

6voto

JL_SO Punkte 1521

Ich musste Folgendes tun beide um Git dazu zu bringen, Notepad++ unter Windows 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 zum Starten der Git-Bash-Shell so, dass sie als Administrator ausgeführt wird, und verwenden Sie sie dann zum Starten der Git-Bash-Shell. Ich habe vermutet, dass der Kontextmenüeintrag "Git Bash hier" Notepad++ nicht mit den erforderlichen Berechtigungen startet.

Nachdem ich beides getan hatte, funktionierte es.

5voto

Bill Punkte 536

Ich verwende Git auf mehreren Plattformen und möchte auf allen Plattformen die gleichen Git-Einstellungen verwenden. (Tatsächlich habe ich alle meine Konfigurationsdateien unter Versionskontrolle mit Git und lege auf jedem Rechner einen Git-Repository-Klon an). Die Lösung, die ich gefunden habe, ist diese:

Ich habe meine Herausgeber a giteditor

git config --global core.editor giteditor

Dann erstelle ich einen symbolischen Link namens giteditor die sich in meinem PATH . (Ich habe eine persönliche bin Verzeichnis, sondern irgendwo im Verzeichnis PATH funktioniert). Dieser Link verweist auf meinen derzeitigen bevorzugten Editor. Auf verschiedenen Rechnern und Plattformen verwende ich verschiedene Editoren, so dass ich meine universelle Git-Konfiguration nicht ändern muss ( .gitconfig ), nur der Link, der giteditor zeigt auf.

Symbolische Links werden von allen mir bekannten Betriebssystemen gehandhabt, auch wenn sie unterschiedliche Befehle verwenden. Für Linux verwenden Sie ln -s . Unter Windows verwenden Sie die cmd eingebaut mklink . Sie haben unterschiedliche Syntaxen (die Sie nachschlagen sollten), aber im Grunde funktioniert alles auf die gleiche Weise.

5voto

Daniel Punkte 429

Basierend auf VonC's Anregung 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"

Auslassen von -wait können Probleme verursachen, insbesondere wenn Sie mit Gerrit und Änderungs-IDs, die manuell an das Ende der Commit-Nachricht kopiert werden müssen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X