¿Puede Vim interpretar códigos de escape de color de terminal?

29

Muchos programas CLI generan texto bien resaltado. Si bien la mayoría de ellos verifica si la salida va a un archivo, algunos incluyen los códigos de escape de la terminal. Me gusta la salida con los códigos de escape, pero ver estos archivos en Vim es doloroso.

¿Puede Vim interpretar estos códigos de escape en los colores esperados? Si no, ¿se puede configurar Vim para ignorar estos códigos de escape?

beatgammit
fuente

Respuestas:

28

Existen varios complementos que le permiten ver los colores ANSI a través de códigos de escape:


Si desea eliminar todos los códigos de escape, puede usar:

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

Nota: no<1b> es texto literal, es el carácter de escape, use + seguido de para insertarlo (también puede aparecer como , dependiendo de su configuración).CtrlvEsc^[display

O puedes eliminarlos con sed; por ejemplo:

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

Si tiene un vim suficientemente moderno que tiene la función de terminal +, puede hacerlo :term cat somefiley obtendrá un búfer con todos los códigos de terminal interpretados.

Esto podría funcionar mejor en archivos grandes que, por ejemplo, Colorizer, lo que hizo que mi vim fuera inusualmente lento cuando lo solté en un archivo de 6000 líneas.

Marius Gedminas
fuente