2010-09-28 18 views
18

Estoy usando Console2 como contenedor bash en Windows. Lo que es más importante, me permite iniciar una nueva pestaña bash en un directorio de proyecto predefinido.cygwin + console2: ejecutando cygwin bash con el directorio de inicio

Ahora me gustaría reemplazar la línea de comandos de Windows por un Cygwin bash. Sin embargo, Cygwin no respeta la configuración de "Dir. Inicio" en Console2.

Básicamente, veo tres solución se acerca:

  • Figura cabo cómo el entorno Console2 tiene que parecer para que la fiesta Cygwin respeta
  • añadir un parámetro inicio a la fiesta de Cygwin , estableciendo el directorio de inicio
  • Automáticamente ejecuta un script después del inicio de bash que cambia el directorio

Buscando en la documentación de Cygwin y el resto de Internet, no pude encontrar una solución a ninguno de esos enfoques. Sin embargo, podría imaginar que la solución es trivial para otra persona. :)

medio ambiente: Win XP, consola de 2.00.146, Cygwin 1.7.7, GNU Bash 3.2.51 (24)

Respuesta

23

En cuanto al último punto, editar su ~/.bashrc y añadir un comando cd al final.

En lugar de eso, se puede probar esto por su primer punto: si la configuración Console2 para iniciar Bash es como la siguiente:

bash --login -i 

cambio a:

bash --login -i -c 'cd somdir; exec bash' 
+1

Para la primera solución, añadí ' cd/cygdrive/c/projects' a '~/.bashrc', que no se ha ejecutado re. Su segunda solución funciona, sin embargo, después de 5 intentos. Aparentemente, es una necesidad usar rutas POSIX. – crispy

0

En cuanto a su último punto, se puede poner por ejemplo:

cd /cygdrive/d 

en ~/.bash_profile Esto se recogerá cuando use Console2 y también cuando ejecute Cygwin.

6

que estaba teniendo el mismo problema, vio la publicación, y luego encontrado esta respuesta:

  1. Ejecutar el programa de instalación Setup.exe Cygwin y añadir el paquete "Chere"
  2. En Console2, añadir un nuevo pestaña llamada "Bash" con una ruta de shell de "C: \ cygwin \ bin \ bash". Ver captura de pantalla.
  3. Por último, añadir lo siguiente al registro: Código:

Editor del Registro de Windows versión 5.00

[HKEY_CLASSES_ROOT \ Directory \ shell \ Open Cygwin aquí ...]

[HKEY_CLASSES_ROOT \ Directory \ shell \ Abrir Cygwin aquí ... \ command] @ = "\" C: \ Archivos de programa \ Console2 \ Console.exe \ "-t Bash -r \"/bin/xhere/bin/bash.exe '% L' \ ""

encontrado esta solución a: http://www.e-texteditor.com/forum/viewtopic.php?p=8884

5

  • En Cygwin instalador add "paquete chere" (contiene/bin/script xhere)
  • utilizar el siguiente comando shell en la configuración de Console2:

    C: \ cygwin \ bin \ bash.exe -c '/ bin/xhere/bin/bash'

la cáscara se ejecutará en el c urrent dir de trabajo o en el "Dir de inicio" especificado.

+0

Gran respuesta. Ahora puedo iniciar Console2 desde Windows Explorer y se inicia en el directorio correcto. Aún tuve que cambiar la unidad de inicio en la configuración de Console2 para cuando la inicie fuera de Windows Explorer. – AndroidGuy

+0

Excelente respuesta, gracias. Funcionó perfectamente en la última versión de Console2 a partir de este comentario. – gparent

3

he tenido algunos problemas con algunos de los enfoques anteriores (ventana Console2 atornilladas cuando se utiliza c: \ cygwin \ bin \ bash.exe como Shell, xhere no refleja mi dir de trabajo real).

así que creé este archivo por lotes y lo usamos como el caparazón de Console2:

C: \ cygwin64 \ cygbash.bat:

C:\cygwin64\bin\bash --login -i -c "/bin/xhere /bin/bash `cygpath -d '%CD%'`" 
+0

Esto funciona muy bien, ** sin embargo ** si su ruta tiene espacios, necesitará agregar -d después de cygpath, entonces en su lugar use algo como 'C: \ cygwin64 \ bin \ bash --login -i - c "/ bin/xhere/bin/bash \' cygpath -d '% CD%' \ '" ' – Jon

+0

He añadido su sugerencia, gracias. –

3

Probé variaciones de todo lo anterior, pero ninguno funcionó. Esto es lo que funcionó para mí usando Console2 v2.00.148:

1) .. Copie Cygwin.bat a un nuevo archivo: Cygbash.bat.

2) .. sustituir la última línea de ser la siguiente: bash --login -i -c 'cd /cygdrive/c/; exec bash'

3) .. entrar en la configuración Console2 y cambiar la cáscara para que apunte a este nuevo archivo Cygbash.bat.

Lo anterior iniciará Console2 en la raíz de su unidad C. fyi - Soy el póster original, simplemente olvidé iniciar sesión en mi cuenta primero.

+0

Estoy usando Console2 v2.00.148 y probé la respuesta aceptada sin éxito. Esta respuesta funcionó para mí. – Jim

0
  1. cambiar el shell dir a:

    bash --login -i -c 'cd /cygdrive/c/...; exec /bin/bash'

  2. Añadir esta línea al final de C:\cygwin\home\USERNAME\.profile

    cd -

Cuestiones relacionadas