web-dev-qa-db-fra.com

Comment faire pour afficher les couleurs Vim comme indiqué par les codes de couleur?

En bref, je suis en train de remplacer less par vim (vimpager). J'ai des paramètres pour les scripts pour cracher des couleurs (et gras et tout Nice) chaque fois qu'ils le peuvent. less comprend les codes couleurs et les affiche bien. Comment puis-je faire vim analyser les codes et afficher les couleurs/gras comme less?

62
phunehehe

Deux réponses:

Un court: vous voulez utiliser le script vim AnsiEsc.vim . Il masquera les séquences d'échappement ANSI réelles dans votre fichier et utilisera la coloration syntaxique pour colorer le texte de manière appropriée. Le problème avec l'utilisation de ceci dans un pager est que vous devrez faire reconnaître à vim quand l'utiliser. Je ne sais pas si vous pouvez simplement toujours le charger, ou s'il entrera en conflit avec d'autres fichiers de syntaxe. Vous devrez l'expérimenter.

Une réponse longue: Le mieux que vous puissiez espérer est une solution partielle non portable. Moins ne comprend pas réellement les séquences d'échappement du terminal, car celles-ci sont largement dépendantes du terminal, mais moins peuvent les reconnaître (un sous-ensemble) et savent les transmettre au terminal, si vous utilisez le -r (ou -R). Le terminal interprète les séquences d'échappement et modifie les attributs du texte (couleur, gras, souligné ...). Vim, étant un éditeur plutôt qu'un pager, ne transmet pas simplement des caractères de contrôle bruts au terminal. Il doit les afficher d'une manière ou d'une autre, afin que vous puissiez les modifier. Vous pouvez utiliser d'autres fonctionnalités de vim, telles que la dissimulation et la mise en évidence de la syntaxe pour masquer les séquences et les utiliser pour définir les couleurs du texte.Cependant, il ne traitera toujours qu'un sous-ensemble des séquences de terminaux et ne fonctionnera probablement pas sur certains terminaux. .

Ce n'est vraiment qu'un des nombreux problèmes que vous rencontrerez lorsque vous essayez d'utiliser un éditeur de texte comme pager.

45
Jan Hlavacek

Maintenant, avec vim 8, vous pouvez utiliser le mode terminal :terminal puis dans ce terminal, faites cat myfile et revenir au mode normal avec Ctrl-w N. Cela affichera correctement les codes de couleur ANSI. En automatisant ces étapes et en lisant à partir d'une entrée standard au lieu d'un fichier, il devrait être possible d'utiliser vim pour remplacer moins.

4
rubystallion