Mise à jour 2010-2011:
zumalifeguard de solution (upvoted) est plus simple que celui d' origine, car il n'a pas besoin de plus d' un shell wrapper script.
Comme je l'explique dans " Comment puis-je configurer un éditeur pour travailler avec Git sous Windows? ", Je préfère un wrapper, car il est plus facile d'essayer de changer d'éditeur ou de changer le chemin d'un éditeur, sans avoir à enregistrer ladite modification avec un git config
nouveau .
Mais c'est juste moi.
Informations supplémentaires : la solution suivante fonctionne avec Cygwin , contrairement à la solution de zuamlifeguard.
Réponse originale.
Le suivant:
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 "$*"
fonctionne. Ces commandes sont interprétées comme un script shell, d'où l'idée d'envelopper tout ensemble de commandes Windows dans un sh
script.
(Comme Franky commente : "N'oubliez pas d'enregistrer votre .sh
fichier avec des fins de ligne de style Unix ou de recevoir des messages d'erreur mystérieux!")
Plus de détails sur la question SO Comment puis-je configurer un éditeur pour travailler avec Git sous Windows?
Notez l' -multiInst
option ' ', pour garantir une nouvelle instance de notepad ++ pour chaque appel de Git.
Notez également que, si vous utilisez Git sur Cygwin (et que vous souhaitez utiliser Notepad ++ de Cygwin ), alors scphantm explique dans « Utilisation de Notepad ++ pour Git dans Cygwin » que vous devez savoir que:
git
lui passe un cygwin
chemin et npp
ne sait pas quoi en faire
Ainsi, le script dans ce cas serait:
#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -notabbar -nosession -noPlugin "$(cygpath -w "$*")"
Plusieurs lignes pour la lisibilité:
#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -notabbar \
-nosession -noPlugin "$(cygpath -w "$*")"
D' "$(cygpath -w "$*")"
être la partie importante ici.
Val a commenté (puis supprimé) que vous ne devriez pas utiliser l' -notabbar
option:
Cela ne sert à rien de désactiver l'onglet pendant le rebase, mais nuit beaucoup à l'utilisabilité générale du Bloc-notes, car il -notab
devient le paramètre par défaut et vous devez Settings>Preferences>General>TabBar> Hide>uncheck
chaque fois que vous démarrez le bloc-notes après le rebase. Ceci est l'enfer. Vous avez recommandé l'enfer.
Utilisez donc plutôt:
#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -nosession -noPlugin "$(cygpath -w "$*")"
C'est:
#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -nosession \
-noPlugin "$(cygpath -w "$*")"
Si vous souhaitez placer le script ' npp.sh
' dans un chemin avec des espaces (comme dans ' c:\program files\...
',), vous avez trois options:
Essayez de citer le chemin (guillemets simples ou doubles), comme dans:
git config --global core.editor 'C:/program files/git/npp.sh'
ou essayez la notation de nom abrégé (non infaillible ):
git config --global core.editor C:/progra~1/git/npp.sh
ou (mon endroit préféré) ' npp.sh
' dans une partie répertoire de votre %PATH%
variable d'environnement. Vous n'auriez alors pas à spécifier de chemin pour le script.
git config --global core.editor npp.sh
Steiny rapporte dans les commentaires qu'il doit faire:
git config --global core.editor '"C:/Program Files (x86)/Git/scripts/npp.sh"'