2012-09-10 27 views
9

A veces tengo que trabajar en Windows, lo que a menudo significa usar el shell Bash. Si soy (por ejemplo) en vim (nogvim) con varios archivos abiertos y me golpeó CtrlZ ir brevemente de nuevo a la cáscara y hacer algo antes de regresar a vim, en lugar de la suspensión de mi proceso de vim Git Bash crea un nuevo shell de DOS. Esto es lo último que quiero. Googling turns up nothing useful (en este momento - YMMV en mi futuro). ¿Qué está pasando?¿Por qué falla Ctrl-Z en Windows Git bash shell?

Respuesta

1

veces tengo que trabajar en Windows, que a menudo significa usar el shell Git Bash.

Bueno. Yo también.

Si estoy (por ejemplo) en vim (no gvim) con varios archivos abiertos, y presiono^Z para volver brevemente al shell y hacer algo antes de volver a vim, en lugar de suspender mi proceso vim Git Bash crea un nuevo shell de DOS.

Si ejecuta otros procesos en git bash, CTRL-Z tampoco los suspenderá. Vim trabaja alrededor de eso y, en cambio, crea un caparazón para lograr un resultado similar. Vim es una herramienta en Windows que no requiere bash, más bien, el símbolo del sistema de Windows se instalará necesariamente en una máquina de Windows. Supongo que esta es una elección segura del programa binario de Windows.

Esto es lo último que quisiera. Google no resulta nada útil (en este momento - YMMV en mi futuro). Que esta pasando?

Supongo que vim tiene el mapa CTRL-Z para crear un shell DOS. Si desea crear un shell bash en cambio, puede escribir:

:!sh

Y se le ejecución en un shell bash.

1

Supongo que el motivo es que Windows no implementa la API de proceso de suspensión POSIX. Tuve el mismo problema y no encontré una solución general. Sin embargo, para los casos comunes específicos (tales como gvim), una solución alternativa es crear un script en algún lugar de su PATH (por ejemplo,/c/bin/gvim) a lo largo de las líneas de

#!/bin/env bash 
    /c/Program\ Files\ \(x86\)/Vim/vim73/gvim.exe [email protected] & 
+0

Si te entiendo, estás usando esto como un contenedor para gvim, y estás sugiriendo que^Z *** *** funcionará para el script de contenedor, incluso si no funciona para el archivo real ¿ejecutable? Bien, eso tiene sentido, ya que el ejecutable real es un archivo * exe *. – iconoclast

+0

Lo siento, no,^Z todavía no funcionará. Todo lo que hace el script es poner a gvim en segundo plano cuando escribo "gvim" en bash, de modo que no tengo que^Z para escribir el siguiente comando. Básicamente, solo ahorra tener que recordar escribir y después del comando. – setrofim

+0

No estoy seguro de cómo esto me ayuda. Estoy usando vim, no gvim, por lo que está abierto en la terminal. Quiero una forma de suspenderlo para regresar a la línea de comando. – iconoclast

Cuestiones relacionadas