J'ai un script qui génère un fichier journal avec des codes de couleur ANSI comme ceci:
[2012-05-14 18:00:02] ^[[0mINF: -- Starting update script --^[[0m
[2012-05-14 18:00:29] ^[[91mERR: Improper date, entry being ignored.^[[0m
Existe-t-il un moyen de faire comprendre à Vim ces codes de couleur?
Merci pour toute aide.
Utilisez le plugin AnsiEsc de Charles Campbell (Dr Chip):
http://www.vim.org/scripts/script.php?script_id=302
Avant:
:AnsiEsc<CR>
Je ne suis pas sûr de vim, mais si vous visualisez simplement un fichier journal (c'est-à-dire que vous n'avez pas besoin de pouvoir le modifier), vous pouvez utiliser moins:
less -R
Étant donné que le lien dans la réponse acceptée ne semble pas fonctionner, j'ai trouvé ce lien: https://github.com/vim-scripts/AnsiEsc.vim
AnsiEsc
fonctionne avec les codes de couleur ANSI de base, mais pas avec les autres codes. Le problème est qu'il y a beaucoup de ANSI_escape_code s au-delà de la base \033[31m red \033[0m
; qu'est-ce que AnsiEsc
, qu'est-ce qu'un programme, à voir avec \033[... unrecognized
? Il semble que AnsiEsc
laisse simplement tel, mais différemment dans Vim et mvim.
Un meilleur doc sur AnsiEsc
serait le bienvenu; des liens vers un petit analyseur de code d'échappement ANSI en python serait le bienvenu.
Un cas de test pour la sortie colorée de gnu ls et grep, avec TERM xterm-256color
et macosx Terminal version 2.3:
#!/bin/bash
# test https://en.wikipedia.org/wiki/ANSI_escape_code#Colors from gnu ls and grep
mkdir bluedir 2> /dev/null
ls -d --color=always bluedir > ls.out
echo red-hot | grep --color=always red > grep.out
od -c ls.out
# 0000000 033 [ 0 m 033 [ 3 4 m b l u e d i r
# 0000020 033 [ 0 m \n
# Vim 7.3 :AnsiEsc "bluedir" blue, \033[0m as is
# mvim 8.0 :AnsiEsc "bluedir" works
od -c grep.out
# 0000000 033 [ 0 1 ; 3 1 m 033 [ K r e d 033 [
# 0000020 m 033 [ K - h o t \n
# both Vim and mvim display as is
Voir aussi le joli script bash colours256 .