11
votes

Dans Git Bash sous Windows 7, les couleurs affichent le code lors de l'exécution de concombre ou de RSPEC

Dans git bash sur Windows 7, j'ai parfois eu quelque chose qui provoque l'échec de la couleur de la couleur lors de l'exécution de scénarios de concombre ou de spécifications RSPEC.

occasionnellement, il est fixé au hasard (où je ne sais pas de manière aléatoire, je ne sais pas ce que j'ai fait pour que cela soit corrigé). p>

donc quand je cours: P>

core.symlinks=false
core.autocrlf=true
color.diff=auto
pack.packsizelimit=2g
help.format=html
http.sslcainfo=/bin/curl-ca-bundle.crt 
sendemail.smtpserver=/bin/msmtp.exe 
user.name=John Uhri 
user.email= ***** 
color.branch=auto 
color.diff=auto 
color.interactive=auto 
color.status=auto 
core.repositoryformatversion=0 
core.filemode=false 
core.bare=false 
core.logallrefupdates=true
core.symlinks=false 
core.ignorecase=true 
core.hidedotfiles=dotGitOnly 
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/* 
branch.master.remote=origin 
branch.master.merge=refs/heads/master


1 commentaires

Quelle sortie "git config -list" rendement?


7 Réponses :


1
votes

Essayez d'installer le gem Win32Console.

gem install win32console


3 commentaires

Je l'avais fait précédemment. N'a pas fonctionné. J'ai essayé de désinstaller et de réinstaller le gemme, mais en vain.


Avez-vous déjà résolu cela? Utilisez-vous une machine 64 bits? J'ai le même problème avec la CMD de base pour Windows. C'est putain d'infuriser ..


@Richardfortune - Le gemme n'aide pas avec cela. Vous aurez besoin de (a) installer ansicon (voir la réponse par @corg) ou (2) utiliser une coque autre que CMD: Console2, Bash et Conemu sont certains à considérer. J'utilise Conemu et j'adore ça. D'autres aiment la console 2.



2
votes

J'utilise le projet "WAC" d'Aslakhellesoy. C'est un peu gênant parce que vous devez vous rappeler de piloter vos commandes à travers elle. Mais c'est la seule chose que j'ai vue de travail.

https://github.com/aslakhellesoy/wac


1 commentaires

Fait intéressant assez, WAC se débarrasse des codes de couleur, mais ne présente pas de couleur.



12
votes

sur Windows, Git Bash utilise le terminal intégré qui est roulée dans l'invite CMD. Si vous installez Cygwin, vous pouvez utiliser l'émulateur de terminal MintTy (installé dans le menu Démarrer sous la forme de «terminal Cygwin»).

Pourquoi est-ce important? Parce que le terme d'invite de Windows cmd n'interprète pas les séquences d'échappement ansi em>. Il utilise plutôt un schéma de contrôle de couleur M $. Si le programme que vous utilisez ne bascule pas sur ce schéma sous Windows ou passer à travers un filtre, vous verrez les caractères d'évacuation bruts. La console Mintty de Cygwin a une prise en charge complète de ces codes. P>

Si les couleurs fonctionnent généralement, il s'agit d'un bogue dans le concombre / RSPEC de portage. Quelqu'un a raté une vérification des fenêtres lors de l'impression des couleurs ou de quelque chose. Jusqu'à ce que cela soit corrigé, un travail autour est le script Python suivant: P>

$ bundle exec rspec spec | colorFilter.py


2 commentaires

Il n'y a pas de moyen d'obtenir des couleurs à afficher dans la coquille utilisée par défaut lorsque MSYSGIT est installé (Git Bash)?


@TnorthCutt Le problème n'est pas le coquille , mais le Terme . Sauf si vous exécutez l'émulateur X-Windows emballé avec Cygwin, et l'un des émulateurs de terminaux, vous êtes bloqué avec l'émulateur de terminal Windows. Qui est emballé ensemble avec la coquille CMD. Puisque vous ne pouvez pas changer d'émulateurs, c'est là que vous devez convertir les séquences d'échappement ANSI en commandes Windows comme indiqué.



9
votes

Après un certain nombre de tentatives infructueuses pour obtenir des couleurs sur mes terminaux Windows 7 Bash (msygit avec console2), je suis tombé sur Jason Karns Blog 'ANSI Color dans Windows Shells' .

Tout ce que je devais faire était Unzip ansicon.exe dans un dossier permanent et exécuté via cmd dans ce dossier: xxx

Tous les journaux Bash ont maintenant des couleurs au lieu des [32m ou de la balises [0M, woo!


1 commentaires

Comment puis-je faire fonctionner toujours? À l'heure actuelle, je dois le faire avant de courir le git bash à chaque fois :(



2
votes

J'ai corrigé cela avec GIT pour Windows (V2.5.3) en cours d'exécution GIT dans PowerShell (dans la console normale de la fenêtre) en définissant trois variables d'environnement:

  1. terme = msys
  2. pager = '"C: \ Program Files \ git \ usr \ bin \ moindre.exe"' (note que les doubles citations doivent faire partie de la valeur).
  3. y compris - brut-contrôle-caractères dans moins de valeur s (donc avec mes autres préférences: - Invite longue --No-init - -Quité-if-one-screan-trad-charrs ).

1 commentaires

FWIW, pour Git Bash (version 2.19.Windows.1) Concentant dans une mietté, je n'ai eu que de faire # 3. Le terme est toujours xterm et pager est non défini.



3
votes

J'ai eu le même PB, il semble que si vous non défini sur la variable d'environnement, cela fonctionne à nouveau.


0 commentaires

0
votes

Les suggestions de Richard, même dans cmd.exe (pas PowerShell), a fonctionné pour moi.

Je cours: Windows 7 (64 bits) et Git-Bash: GNU BASH, version 3.1.23 (6) -Release (I686-PC-MSYS)

Je devais changer le Pager Emplacement à Match My système. xxx


0 commentaires