Mise à jour 2010-2011 :
zumalifeguard 's solution (upvoted) est plus simple que l'original, car il n'a plus besoin d'un wrapper shell 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 modifier le chemin d'accès d'un éditeur, sans avoir à enregistrer ce changement dans un fichier de type git config
à nouveau .
Mais c'est juste moi.
Informations complémentaires La solution suivante fonctionne également avec la solution suivante Cygwin . la solution de zuamlifeguard ne le fera pas.
Réponse originale.
Les suivantes :
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 de l'interpréteur de commandes, d'où l'idée d'envelopper n'importe quel ensemble de commandes de Windows dans un sh
script.
Plus de détails sur la question du SO Comment puis-je configurer un éditeur pour travailler avec Git sous Windows ?
Notez le ' -multiInst
L'option ', pour assurer une nouvelle instance de notepad++ à chaque appel de Git.
Notez également que, si vous utilisez Git sur Cygwin (et veulent utiliser Notepad++ à partir de Cygwin ), alors scphantm explique dans " utilisation de Notepad++ pour Git dans Cygwin "que vous devez savoir que :
git
lui transmet un cygwin
et npp
ne sait pas quoi en faire
Donc le script dans ce cas serait :
#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -notabbar -nosession -noPlugin "$(cygpath -w "$*")"
Plusieurs lignes pour plus de lisibilité :
#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -notabbar \
-nosession -noPlugin "$(cygpath -w "$*")"
Avec *`"$(cygpath -w "$")"`** étant la partie importante ici.
Val a commenté (puis supprimé) que vous ne devriez pas utiliser -notabbar
option :
Il n'est pas utile de désactiver l'onglet pendant le rebasement, mais cela nuit beaucoup à l'utilisation générale du bloc-notes, puisque -notab
devient le paramètre par défaut et vous devez Settings>Preferences>General>TabBar> Hide>uncheck
à chaque fois que vous démarrez Notepad après le rebasement. C'est l'enfer. Vous avez recommandé cet enfer.
Alors utilisez plutôt :
#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -nosession -noPlugin "$(cygpath -w "$*")"
C'est-à-dire :
#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -nosession \
-noPlugin "$(cygpath -w "$*")"
Si vous voulez placer le script ' npp.sh
dans un chemin avec des espaces (comme dans ' c:\program files\...
',), vous avez trois possibilités :
-
Soit vous essayez de citer le chemin (guillemets simples ou doubles), comme dans :
git config --global core.editor 'C:/program files/git/npp.sh'
-
ou essayez le notation du nom court (non infaillible) :
git config --global core.editor C:/progra~1/git/npp.sh
-
ou (mon préféré) place ' npp.sh
dans une partie du 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