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 config
wieder .
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 sh
Skript zu packen.
(Wie Franky kommentiert : "Denken Sie daran, Ihre .sh
Datei 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 -multiInst
Option ' ', 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:
git
geht ihm einen cygwin
Weg und npp
weiß 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 -notabbar
Option 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 -notab
die Standardeinstellung ist und Sie dies Settings>Preferences>General>TabBar> Hide>uncheck
jedes 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"'