Comment configurer un éditeur pour travailler avec Git sur Windows?

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

Terminal est muet mais pas de visuel ni L'ÉDITEUR défini. Veuillez fournir les message utilisant l'option-m ou-F.

donc j'ai compris que j'avais besoin d'une variable d'environnement appelée EDITOR. Pas de problème. Je l'ai mis à point pour le bloc-notes. Qui a travaillé, presque. Le message de propagation par défaut s'ouvre dans le bloc-notes. Mais Notepad ne supporte pas les flux de lignes nues. Je suis sorti et j'ai eu Notepad++ , mais je n'arrive pas à trouver comment configurer Notepad++ comme %EDITOR% de telle manière qu'il fonctionne avec Git comme prévu.

Je ne suis pas marié à Notepad++. À ce stade, je me fiche de l'éditeur que j'utilise. Je veux juste être capable de taper des messages de propagation dans un éditeur plutôt que la ligne de commande (avec -m ).

ceux d'entre vous qui utilisent Git sous Windows: Quel outil utilisez-vous pour modifier vos messages de propagation, et qu'avez-vous fait pour que cela fonctionne?

506
demandé sur Steven Penny 2008-08-14 05:43:04

30 réponses

mise à jour septembre 2015 (6 ans plus tard)

Le dernière version de git pour Windows (2.5.3) inclut désormais:

en configurant git config core.editor notepad , les utilisateurs peuvent maintenant utiliser notepad.exe comme éditeur par défaut .

La configuration de git config format.commitMessageColumns 72 sera reprise par l'enrubanneur de bloc-notes et le message de propagation de ligne après l'utilisateur le modifie.

Voir commettre 69b301b par Johannes Schindelin ( dscho ) .

et Git 2.16 (Q1 2018) affichera un message pour dire à l'utilisateur qu'il attend que l'Utilisateur termine l'édition lors de la fraie d'un éditeur, dans le cas où l'éditeur ouvre une fenêtre masquée ou dans un endroit obscur et l'utilisateur obtient perdu.

voir commit abfb04d (07 Décembre 2017), et commettre a64f213 (29 Novembre 2017) par Lars Schneider ( larsxschneider ) .

Aidé par: Junio CA Hamano ( gitster ) .

(fusionné par Junio CA Hamano -- gitster -- in commit 0c69a13 , 19 Dec 2017)

launch_editor() : indiquer que Git attend l'entrée de l'utilisateur

quand un graphique GIT_EDITOR est généré par une commande Git qui ouvre et attend l'entrée de l'utilisateur( par exemple " git rebase -i "), puis la fenêtre de l'éditeur peut-être caché par d'autres fenêtres.

L'utilisateur peut être laissé à regarder la fenêtre de terminal git d'origine sans même se rendre compte qu'il / elle a besoin pour interagir avec une autre fenêtre avant que Git puisse procéder. À cet utilisateur Git apparaît suspendu.

imprimer un message que Git est en attente d'entrée de l'éditeur Dans l'original terminaux et de s'en débarrasser lorsque l'éditeur renvoie, si le terminal supports effaçant la dernière ligne


réponse originale

je viens de le tester avec la version 1.6.2 de git.msysgit.0.186.gf7512 et Notepad++5.3.1 1519360920"

je préfère pas ont pour définir une Editeur 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.bat 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 juste de la session DOS, mais pas du shell git .

(pas qu'avec le cœur.mécanisme de configuration de l'éditeur, un script avec " start /WAIT... " ne fonctionnerait pas, mais seulement ouvrir une nouvelle fenêtre DOS)


la réponse de Bennett mentionne la possibilité d'éviter d'ajouter un script, mais de faire référence directement au programme lui-même entre de simples citations . Note de la direction des barres obliques! Utilisez / et non \ pour séparer les dossiers dans le nom de 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 à enregistrer à nouveau un git config .


la solution réelle (avec un script) était de réaliser que:

ce à quoi vous faites référence dans le fichier config est en fait un script shell ( /bin/sh ) , pas un script DOS.

donc ce qui fonctionne 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 réglage, je peux faire" git config --global --edit "à partir de DOS ou Git Shell, ou je peux faire " git rebase -i ... " à partir de DOS ou Git Shell.

Les commandes Bot déclencheront une nouvelle instance de notepad++ (d'où l'option -multiInst '), et attendront que cette instance soit fermée avant de continuer.

notez que j'utilise seulement"/", pas \ '. Et je installé msysgit en utilisant l'option 2. (ajouter le répertoire git\bin à la variable d'environnement PATH , mais sans remplacer certains outils de windows intégrés)

le fait que Le notepad++ wrapper est appelé .chauve-souris n'est pas important.

Il vaudrait mieux le nommer .npp.sh' et de le mettre dans le répertoire [git]\cmd (ou dans n'importe quel répertoire référencé par votre chemin) variable d'environnement).


Voir aussi:


lightfire228 ajoute dans les commentaires :

pour toute personne ayant un problème où N++ ouvre juste un fichier vierge, et git ne prend pas votre message de propagation, voir " abandon de propagation dû au message vide ": changez votre fichier .bat ou .sh pour dire:

"<path-to-n++" .git/COMMIT_EDITMSG -<arguments>. 

qui dira à notepad++ d'ouvrir la temp commit fichier, plutôt que d'un vide un nouveau.

496
répondu VonC 2018-01-29 06:57:35

en S'appuyant sur réponse de Darren , pour utiliser le bloc-notes++ vous pouvez simplement faire ceci (tous sur une ligne):

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

évidemment, la partie C:/Program Files/Notepad++/notepad++.exe devrait être le chemin vers L'exécutable Notepad++ sur votre système. Par exemple, il pourrait s'agir de C:/Program Files (x86)/Notepad++/notepad++.exe .

Fonctionne comme un charme pour moi.

263
répondu Bennett McElwee 2018-09-12 00:33:07

quoi qu'il en soit, j'ai juste joué avec ça et j'ai trouvé que 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 les guillemets simples, donc vous devez utiliser les guillemets doubles"pour spécifier l'argument de chaîne de caractères encastrée".

Cygwin (qui je crois est la plate-forme sous-jacente pour Bash de Git) d'autre part aime à la fois ' et " ; vous pouvez spécifier un CMD-like paths, en utilisant / au lieu de \ , aussi longtemps que la chaîne est citée, c'est-à-dire dans ce cas, en utilisant des guillemets simples.

le -m remplace/indique l'utilisation de plusieurs éditeurs et il n'est pas nécessaire de mettre un %* à la fin.

45
répondu Darren Bishop 2013-12-25 23:35:06

Edit: après la mise à jour vers vim 7.3, je suis arrivé à la conclusion que la façon la plus propre et la plus facile de faire ceci est:

  1. ajouter le dossier principal de Vim à votre chemin (clic droit sur mon ordinateur -> Propriétés -> Avancé -> Variables D'environnement)

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

si vous le faites de cette façon, alors je suis assez sûr qu'il travaillera avec cygwin.

réponse originale:

même avec quelques réponses liées à vim, j'avais du mal à obtenir que cela fonctionne avec gvim sous Windows (tout en n'utilisant pas un fichier batch ou %EDITOR% ou cygwin).

ce que j'ai finalement obtenu est agréable et propre, et tire de quelques-unes des solutions ici:

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

un gotcha qui m'a pris un certain temps est ceux-ci sont pas les barres obliques de style Windows, ce sont des barres obliques normales.

23
répondu Nick Knowlson 2014-11-12 23:26:22

le bloc-notes++ fonctionne très bien, bien que je choisisse de rester avec le bloc-notes,-m, ou même parfois l'édition "intégrée."

le problème que vous rencontrez en utilisant Notepad++ est lié à la façon dont git lance l'exécutable Editeur. Ma solution est de définir EDITOR à un fichier batch, plutôt que l'exécutable editor actuel, qui fait ce qui suit:

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

/ WAIT indique à la session en ligne de commande de s'arrêter jusqu'à la sortie de l'application, ainsi vous serez en mesure d'éditer au contenu de votre cœur pendant que git vous attend avec joie. %* passe tous les arguments au fichier batch à Notepad++.

c:\src>echo %EDITOR%
c:\tools\runeditor.bat
14
répondu Patrick Johnmeyer 2008-08-14 03:24:30

Wordpad!

je suis heureux d'utiliser vim, mais comme j'essaie de présenter Git à la compagnie, je voulais quelque chose que nous aurions tous, et j'ai trouvé que Wordpad semble fonctionner correctement (c.-à-d. Git attend que vous ayez terminé l'édition et fermer la fenêtre).

git config core.editor '"C:\Program Files\Windows NT\Accessories\wordpad.exe"'

qui utilise Git Bash sur msysgit; Je n'ai pas essayé de L'invite de commande Windows (si cela fait une différence).

10
répondu Gavin 2010-08-06 09:37:00

J'utilise aussi Cygwin sur Windows, mais avec gvim (par opposition au terminal basé sur vim ).

Pour faire ce travail, j'ai fait ce qui suit:

  1. a créé un fichier de lot en une ligne (nommé git_editor.bat ) qui contient les éléments suivants::

    "C:/Program Files/Vim/vim72/gvim.exe" --nofork "%*"
  2. placé git_editor.bat dans mon PATH .
  3. Set GIT_EDITOR=git_editor.bat

avec ce fait, git commit , etc. va correctement invoquer l'exécutable gvim.

NOTE 1: l'option --nofork de gvim assure qu'elle bloque jusqu'à ce que le message de propagation ait été écrit.

NOTE 2: les guillemets autour du chemin vers gvim sont nécessaires si vous avez des espaces dans le chemin.

NOTE 3: les guillemets autour de "%*" sont nécessaires juste au cas où git passe un chemin de fichier avec des espaces.

9
répondu Tim Henigan 2009-10-15 19:28:15

merci à la communauté SO ... et un peu de recherche j'ai pu obtenir mon éditeur préféré, EditPadPro , pour travailler en tant que noyau de l'éditeur avec msysgit 1.7.5.GIT et TortoiseGit v1.7.3.0 contre WinXP SP3 ...

suite aux conseils ci-dessus j'ai ajouté le chemin à un script bash pour l'éditeur de code ...

git config --global core.editor c:/msysgit/cmd/epp.sh

cependant après plusieurs tentatives infructueuses aux solutions mentionnées ci-dessus ... Je a finalement été en mesure d'obtenir ce travail. Selon la documentation D'EditPadPro, l'ajout du drapeau' /newinstance ' permettrait au shell d'attendre l'entrée de l'éditeur ....

L ' /newinstance ' drapeau a été la clé dans mon cas ...

#!/bin/sh
"C:/Program Files/JGsoft/EditPadPro6/EditPadPro.exe" //newinstance "$*"
8
répondu Eddie B 2011-09-26 00:54:56

Vim/Gvim fonctionne bien pour moi.

>echo %EDITOR%

c:\Vim\Vim71\vim.exe
6
répondu Matt McMinn 2008-08-14 14:39:14

c'est le symptôme de plus grands problèmes. Notamment que vous avez quelque chose de définir terme=muet. D'autres choses qui ne fonctionnent pas correctement sont la commande less qui dit que vous n'avez pas de terminal entièrement fonctionnel. Il semble que cela soit le plus souvent causé par le fait d'avoir un terme fixé à quelque chose dans vos variables d'environnement windows globales. Pour moi, le problème est venu quand j'ai installé Strawberry Perl quelques informations à ce sujet est sur le bogue msysgit pour ce problème comme ainsi que plusieurs solutions.

La première solution est de le fixer dans votre ~/.bashrc en ajoutant:

export TERM=msys

, Vous pouvez le faire à partir de Git BASH invite de la sorte:

echo "export TERM=msys" >> ~/.bashrc

l'autre solution qui est finalement ce que j'ai fait parce que je ne me soucie pas des raisons de Perl fraise pour ajouter TERM=dumb à mes paramètres d'environnement est d'aller et supprimer le terme = dumb comme dirigé dans ce commentaire sur le bogue msysgit rapport .

contrôle Panneau De Configuration/Système/Avancé/Environnement Variable... (ou similaires, en fonction de votre version de Windows) est où les variables d'environnement collantes sont définies sur Windows. Par défaut, le TERME n'est pas définir. Si le terme est défini là-dedans, alors vous (ou l'un des programmes que vous avez installé - par exemple. Perl de fraise) le définir. Supprimer ce paramètre, et vous doit être fine.

de même si vous utilisez Strawberry Perl et faites attention au client CPAN ou quelque chose comme ça, vous pouvez laisser le TERM=dumb seul et utiliser unset TERM dans votre ~/.bashrc fichier qui aura un effet similaire à la définition d'un terme explicite comme ci-dessus.

bien sûr, toutes les autres solutions sont correctes que vous pouvez utiliser git config --global core.editor $MYFAVORITEEDITOR pour s'assurer que git utilise votre éditeur préféré quand il a besoin de lancer un pour vous.

6
répondu lambacck 2016-01-26 08:52:55

Pour Atome vous pouvez le faire

git config --global core.editor "atom --wait"

et similaires pour VSCode

git config --global core.editor "code --wait"

qui ouvrira une atome ou VSCode fenêtre pour que vous commettiez à travers,

ou pour Sublime

git config --global core.editor "subl -n -w"
6
répondu OmgKemuel 2016-11-05 12:56:01

J'ai eu PortableGit 1.6 fonctionne très bien, mais après la mise à niveau vers PortableGit-1.7 windows release a eu des problèmes. Certaines commandes git ouvrent le bloc-notes++.exe bien, mais certains ne le font pas, surtout git rebase se comporte différemment.

le problème est que certaines commandes exécutent le processus cmd de windows.certaines utilisent le processus cmd unix. Je veux donner des attributs de démarrage à L'éditeur Notepad++, alors j'ai besoin d'un script personnalisé. Ma solution est de cette.

1) Créer un script pour exécuter un éditeur de texte approprié. Le Script a l'air bizarre mais gère les variations windows et unix. c:/PortableGit/cmd/git-editor.chauve-souris

#!/bin/sh
#open a new instance

function doUnix() {
  "c:\program files\notepad++\notepad++.exe" -multiInst -nosession -notabbar $*
  exit
}

doUnix $*

:WINCALL
"c:\program files\notepad++\notepad++.exe" -multiInst -nosession -notabbar %*

2) Set Global core.variable de l'éditeur Le Script a été sauvegardé dans le dossier git / cmd, donc il est déjà dans un chemin gitconsole, c'est obligatoire car le chemin complet peut ne pas fonctionner correctement.

git config --global core.editor "git-editor.bat"

maintenant je peux lancer git commit-a et git rebase-i master commandes. Essayez si vous avez des problèmes avec l'outil git windows.

4
répondu Whome 2010-04-06 09:36:53

j'utilise git sur plusieurs plateformes, et j'aime utiliser les mêmes paramètres de git sur chacune d'elles. (En fait, j'ai tous mes fichiers de configuration sous contrôle de publication avec git, et j'ai mis un clone de dépôt git sur chaque machine. La solution que j'ai trouvée est la suivante:

j'ai mis mon éditeur à giteditor

git config --global core.editor giteditor

puis je crée un lien symbolique appelé giteditor qui est dans mon chemin . (J'ai un répertoire personnel bin , mais n'importe où dans le chemin fonctionne.) Lien point à mon éditeur de choix. Sur différentes machines et plates-formes, j'utilise des éditeurs différents, ce qui signifie que je n'ai pas à changer ma configuration git universelle ( ).gitconfig ), juste le lien que giteditor pointe.

liens symboliques sont gérées par chaque système d'exploitation je connais, bien qu'ils puissent utiliser les différentes commandes. Pour Linux, vous utilisez ln-s . Pour Windows, vous utilisez le cmd intégré mklink . Ils ont des syntaxes différentes (que vous devriez chercher plus haut), mais tout fonctionne de la même façon, vraiment.

4
répondu Bill 2013-06-10 13:01:15

basé sur VonC 151950920 "suggestion ci-dessus , cela a fonctionné pour moi (me rendait fou):

git config --global core.editor "'C:/Program Files (x86)/Sublime Text 3/subl.exe' -wait"

omettre -wait peut causer des problèmes surtout si vous travaillez avec gerrit et changez les ID qui doivent être copiés manuellement au bas de votre message de propagation

4
répondu dan 2017-05-23 12:02:57

Edit .le fichier gitconfig dans c:\Users\YourUser dossier et ajouter:

[core]
editor = 'C:\Program files\path\to\editor.exe'
4
répondu guwer 2017-01-13 14:39:55

C'est mon installation pour utiliser Geany comme un éditeur pour git:

git config --global core.editor C:/path/to/geany.bat

avec le contenu suivant dans geany.chauve-souris :

#!/bin/sh
"C:\Program Files\Geany\bin\Geany.exe" --new-instance "$*"

il fonctionne à la fois dans la console DOS et msysgit.

3
répondu CharlesB 2010-09-29 08:51:54

j'ai eu du mal à convaincre git de coopérer avec wordpad, KomodoEdit et à peu près tous les autres éditeurs que je lui donne. La plupart sont ouverts pour l'édition, mais git n'attend pas que la sauvegarde/fermeture ait lieu.

comme une béquille, je viens de faire i.e.

git commit -m "Fixed the LoadAll method"

pour faire bouger les choses. Tend à garder mes messages de propagation un peu plus courts qu'ils ne devraient l'être, mais il y a clairement du travail à faire sur la version Windows de git.

le GitGUI n'est pas si mal non plus. Il faut un peu d'orientation, mais après, ça fonctionne assez bien.

3
répondu J Wynia 2014-10-01 16:59:57

j'utilise Cygwin sous Windows, donc j'utilise:

export EDITOR="emacs -nw"

le -nw est pour no-windows , i.e. dire à Emacs de ne pas essayer D'utiliser X11.

les reliures à clé Emacs ne fonctionnent pas pour moi à partir d'un shell Windows, donc je n'utiliserais cela qu'à partir d'un shell Cygwin... (recommandation rxvt.)

3
répondu bjnortier 2016-01-28 21:23:25

il semble que Git ne trouvera pas l'éditeur s'il y a des espaces dans le chemin. Vous devrez donc mettre le fichier batch mentionné dans Patrick's answer dans un chemin non-blanc.

2
répondu Community 2017-05-23 11:55:03

je préfère utiliser emacs. Se il peut être un peu délicat.

  1. téléchargez emacs et déballez-le quelque part comme c:\emacs .
  2. Exécuter c:\emacs\bin\addpm.exe . Vous devez cliquer avec le bouton droit de la souris et "exécuter en tant qu'administrateur" si vous utilisez Windows Vista ou une version plus récente. Cela mettra les exécutables sur votre chemin.
  3. ajouter (server-start) quelque part dans votre fichier .emacs . Voir la FAQ Emacs Windows pour savoir où placer votre fichier .emacs .
  4. git config --global core.editor emacsclientw

Git va maintenant ouvrir des fichiers dans le cadre d'un processus emacs existant. Vous devrez exécuter ce processus existant manuellement à partir de c:\emacs\bin\runemacs.exe .

2
répondu Michael Steele 2010-07-23 15:32:49

j'ai juste eu le même problème et trouvé une solution différente. Je recevais

error: There was a problem with the editor 'ec'

j'ai VISUAL=ec , et un fichier par lots appelé ec.bat sur mon chemin qui contient une ligne:

c:\emacs\emacs-23.1\bin\emacsclient.exe %*

cela me permet d'éditer des fichiers depuis la ligne de commande avec ec <filename> , et avoir visual set signifie que la plupart des programmes unixy le récupèrent aussi. Git semble chercher le chemin différemment de mes autres commandes cependant - quand j'ai regardé git commit dans ProcMon je l'ai vu regarder dans tous les dossiers sur le chemin pour ec et pour ec.exe , mais pas pour ec.bat . J'ai ajouté une autre variable d'environnement ( GIT_EDITOR=ec.bat ) et tout allait bien.

1
répondu Tom Dunham 2009-09-04 15:55:51

j'ai réussi à faire fonctionner la version d'environnement en paramétrant la variable EDITOR en utilisant des guillemets et / :

EDITOR="c:/Program Files (x86)/Notepad++/notepad++.exe"
1
répondu Mike 2012-01-25 07:44:11

J'utilise Github pour Windows qui est une option visuelle agréable. Mais je préfère aussi la ligne de commande, donc pour que ça marche quand j'ouvre un repo dans un shell Git, je mets juste ce qui suit:

git config --global core.editor vim

qui fonctionne très bien.

1
répondu JaKXz 2015-02-07 19:08:25

cela fonctionne pour Powershell et cmder-1.2 (en cas d'utilisation avec powershell). Dans./~ gitconfig

[core]
    editor = 'c:/program files/sublime text 3/subl.exe' -w

Comment faire de Sublime Text l'éditeur par défaut de Git?

1
répondu rofrol 2017-05-23 12:02:57

ressuscitant un vieux fil, mais j'ai trouvé une solution magnifiquement simple posté ici - bien qu'il puisse y avoir une erreur dans le chemin dans lequel vous devez copier sur le "subl" fichier donné par l'auteur. J'exécute Win 7 x64 et j'ai dû mettre le fichier "subl" dans mon dossier /Git/cmd/ pour le faire fonctionner. Il fonctionne comme un charme.

1
répondu avg 2015-10-27 12:42:33

ATOM et Windows 10

  1. à droite a cliqué sur L'icône Atom au bureau et cliqué sur Propriétés.
  2. copié le "Start in" chemin de localisation
  3. a regardé là-bas avec l'Explorateur de fenêtres et a trouvé "atom.EXE."
  4. Tapé ceci dans le git bash:

    git config --global core.editor C:/Users/YOURNAMEUSER/AppData/Local/atom/app-1.7.4/atom.exe"

Note: j'ai changé tout \ pour / . J'ai créé un .bashrc à mon répertoire personnel et utilisé / pour définir mon répertoire personnel et cela a fonctionné, donc j'ai supposé / sera la voie à suivre.

1
répondu Jonathan Ramos 2016-06-04 05:37:48

lors de l'utilisation d'un système homedrive (Samba share, nfs, ...) votre dossier ~/.git est partagé sur tous les systèmes ce qui peut entraîner plusieurs problèmes. Ainsi je préfère un script pour déterminer l'éditeur droit pour le système droit:

#!/usr/bin/perl
# Detect which system I'm on and choose the right editor
$unamea = `uname -a`;
if($unamea =~ /mingw/i){
    if($unamea =~ /devsystem/i){#Check hostname
        exec('C:\Program Files (x86)\Notepad++\notepad++.exe', '-multiInst', '-nosession', @ARGV);
    }
    if($unamea =~ /testsystem/i){
        exec('C:\Program Files\Notepad++\notepad++.exe', '-multiInst', '-nosession', @ARGV);
    }
}
$MCEDIT=`which mcedit`;
if($MCEDIT =~ /mcedit/){
    exec($MCEDIT, @ARGV);
}
$NANO=`which nano`;
if($NANO =~ /nano/){
    exec($NANO, @ARGV);
}
die "You don't have a suitable editor!\n";

on pourrait considérer un script shell simple, mais j'ai utilisé perl car il est livré avec msysgit et vos systèmes unixoid en fourniront un aussi. Mettre le script dans /home/username/bin , qui devrait être ajouté à PATH dans .bashrc ou .profile . Une fois ajouté avec git config --global core.editor giteditor.pl vous avez le bon éditeur, où que vous soyez.

0
répondu mbx 2011-08-23 15:55:52

cela fonctionne pour moi en utilisant Cygwin et Textpad 6( EDIT: travaille aussi avec Textpad 5 aussi longtemps que vous faites le changement évident au script), et probablement le modèle pourrait être utilisé pour d'autres éditeurs aussi bien:

~/.gitconfig:

[core]
    editor = ~/script/textpad.sh

~/script/textpad.sh

#!/bin/bash

APP_PATH=`cygpath "c:/program files (x86)/textpad 6/textpad.exe"`
FILE_PATH=`cygpath -w `

"$APP_PATH" -m "$FILE_PATH"

Ce one-liner qui fonctionne aussi bien:

~/script/textpad.sh (option 2):

"`cygpath "c:/program files (x86)/textpad 6/textpad.exe"`" -m "`cygpath -w `"
0
répondu kghastie 2012-10-26 20:28:18

Voici une solution avec Cygwin:

#!/bin/dash -e
if [ "" ]
then k=$(cygpath -w "")
elif [ "$#" != 0 ]
then k=
fi
Notepad2 ${k+"$k"}
  1. si aucun chemin, passer aucun chemin

  2. si le chemin est vide, passez le chemin vide

  3. si le chemin d'accès n'est pas vide, convertissez-le en format Windows.

ensuite j'ai mis ces variables:

export EDITOR=notepad2.sh
export GIT_EDITOR='dash /usr/local/bin/notepad2.sh'
  1. L'éditeur permet à script de travailler avec Git

  2. GIT_EDITOR permet à script de travailler avec Hub commands

Source

0
répondu Steven Penny 2016-12-24 23:03:24

je viens de l'utiliser TortoiseGit tout droit sorti de la boîte. S'intègre parfaitement avec mes PuTTY clés publiques. Possède un éditeur parfait pour les messages de propagation.

-1
répondu icc97 2012-06-10 12:13:32