594 votes

Comment puis-je configurer un éditeur pour travailler avec Git sous Windows ?

Je suis d'essayer Git sur Windows. Je suis arrivé au point d'essayer de "git commit" et j'ai eu cette erreur:

Le Terminal est muet, mais aucun VISUEL ni L'ÉDITEUR défini. Veuillez fournir les message à l'aide de soit -m ou-F option.

J'ai donc compris j'ai besoin d'avoir une variable d'environnement appelée ÉDITEUR. Pas de problème. Je l'ai mis à point pour le bloc-notes. Qui a travaillé, presque. La valeur par défaut message de validation s'ouvre dans le bloc-notes. Mais le bloc-notes ne prend pas en charge nus de ligne de flux. Je suis allé et a obtenu Notepad++, mais je ne peux pas comprendre comment obtenir Notepad++ comme %EDITOR% d'une manière telle que cela fonctionne avec Git comme prévu.

Je ne suis pas marié avec Notepad++. À ce stade, je n'ai pas l'esprit de ce que l'éditeur que j'utilise. Je veux juste être en mesure de taper des messages de commit dans un éditeur plutôt que de la ligne de commande (avec -m).

Ceux d'entre vous à l'aide de Git sur Windows: Quel outil utilisez-vous pour éditer vos messages de commit, et ce que vous avez à faire pour le faire fonctionner?

590voto

VonC Points 414372

Je viens de 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 un ÉDITEUR de variable, donc j'ai essayé:

git config --global core.editor "\"c:\Program Files\Notepad++\notepad++.exe\""
# or
git config --global core.editor "\"c:\Program Files\Notepad++\notepad++.exe\" %*"

Qui 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 une centrale nucléaire.chauve-souris, y compris:

"c:\Program Files\Notepad++\notepad++.exe" %*

et je tape:

C:\prog\git>git config --global core.editor C:\prog\git\npp.bat

Il fonctionne à partir du DOS de la session, mais pas du git shell.
(pas qu'avec le cœur.l'éditeur de configuration du mécanisme, un script avec "start /WAIT..." dans le il ne serait pas le travail, mais seulement ouvrir une nouvelle fenêtre de DOS)


Bennett réponse mentionne la possibilité d'éviter l'ajout d'un script, mais pour faire référence directement le programme lui-même entre simples quotes:

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 les différents chemins ou les différentes options sans avoir à s'inscrire à nouveau un git config.


La solution réelle (avec un script) a été de réaliser que:
ce que vous appelez dans le fichier de configuration est en fait une coquille (/bin/sh) script, pas un DOS script.

Donc, ce n'est travail est la suivante:

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 ces réglages, je peux le faire 'git config --global --edit"de DOS ou Git Shell, ou je peux le faire 'git rebase -i ..."de DOS ou Git Shell.
Bot commandes sera le déclencheur d'une nouvelle instance de notepad++ (d'où l' -multiInst' option), et d'attendre que l'instance soit fermé avant d'aller sur.

Notez que je n'utilise que '/', pas \'. Et j'ai installé msysgit à l'aide de l'option 2. (Ajouter de l' git\bin répertoire à l' PATH variable d'environnement, mais sans écraser certains outils intégrés dans windows)

Le fait que le notepad++ wrapper est appelé .chauve-souris n'est pas important.
Il serait préférable de nommer "npp.sh" et de le mettre dans l' [git]\cmd répertoire (ou dans n'importe quel répertoire référencé par la variable d'environnement PATH).


Voir aussi:

313voto

Bennett McElwee Points 5750

Bâtiment sur Darren réponse, à utiliser Notepad++, vous pouvez simplement faire ceci (sur une seule ligne):

Sur OS 32 bits: git config --global core.editor "'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"

Sur 64 bits OS git config --global core.editor "'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"

Évidemment, l' C:/Program Files/Notepad++/notepad++.exe partie doit être le chemin d'accès à la Notepad++ exécutable sur votre système. Par exemple, sur Windows 7, il est susceptible d'être C:/Program Files (x86)/Notepad++/notepad++.exe . Merci aux commentateurs pour le rappeler.

Fonctionne comme un charme pour moi.

51voto

Darren Points 1141

De toute façon, j'ai juste joué un peu avec ce et constaté ce qui suit fonctionne bien pour moi:

git config --global core.editor "'C:/Program Files/TextPad 5/TextPad.exe' -m"

Je ne pense pas que CMD aime guillemets simples de sorte que vous devez utiliser des guillemets doubles "pour spécifier l'espace incorporé argument de chaîne".

Cygwin (qui je crois est la plateforme sous-jacente pour Git du Bash), d'autre part aime les deux ' et "; vous pouvez spécifier un CMD-comme des chemins, à l'aide de / au lieu de \, tant que la chaîne est cité c'est à dire dans cet exemple, l'utilisation des guillemets simples.

L' -m overrides/indique l'utilisation de plusieurs éditeurs et il n'est pas nécessaire pour un %* cloué sur la fin.

28voto

Nick Knowlson Points 2715

Même avec un couple de vim-réponses, j'ai eu du mal à obtenir que cela fonctionne avec gvim sous Windows (bien que pas à l'aide d'un fichier de commandes ou d' %RÉDACTEUR% ou cygwin).

Ce que j'ai fini par arriver à la est agréable et propre, et en tire quelques solutions ici:

git config --global core.editor \
"'C:/Program Files/Vim/vim72/gvim.exe' --nofork '%*'"

Une chasse aux sorcières qui m'a pris un moment, ce ne sont pas le style Windows barres obliques inverses, elles sont normales des barres obliques.

Edit: Après mise à jour vers vim 7.3, je suis venu à la conclusion que la plus propre et la plus simple façon de le faire est:

  1. Ajouter Vim du dossier principal de votre chemin (clic Droit sur poste de travail -> Propriétés -> Avancé -> Variables d'Environnement)

  2. Exécuter ceci:git config --global core.editor "gvim --nofork '%*'"

Si vous faites de cette façon, alors je suis assez sûr que cela fonctionne avec cygwin.

16voto

Patrick Johnmeyer Points 5947

Notepad++ fonctionne très bien, même si je choisis de rester avec le bloc-notes, -m, ou même parfois de l'intégré dans "modifier".

Le problème que vous rencontrez à l'aide de Notepad++ est lié à la façon dont git est de lancer le fichier exécutable de l'éditeur. Ma solution pour cela est de définir l'ÉDITEUR d'un fichier de commandes, plutôt que sur le fichier exécutable de l'éditeur, qui effectue les opérations suivantes:

start /WAIT "E:\PortableApps\Notepad++Portable\Notepad++Portable.exe" %*

/WAIT indique la ligne de commande de session d'arrêter jusqu'à ce que l'application se ferme, ce qui vous permettra d'être en mesure de modifier le contenu de votre coeur tandis que git heureux vous attend. %* transmet tous les arguments pour le fichier de commandes grâce à Notepad++.

c:\src>echo %EDITOR%
c:\tools\runeditor.bat

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X