Git Bash Ici dans Console2?

47

MSysGit installe un élément de menu contextuel qui ouvre une invite Git Bash dans le dossier actuellement sélectionné. Cependant, cela ouvre une fenêtre cmd.exe et je voudrais plutôt l’ouvrir dans Console2 .

Quelles modifications dois-je faire pour que cela fonctionne?

Remarque, j'ai vu cette question connexe , mais la réponse est obsolète - MSysGit utilise maintenant un script vba pour appeler l'invite bash. De plus, il n’explique pas clairement comment faire fonctionner les choses avec Console2.

Mise à jour: vous voudrez peut-être faire la même chose avec ConEmu , un successeur plutôt excellent de Console . Voir ici: Git Bash Here in ConEmu

Charles Roper
la source

Réponses:

44

Voici ce que j'ai fait (vos chemins varient presque certainement):

  1. Créez un nouvel onglet dans la console avec les valeurs suivantes:
    • Titre: Git Bash
    • Icône: C:\Program Files\Git\etc\git.ico
    • coquille "C:\Program Files\Git\bin\sh.exe" --login -i
    • Répertoire de démarrage: %HOMEDRIVE%%HOMEPATH%
  2. Créez une nouvelle clé HKEY_CLASSES_ROOT\Directory\shell\appelée git_shell2avec une valeur de donnée deGit Console Here
  3. Créez une nouvelle clé HKEY_CLASSES_ROOT\Directory\shell\git_shell2\appelée commandavec une valeur de donnée de"C:\Users\charlesr\My Dropbox\Software\Console2\Console.exe" -t "Git Bash" -d "%1"

Cela fait l'affaire.

Au lieu de suivre les étapes 2 et 3 ci-dessus, vous pouvez simplement copier les éléments suivants dans un fichier .reg (modifier d’abord les chemins en fonction de votre configuration), puis les importer dans le registre.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\git_shell2]
@="Git Console Here"

[HKEY_CLASSES_ROOT\Directory\shell\git_shell2\command]
@="\"C:\\Users\\charlesr\\My Dropbox\\Software\\Console2\\Console.exe\" -t \"Git Bash\" -d \"%1\""
Charles Roper
la source
Juste une note pour les autres qui le trouveront plus tard, assurez-vous que vous utilisez la version 32 bits de Console2 sinon cela échouera.
coderanger
Notez que dans le dernier msysgit, l’icône est maintenant dans C: \ msysgit \ share \ resources \ git.ico
Kevin Berridge le
1
Merci Charles, mais pourquoi exécuter les étapes 2 et 3? Cela fonctionne bien en effectuant l'étape 1, vous ne savez pas pourquoi il est nécessaire de modifier les paramètres du référentiel.
Mark Kadlec le
2
Très propre. Notez que vous pouvez également ajouter un menu contextuel lorsque vous cliquez sur "l'arrière-plan" d'un dossier (la partie blanche, pas sur une icône). Gist.github.com/4048138
Ozh
J'utilise cette configuration depuis un certain temps, mais il semble y avoir la limite regrettable de ne pas être en mesure d'exécuter des .batscripts (sans passer à un autre onglet, en cours d'exécution Cmd.exe). Quelqu'un at-il des idées à ce sujet?
Eoin
7

Le script vba lance simplement le raccourci Git Bash dans le même répertoire; Il suffit de changer ce raccourci pour le faire pointer sur l'exécutable de Console2 et de configurer Console2 pour qu'il utilise sh de MSysGit comme shell.


MIS À JOUR

Entrer dans plus de détails car je devais juste le refaire sur un nouvel ordinateur:

  • Configuration de Console2

    1. ajout d'un nouvel onglet appelé "git"
    2. mettre l'icône à C:\Program Files (x86)\Git\etc\git.ico
    3. mettre la coquille à C:\Program Files (x86)\Git\bin\sh.exe --login -i
  • Tweaking Git Bash's raccourci

    1. changez la cible du raccourci en C:\Tools\Console2\Console.exe -t git -d .(où se trouve votre binaire Console2)
    2. profitez de votre nouveau "Git Bash Here" en lançant Console2!

Le truc c'est le "-d." option passée à Console2: le Git Bash.vbsscript modifie le répertoire en cours au point indiqué par la souris avant le lancement du raccourci.

J'espère que ça t'as aidé.

Gregory Pakosz
la source
5

Au cas où quelqu'un voudrait utiliser MinGW Bash, j'ai trouvé une solution à ce problème.

  1. Console2, Modifier, Paramètres, Onglets, Ajouter
  2. Titre = Bash
  3. Shell = C:\MinGW\msys\1.0\bin\sh.exe -l
  4. Modifier le registre

    ni hklm:software/classes/directory/shell/bash/command `
      -f -va 'c:/Console2/Console.exe -t Bash -d %v'
    
  5. Créez ~/.profileavec les éléments suivants:

    cd -
    

cd Man Page

Cela fonctionne avec Console2 64 bits et 32 ​​bits, vous ne savez pas trop ce que coderanger faisait.

Steven Penny
la source
Cette commande pose plusieurs problèmes qui entraînent le renvoi d’une erreur par la console. Tout d'abord, HKCR\...\commandne devrait pas être entouré de guillemets. Ensuite, je pense que \-dvous entendez passer le /dparamètre pour spécifier les données de la nouvelle entrée de registre. De plus, vous avez besoin de guillemets doubles autour de la valeur des données et le -tparamètre empêche Console.exe de s'ouvrir du tout, alors excluez-le. Cela devrait ressembler à ceci:reg add HKCR\Directory\shell\Bash\command /d "C:\Console2\Console.exe -d \"%V\""
David Kennedy
Il est évident d'après vos commentaires que vous utilisez encore cmd.exe, car Bash permet d'utiliser des guillemets simples et doubles pour les chaînes. Vous devriez envisager de passer à Bash.
Steven Penny
0

En supposant que vous ayez un onglet Console2 nommé 'bash':

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\Background\shell\console2_bash]
@="Bash here (Console2)"
"NoWorkingDirectory"=""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\Background\shell\console2_bash\command]
@="\"C:\\Program Files (x86)\\Console2\\Console.exe\" -t Bash -d \"%V\"\\"
Colonel Panic
la source