Git Bash qui in Console2?


47

MSysGit installa una voce di menu contestuale che apre un prompt di Git Bash nella cartella attualmente selezionata; tuttavia, questo apre una finestra di cmd.exe e vorrei che si aprisse invece in Console2 .

Quali modifiche devo apportare per farlo funzionare?

Nota, ho visto questa domanda correlata , ma la risposta è obsoleta: MSysGit ora utilizza uno script vba per richiamare il prompt di bash. Inoltre non spiega esplicitamente come far funzionare le cose con Console2.

Aggiornamento: potresti essere interessato a fare lo stesso con ConEmu , un successore piuttosto eccellente di Console . Vedi qui: Git Bash Qui in ConEmu

Risposte:


44

Ecco cosa ho fatto (i tuoi percorsi con quasi certamente variano):

  1. Crea una nuova scheda in Console con i seguenti valori:
    • Titolo: Git Bash
    • Icona: C:\Program Files\Git\etc\git.ico
    • Conchiglia "C:\Program Files\Git\bin\sh.exe" --login -i
    • Dir di avvio: %HOMEDRIVE%%HOMEPATH%
  2. Crea una nuova chiave in HKEY_CLASSES_ROOT\Directory\shell\chiamata git_shell2con un valore di dati diGit Console Here
  3. Crea una nuova chiave in HKEY_CLASSES_ROOT\Directory\shell\git_shell2\chiamata commandcon un valore di dati di"C:\Users\charlesr\My Dropbox\Software\Console2\Console.exe" -t "Git Bash" -d "%1"

Questo fa il trucco.

Invece di eseguire i passaggi 2 e 3 sopra, è possibile copiare quanto segue in un file .reg (modificare prima i percorsi per adattarli alla propria configurazione), quindi importarli nel registro.

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\""

Solo una nota per gli altri che lo troveranno in seguito, assicurati di utilizzare la versione a 32 bit di Console2 o questo non riuscirà.
coderanger,

Si noti che nell'ultimo msysgit l'icona è ora in C: \ msysgit \ share \ resources \ git.ico
Kevin Berridge,

1
Grazie Charles, ma perché eseguire i passaggi 2 e 3? Funziona bene solo facendo il passaggio 1, non sai perché è necessario modificare le impostazioni del repository?
Mark Kadlec,

2
Molto pulito. Nota che puoi anche aggiungere un menu contestuale quando fai clic sullo "sfondo" di una cartella (la parte bianca, non su un'icona) gist.github.com/4048138
Ozh

Sto usando questa configurazione da un po ', ma sembra avere lo sfortunato limite di non essere in grado di eseguire .batscript (senza passare a una scheda diversa, senza problemi Cmd.exe). Qualcuno ha qualche idea su questo?
Eoin

7

Lo script vba avvia il collegamento Git Bash nella stessa directory; basta cambiare quel collegamento per farlo puntare all'eseguibile di Console2 e configurare Console2 in modo che utilizzi sh di MSysGit come shell.


AGGIORNATO

Andando in maggiori dettagli come ho appena avuto bisogno di farlo di nuovo su un nuovo computer:

  • Configurare Console2

    1. aggiunta una nuova scheda chiamata "git"
    2. imposta l'icona su C:\Program Files (x86)\Git\etc\git.ico
    3. imposta la shell su C:\Program Files (x86)\Git\bin\sh.exe --login -i
  • Modifica della scorciatoia di Git Bash

    1. cambia la destinazione del collegamento in C:\Tools\Console2\Console.exe -t git -d .(bene dove si trova il tuo binario Console2)
    2. goditi il ​​tuo nuovo "Git Bash Here" che avvia Console2!

Il trucco è il "-d". opzione passata a Console2: lo Git Bash.vbsscript modifica la directory corrente nel punto puntato dal mouse prima di avviare il collegamento.

Spero che aiuti.


5

Nel caso qualcuno si imbatte in questo voler usare MinGW Bash, ho trovato una soluzione per questo.

  1. Console2, Modifica, Impostazioni, Schede, Aggiungi
  2. Titolo = Bash
  3. Shell = C:\MinGW\msys\1.0\bin\sh.exe -l
  4. Modifica registro

    ni hklm:software/classes/directory/shell/bash/command `
      -f -va 'c:/Console2/Console.exe -t Bash -d %v'
    
  5. Crea ~/.profilecon il seguente:

    cd -
    

cd Man Page

Funziona con Console2 a 64-bit e 32-bit, non sono sicuro di cosa fosse il coderanger .


Esistono diversi problemi con questo comando che fa sì che la console restituisca un errore. In primo luogo, HKCR\...\commandnon deve essere racchiuso tra virgolette. Successivamente, credo che \-dtu intenda passare il /dparametro per specificare i dati per la nuova voce di registro. Inoltre, hai bisogno di virgolette doppie attorno al valore dei dati e il -tparametro impedisce a Console.exe di non aprirsi affatto, quindi escludilo. Dovrebbe apparire così:reg add HKCR\Directory\shell\Bash\command /d "C:\Console2\Console.exe -d \"%V\""
David Kennedy,

Dai tuoi commenti è evidente che stai ancora utilizzando cmd.exe, poiché Bash consente l'uso di virgolette singole e doppie per le stringhe. Dovresti prendere in considerazione l'aggiornamento a Bash.
Steven Penny,

0

Supponendo che tu abbia una scheda Console2 chiamata '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\"\\"
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.