Update 2010-2011:
zuzumalifeguard ‚s - Lösung (upvoted) ist einfacher als das Original, da es nicht mehr eine Shell - Wrapper - Skript benötigt.
Wie ich in " Wie kann ich einen Editor für die Arbeit mit Git unter Windows einrichten? " Erläutere , bevorzuge ich einen Wrapper, da es einfacher ist, Editoren zu wechseln oder den Pfad eines Editors zu ändern, ohne diese Änderung registrieren zu müssen mit einem git configwieder .
Aber das bin nur ich.
Zusätzliche Informationen : Die folgende Lösung funktioniert mit Cygwin , die Lösung des Zuamlifeguard jedoch nicht.
Ursprüngliche Antwort.
Folgende:
C:\prog\git>git config --global core.editor C:/prog/git/npp.sh
C:/prog/git/npp.sh:
#!/bin/sh
"c:/Program Files/Notepad++/notepad++.exe" -multiInst "$*"
funktioniert. Diese Befehle werden als Shell-Skript interpretiert, daher die Idee, alle Windows-Befehlssätze in ein shSkript zu packen.
(Wie Franky kommentiert : "Denken Sie daran, Ihre .shDatei mit Zeilenenden im Unix-Stil zu speichern oder mysteriöse Fehlermeldungen zu erhalten!")
Weitere Details zur SO-Frage Wie kann ich einen Editor für die Arbeit mit Git unter Windows einrichten?
Beachten Sie die -multiInstOption ' ', um für jeden Aufruf von Git eine neue Instanz von Notepad ++ sicherzustellen.
Beachten Sie auch, dass, wenn Sie Git unter Cygwin verwenden (und Notepad ++ von Cygwin verwenden möchten ), scphantm unter " Verwenden von Notepad ++ für Git in Cygwin " erklärt, dass Sie Folgendes beachten müssen:
gitgeht ihm einen cygwinWeg und nppweiß nicht, was er damit anfangen soll
Das Skript in diesem Fall wäre also:
#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -notabbar -nosession -noPlugin "$(cygpath -w "$*")"
Mehrere Zeilen zur besseren Lesbarkeit:
#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -notabbar \
-nosession -noPlugin "$(cygpath -w "$*")"
Mit "$(cygpath -w "$*")"dem wichtigen Teil hier.
Val kommentierte (und löschte dann), dass Sie die -notabbarOption nicht verwenden sollten :
Es ist nicht sinnvoll, die Registerkarte während des Rebases zu deaktivieren, beeinträchtigt jedoch die allgemeine Benutzerfreundlichkeit des Notepads erheblich, da dies -notabdie Standardeinstellung ist und Sie dies Settings>Preferences>General>TabBar> Hide>uncheckjedes Mal tun müssen, wenn Sie den Editor nach dem Rebase starten. Das ist die Hölle. Du hast die Hölle empfohlen.
Verwenden Sie also lieber:
#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -nosession -noPlugin "$(cygpath -w "$*")"
Das ist:
#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -nosession \
-noPlugin "$(cygpath -w "$*")"
Wenn Sie das Skript ' npp.sh' in einen Pfad mit Leerzeichen einfügen möchten (wie in ' c:\program files\...',), haben Sie drei Möglichkeiten:
Versuchen Sie entweder, den Pfad in einfache oder doppelte Anführungszeichen zu setzen, wie in:
git config --global core.editor 'C:/program files/git/npp.sh'
oder versuchen Sie es mit der Kurznamen-Notation (nicht narrensicher ):
git config --global core.editor C:/progra~1/git/npp.sh
oder (mein Lieblings-) Platz ' npp.sh' in einem Verzeichnisteil Ihrer %PATH%Umgebungsvariablen. Sie müssten dann keinen Pfad für das Skript angeben.
git config --global core.editor npp.sh
Steiny berichtet in den Kommentaren zu tun:
git config --global core.editor '"C:/Program Files (x86)/Git/scripts/npp.sh"'