web-dev-qa-db-fra.com

vim & colors from ANSI Escape Sequences: comment afficher dans vim les mêmes couleurs que celles affichées avec la commande cat

Voici ce que je fais: Je répète à travers les couleurs PHP comme ceci:

Shell colors

php crée une sortie contenant des séquences d'échappement ANSI qui colorient le texte lorsqu'il est affiché via le shell sur mon terminal. Vous pouvez trouver la classe php et l'explication ici .

Mais si j'envoie ma sortie dans un fichier et que j'essaie de le lire avec vim, il n'est pas "coloré", je peux juste voir les caractères spéciaux. Est-il possible d'afficher les couleurs comme si elles étaient affichées dans le shell?

8
Olivier Pons

La sortie du terminal sera colorée si le contenu du fichier est envoyé "tel quel" au terminal, sans aucune modification. Cependant, vim et certains autres éditeurs échapperont aux méta-caractères du texte et ajouteront peut-être d'autres codes de couleur pour la coloration syntaxique, ce qui ne fonctionnera pas.

Essayez de transférer le fichier sur le terminal avec cat, cela devrait fonctionner. Certains éditeurs simples ou pagers tels que less pourraient également fonctionner.

Modifier: Je n'ai pas trouvé le moyen de laisser vim "passer" tous les codes d'échappement. , mais j’ai trouvé cette réponse qui renvoie à ce script vim , qui analyse les codes d’échappement et utilise la coloration syntaxique vim pour recréer les codes de couleur de la sortie. Selon sa description, il convient de faire exactement ce que vous voulez (mais je ne l’ai pas testé).

8
Philipp Wendler

Je viens de constater qu’il existe un plug-in Vim pour traiter les caractères d’échappement ASCI. Cela s'appelle 'Ansi Highlighting'. Si vous êtes intéressé, visitez le site http://www.drchip.org/astronaut/vim/index.html#ANSIESC

Oh, vous allez avoir besoin d'utiliser 'Vimballs' pour décompresser ANSIESC.

0
Wawrzek