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?


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

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).


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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.