Git Bash aqui no Console2?


47

O MSysGit instala um item de menu de contexto que abre um prompt do Git Bash na pasta atualmente selecionada; no entanto, isso abre uma janela do cmd.exe e eu gostaria que ela fosse aberta no Console2 .

Que modificações eu preciso fazer para que isso funcione?

Observe que eu já vi essa pergunta relacionada , mas a resposta está desatualizada - o MSysGit agora está usando um script vba para chamar o prompt do bash. Além disso, não explica explicitamente como fazer as coisas funcionarem com o Console2.

Atualização: você pode estar interessado em fazer o mesmo com o ConEmu , um sucessor excelente para o Console . Veja aqui: Git Bash aqui no ConEmu

Respostas:


44

Aqui está o que eu fiz (seus caminhos quase certamente variam):

  1. Crie uma nova guia no console com os seguintes valores:
    • Título: Git Bash
    • Ícone: C:\Program Files\Git\etc\git.ico
    • Concha "C:\Program Files\Git\bin\sh.exe" --login -i
    • Dir de inicialização: %HOMEDRIVE%%HOMEPATH%
  2. Crie uma nova chave HKEY_CLASSES_ROOT\Directory\shell\chamada git_shell2com um valor de dados igual aGit Console Here
  3. Crie uma nova chave HKEY_CLASSES_ROOT\Directory\shell\git_shell2\chamada commandcom um valor de dados igual a"C:\Users\charlesr\My Dropbox\Software\Console2\Console.exe" -t "Git Bash" -d "%1"

Isso faz o truque.

Em vez de executar as etapas 2 e 3 acima, você pode simplesmente copiar o seguinte em um arquivo .reg (modificar os caminhos para se adequar à sua própria configuração primeiro) e depois importar para o 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\""

Apenas uma observação para outras pessoas que encontrarem isso mais tarde, verifique se você está usando a versão de 32 bits do Console2 ou isso falhará.
Coderanger1

Note-se que na última msysgit o ícone está agora em C: \ msysgit \ share \ recursos \ git.ico
Kevin Berridge

11
Obrigado Charles, mas por que executar as etapas 2 e 3? Funciona bem apenas na etapa 1, não sei por que a necessidade de alterar as configurações do repositório?
Mark Kadlec

2
Muito arrumado. Observe que você também pode adicionar o menu de contexto ao clicar no "plano de fundo" de uma pasta (a parte branca, não em um ícone) gist.github.com/4048138
Ozh

Estou usando essa configuração há algum tempo, mas parece ter a limitação infeliz de não conseguir executar .batscripts (sem alternar para uma guia diferente, executando sem problemas Cmd.exe). Alguém tem alguma idéia sobre isso?
Eoin

7

O script vba apenas inicia o atalho do Git Bash no mesmo diretório; basta alterar esse atalho para apontar para o executável do Console2 e configurar o Console2 para que ele use o sh do MSysGit como seu shell.


ATUALIZADA

Entrando em mais detalhes, eu só precisava fazê-lo novamente em um novo computador:

  • Configurando o Console2

    1. adicionou uma nova guia chamada "git"
    2. defina o ícone para C:\Program Files (x86)\Git\etc\git.ico
    3. defina o shell para C:\Program Files (x86)\Git\bin\sh.exe --login -i
  • Ajustando o atalho de Git Bash

    1. altere o destino do atalho para C:\Tools\Console2\Console.exe -t git -d .(bem onde está localizado o binário do Console2)
    2. aproveite o seu novo "Git Bash Here", lançando o Console2!

O truque é o "-d". opção passada para o Console2: o Git Bash.vbsscript altera o diretório atual para o ponto apontado pelo mouse antes de iniciar o atalho.

Espero que ajude.


5

Caso alguém se depare com isso querendo usar o MinGW Bash, encontrei uma solução para isso.

  1. Console2, Editar, Configurações, Guias, Adicionar
  2. Title = Bash
  3. Shell = C:\MinGW\msys\1.0\bin\sh.exe -l
  4. Editar registro

    ni hklm:software/classes/directory/shell/bash/command `
      -f -va 'c:/Console2/Console.exe -t Bash -d %v'
    
  5. Crie ~/.profilecom o seguinte:

    cd -
    

Página do cd

Isso funciona com o Console2 de 64 e 32 bits, sem ter certeza sobre o que estava acontecendo com o coder .


Existem vários problemas com este comando que fazem com que o console retorne um erro. Primeiro, HKCR\...\commandnão deve ser colocado entre aspas. Em seguida, acredito que \-dvocê pretende passar o /dparâmetro para especificar os dados para a nova entrada do registro. Além disso, você precisa de aspas duplas em torno do valor dos dados e o -tparâmetro faz com que o Console.exe não abra, então exclua-o. Deve ficar assim:reg add HKCR\Directory\shell\Bash\command /d "C:\Console2\Console.exe -d \"%V\""
David Kennedy

É óbvio pelos seus comentários que você ainda está usando cmd.exe, pois o Bash permite o uso de aspas simples e duplas para strings. Você deve considerar a atualização para o Bash.
Steven Penny

0

Supondo que você tenha uma guia Console2 chamada '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\"\\"
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.