O Vim pode interpretar códigos de escape de cores dos terminais?

29

Muitos programas CLI produzem texto bem destacado. Enquanto a maioria deles verifica se a saída está indo para um arquivo, alguns incluem os códigos de escape do terminal. Eu gosto da saída com os códigos de escape, mas visualizar esses arquivos no Vim é doloroso.

O Vim pode interpretar esses códigos de escape nas cores esperadas? Caso contrário, o Vim pode ser configurado para ignorar esses códigos de escape?

beatgammit
fonte

Respostas:

28

Existem vários plugins que permitem exibir cores ANSI através de códigos de escape:


Se você deseja remover todos os códigos de escape, você pode usar:

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

Nota: não<1b> é um texto literal, é o caractere de escape, use Ctrl+ vseguido de Escpara inseri-lo (ele também pode aparecer como ^[, dependendo da sua displayconfiguração).

Ou você pode removê-los com sed; por exemplo:

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

Se você possui um vim suficientemente moderno que possui o recurso + terminal, pode fazê :term cat somefile-lo e obterá um buffer com todos os códigos de terminal interpretados.

Isso pode funcionar melhor em arquivos grandes do que, por exemplo, no Colorizer, o que tornava meu vim lento inutilmente quando o soltei em um arquivo de 6000 linhas.

Marius Gedminas
fonte