Git Bash Aquí en Console2?

47

MSysGit instala un elemento del menú contextual que abre un indicador de Git Bash en la carpeta seleccionada actualmente; sin embargo, esto abre una ventana cmd.exe y me gustaría que se abra en Console2 .

¿Qué modificaciones necesito hacer para que esto funcione?

Tenga en cuenta que he visto esta pregunta relacionada , pero la respuesta está desactualizada: MSysGit ahora está utilizando un script vba para invocar el indicador bash. Además, no explica explícitamente cómo hacer que las cosas funcionen con Console2.

Actualización: puede estar interesado en hacer lo mismo con ConEmu , un excelente sucesor de la consola . Ver aquí: Git Bash Aquí en ConEmu

Charles Roper
fuente

Respuestas:

44

Esto es lo que hice (sus caminos con casi seguro varían):

  1. Cree una nueva pestaña en la Consola con los siguientes valores:
    • Título: Git Bash
    • Icono: C:\Program Files\Git\etc\git.ico
    • Cáscara "C:\Program Files\Git\bin\sh.exe" --login -i
    • Directorio de inicio: %HOMEDRIVE%%HOMEPATH%
  2. Cree una nueva clave en HKEY_CLASSES_ROOT\Directory\shell\llamada git_shell2con un valor de datos deGit Console Here
  3. Cree una nueva clave en HKEY_CLASSES_ROOT\Directory\shell\git_shell2\llamada commandcon un valor de datos de"C:\Users\charlesr\My Dropbox\Software\Console2\Console.exe" -t "Git Bash" -d "%1"

Esto hace el truco.

En lugar de seguir los pasos 2 y 3 anteriores, puede copiar lo siguiente en un archivo .reg (modifique primero las rutas para que se adapten a su propia configuración) y luego importar al 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\""
Charles Roper
fuente
Solo una nota para otros que encuentren esto más adelante, asegúrese de estar utilizando la versión de 32 bits de Console2 o esto fallará.
coderanger
Tenga en cuenta que en el último msysgit el icono ahora está en C: \ msysgit \ share \ resources \ git.ico
Kevin Berridge el
1
Gracias Charles, pero ¿por qué ejecutar los pasos 2 y 3? Funciona bien solo con el paso 1, ¿no está seguro de por qué es necesario cambiar la configuración del repositorio?
Mark Kadlec
2
Muy aseado. Tenga en cuenta que también puede agregar el menú contextual al hacer clic en el "fondo" de una carpeta (la parte blanca, no en un icono) gist.github.com/4048138
Ozh
He estado usando esta configuración durante un tiempo, pero parece tener la desafortunada limitación de no poder ejecutar .batscripts (sin cambiar a una pestaña diferente, ejecutar sin formato Cmd.exe). ¿Alguien tiene alguna idea sobre esto?
Eoin
7

El script vba simplemente inicia el acceso directo de Git Bash en el mismo directorio; simplemente cambie ese acceso directo para que apunte al ejecutable de Console2 y configure Console2 para que use sh de MSysGit como shell.


ACTUALIZADO

Entrando en más detalles ya que solo necesitaba hacerlo nuevamente en una computadora nueva:

  • Configurando Console2

    1. agregó una nueva pestaña llamada "git"
    2. establecer el icono en C:\Program Files (x86)\Git\etc\git.ico
    3. establecer el shell a C:\Program Files (x86)\Git\bin\sh.exe --login -i
  • Afinando el atajo de Git Bash

    1. cambie el objetivo de acceso directo a C:\Tools\Console2\Console.exe -t git -d .(bien donde se encuentra su binario Console2)
    2. ¡disfruta de tu nuevo "Git Bash Here" lanzando Console2!

El truco es el "-d". opción pasada a Console2: el Git Bash.vbsscript cambia el directorio actual al punto señalado por el mouse antes de iniciar el acceso directo.

Espero que ayude.

Gregory Pakosz
fuente
5

En caso de que alguien se encuentre con esto queriendo usar MinGW Bash, encontré una solución para eso.

  1. Consola2, Editar, Configuración, Pestañas, Agregar
  2. Título = 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. Crea ~/.profilecon lo siguiente:

    cd -
    

cd Man Page

Esto funciona con Console2 de 64 y 32 bits, no estoy seguro de qué era el coderanger .

Steven Penny
fuente
Hay varios problemas con este comando que hace que la consola devuelva un error. Primero, HKCR\...\commandno debe encerrarse entre comillas. A continuación, creo \-dque quiere decir pasar el /dparámetro para especificar los datos para la nueva entrada del registro. Además, necesita comillas dobles alrededor del valor de los datos y el -tparámetro hace que Console.exe no se abra en absoluto, así que excluya eso. Debería verse así:reg add HKCR\Directory\shell\Bash\command /d "C:\Console2\Console.exe -d \"%V\""
David Kennedy el
Es obvio por sus comentarios que todavía está usando cmd.exe, ya que Bash permite el uso de comillas simples y dobles para cadenas. Debería considerar actualizar a Bash.
Steven Penny
0

Suponiendo que tiene una pestaña Console2 llamada '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\"\\"
Coronel Panic
fuente