web-dev-qa-db-fra.com

Impossible d'activer 256 couleurs dans ConEmu

J'essaie d'obtenir 256 couleurs dans la fantastique console ConEmu-Maximus5 .

Mise à jour: Maintenant, il ne montre que 8 couleurs. Je sais parce que la sortie '$ tput colors' est '8'

J'ai suivi les instructions et activé:

  • Prise en charge de TrueMod (couleur 24 bits)
  • Injecter ConEmuHk
  • ANSI x3.64/xterm 256 couleurs

Je ne comprends pas quoi faire avec 'cochez si le tampon/diapositive.'

  • Je suis dans Windows 7.
  • Je lance ConEmu avec un lien direct personnalisé, ce qui permet de charger le fichier cygwin bash.
 "C:\Program Files\ConEmu\ConEmu64.exe"/cmd "" C:\cygwin\bin\bash.exe "--login -i" 
  • Dans mon profil bashrc j'ai -> export TERM = cygwin
  • Ceci est ma commande personnalisée Invite:
 fonction Invite {
 
 local RED = "\ [\ 033 [0; 31m \]" 
 local GREEN = "\ [\ 033 [0; 32m \] "
 local COOLRED ="\e [38; 5; 173m "
 local COOLGREEN ="\e [38; 5; 113m "
 PS1 =" $ COOLRED\u @\h $ LIGHT_COOLGREEN\$ PWD\[\ e [0m \]> "
 
} 
 
 Invite 
  • La valeur de ConEmuANSI sur ON, en passant.

J'ai quelques captures d'écran:

enter image description here

Comme vous pouvez le constater, la commande Invite semble très extravagante car elle n’aime pas les paramètres de 256 couleurs. Si je substitue les variables COOLRED et COOLGREEN avec RED et GREEN, alors cela aura l'air correct, mais ce n'est pas 256 couleurs.

Plus de captures d'écran des paramètres:

enter image description hereenter image description here

Et le dernier coup tiré, c'est la menthe de cygwin. Tout va bien là-bas. Plein 256 couleurs pris en charge. C'est dommage que la menthe n'ait pas d'onglets. C'est principalement la raison pour laquelle j'essaie de passer à ConEmu.

enter image description here

Merci beaucoup pour votre aide!!!

22
RafaelGP

Bash n'envoie pas de séquences ANSI à la console. Il essaie de les traiter lui-même. De plus, étant donné que * nix terminal est généralement composé uniquement de 8 couleurs (sans tenir compte du mode 256 couleurs), bash utilise une palette de 8 couleurs au lieu de 16 couleurs, qui est commune au terminal Windows.

Je pense que 256 couleurs fonctionnent à la menthe parce que _isatty renvoie zéro dans ce terminal. Mais il renvoie une valeur non nulle sous ConEmu. Peut-être dans les versions futures, je résous ce puzzle (comment créer un terminal réel avec des fonctionnalités PTY pour certaines applications).

Quant à la question

Vous n'avez pas besoin de 256 couleurs En fait. Pour redéfinir la palette des invites, vous pouvez utiliser la fonction "Étendre les couleurs de premier plan avec l'arrière-plan". En mode Breaf, configurez les couleurs 16, 17, etc. dans ConEmu, définissez Invite Background in bash sur # 5 (configurable dans ConEmu) et le tour est joué.

Il y avait un petit bug dans le traitement "Étendre ..." de ConEmu. Utilisez la version 121016 ou ultérieure.

PS1="\e[30;45m\u@\h \e[34;45m$PWD \[\e[0m\] > "

ConEmu and real console window

ConEmu settings

Les informations suivantes ne correspondent pas à la question, mais peuvent être utiles

La version actuelle ne prend pas en charge le mode 256 couleurs dans la mémoire tampon "entière" de la console (limitation, oui, suppression dans les plans).

Donc, vous pouvez aller de deux façons

  • désactiver totalement le tampon de défilement (de nombreuses façons, par exemple "cmd -cur_console: h0")
  • travailler au bas du tampon de défilement.
12
Maximus

Je ne pouvais pas non plus utiliser le support 256 couleurs (les couleurs seraient visibles, mais elles avaient le même aspect que la palette 16 couleurs). Je suis passé au jeu de couleurs "xterm" et cela fonctionne maintenant dans les exécutables Windows natifs (tels que Python), mais pas dans tout ce qui utilise Cygwin. Cygwin semble avoir un traitement de séquence d'échappement terminal que vous ne pouvez pas désactiver, ce qui annule l'injection ConEmuHk.

Ceci est documenté sur le wiki ConEmu, ici.

2
Glyph

J'ai eu ce problème étrange et la solution étrange et en quelque sorte cela fonctionne. et je ne sais pas si c'est aussi avec les autres, juste quelques partages d'informations au cas où cela serait utile.

J'aime colorer mes consoles et utiliser pleinement la vraie coloration RVB 256 bits. Après la configuration, comme dans le conemu/CMDer (j’ai utilisé le forked) instruction . mon test de coloration 256bit ressemblait à ceci.  enter image description here . Après avoir bricolé un peu et testé avec ma capacité bash 256bit. c'est-à-dire en exécutant cette commande:

for i in {1..16384}; do echo -en "\e[38;5;${i}mTest";done

* note supposée être {1..256}, mais je devais le forcer pour des impressions couleur plus longues, alors prenons juste un nombre aléatoire plus long .. donnant le résultat:  enter image description here

Mais en courant 2-3 fois, j’ai vu cette nuance grise et propre  enter image description here

et cela a ensuite fonctionné ..  enter image description here

bizarre mais ça marche. Pourrait-il être que CMDer n’utilise pas l’ensemble des 256 bits pour des raisons d’optimisation et qu’il se déclenche lorsqu’il est lancé?,

PS: mon CMDer cmd pour la console:

-cur_console:fp -cur_console:d:"C:\WS":P:"<Cobalt>":t:"test":C:"C:\Arbeit\tools\Iconka-Buddy-Ninja.ico" set "PATH=%ConEmuDrive%\Program Files\Git\usr\bin;%PATH%" & "%ConEmuDrive%\Program Files\Git\git-bash.exe" --no-cd --command=%ConEmuBaseDirShort%\conemu-msys2-64.exe /usr/bin/bash.exe -l -i
0
Aravind Nadumane