vim e cores do ANSI Escape Sequences: como exibir no vim as mesmas cores que são exibidas com o comando cat

8

Aqui está o que estou fazendo: estou ecoando em cores Php como esta:

cores da casca

O php cria uma saída contendo seqüências de escape ANSI que colorem o texto quando ele é exibido através do shell no meu terminal. Você pode encontrar a classe php e a explicação aqui .

Mas se eu enviar minha saída para um arquivo, e tentar lê-lo com o vim, ele não será "colorido", apenas posso ver os caracteres especiais. Existe uma maneira de exibir as cores como elas são exibidas no shell?

Olivier Pons
fonte
Pode ser útil se você mencionar como e com qual programa você está criando o arquivo com o texto colorido e como você está tentando exibi-lo posteriormente.
John S Gruber
Desculpe se eu não era preciso o suficiente. Cite minha pergunta: estou ecoando pelo Php . Ou seja, " php -f filename" e estou ecoando usando esta classe aqui: if-not-true-then-false.com/2010/…
Olivier Pons
Possível duplicado entre sites: superuser.com/questions/358409/…
Ciro Santilli #: 23314

Respostas:

8

A saída do terminal será colorida se o conteúdo do arquivo for enviado "como está" para o terminal, sem nenhuma modificação. No entanto, o vim e alguns outros editores escapam dos meta caracteres no texto e, em vez disso, talvez adicionem outros códigos de cores para destacar a sintaxe, para que isso não funcione.

Tente despejar o arquivo no terminal com cat, isso deve funcionar. Alguns editores ou pagers simples como lesstambém podem funcionar.

Edit: Eu não encontrei uma maneira de permitir que o vim "repasse" todos os códigos de escape, mas eu encontrei esta resposta que vincula esse script do vim , que analisa os códigos de escape e usa o destaque da sintaxe do vim para recriar os códigos de cores na saída. De acordo com sua descrição, ele deve fazer exatamente o que você deseja (mas eu não testei).

Philipp Wendler
fonte
Existe uma maneira de fazer isso com o vim (= preciso para não escapar)?
Olivier Pons
@OlivierPons see my edit #
Philipp Wendler
Não funcionou com menos, mas funcionou com mais: cat ~ / myfile.txt | mais
wranvaud
Esse script meio que funciona. É um vimball, portanto, para instalá-lo, faça o gunzip em algum lugar e, em seguida, no vim ': source ansi.vba'. Ele lida com muitas fugas, mas não todas - Outra solução é 'menos -R nome do arquivo'.
matiu 6/10/19
0

Acabei de descobrir que existe um plug-in Vim para lidar com caracteres de escape ASCI. É chamado 'Ansi Highlighting'. Se você estiver interessado, visite http://www.drchip.org/astronaut/vim/index.html#ANSIESC

Ah, você precisará usar 'Vimballs' para descompactar o ANSIESC.

Wawrzek
fonte