Como todo mundo, tenho algumas impressões coloridas no meu bash. Quero manter a sintaxe colorida ao copiar uma extração para um editor de HTML, por exemplo. Existe uma maneira de lidar com isso?
Obrigado.
Se você está falando sobre a saída colorida de alguns utilitários de linha de comando, como ls
, grep
, cmake
, git diff
, etc, por favor nota, que não tem qualquer relação para GNU Bash.
De qualquer forma, existem várias ferramentas para converter saída colorida com seqüências de escape ANSI para HTML:
aha
do pacote com o mesmo nomeansi2html
from HTML :: FromANSI módulo Perl (não empacotado no repositório Ubuntu, pode ser instalado a partir do CPAN)ansi2html.sh
por pixelb (não empacotado, faça o download do git)O uso de todos eles é bastante simples: eles lêem seqüências de escape terminais stdin
e inserem HTML stdout
. Mas observe: a maioria dos utilitários não coloriza a saída se ela não for para o terminal. Você precisa solicitá-los para produzir saída colorida explicitamente. Por exemplo.:
$ ls --color=always | aha | xsel -i -b
xsel -i -b
aqui irá copiar HTML para a área de transferência.
aha
) funcionou lindamente; Muito obrigado!git -c color.ui=always diff | aha > /tmp/diff.html && firefox /tmp/diff.html
... e sim, eu sei que o OP queria o html, mas muitos de nós tropeçamos aqui querendo a formatação geralmente.Você precisa usar bibliotecas javascript para isso, não é possível copiar / colar diretamente e manter as cores como estão. Algumas das bibliotecas populares para isso são:
Fonte: Pergunta semelhante sobre SO
fonte