Ich würde es vorziehen, meine Commit-Nachrichten in Vim zu schreiben, aber es öffnet sie in Emacs.
Wie konfiguriere ich Git, um immer Vim zu verwenden? Beachten Sie, dass ich dies global tun möchte, nicht nur für ein einzelnes Projekt.
Wenn Sie den Editor nur für Git festlegen möchten, führen Sie einen der folgenden Schritte aus (Sie benötigen nicht beide):
core.editor
in deiner Git-Konfiguration: _git config --global core.editor "vim"
_GIT_EDITOR
: _export GIT_EDITOR=vim
_Wenn Sie den Editor für Git und auch für andere Programme festlegen möchten, legen Sie die standardisierten Umgebungsvariablen VISUAL
und EDITOR
* fest:
_export VISUAL=vim
export EDITOR="$VISUAL"
_
* Die Einstellung beider Optionen ist nicht unbedingt erforderlich, aber einige Programme verwenden möglicherweise nicht die korrektere Einstellung VISUAL
. Siehe VISUAL
VS. EDITOR
.
Für erhabenen Text : Fügen Sie dies zum _.gitconfig
_ hinzu. Der _--wait
_ ist wichtig. (Erlaubt die Eingabe von Text in erhabener Form und wartet auf das Speichern/Schließen des Ereignisses.
_[core]
editor = 'subl' --wait
_
'subl' kann durch den vollständigen Pfad der ausführbaren Datei ersetzt werden, ist aber normalerweise bei korrekter Installation verfügbar.
Kopieren einfügen:
git config --global core.editor "vim"
Für den Fall, dass Sie wissen möchten, was Sie tun. Aus man git-commit
:
UMWELT- UND KONFIGURATIONSVARIABLEN
Der zum Bearbeiten der Commit-Protokollnachricht verwendete Editor wird aus der Umgebungsvariablen
GIT_EDITOR
, der Konfigurationsvariablencore.editor
, der UmgebungsvariablenVISUAL
oder der UmgebungsvariablenEDITOR
( in dieser Reihenfolge).
Unter Ubuntu und Debian (danke @MichielB) können Sie den Standardeditor auch folgendermaßen ändern:
Sudo update-alternatives --config editor
Welches wird Folgendes auffordern:
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:
In Windows 7 gab es beim Hinzufügen des "Sublime" -Editors immer noch einen Fehler:
Commit wird aufgrund einer leeren Commit-Nachricht abgebrochen.
Sublime konnte den Fokus nicht halten.
Um dies zu beheben, öffnete ich die Datei .gitconfig in c:/users/username/folder 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
Hoffe, es ist hilfreich für jemanden, der sich einem ähnlichen Problem mit Sublime gegenübersieht.
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 ++.Visual Studio Code (vscode) als Standard-Git-Editor festlegen
git config --global core.editor "code --wait"
Und wenn Sie mit Designern arbeiten, die die Befehlszeile verwenden, dann Pico, und keine Abkürzungen kennen;)
git config --global core.editor "pico"
Oder
export VISUAL=pico
export EDITOR=pico
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"
git config --global core.editor "atom --wait"
Atom muss so konfiguriert sein, dass es von der Befehlszeile aus ausgeführt wird, damit das oben Genannte funktioniert:
OS X: Shell-Befehle von Atom installieren: Menüleiste> Atom> Shell-Befehle installieren
Windows: Keine Aktion erforderlich - atom wird standardmäßig über die Befehlszeile ausgeführt
git config --global core.editor notepad.exe
Schlagen Ctrl+S um Ihre Commit-Nachricht zu speichern. Zum Verwerfen schließen Sie einfach das Notizblockfenster, ohne zu speichern.
Wenn Sie auf die Verknüpfung zum Speichern klicken und den Vorgang abbrechen möchten, 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 Messages eignet sich Notepad am besten, da es einfach ist, da es mit Windows in kürzester Zeit geöffnet wird. Sogar Ihr Erhabener kann eine oder zwei Sekunden brauchen, um in Schwung zu kommen, wenn Sie eine Menge Plugins und andere Dinge haben.
Dies bietet eine Antwort für Personen, die zu dieser Frage gelangen und möglicherweise einen anderen Editor als vim verlinken möchten.
Die verknüpfte Ressource von Github wird wahrscheinlich auf dem neuesten Stand gehalten, wenn Editoren aktualisiert werden, selbst wenn Antworten auf SO (einschließlich dieser) sind nicht.
Verknüpfen von Texteditoren mit Git
Githubs Beitrag zeigt genau, was Sie in Ihre Befehlszeile für verschiedene Editoren eingeben müssen, einschließlich der Optionen/Flags, die für jeden Editor spezifisch sind, damit er am besten mit git zusammenarbeitet.
Notepad ++: 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 Grunde den Text zwischen doppelten Anführungszeichen zu .gitconfig
in Ihrem Ausgangsverzeichnis hinzu.
Auf einem Windows-Computer lautet das Startverzeichnis wahrscheinlich C:\Users\your-user-name
, wobei Ihr Benutzername Ihr Anmeldename ist.
Über die Befehlszeile können Sie dieses Verzeichnis erreichen, indem Sie cd ~
eingeben.
ein Befehl oben würde beispielsweise die folgende Zeile unter dem Abschnitt [core]
wie folgt einfügen:[core] editor = 'C:/Program Files/sublime text 3/subl.exe' -w
Wenn Sie einen anderen Editor haben, ersetzen Sie ihn einfach mit dem Pfad zu Ihrem Editor. (und hoffe, dass keine Flags für eine optimale Nutzung benötigt werden.)
Für Emacs-Benutzer
.emacs
:
(server-start)
shellrc
:
export EDITOR=emacsclient
Um diesen Anweisungen in Windows zu folgen, 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.
Zuerst möchten wir ein spezielles Sublime Text-Projekt erstellen, damit wir spezielle Projekteinstellungen festlegen können, die bei jedem Aufruf von git durch den Editor festgelegt werden sollen, um die Bearbeitung in git zu vereinfachen. Normalerweise setze ich mein Lineal in den meisten Projekten auf 120 Zeichen, aber für Git-Commit-Nachrichten möchte ich, dass es 72 Zeichen hat, damit es gut in ein Terminal passt, wenn Sie _git log
_ oder git lg
.
Öffne Sublime Text und gehe zu "Datei" -> "Neues Fenster", um ein neues anonymes Projekt zu erstellen. Gehen Sie zu "Projekt" -> "Projekt speichern unter ..." und wählen Sie einen Speicherort aus. Unter Linux habe ich es in meinem Linux-Ausgangsverzeichnis mit dem Dateinamen _.gitconfig.sublime-project
_ gespeichert. Sein Pfad lautet daher: _~/.gitconfig.sublime-project
_. Unter Windows speichern Sie es ebenfalls in Ihrem Home-Verzeichnis, zB: _C:\Users\MY_USER_NAME\.gitconfig.sublime-project
_ Gehen Sie nun zu "Projekt" -> "Projekt bearbeiten", um es zu bearbeiten die Projekteinstellungen. Fügen Sie Folgendes ein und speichern Sie die Einstellungen. Nehmen Sie gegebenenfalls 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 Datei _.gitconfig
_ bearbeiten.
Ihre Benutzerkopie davon befindet sich in _~/.gitconfig
_. Öffnen Sie diese Datei und fügen Sie die folgenden Zeilen hinzu. Achten Sie darauf, den richtigen Pfadnamen für das oben erstellte Git-Projekt zu verwenden! Ich verwende _~/.gitconfig.sublime-project
_.
_[core]
editor = subl --project ~/.gitconfig.sublime-project --wait
_
Der _--wait
_ ist wichtig, da er git zwingt, zu warten, bis Sie die Datei schließen, bevor sie fortgesetzt wird. Die Zeile _--project
_ ist wichtig, um Sublime Text mitzuteilen, welches Projekt geöffnet werden soll, wenn git Sublime öffnet.
Laut 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 für Windows zuerst die Linux-Anweisungen, um Hintergrundinformationen zu erhalten. Jetzt machen wir etwas fast Identisches.
(OPTIONAL: Erstelle einen subl
-Alias für die 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 Ausgangsverzeichnis. Sein Pfad lautet daher: _C:\Users\MY_USER_NAME\.bash_profile
_. Speichern Sie folgendes hinein:
_alias subl="/c/Program\ Files/Sublime\ Text\ 3/subl.exe"
_
Dadurch wird ein Git BASH-Alias namens subl
erstellt, den wir jetzt in Git BASH für Windows verwenden können, um Sublime auf einfache Weise zu öffnen. Dieser Schritt ist nicht erforderlich, aber nützlich für die allgemeine Verwendung von Git BASH. Jetzt können Sie beispielsweise in Git BASH _subl .
_ aufrufen, um ein neues Sublime-Projekt in Ihrem aktuellen Verzeichnis zu öffnen.
(OBLIGATORISCH):
Bearbeiten Sie die Datei _.gitconfig
_ in Ihrem Ausgangsverzeichnis: _C:\Users\MY_USER_NAME\.gitconfig
_, indem Sie Folgendes hinzufügen. Beachten Sie die geringfügigen Änderungen gegenüber den obigen Linux-Anweisungen:
_[core]
editor = 'C:/Program Files/Sublime Text 3/subl.exe' --project ~/.gitconfig.sublime-project --wait
_
/
_ NOT _\
_, um Ordner im Pfadnamen zu trennen! (Danke VonC für die Hilfe ).subl
-Alias, das wir oben für Git BASH erstellt haben, funktioniert hier nicht, daher können Sie es nicht wie im Linux-Beispiel verwenden. Stattdessen müssen Sie den gesamten Pfad wie oben angegeben angeben.~
_ funktioniert hier jedoch weiterhin, um zu Ihrem Windows-Basisverzeichnis zu gelangen.Auf diese Weise erhalten Sie eine Syntaxhervorhebung für _git commit
_ -Nachrichten sowie Zugriff auf andere Git-Befehle wie _git blame
_ (die ich in Sublime Text häufig verwende) oder _git commit
_ (die ich nicht verwende) in Sublime Text, da ich die Befehlszeile für den allgemeinen Git-Flow vorziehen würde, 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 dann Ctrl + Shift + P (wie Extras → Befehlspalette) und geben Sie alles oder einen Teil von „Paketsteuerung: Paket installieren“ ein und drücken Sie die Eingabetaste. Suchen Sie im daraufhin angezeigten Suchfeld nach dem Paket "Git" und drücken Sie die Eingabetaste, oder klicken Sie darauf, um es automatisch zu installieren.
Einmal installiert, Ctrl + Shift + P Wenn Sie dann nach "git" suchen, werden git-Befehle angezeigt, die Sie jetzt intern in Sublime Text verwenden können, z. B. _git blame
_.
Wenn Sie jetzt beispielsweise _git commit
_ aufrufen, öffnet sich Sublime Text wie gewohnt mit den Einstellungen dieses Projekts in dem oben erstellten _.gitconfig.sublime-project
_! 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 Zeilenumbruch über automatisch eingefügte Zeilenumbrüche 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 nun mit 72 Zeichen hart/hart gefaltet, was wir oben im Parameter "Lineale" der Projekteinstellungen festgelegt haben.
Speichern Sie nun Ihre Commit-Nachricht mit Ctrl + S, und beenden Sie (um Ihren _git commit
_ abzuschließen) mit Ctrl + Shift + W.
Getan!
Wie bei allen anderen GUI-Anwendungen müssen Sie mvim mit dem Wait-Flag starten.
git config --global core.editor "mvim --remote-wait"
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 (zum Beispiel) kein interaktives Rebasing unterstützt. Verbesserungen sehr willkommen!
Bei der Verwendung von git-review
musste der sequence.editor
-Wert geändert werden, um eine interaktive Neugründung durchführen zu können (git rebase -i -p
):
git config --global sequence.editor "gvim" # or whatever your prefer
gvim
erfordern: apt install vim-gtk
git config --global core.editor "open -n -W -a TextWrangler"
Stellen Sie außerdem sicher, dass "TextWrangler> Einstellungen> Anwendung> Wenn TextWrangler aktiviert wird:" auf "Nichts tun" eingestellt 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 offen in einer neuen Instanz.
Das - W bedeutet, zu warten, bis die Anwendung beendet ist, bevor der Inhalt der bearbeiteten Datei als Festschreibungsnachricht verwendet wird.
Das - ein TextWrangler bedeutet, dass Sie die TextWrangler-Anwendung verwenden, um die Datei zu öffnen.
Weitere Informationen finden Sie unter man open
in Ihrer Mac-Terminal-App.
Versuchen Sie es einfach mit EDITOR=vim git commit
.
Oder Sie können Ihren EDITOR durch export EDITOR=vim
in Ihrem bashrc auf vim setzen.