2008-10-21 8 views
15

Necesito un shell útil para MSYS. Este es mi dilema actual:Agitación sobre el shell MSYS: ¿es reemplazable?

El rxvt.exe predeterminado tiene una barra de desplazamiento y copia y pega, pero no envía caracteres de control o teclas de flecha a un programa en ejecución en el shell (como intérpretes/depuradores). Esta es una verdadera espina cuando se usa el intérprete de Haskell ghci.

La otra shell sh.exe maneja los caracteres de control (o al menos algunos de ellos), pero no tiene barra de desplazamiento ni copia y pega.

rxvt también tiene (relativamente) más problemas con el almacenamiento en búfer de salida

¿Cuáles son mis opciones? ¿El shell de reemplazo necesita ser msys consciente? Todo lo que quiero es un entorno sensato para trabajar con Haskell (ghc), C++ (gcc) y la cadena de herramientas básica (make y what not). Estoy dispuesto a compilar un caparazón si no involucra travesuras locas.

+0

Uso la copia de rxvt de cygwin, y no he notado estos problemas. Al menos no con el shell = teclas de control más normales, como etc. ¿Está utilizando otras cosas que eso? ¿Puedes tratar de usar MinGW con cygwin? –

+0

Debo corregir que rxvt envía algo, simplemente no funciona bien con GHCi. p.ej. las teclas de flecha insertan caracteres ocultos '\ ESC' (arruinando cualquier entrada que tengas) en lugar de su función habitual. Ctrl-C también tiene problemas, e incluso hay un programa envoltorio ghcii.sh solo para manejar ese problema. – dbs

Respuesta

14

Si ' Después de un mejor emulador de terminal, he tenido éxito con http://sourceforge.net/projects/console/

Es un reemplazo para la ventana de comandos de Windows estándar. Puede configurar MSYS o Cygwin, o lo que quiera como el shell que lo respalda.

+0

Este reemplazo solucionó todos los problemas, ¡gracias! – dbs

+6

Para aquellos que, como yo, tienen dificultades para hacer que sh.exe funcione dentro de la consola: establezca 'C: /MinGW/MSYS/1.0/bin/sh.exe --login -i' como su shell en la configuración de la consola. – edsko

3

Estás confundiendo "shell" y "terminal emulator". sh.exe es el primero; rxvt es el último. (claro, en Windows puede prescindir de un emulador de terminal porque Windows crea uno (una "ventana de consola") para cualquier programa de consola (como sh.exe) si aún no se está ejecutando dentro de uno)

0

No he usado el material de msys, pero debería ser suficiente para usar algo que no sea rxvt y ejecutar sh.exe en él. Ahora, si está utilizando caracteres de control, es posible que deba asegurarse de que todo lo que utiliza admite lo que necesita (es decir, la emulación vt100).

Una ruta puede ser utilizar cygwin. Normalmente ejecuto cygwin con un servidor X sin root y ejecuto xterm en él. Hasta ahora ha sido muy bueno y no he tenido muchos problemas. Sé teclas de flecha y ese trabajo funciona bien debajo de él.

-5

Hazte un favor y usa el Cygwin adecuado en lugar de la horquilla sin mantenimiento de una versión anterior de Cygwin que es msys.

7

De los MSYS Shell:

mingw-get install mintty 
mintty 
+0

mintty se ve genial. Simplemente lo instalé y se ve como el shell cygwin. – muman

1

uso de PowerShell en lugar del viejo cmd. A continuación, ejecute sh como esto

C:\msys64\usr\bin\sh.exe --login -i 

Probé en Winows 8.1 con MSYS2 y Plataforma Haskell 2014.2.0.0. Con GHCi no hay problemas. Todas las teclas de flecha y otras teclas funcionan como se esperaba.

Además, no pude conseguir que Console2 funcione correctamente en Windows8, como se sugiere en las otras respuestas.

1

Esta pregunta se ha quedado un poco obsoleta; mintty ahora está incluido por defecto en MSYS2.Irónicamente, no pude acceder al historial de comandos en GHCi - presionando hacia arriba movería el cursor y colocaría los códigos \ESC en el búfer de entrada - y esto fue resuelto por eliminando (pacman -R mintty desde el shell MSYS2) .

Cuestiones relacionadas