¿El mejor entorno de terminal para Cygwin/Windows?
rxvt (21)
Hoy ejecuto Cygwin con rxvt
usando la siguiente línea de inicio:
rxvt -bg black -sl 8192 -fg white -sr -g 150x56 -fn "Fixedsys" -e /usr/bin/bash --login -i
Esto me da una ventana nativa de Windows que se puede cygwin.bat
tamaño, que es mucho mejor que el "cuadro de DOS" estándar que proporciona el cygwin.bat
predeterminado.
Sin embargo, la configuración actual tiene un par de problemas:
- No puedo ingresar caracteres que no sean ASCII en la ventana del terminal (es decir, æ, ø, å y Æ, Ø, Å, que uso con poca frecuencia. De hecho, el terminal ni siquiera los aceptará cuando los pegue en La ventana. Si pego una cadena como "bølle" (en noruego para "bulley"), todo lo que obtengo es "blle".
- No puedo representar el carácter UTF-8, solo se muestran como?, Incluso si son compatibles con la fuente (es decir, al representar los mismos caracteres en ISO-8859-1 se muestran bien).
Estoy ejecutando Windows Vista en inglés con la configuración regional y el teclado configurados en noruego (¿conjunto de caracteres ISO-8859-1?), Pero he tenido exactamente el mismo problema en Windows 2000 y XP.
¿Alguien sabe cómo solucionar esto (es decir, una mejor manera de configurar rxvt)?
Aparte de los problemas mencionados anteriormente, estoy muy contento con rxvt
, así que si encuentro una manera de resolverlos, me gustaría continuar usándolo. Sin embargo, si los problemas no son (fácilmente) solucionables, ¿hay alguna otra buena solución de terminal para Cygwin?
Actualizar
La solución provista por Andy y Mattias (editando el archivo .inputrc
) resolvió el problema de entrada, pero la representación de la salida sigue siendo un problema. La salida está bien cuando renderizo en ISO-8859-1, pero cuando uso UTF-8, ¿solo obtengo? para caracteres no ASCII. Este comportamiento es consistente entre rxvt
, urxvt
(bajo Cygwin XFree X Server), mintty
y PuttyCyg.
¿Existe un archivo de configuración similar donde se pueda configurar la codificación de salida (es decir, el equivalente a establecer la configuración regional de salida en un sistema Linux)?
A la edad de cuatro años, en el momento de escribir, el problema de la pregunta se ha disparado: el terminal Cygwin predeterminado ahora acepta pegar y renderizar caracteres que no son Ascii sin formalidad, al menos para mí. El terminal predeterminado de Cygwin ahora es excelente y Cygwin ahora funciona con UTF-8 de forma predeterminada. (Por ejemplo, /etc/profile.d/lang.sh ahora configura una codificación de conjunto de caracteres UTF-8 de manera predeterminada). Ahora hay una versión de Cygwin de 64 bits, pero en http://www.cygwin.com/ml/cygwin/2013-09/msg00029.html , no hay un puerto de rxvt de 64 bits.
Incluso la pregunta en el título es menos vital de lo que una vez fue, ya que mintty no responde como las viejas ventanas del subsistema de consola de comandos de Windows. Aún así, conectaré el proyecto que co-mantengo: https://code.google.com/p/jessies/wiki/Terminator , que fue escrito para UTF-8, posiblemente desde el primer día, aunque es su principal punto de venta. imo, es la función de búsqueda.
Actualmente estoy usando PuttyCyg ( http://code.google.com/p/puttycyg/ ). No estoy seguro de si contendrá los arreglos que necesita, pero tiene otras características interesantes, por ejemplo, configuraciones almacenadas en los perfiles de masilla típicos, que se pueden invocar como: putty -load mycygwin1. Tal perfil puede configurar cosas como:
- registro de sesiones a un archivo,
- secuencias de caracteres para borrar, inicio, y otras teclas,
- Colores de ventana y fuentes.
Editar: es posible introducir los caracteres que mencionaste. También se proporciona compatibilidad con UTF-8 (tiene que estar activado en la configuración).
Agregue las siguientes dos líneas al archivo de configuración readline ~ / .inputrc
set convert-meta off
set output-meta on
Debería funcionar tanto en rxvt como en mintty. Más aquí:
http://www.gnu.org/software/bash/manual/bashref.html#Readline-Init-File-Syntax
Aparte de la capacidad de cambio de tamaño completa, ¿qué características le da rxvt que una ventana de la consola de Windows no lo hace? Y, ¿has visto la diferencia en el uso de la memoria? Rxvt es un cerdo. Utilizo rxvt durante un par de semanas y lo cambié de nuevo a una ventana de la consola de Windows, sin arrepentimientos.
Configuraré su país en Windows (Panel de control -> Configuración regional -> Última pestaña (control) -> Idioma para idiomas incompatibles con Unicode -> Su elección (noruego)). Después de reiniciar, comience Inicio-> Cyqwin-> rxvt-native. Para ruso funciona (sin editar .bashrc o lo que sea).
Incluso (como supongo) convierte la salida del software en utf-8, porque la codificación predeterminada es C.UTF-8. Para comprobarlo escribe "echo $ LANG".
Cuando estaba desarrollando Windows, encontré que Poderosa era una buena opción para Cygwin.
Cygwin / X estándar con xterm es lo suficientemente bueno para mí. Instale el paquete Cygwin X.org, luego ejecute el script C:/cygwin/bin/startxwin.bat
(asumiendo la ruta de instalación predeterminada). Comenzará X y luego xterm.
.Xdefaults
mis .Xdefaults
con estas opciones para una mejor usabilidad:
*VT100*scrollbar.width: 14
*VT100*scrollbar.background: gray60
*VT100*scrollbar.foreground: rgb:a/5/5
*VT100*scrollbar.borderWidth: 0
*VT100*scrollbar.displayList:/
foreground gray90;/
lines 1,-1,-1,-1,-1,1;/
foreground gray60;/
lines -1,1,1,1,1,-1
*VT100*rightScrollBar: true
*VT100*scrollBar: true
*VT100*scrollLines: 1000
xterm*toolBar: false
Es posible que necesite configurar la página de códigos.
Compruebe su actual:
$ set | grep CYGWIN
CYGWIN=''codepage:oem nodosfilewarning''
Si no tiene la página de códigos, agregue a su archivo ~ / .bashrc:
CYGWIN=''codepage:oem nodosfilewarning''
El contenido de mi archivo por lotes de Cygwin (Cygwin.bat), iniciado por un acceso directo, es:
start C:/cygwin/bin/rxvt.exe -sb -sl 3000 -fg gray -bg black -fn "Lucida Console-14" -e /bin/bash --login -i
Tenga en cuenta que para la variable de entorno CYGWIN puede tener varios elementos, cada uno separado por un espacio. Otros elementos que se pueden utilizar: {tty binmode title}.
Más información se puede leer aquí: http://www.cygwin.com/cygwin-ug-net/setup-env.html
Una nota relacionada: también puede usar mrxvt para Cygwin. Requiere un servidor X, y una buena solución sólida / liviana es usar Xming. Compilé mrxvt y lo instalé, no es realmente difícil de hacer y funciona muy bien.
Utilizo rxvt como una ventana inicial, luego ejecuto mrxvt como un proceso separado de rxvt usando un comando de alias, luego cierre rxvt. Esto hace que mrxvt sea su propio proceso principal y no tiene sesiones cmd adjuntas.
Hice un alias para hacer esto:
alias mrx=''export DISPLAY="127.0.0.1:0.0"; $(/usr/local/bin/mrxvt &); echo -e "/033c"''
Para facilitar la creación, creé un archivo por lotes para iniciar Xming y rxvt:
@echo off
start C:/cygwin/bin/rxvt.exe -sb -sl 3000 -fg gray -bg black -fn "Lucida Console-14" -e /bin/bash --login -i
start C:/Xming/Xming.exe :0 -clipboard -multiwindow -trayicon
exit
Este archivo por lotes se inicia mediante un acceso directo de Windows. Esto ha funcionado bien para mí.
He estado usando la Console que funciona bastante bien con Cygwin (así como con PowerShell y el antiguo cmd.exe).
He utilizado varios terminales como masilla, consola, rxvt, mintty, teraterm. Lo mejor es el teraterm. es gratis, totalmente compatible con lang y tty, totalmente configurable con macro, acceso directo y transferencia de Cygwin.
sin embargo, si lo enciendes, solo usa mintty, que es el término predeterminado para este día o rxvt.
Pruebe ConEmu, que es un emulador de consola de código abierto con pestañas, que representa varias consolas y aplicaciones de GUI simples como una ventana de GUI personalizable.
Si está contento con solo ejecutar las aplicaciones Cygwin, entonces rxvt debería funcionar bien. Rxvt debería tener soporte para UTF-8. ¿Trataste de buscar una solución en Google?
Si también necesita ejecutar aplicaciones de Windows nativas, no tendrá suerte a menos que ejecute bash dentro de la consola de Windows. Hay dos problemas que no creo que estén (o incluso puedan resolverse):
- Ctrl-C no funciona correctamente. Si ejecuta una aplicación nativa de Windows desde rxvt (o xterm), al presionar Ctrl-C le devolverá un aviso, pero no interrumpe el programa, a menudo dejándolo para que se ejecute en segundo plano.
- El búfer de salida de terminal no funciona. La salida de las aplicaciones nativas de Windows no se muestra a medida que se imprimen, sino cuando un búfer interno está lleno.
Estos dos problemas son los mismos con todos los emuladores de terminal que he probado (rxvt, xterm, Emacs y algunos otros).
Si usa ls con cierto argumento, se muestran los nombres de los archivos OK. Le sugiero que ponga un alias ls en / etc / profile:
alias ls=''ls -F --color=auto --show-control-chars''
Funciona para mí en msys en un WinXP.
Sobre el tema de los emuladores de terminal alternativos para cygwin - verifique Console ; Tiene todas las características que necesitarás.
También estoy usando la Console . La consola le permite personalizar la fuente, el fondo, etc. y también tiene una interfaz con pestañas (ideal si usa más de una ventana de terminal a la vez).
Para poder utilizar caracteres no ASCII, he puesto lo siguiente en mi archivo .inputrc en mi directorio de inicio:
set meta-flag on
set convert-meta off
set output-meta on
set completion-ignore-case on
Ya que el título es un tanto engañoso, y los resultados de búsqueda me trajeron aquí muchas veces, solo responderé leyendo el título.
Me gusta usar Babun en Windows como Cygwin Environment, es casi perfecto para mí.
minTTY también es bastante bueno. Puedes encontrarlo en la configuración de cygwin. Admite redimensionamiento, pegado y transparencia.
rxvt es incapaz de Unicode, por lo que no puede hacer que funcione correctamente si inicia sesión en máquinas que usan UTF-8 para la codificación. Puede usar rxvt para iso-8859-1 / 15, pero la mayoría de las máquinas ahora son UTF-8.
El reemplazo de Unicode para rxvt en Cygwin es urxvt, el nombre del paquete bajo Cygwin es rxvt-unicode-X. urxvt también tiene otras características interesantes, como muchos complementos descargables, incluido uno que le brinda múltiples pestañas por ventana, y una arquitectura cliente / servidor que hace que use muchos menos recursos si tiene muchas ventanas ( urxvtc
/ urxvtd
).
También es posible que deba asegurarse de que las variables de su línea de lectura especifican que su shell debe pasar a través de caracteres de 8 bits, es decir, agregar esto a su $HOME/.bashrc
o $HOME/.profile
:
set convert-meta off set output-meta on set input-meta on
Tendrá que configurar los recursos correctos en $HOME/.Xdefaults
: en particular, necesitará una fuente que tenga los caracteres que desea. El nombre del grupo de recursos para URxvt
es URxvt
. Tenga en cuenta la capitalización, importa!
URxvt.font: xft:Lucida Console:size=8:style=normal:weight=50:antialias=true:hinting=true:minspace=true URxvt.boldFont: xft:Lucida Console:size=8:style=bold:weight=100:antialias=true:hinting=true:minspace=true
También recomiendo configurar:
URxvt*termName: xterm
Este recurso decide el valor de la variable de entorno $TERM
. A menos que esté correctamente configurado, no se puede encontrar el archivo termcap correcto, lo que hace que programas como less
emitan advertencias en el estilo de: WARNING: terminal is not fully functional
. Desafortunadamente, el nombre de término predeterminado de rxvt-unicode
no se conoce en muchas distribuciones de Linux, por lo tanto, si a menudo usa ssh en máquinas remotas, se encontrará con el problema. La solución es establecer termName
en algo más común (como xterm
), o cargar un archivo termcap para rxvt-unicode en todos los servidores en los que inicie sesión.
sí, mintty parece más cómodo, ligero y rápido, pero hay una característica que no tiene, y la consola predeterminada (windows) tiene, que es la función de búsqueda: desde la consola predeterminada, puede buscar la cadena que se muestra en la consola , divertido ?
hasta ahora, no he encontrado ninguna otra consola que tenga esta característica ... ya sabes, dime, realmente no me gusta la consola predeterminada.
xfce4-terminal (disponible desde Cygwin setup.exe
) es lo mejor para mí porque se ve muy bien (fácil de leer) y si se inicia con XLaunch (también disponible desde setup.exe
), puedo iniciar otras aplicaciones GUI de cygwin. Por alguna razón, no puedo lanzar aplicaciones GUI desde mintty
. Encontré este hilo buscando un terminal menos feo que xterm
(que funciona bien para lanzar aplicaciones GUI). Al final, encontré el mejor ( xfce4-terminal
) simplemente buscando en el terminal en setup.exe. xfce4-terminal ha sido uno de mis favoritos en Linux desde hace más de 7 años.
Guake también está disponible en setup.exe
, pero tengo que iniciarlo desde otra terminal y hacer clic en esa otra terminal antes de usar las pulsaciones de tecla para desactivar Guake. Entonces, eso no es tan práctico como lo es en Linux.