web-dev-qa-db-fra.com

Meilleur environnement de terminal pour Cygwin / Windows?

Aujourd'hui, je lance Cygwin avec rxvt en utilisant la ligne de démarrage suivante:


rxvt -bg black -sl 8192 -fg white -sr -g 150x56 -fn "Fixedsys" -e /usr/bin/bash --login -i

Cela me donne une fenêtre Windows native redimensionnable qui est bien meilleure que la "boîte DOS" standard par défaut cygwin.bat fournit.

Cependant, la configuration actuelle présente quelques problèmes:

  1. Je ne peux pas saisir de caractères non ASCII dans la fenêtre du terminal (c'est-à-dire æ, ø, å et Æ, Ø, Å, que j'utilise semi-fréquemment. En fait, le terminal ne les acceptera même pas lorsque je les collerai dans Si je colle une chaîne comme "bølle" (norvégien pour "bulley"), je ne reçois que "blle".
  2. Je ne suis pas en mesure de rendre le caractère UTF-8, ils ne s'affichent que comme?, Même s'ils sont pris en charge par la police (c'est-à-dire lorsqu'ils rendent les mêmes caractères dans ISO-8859-1, ils s'affichent très bien.).

J'utilise Windows Vista en anglais avec les paramètres régionaux et la disposition du clavier définis sur le norvégien (jeu de caractères ISO-8859-1?), Mais j'ai eu exactement le même problème sous Windows 2000 et XP.

Quelqu'un sait comment résoudre ce problème (c'est-à-dire une meilleure façon de configurer rxvt)?

Mis à part les problèmes mentionnés ci-dessus, je suis très satisfait de rxvt, donc si je trouve un moyen de les résoudre, j'aimerais continuer à l'utiliser. Cependant, si les problèmes ne sont pas (facilement) résolubles, existe-t-il d'autres bonnes solutions de terminaux pour Cygwin?

Mise à jour

La solution proposée par Andy et Mattias (modification du .inputrc file) a résolu le problème d'entrée, mais le rendu de sortie est toujours un problème. La sortie est correcte lorsque je rends en ISO-8859-1, mais lorsque j'utilise UTF-8, je ne reçois pour les caractères non ASCII. Ce comportement est cohérent entre rxvt, urxvt (sous Cygwin XFree X Server), mintty et PuttyCyg.

Existe-t-il un fichier de configuration similaire dans lequel l'encodage de sortie peut être défini (c'est-à-dire l'équivalent de la définition des paramètres régionaux de sortie sur un système Linux)?

52
Anders Sandvig

Ajoutez les deux lignes suivantes au fichier de configuration readline ~/.inputrc

set convert-meta off
set output-meta on

Devrait fonctionner à la fois dans rxvt et mintty. Plus ici:

http://www.gnu.org/software/bash/manual/bashref.html#Readline-Init-File-Syntax

9
Andy

minTTY est également très bon. Vous pouvez le trouver dans la configuration de cygwin. Prend en charge le redimensionnement, le collage et la transparence.

36
debugme

J'utilise actuellement PuttyCyg ( http://code.google.com/p/puttycyg/ ). Je ne sais pas s'il contiendra les correctifs dont vous avez besoin, mais il a plusieurs autres fonctionnalités intéressantes, par exemple des configurations stockées dans des profils PuTTY typiques, qui peuvent être invoquées comme: PuTTY -load mycygwin1. Un tel profil peut configurer des choses comme:

  • journalisation des sessions dans un fichier,
  • séquences de caractères pour les touches d'effacement, d'accueil et autres,
  • couleurs et polices des fenêtres.

Edit: il est possible de saisir les caractères que vous avez mentionnés. Le support UTF-8 est également fourni (il doit être activé dans la configuration).

12
anon

J'utilise également Console . La console vous permet de personnaliser la police, l'arrière-plan, etc. et dispose également d'une interface à onglets (idéale si vous utilisez plusieurs fenêtres de terminal à la fois).

Afin de pouvoir utiliser des caractères non ASCII, j'ai mis ce qui suit dans mon fichier .inputrc dans mon répertoire personnel:

set meta-flag on
set convert-meta off
set output-meta on
set completion-ignore-case on
8

Ayant quatre ans, au moment de la rédaction du présent document, la question se pose: le terminal Cygwin par défaut accepte désormais le collage et le rendu des caractères non Ascii sans formalité, du moins pour moi. Le terminal par défaut de Cygwin est désormais mintty et Cygwin fonctionne désormais avec UTF-8 par défaut. (Par exemple, /etc/profile.d/lang.sh définit désormais un codage de jeu de caractères UTF-8 par défaut.) Il existe maintenant une version 64 bits de Cygwin mais, par http: //www.cygwin. com/ml/cygwin/2013-09/msg00029.html , pas de port 64 bits de rxvt.

Même la question dans le titre est moins vitale qu'une fois, car mintty ne se grille pas comme les anciennes fenêtres du sous-système de la console de commande Windows. Je vais quand même brancher le projet que je co-entretiens: https://code.google.com/p/jessies/wiki/Terminator , qui a été écrit pour UTF-8, peut-être dès le premier jour , bien que son principal argument de vente, imo, soit la fonction Rechercher.

7
Martin Dorey

Vous devrez peut-être définir la page de code.

Vérifiez votre courant:

$ set | grep CYGWIN
CYGWIN='codepage:oem nodosfilewarning'

Si vous n'avez pas la page de code, ajoutez-la à votre fichier ~/.bashrc:

CYGWIN='codepage:oem nodosfilewarning'

Le contenu de mon fichier batch Cygwin (Cygwin.bat), démarré par un raccourci, est le suivant:

start C:\cygwin\bin\rxvt.exe -sb -sl 3000 -fg gray -bg black -fn "Lucida Console-14" -e /bin/bash --login -i

Notez que pour la variable d'environnement CYGWIN, vous pouvez avoir plusieurs éléments, chacun séparé par un espace. Autres éléments pouvant être utilisés: {tty binmode title}.

Plus d'informations peuvent être lues ici: http://www.cygwin.com/cygwin-ug-net/setup-env.html

Remarque connexe: vous pouvez également utiliser mrxvt pour Cygwin. Il nécessite un serveur X, et une solution solide/légère agréable est d'utiliser Xming. J'ai compilé mrxvt et l'ai installé - pas vraiment difficile à faire, et cela fonctionne très bien.

J'utilise rxvt comme fenêtre initiale, puis je lance mrxvt en tant que processus séparé à partir de rxvt en utilisant une commande d'alias, puis je ferme rxvt. Cela fait de mrxvt son propre processus parent et n'a aucune session cmd attachée.

J'ai fait un alias pour ce faire:

alias mrx='export DISPLAY="127.0.0.1:0.0"; $(/usr/local/bin/mrxvt &); echo -e "\033c"'

Pour plus de facilité, j'ai créé un fichier batch pour démarrer Xming et 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

Ce fichier batch est lancé par un raccourci Windows. Cela a bien fonctionné pour moi.

3
Matt

J'utilise Console qui fonctionne plutôt bien avec Cygwin (ainsi que PowerShell et plain old cmd.exe).

2
Dan Vinton

Lorsque je développais sous Windows, j'ai trouvé Poderosa être un bon choix pour Cygwin.

2
Dan Dyer

rxvt est incapable d'unicode, vous ne pouvez donc pas le faire fonctionner correctement si vous vous connectez à des machines qui utilisent UTF-8 pour l'encodage. Vous pouvez utiliser rxvt pour iso-8859-1/15, mais la plupart des machines sont maintenant UTF-8.

Le remplacement unicode pour rxvt dans Cygwin est urxvt, le nom du package sous Cygwin est rxvt-unicode-X. urxvt a également d'autres fonctionnalités Nice, telles que de nombreux plugins téléchargeables - dont un qui vous donne plusieurs onglets par fenêtre, et une architecture client/serveur qui lui fait utiliser beaucoup moins de ressources si vous avez plusieurs fenêtres (urxvtc/urxvtd).

Vous devrez peut-être également vous assurer que vos variables de ligne de lecture spécifient que votre shell doit passer par des caractères 8 bits, c'est-à-dire l'ajouter à votre $HOME/.bashrc ou $HOME/.profile:

 désactiver la conversion-méta 
 activer la sortie-meta 
 activer l'entrée-meta 

Vous devrez définir les bonnes ressources dans $HOME/.Xdefaults: en particulier, vous aurez besoin d'une police contenant les caractères souhaités. Le nom du groupe de ressources pour urxvt est URxvt. Notez la capitalisation, ça compte!

 URxvt.font: xft: Lucida Console: taille = 8: style = normal: poids = 50: antialias = true: hinting = true: minspace = true 
 URxvt.boldFont: xft: Lucida Console : size = 8: style = bold: weight = 100: antialias = true: hinting = true: minspace = true 

Je recommande également de définir:

 URxvt * termName: xterm 

Cette ressource décide de la valeur de $TERM variable d'environnement. À moins qu'il ne soit correctement défini, le bon fichier termcap ne peut pas être trouvé, provoquant des programmes comme less à émettre des avertissements dans le style de: WARNING: terminal is not fully functional. Malheureusement, le termName par défaut de rxvt-unicode n'est pas connu sous de nombreuses distributions Linux, donc si vous utilisez souvent ssh sur des machines distantes, vous rencontrerez le problème. La solution consiste à définir termName sur quelque chose de plus courant (comme xterm), ou à télécharger un fichier termcap pour rxvt-unicode sur tous les serveurs auxquels vous vous connectez.

1
00prometheus

Étant donné que le titre est trompeur et que les résultats de recherche m'ont amené ici plusieurs fois, je répondrai simplement en lisant le titre.

J'aime utiliser Babun sous Windows comme environnement Cygwin, c'est presque parfait pour moi.

1
Arda

Si vous utilisez ls avec certains arguments, il affiche les noms de fichiers OK. Je vous suggère de mettre un alias ls dans/etc/profile:

alias ls='ls -F --color=auto --show-control-chars'

Fonctionne pour moi en msys sur un WinXP.

1
AFIRAN

Sur le sujet des émulateurs de terminaux alternatifs pour cygwin - consultez Console2 ; il possède toutes les fonctionnalités dont vous aurez besoin.

1
wulfgarpro

Veuillez essayer ConEmu qui est un émulateur de console open source avec des onglets, qui représente plusieurs consoles et applications GUI simples comme une seule fenêtre GUI personnalisable.

https://conemu.github.io/

1
false9striker

Cygwin/X standard avec xterm est assez bon pour moi. Installez le package Cygwin X.org, puis exécutez le script C:\cygwin\bin\startxwin.bat (en supposant le chemin d'installation par défaut). Cela démarrera X puis xterm.

J'ai mis à jour mon .Xdefaults avec ces options pour une meilleure convivialité:

*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
1
spoulson

xfce4-terminal (disponible auprès de Cygwin setup.exe) est le meilleur pour moi car il a fière allure (facile à lire) et s'il est démarré avec XLaunch (également disponible auprès de setup.exe), Je peux y démarrer d'autres applications GUI cygwin. Pour une raison quelconque, je ne peux pas lancer d'applications GUI à partir de mintty. J'ai trouvé ce fil à la recherche d'un terminal moins laid que xterm (qui fonctionne bien pour lancer des applications GUI). Au final, j'ai trouvé le meilleur (xfce4-terminal) simplement en recherchant le terminal dans setup.exe. xfce4-terminal est l'un de mes favoris sur Linux depuis plus de 7 ans maintenant.

Guake est également disponible en setup.exe, mais je dois le lancer à partir d'un autre terminal et cliquer sur cet autre terminal avant d'utiliser les touches pour faire tomber Guake. Donc, ce n'est pas aussi pratique que sur Linux.

1
Colin Keenan

Je configurerais votre pays dans les fenêtres (Panneau de configuration -> Paramètres régionaux -> Dernier onglet (contrôle) -> Langue pour les langues non compatibles Unicode -> Votre choix (norvégien)). Après le redémarrage, démarrez Démarrer-> Cyqwin-> rxvt-native. Pour le russe, cela fonctionne (sans modifier .bashrc ou autre).

Il convertit même (comme je suppose) la sortie du soft en utf-8, car l'encodage par défaut est C.UTF-8. Pour le vérifier, tapez "echo $ LANG".

1
Sergey

Si vous vous contentez d'exécuter uniquement des applications Cygwin, alors rxvt devrait fonctionner correctement. Rxvt devrait avoir le support UTF-8. Avez-vous essayé de rechercher une solution sur Google?

Si vous devez également exécuter des applications Windows natives, vous n'avez pas de chance, sauf si vous exécutez bash dans la console Windows. Il y a deux problèmes qui, je ne pense pas, sont (ou même peuvent être) résolus:

  • Ctrl-C ne fonctionne pas correctement. Si vous exécutez une application Windows native à partir de rxvt (ou xterm), appuyer sur Ctrl-C vous donnera une invite, mais cela n'interrompt pas le programme, le laissant souvent s'exécuter en arrière-plan.
  • La mise en mémoire tampon de sortie du terminal ne fonctionne pas. La sortie des applications Windows natives ne s'affiche pas lors de leur impression, mais plutôt lorsque certains tampons internes sont pleins.

Ces deux problèmes sont les mêmes avec tous les émulateurs de terminaux que j'ai essayés (rxvt, xterm, Emacs et quelques autres).

0
JesperE

Mis à part le redimensionnement complet, quelles fonctionnalités rxvt vous donne-t-il l'impression qu'une fenêtre de console Windows ne fait pas? Et avez-vous regardé la différence d'utilisation de la mémoire - rxvt est un porc. J'utilise rxvt depuis quelques semaines et je suis revenu à une fenêtre de console Windows, sans regrets.

0
anon

J'ai utilisé plusieurs terminaux tels que PuTTY, console, rxvt, mintty, teraterm. le meilleur est le tératerme. il est gratuit, entièrement compatible pour lang et tty, entièrement configurable avec macro, raccourci et donne le cygterm pour Cygwin.

cependant, si vous êtes un utilisateur léger, utilisez simplement mintty qui est le terme par défaut de nos jours ou rxvt.

0
OfusJK

oui, mintty semble plus confortable, léger et rapide, mais il y a une fonctionnalité qu'il n'a pas, et la console par défaut (Windows), c'est la fonction de recherche: à partir de la console par défaut, vous pouvez rechercher la chaîne affichée sur la console , amusement ?

jusqu'à présent, je n'ai trouvé aucune autre console ayant cette fonctionnalité ... je vous sais, dites-moi, je n'aime vraiment pas la console par défaut.

0
jerry.lee

Sur une note similaire à emg-2, Lifehacker a récemment publié un article sur MinTTY , ne sachant pas s'il contient les correctifs dont vous avez besoin.

0
rlb.usa