Mise à jour de septembre 2015 (6 ans plus tard)
La dernière version de git-for-Windows (2.5.3) comprend désormais:
En configurant git config core.editor notepad
, les utilisateurs peuvent désormais utiliser notepad.exe
comme éditeur par défaut .
La configuration git config format.commitMessageColumns 72
sera récupérée par l'encapsuleur du bloc-notes et encapsulera le message de validation une fois que l'utilisateur l'aura modifié.
Voir commit 69b301b de Johannes Schindelin ( dscho
) .
Et Git 2.16 (Q1 2018) affichera un message pour indiquer à l'utilisateur qu'il attend la fin de l'édition lors de la création d'un éditeur, au cas où l'éditeur s'ouvre sur une fenêtre cachée ou dans un endroit obscur et que l'utilisateur se perd.
Voir commit abfb04d (07 décembre 2017) et commit a64f213 (29 novembre 2017) par Lars Schneider ( larsxschneider
) .
Aidé par: Junio C Hamano ( gitster
) .
(Fusionné par Junio C Hamano - gitster
- dans commit 0c69a13 , 19 déc 2017)
launch_editor()
: indique que Git attend l'entrée utilisateur
Lorsqu'un graphique GIT_EDITOR
est généré par une commande Git qui s'ouvre et attend l'entrée utilisateur (par exemple " git rebase -i
"), la fenêtre de l'éditeur peut être masquée par d'autres fenêtres.
L'utilisateur peut être laissé à regarder la fenêtre du terminal Git d'origine sans même se rendre compte qu'il / elle doit interagir avec une autre fenêtre avant que Git puisse continuer. Pour cet utilisateur, Git semble suspendu.
Imprimez un message indiquant que Git attend l'entrée de l'éditeur dans le terminal d'origine et supprimez-le lorsque l'éditeur revient, si le terminal prend en charge l'effacement de la dernière ligne
Réponse originale
Je viens de le tester avec git version 1.6.2.msysgit.0.186.gf7512 et Notepad ++ 5.3.1
Je préfère ne pas avoir à définir de variable EDITOR, j'ai donc essayé:
git config --global core.editor "\"c:\Program Files\Notepad++\notepad++.exe\""
# or
git config --global core.editor "\"c:\Program Files\Notepad++\notepad++.exe\" %*"
Cela donne toujours:
C:\prog\git>git config --global --edit
"c:\Program Files\Notepad++\notepad++.exe" %*: c:\Program Files\Notepad++\notepad++.exe: command not found
error: There was a problem with the editor '"c:\Program Files\Notepad++\notepad++.exe" %*'.
Si je définis un npp.bat comprenant:
"c:\Program Files\Notepad++\notepad++.exe" %*
et je tape:
C:\prog\git>git config --global core.editor C:\prog\git\npp.bat
Cela fonctionne à partir de la session DOS, mais pas à partir du shell git .
(pas avec le mécanisme de configuration core.editor, un script contenant " start /WAIT...
" ne fonctionnerait pas, mais ouvrirait seulement une nouvelle fenêtre DOS)
La réponse de Bennett mentionne la possibilité d'éviter d'ajouter un script, mais de référencer directement le programme lui - même entre des guillemets simples . Notez la direction des barres obliques! Utilisez /
NOT \
pour séparer les dossiers dans le nom du chemin!
git config --global core.editor \
"'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
Ou si vous êtes dans un système 64 bits:
git config --global core.editor \
"'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
Mais je préfère utiliser un script (voir ci-dessous): de cette façon, je peux jouer avec différents chemins ou différentes options sans avoir à m'inscrire à nouveau git config
.
La solution réelle (avec un script) était de réaliser que:
ce à quoi vous faites référence dans le fichier de configuration est en fait un /bin/sh
script shell ( ) , pas un script DOS.
Donc, ce qui fonctionne, c'est:
C:\prog\git>git config --global core.editor C:/prog/git/npp.bat
avec C:/prog/git/npp.bat
:
#!/bin/sh
"c:/Program Files/Notepad++/notepad++.exe" -multiInst "$*"
ou
#!/bin/sh
"c:/Program Files/Notepad++/notepad++.exe" -multiInst -notabbar -nosession -noPlugin "$*"
Avec ce paramètre, je peux faire ' git config --global --edit
' depuis DOS ou Git Shell, ou je peux faire ' git rebase -i ...
' depuis DOS ou Git Shell.
Les commandes de Bot déclencheront une nouvelle instance de notepad ++ (d'où l' -multiInst
option '), et attendront que cette instance soit fermée avant de continuer.
Notez que j'utilise uniquement '/', pas \
'. Et j'ai installé msysgit en utilisant l'option 2. (Ajoutez le git\bin
répertoire à la PATH
variable d'environnement, mais sans remplacer certains outils Windows intégrés)
Le fait que l'encapsuleur notepad ++ soit appelé .bat n'est pas important.
Il serait préférable de le nommer 'npp.sh' et de le placer dans le [git]\cmd
répertoire (ou dans n'importe quel répertoire référencé par votre variable d'environnement PATH).
Voir également:
lightfire228 ajoute dans les commentaires :
Pour toute personne ayant un problème où N ++ ouvre simplement un fichier vide et git ne prend pas votre message de validation, voir " Abandon de la validation en raison d'un message vide ": changez votre fichier .bat
ou .sh
pour dire:
"<path-to-n++" .git/COMMIT_EDITMSG -<arguments>.
Cela indiquera à notepad ++ d'ouvrir le fichier de validation temporaire, plutôt qu'un nouveau vierge.