重击:彩色复制/粘贴


12

和所有人一样,我的bash中有一些彩色输出。例如,在将摘录复制到HTML编辑器时,我想保留彩色语法。有办法解决吗?

谢谢。

Answers:


17

如果你正在谈论的一些命令行实用工具,比如彩色输出lsgrepcmakegit diff,等,请注意,它不具有GNU Bash的任何关系。

无论如何,有几种工具可以将使用ANSI转义序列着色的输出转换为HTML:

  • aha 从同名包装
  • ansi2html来自HTML :: FromANSI Perl模块(未打包在Ubuntu回购中,可以从CPAN安装)
  • ansi2html.sh通过pixelb(未打包,从git下载)

它们的用法非常简单:它们从中读取终端转义序列stdin并将HTML放入中stdout。但请注意:大多数utils不会为输出着色,如果它们不会输出到终端。您必须命令它们显式生成彩色输出。例如:

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

xsel -i -b 这里将HTML复制到剪贴板。


这个(aha)效果很好;非常感谢你!
ShreevatsaR

2
啊哈-太好了!这对我来说几乎是完美的。为了能够复制格式化的文本,我适应了路由到tmp的方法,在浏览器中打开,然后像其他站点一样复制/粘贴:git -c color.ui=always diff | aha > /tmp/diff.html && firefox /tmp/diff.html ...是的,我知道OP想要html,但是我们很多人会在这里想要一般的格式。
2015年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.