Vim peut-il interpréter les codes d'échappement de couleur de terminal?

29

De nombreux programmes CLI affichent un texte bien mis en évidence. Alors que la plupart d'entre eux vérifient si la sortie va dans un fichier, certains incluent les codes d'échappement du terminal. J'aime la sortie avec les codes d'échappement, mais voir ces fichiers dans Vim est pénible.

Vim peut-il interpréter ces codes d'échappement dans les couleurs attendues? Sinon, Vim peut-il être configuré pour ignorer ces codes d'échappement?

beatgammit
la source

Réponses:

28

Il existe différents plugins qui vous permettent de visualiser les couleurs ANSI via des codes d'échappement:


Si vous souhaitez supprimer tous les codes d'échappement, vous pouvez utiliser:

:%s/<1b>\[[0-9;]*m//g

Remarque: ce <1b>n'est pas du texte littéral, c'est le caractère d'échappement, utilisez Ctrl+ vsuivi de Escpour l'insérer (il peut également apparaître comme ^[, selon votre displayréglage).

Ou vous pouvez les supprimer avec sed; par exemple:

$ sed 's|\x1b\[[;0-9]*m||g' somefile | vi -
Martin Tournoij
la source
0

Si vous avez un vim suffisamment moderne qui a la fonctionnalité de terminal +, vous pouvez le faire :term cat somefileet vous obtiendrez un tampon avec tous les codes de terminal interprétés.

Cela pourrait mieux fonctionner sur des fichiers volumineux que, par exemple, Colorizer, ce qui a rendu mon vim incroyablement lent lorsque je l'ai lâché sur un fichier de 6000 lignes.

Marius Gedminas
la source