Bash: copia / incolla colorato


12

Come tutti, ho qualche output colorato nella mia bash. Voglio mantenere la sintassi colorata quando, ad esempio, copio un estratto in un editor HTML. C'è un modo per gestirlo?

Grazie.

Risposte:


16

Se si sta parlando di uscita colorato di alcuni programmi di utilità da riga di comando, come ls, grep, cmake, git diff, ecc, si prega di nota, che non ha rapporti con GNU Bash.

Ad ogni modo, esistono diversi strumenti per convertire l'output colorato in HTML con sequenze di escape ANSI in HTML:

  • aha dal pacchetto con lo stesso nome
  • ansi2htmldal modulo HTML :: FromANSI Perl (non impacchettato nel repository Ubuntu, può essere installato da CPAN)
  • ansi2html.shper pixelb (non impacchettato, download da git)

L'uso di tutti loro è piuttosto semplice: leggono sequenze di escape terminali stdine inseriscono HTML stdout. Ma nota: la maggior parte dei programmi di utilità non colorano l'output se non sta andando al terminale. Devi ordinare loro di produrre in modo esplicito output colorato. Per esempio.:

$ ls --color=always | aha | xsel -i -b

xsel -i -b qui copierà HTML negli appunti.


Questo ( aha) ha funzionato magnificamente; Grazie mille!
ShreevatsaR,

2
aha - geniale! Questo è quasi perfetto per me. Per essere in grado di copiare testo formattato, mi sono adattato per instradare su tmp, aprire nel browser, quindi semplicemente copiare / incollare come per altri siti: git -c color.ui=always diff | aha > /tmp/diff.html && firefox /tmp/diff.html ... e sì, so che l'OP voleva l'html, ma molti di noi inciamperanno qui volendo la formattazione in generale.
saggio

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.