Ich würde es vorziehen, meine Commit-Nachrichten in Vim zu schreiben, aber es öffnet sie in Emacs.
Wie konfiguriere ich Git so, dass immer Vim verwendet wird? Beachten Sie, dass ich dies global tun möchte, nicht nur für ein einzelnes Projekt.
Ich würde es vorziehen, meine Commit-Nachrichten in Vim zu schreiben, aber es öffnet sie in Emacs.
Wie konfiguriere ich Git so, dass immer Vim verwendet wird? Beachten Sie, dass ich dies global tun möchte, nicht nur für ein einzelnes Projekt.
Antworten:
Wenn Sie den Editor nur für Git einstellen möchten , gehen Sie wie folgt vor (Sie benötigen nicht beide):
core.editor
in Ihrer Git-Konfiguration Folgendes ein:git config --global core.editor "vim"
GIT_EDITOR
Umgebungsvariable fest:export GIT_EDITOR=vim
Wenn Sie den Editor für Git und andere Programme festlegen möchten , legen Sie die Standard- VISUAL
und EDITOR
Umgebungsvariablen * fest:
export VISUAL=vim
export EDITOR="$VISUAL"
* Das Einstellen von beiden ist nicht unbedingt erforderlich, aber einige Programme verwenden möglicherweise nicht das korrektere VISUAL
. Siehe VISUAL
vs.EDITOR
.
Für erhabenen Text : Fügen Sie dies dem hinzu .gitconfig
. Das --wait
ist wichtig (es ermöglicht das Eingeben von Text in erhabenem Zustand und wartet auf das Speichern / Schließen-Ereignis.)
[core]
editor = 'subl' --wait
'subl' kann durch den vollständigen Pfad der ausführbaren Datei ersetzt werden, ist jedoch normalerweise bei korrekter Installation verfügbar.
git config --global
dies in Ihre persönliche Git-Konfigurationsdatei (pro Benutzer) geschrieben wird. Auf Unices ist es ~/.gitconfig
. Dies würde es also für alle Ihre Repositorys konfigurieren.
git commit --amend
-w
ist nicht notwendig; -w {scriptout}
speichert alle Zeichen, die Sie beim Bearbeiten eingeben, um sie später wiederzugeben. Vielleicht verwechseln Sie es mit -f
, was beim Aufrufen der GUI-Version von Vim erforderlich ist . Das heißt, wenn Sie verwenden mvim
, sollte der von Ihnen angegebene Editor mvim -f
eher als sein mvim
.
Kopieren Einfügen:
git config --global core.editor "vim"
Falls Sie wissen möchten, was Sie tun. Von man git-commit
:
UMWELT- UND KONFIGURATIONSVARIABLEN
Der zum Bearbeiten der Festschreibungsprotokollnachricht verwendete Editor wird aus der
GIT_EDITOR
Umgebungsvariablen, dercore.editor
Konfigurationsvariablen, derVISUAL
Umgebungsvariablen oder derEDITOR
Umgebungsvariablen (in dieser Reihenfolge) ausgewählt.
VISUAL
oder verwenden EDITOR
, aber sie verwenden sicherlich nicht GIT_EDITOR
oder core.editor
.
Unter Ubuntu und auch unter Debian (danke @MichielB) ist das Ändern des Standardeditors auch durch Ausführen von:
sudo update-alternatives --config editor
Was Folgendes auffordert:
There are 4 choices for the alternative editor (providing /usr/bin/editor).
Selection Path Priority Status
------------------------------------------------------------
0 /bin/nano 40 auto mode
1 /bin/ed -100 manual mode
2 /bin/nano 40 manual mode
* 3 /usr/bin/vim.basic 30 manual mode
4 /usr/bin/vim.tiny 10 manual mode
Press enter to keep the current choice[*], or type selection number:
alternatives
System ist eine viel einfachere Möglichkeit, die Standardeinstellungen für die unterstützten Programmtypen zu verwalten. Als Referenz: debian-administration.org/article/91/…
GIT_EDITOR
und EDITOR
nicht --ubuntu
update-alternatives
zeigt alle installierten Editoren an. Koen hat Emacs einfach nicht installiert.
In Windows 7 gab es beim Hinzufügen des Editors "Sublime" immer noch einen Fehler:
Abbrechen des Commits aufgrund einer leeren Commit-Nachricht.
Sublime konnte den Fokus nicht halten.
Um dies zu beheben, öffnete ich die .gitconfig-Datei im Ordner c: / users / username / und fügte die folgende Zeile mit der Option --wait außerhalb der doppelten Anführungszeichen hinzu.
[core]
editor = 'F:/Program Files/Sublime Text 2/sublime_text.exe' --wait
Ich hoffe, es ist hilfreich für jemanden, der mit Sublime vor einem ähnlichen Problem steht.
git config --global core.editor "'C:/Program Files/Sublime Text 3/subl.exe' --wait"
C:\Users\YOUR_USERNAME\.gitconfig
[core]
editor = 'C:/Program Files (x86)/Notepad++/notepad++.exe'
git commit
und drücken Sie Enter
. Es öffnet sich Notepad ++.-multiInst
Notepad ++ und möglicherweise mindestens einen Parameter hinzufügen -notabbar
. Tun Sie dies, wenn Git nicht zu wissen scheint, wann Sie die Datei bearbeitet haben und entweder für immer oder gar nicht warten.
>git config --global core.editor '"C:/Program Files (x86)/Notepad++/notepad++.exe"'
editor = 'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -notabbar
- Das heißt, Parameter außerhalb der abgrenzenden einfachen Anführungszeichen
So machen Sie Visual Studio Code (vscode) zu Ihrem Standard-Git-Editor
git config --global core.editor "code --wait"
Und wenn Sie mit Designern über die Kommandozeile arbeiten, dann Pico, und keine Abkürzungen kennen;)
git config --global core.editor "pico"
Oder
export VISUAL=pico
export EDITOR=pico
git config --global core.editor "atom --wait"
Atom muss so konfiguriert sein, dass es über die Befehlszeile ausgeführt wird, damit Folgendes funktioniert:
OS X : Shell-Befehle über Atom installieren: Menüleiste> Atom> Shell-Befehle installieren
Windows : Keine Aktion erforderlich - Atom ist standardmäßig so konfiguriert, dass es über die Befehlszeile ausgeführt wird
Führen Sie diesen Befehl aus:
$ git config --global core.editor "/Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl"
Oder nur:
$ git config --global core.editor "subl -w"
-w
Parameter ebenfalls. Z.B. $ git config --global core.editor "code -w"
. Ordentliches Zeug
git config --global core.editor notepad.exe
Drücken Sie Ctrl+ S, um Ihre Commit-Nachricht zu speichern. Schließen Sie zum Verwerfen einfach das Notizblockfenster, ohne es zu speichern.
Wenn Sie die Verknüpfung zum Speichern drücken und dann abbrechen, gehen Sie zu Datei-> Speichern unter und ändern Sie im daraufhin angezeigten Dialogfeld "Dateityp" in "Alle Dateien (*. *)". Sie sehen eine Datei mit dem Namen "COMMIT_EDITMSG". Löschen Sie es und schließen Sie das Notizblockfenster.
Bearbeiten: Alternativ und einfacher können Sie den gesamten Inhalt aus dem geöffneten Notizblockfenster löschen und auf Speichern klicken. (danke mwfearnley für den Kommentar!)
Ich denke für kleine Zuschreibungen wie Commit-Nachrichten dient der Editor am besten, weil es einfach ist, mit Fenstern da ist, sich in kürzester Zeit öffnet. Sogar Ihr Erhabener kann ein oder zwei Sekunden brauchen, um in Schwung zu kommen, wenn Sie eine Menge Plugins und ähnliches haben.
\r\n
schätze ich, dass es mit (Newline in Windows) und \n
(Newline unter Linux, auch Standard für Git) zu tun hat .
core.editor = 'notepad' .git/COMMIT_EDITMSG --wait
damit sie die Standardbearbeitungsnachricht öffnet und speichert und Sie nicht "Speichern unter" benötigen
Dies bietet eine Antwort für Personen, die zu dieser Frage gelangen und möglicherweise einen anderen Editor als vim verknüpfen möchten.
Die verknüpfte Ressource von Github wird wahrscheinlich auf dem neuesten Stand gehalten, wenn die Editoren aktualisiert werden, auch wenn die Antworten auf SO (einschließlich dieser) nicht zutreffen.
Verknüpfen von Texteditoren mit git
Githubs Beitrag zeigt genau, was Sie für verschiedene Editoren in Ihre Befehlszeile eingeben müssen, einschließlich der Optionen / Flags, die für jeden Editor spezifisch sind, damit es am besten mit git funktioniert.
Editor ++:
git config --global core.editor "'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
Erhabener Text:
git config --global core.editor "'c:/Program Files/sublime text 3/subl.exe' -w"
Atom:
git config --global core.editor "atom --wait"
Die obigen Befehle setzen voraus, dass Ihr Editor im Standardverzeichnis für einen Windows-Computer installiert wurde.
Die Befehle fügen im Wesentlichen den Text zwischen doppelten Anführungszeichen .gitconfig
in Ihrem Home-Verzeichnis hinzu.
Auf einem Windows-Computer befindet sich wahrscheinlich zu Hause C:\Users\your-user-name
, wo Ihr Benutzername Ihr Anmeldename ist.
Über die Befehlszeile können Sie dieses Verzeichnis durch Eingabe erreichen cd ~
.
Ein Befehl oben würde beispielsweise die folgende Zeile unter dem folgenden [core]
Abschnitt hinzufügen :
[core]
editor = 'C:/Program Files/sublime text 3/subl.exe' -w
Wenn Sie einen anderen Editor haben, ersetzen Sie ihn einfach durch den Pfad zu Ihrem Editor. Verwenden Sie dazu eine der oben genannten Methoden. (und hoffe, dass für eine optimale Nutzung keine Flags benötigt werden.)
Für Emacs-Benutzer
.emacs
::
(server-start)
shellrc
::
export EDITOR=emacsclient
git config --global core.editor "emacs -nw"
git config --global core.editor "emacs -nw -q"
, wo die -q
Initialisierungsdateien übersprungen.
Um diese Anweisungen in Windows zu befolgen, stellen Sie sicher, dass Sie Git für Windows installiert haben . Unter Windows verwende ich gerne Git Bash, damit es sich eher wie Linux anfühlt.
Zunächst möchten wir ein spezielles Sublime Text-Projekt erstellen, damit wir spezielle Projekteinstellungen festlegen können, die festgelegt werden sollen, wenn Git den Editor aufruft, um die Bearbeitung in Git zu vereinfachen. Zum Beispiel setze ich mein Lineal normalerweise in den meisten Projekten auf 120 Zeichen, aber für Git-Commit-Nachrichten möchte ich, dass es 72 Zeichen enthält, damit es gut in ein Terminal passt, wenn Sie git log
oder anrufen git lg
.
Öffnen Sie Sublime Text und gehen Sie zum Menü "Datei" → "Neues Fenster" , um ein neues anonymes Projekt zu erstellen. Gehen Sie zum Menü "Projekt" → "Projekt speichern unter ..." und wählen Sie einen Ort zum Speichern. Unter Linux habe ich es in meinem Linux-Ausgangsverzeichnis mit dem Dateinamen gespeichert .gitconfig.sublime-project
. Sein Weg ist daher : ~/.gitconfig.sublime-project
. Speichern Sie es unter Windows auch in Ihrem Home-Verzeichnis, zum Beispiel: C:\Users\MY_USER_NAME\.gitconfig.sublime-project
Gehen Sie nun zum Menü "Projekt" → "Projekt bearbeiten " , um die Projekteinstellungen zu bearbeiten. Fügen Sie Folgendes ein und speichern Sie die Einstellungen. Nehmen Sie bei Bedarf weitere Änderungen an Ihren Projekteinstellungen vor.
{
// For folder settings help see here: https://www.sublimetext.com/docs/3/projects.html
"folders":
[
],
"settings":
{
// Disables horizontal scrolling if enabled.
// May be set to true, false, or "auto", where it will be disabled for
// source code, and otherwise enabled.
"word_wrap": false,
// Set to a value other than 0 to force wrapping at that column rather than the
// window width
"wrap_width": 0,
// Columns in which to display vertical rulers
"rulers": [72, 50], //72 is recommended by git for commit message content, and 50 for commit titles
// The number of spaces a tab is considered equal to
"tab_size": 4,
// Set to true to insert spaces when tab is pressed
"translate_tabs_to_spaces": true,
},
"build_systems":
[
]
}
Jetzt müssen wir den Editor so einstellen, dass er von Git verwendet wird, indem wir die .gitconfig
Datei bearbeiten .
Ihre Benutzerkopie davon befindet sich in ~/.gitconfig
. Öffnen Sie diese Datei und fügen Sie die folgenden Zeilen hinzu. Stellen Sie sicher, dass Sie den richtigen Pfadnamen für das Git-Projekt verwenden, das Sie gerade erstellt haben! Ich benutze ~/.gitconfig.sublime-project
.
[core]
editor = subl --project ~/.gitconfig.sublime-project --wait
Dies --wait
ist wichtig, da Git gezwungen ist, zu warten, bis Sie die Datei schließen, bevor sie fortgesetzt wird. Die --project
Zeile ist wichtig, um Sublime Text mitzuteilen, welches Projekt geöffnet werden soll, wenn Git Sublime Text öffnet.
Gemäß der obigen Antwort von @ digitaldreamer ( https://stackoverflow.com/a/2596835/4561887 ) kann " subl
durch den vollständigen Pfad der ausführbaren Datei ersetzt werden, aber [der Alias subl
] ist normalerweise verfügbar, wenn [Sublime] korrekt installiert ist."
Lesen Sie unter Windows zunächst die Linux-Anweisungen, um Hintergrundinformationen zu erhalten. Jetzt werden wir etwas fast identisches tun.
(OPTIONAL: Erstellen Sie einen subl
Alias zur Verwendung in Git Bash):
Öffnen Sie einen Texteditor (z. B. Notepad, Notepad ++, Sublime Text, Geany usw.) und erstellen Sie eine Datei mit dem Namen ".bash_profile" in Ihrem Home-Verzeichnis. Sein Weg wird daher sein : C:\Users\MY_USER_NAME\.bash_profile
. Speichern Sie Folgendes darin:
alias subl="/c/Program\ Files/Sublime\ Text\ 3/subl.exe"
Dadurch wird ein Git Bash-Alias mit dem Namen erstellt subl
, den wir jetzt in Git Bash für Windows verwenden können, um Sublime Text einfach zu öffnen. Dieser Schritt ist nicht erforderlich, aber für die allgemeine Verwendung von Git Bash nützlich. Jetzt können Sie subl .
beispielsweise Git Bash aufrufen , um ein neues Sublime Text-Projekt in Ihrem aktuellen Verzeichnis zu öffnen.
(VERPFLICHTEND):
Bearbeiten Sie die .gitconfig
Datei in Ihrem Home-Verzeichnis : C:\Users\MY_USER_NAME\.gitconfig
, indem Sie Folgendes hinzufügen. Beachten Sie die subtilen Änderungen gegenüber den obigen Linux-Anweisungen:
[core]
editor = 'C:/Program Files/Sublime Text 3/subl.exe' --project ~/.gitconfig.sublime-project --wait
/
NICHT \
, um Ordner im Pfadnamen zu trennen! (Danke VonC, dass du mir geholfen hast, das zu sehen ).subl
Alias, den wir oben für Git Bash erstellt haben, funktioniert hier nicht. Sie können ihn also nicht wie im Linux-Beispiel verwenden. Stattdessen müssen Sie den gesamten Pfad wie oben gezeigt angeben.~
Symbol funktioniert hier jedoch weiterhin, um zu Ihrem Windows-Ausgangsverzeichnis zu gelangen.Auf diese Weise erhalten Sie Syntaxhervorhebungen für git commit
Nachrichten sowie Zugriff auf andere Git-Befehle wie git blame
(die ich häufig in Sublime Text verwende) oder git commit
(die ich in Sublime Text nicht verwende, da ich die Befehlszeile für allgemeines Git bevorzugen würde fließen, wie ich in meinen Kommentaren unter dieser Antwort erwähnt habe).
So installieren Sie ein Paket: Stellen Sie zunächst sicher, dass "Package Control" installiert ist. Drücken Sie anschließend Ctrl+ Shift+ P(wie Extras → Befehlspalette) und geben Sie "Paketsteuerung: Paket installieren" ganz oder teilweise ein Enter. Drücken Sie dann . Suchen Sie im daraufhin angezeigten Suchfeld nach dem Paket "Git" und Enterklicken Sie darauf oder klicken Sie darauf, um es automatisch zu installieren.
Nach der Installation werden durch Ctrl+ Shift+ Pund die Suche nach "git" Git-Befehle angezeigt, die Sie jetzt intern in Sublime Text verwenden können, z git blame
.
Wenn Sie git commit
zum Beispiel wie gewohnt über die Befehlszeile aufrufen , wird Sublime Text .gitconfig.sublime-project
mit den Einstellungen dieses Projekts in das oben erstellte geöffnet ! Wenn Sie einen Absatz eingeben, werden Sie feststellen, dass er über das von uns festgelegte Lineal hinausgeht, da der weiche Zeilenumbruch deaktiviert ist. Um einen Hard Wrap über automatisch eingefügte Hard Returns am Ende jeder Zeile zu erzwingen, setzen Sie den Cursor auf die lange Zeile, die automatisch umbrochen werden soll, und drücken Sie Alt+ Q. Es wird jetzt mit 72 Zeichen fest umbrochen / gefaltet, was wir im obigen Parameter "Lineale" der Projekteinstellungen festgelegt haben.
Speichern Sie nun Ihre Commit-Nachricht mit Ctrl+ Sund beenden Sie (um Ihre zu vervollständigen git commit
) mit Ctrl+ Shift+ W.
Erledigt!
Git Commit
Syntaxtyp. Sie können den benutzerdefinierten Schritt "Sublime-Text-Projekt" jetzt überspringen.
sublime
mit git
und auch verwenden trim_trailing_white_space_on_save
, möchten Sie einen Alias für das Hinzufügen von Patches hinzufügen, da das Entfernen von nachgestellten Leerzeichen Patch-Änderungen unterbricht, bei denen dies sehr sinnvoll ist. Dies kann mit so etwas erreicht werden:git config --global alias.patch "-c core.editor=vim add --patch"
Wie bei allen anderen GUI-Anwendungen müssen Sie mvim mit dem Warteflag starten.
git config --global core.editor "mvim --remote-wait"
--remote-wait-silent
um hässliche Fehlermeldungen zu vermeiden :)
Für Windows-Benutzer, die neovim mit dem Windows-Subsystem für Linux verwenden möchten :
git config core.editor "C:/Windows/system32/bash.exe --login -c 'nvim .git/COMMIT_EDITMSG'"
Dies ist keine narrensichere Lösung, da sie beispielsweise keine interaktive Neugründung ermöglicht. Verbesserungen sehr willkommen!
Versuche es einfach EDITOR=vim git commit
.
Oder Sie können Ihren EDITOR so einstellen, dass er export EDITOR=vim
in Ihrem Bashrc vorbeischaut.
git config --global core.editor "open -n -W -a TextWrangler"
Stellen Sie außerdem sicher, dass die Einstellung "TextWrangler> Einstellungen> Anwendung> Wenn TextWrangler aktiv wird:" auf "Nichts tun" gesetzt ist.
Dies funktioniert für mich unter OS X 10.11.4 mit TextWrangler 5.0.2 aus dem Mac App Store.
Erläuterung:
Das -n bedeutet in einer neuen Instanz öffnen.
Das -W bedeutet, zu warten, bis die Anwendung beendet wird, bevor der Inhalt der bearbeiteten Datei als Festschreibungsnachricht verwendet wird.
Der -a TextWrangler bedeutet, dass Sie die TextWrangler-Anwendung verwenden, um die Datei zu öffnen.
man open
Weitere Informationen finden Sie in Ihrer Mac Terminal-App.
git config --global core.editor "edit -w"
. Dadurch wird die Festschreibungsnachricht in der aktuellen Instanz geöffnet. Sobald Sie nur dieses Festschreibungsnachrichtendokument schließen, wird die Festschreibung fortgesetzt.
Bei der Verwendung musste git-review
ich den sequence.editor
Wert ändern , um interaktive Rebase ( git rebase -i -p
) ausführen zu können :
git config --global sequence.editor "gvim" # or whatever your prefer
gvim
benötigen: apt install vim-gtk
Verwenden Sie für Mac OS X TextEdit oder den natürlichen Umgebungseditor für Text:
git config --global core.editor "open -W -n"
Nur weil ich hierher gekommen bin, um nach einer einmaligen Lösung zu suchen (in meinem Fall verwende ich normalerweise, vim
aber dieses Mal wollte ich VS-Code verwenden), für einen einzelnen Befehl, und andere möchten vielleicht auch wissen:
GIT_EDITOR='code -w' git rebase -i …
Hier ist meine git
/ hub
Version nur für den Kontext:
git version 2.24.2 (Apple Git-127)
hub version 2.14.1
Für IntelliJ-Benutzer
Als ich versuchte, Rebase zu aktivieren, wurde der folgende Fehler angezeigt: 'Hinweis: Warten auf das Schließen der Datei durch Ihren Editor ... Code -n -w: Code: Befehl nicht gefunden Fehler: Es gab ein Problem mit dem Code des Editors -n -w '.'
Der gleiche Fehler trat auf, als ich versuchte, IntelliJ mit Git zu verknüpfen:
Das Problem war , dass ich nicht der Befehl habe Code in meiner Umgebung PATH - Variablen hinzugefügt. Und ich wollte Visual Studio Code nicht von meinem Terminal aus verwenden. Deshalb wurde "Befehl nicht gefunden" angezeigt. Ich habe dies durch Löschen gelöst
editor = code -n -w
aus dem Kernabschnitt in meiner .gitconfig-Datei. Git hat wieder richtig funktioniert.
Dadurch wird der Textmate-Editor geöffnet, wenn Sie Ihre Commits bearbeiten möchten. Erfordert die Installation von textmate-Befehlszeilentools.
git config --global core.editor "mate -w"
git config --global core.editor "/usr/local/bin/mate -w"
Erstellen Sie eine Datei mit dem Namen 'k.sh', fügen Sie den folgenden Text hinzu und platzieren Sie ihn in Ihrem Home-Verzeichnis (~):
winpty "C:\Program Files (x86)\Kinesics Text Editor\x64\k.exe" $1
Geben Sie an der Git-Eingabeaufforderung Folgendes ein:
git config --global core.editor ~/k.sh