vim et couleurs des séquences d'échappement ANSI: comment afficher dans vim les mêmes couleurs que celles affichées avec la commande cat

8

Voici ce que je fais: je fais écho à travers les couleurs Php comme ceci:

couleurs de coque

php crée une sortie contenant des séquences d'échappement ANSI qui colorent le texte lorsqu'il est affiché à travers 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 la lire avec vim, elle n'est pas "colorée", je peux juste voir les caractères spéciaux. Existe-t-il un moyen d'afficher les couleurs comme elles sont affichées dans la coque?

Olivier Pons
la source
Il pourrait être utile de mentionner comment et avec quel programme vous créez le fichier avec le texte en couleur, et comment vous essayez plus tard de l'afficher.
John S Gruber du
Désolé si je n'étais pas assez précis. Citez ma question: je fais écho à travers Php . C'est à dire " php -f filename" et je fais écho en utilisant cette classe ici: if-not-true-then-false.com/2010/…
Olivier Pons
Copie intersite

Réponses:

8

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 dans le texte et ajouteront peut-être à la place d'autres codes de couleur pour leur coloration syntaxique, donc cela ne fonctionne pas.

Essayez de vider le fichier sur le terminal avec cat, cela devrait fonctionner. Certains éditeurs ou pagers simples lesspeuvent également fonctionner.

Edit: Je n'ai pas trouvé de 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 dans la sortie. Selon sa description, il devrait faire exactement ce que vous voulez (mais je ne l'ai pas testé).

Philipp Wendler
la source
Existe-t-il un moyen de le faire avec vim (= précis pour ne pas s'échapper)?
Olivier Pons
@OlivierPons voir ma modification
Philipp Wendler
Cela ne fonctionnait pas avec moins mais fonctionnait avec plus: cat ~ / myfile.txt | plus
wranvaud
Ce genre de script fonctionne. C'est un vimball, donc pour l'installer, le gunzip quelque part, puis dans vim ': source ansi.vba'. Il gère de nombreux échappements mais pas tous - Une autre solution est 'less -R filename'.
matiu
0

Je viens de découvrir qu'il existe un plugin Vim pour gérer les caractères d'échappement ASCI. Il s'appelle 'Ansi Highlighting'. Si vous êtes intéressé, veuillez visiter http://www.drchip.org/astronaut/vim/index.html#ANSIESC

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

Wawrzek
la source