有一些工具提供彩色输出:
dwdiff -c File1 File2 # word level diff
grep --color=always # we all know this guy
...
问题是:如何将任意程序的彩色输出转换为彩色html文件?
其他输出格式可能也适用(LaTeX 就更好了)。我认为 html 是一个很好的起点,因为很容易将其转换为其他格式。
(对于如何保留终端颜色代码,请遵循答案:
https://unix.stackexchange.com/a/10832/9689
... | unbuffer command_with_colours arg1 arg2 | ...
- 工具解除缓冲是其一部分预计)
答案1
答案2
答案3
答案4
你可以使用vim。这是我用来将 diff 输出转换为 HTML 的脚本的一部分。
vim -n \
-c ':%s%^+ %+++ ' \
-c ':%s%^- %--- ' \
-c ':%s%^ % ' \
-c ':set nu' \
-c ':let html_use_css=1' \
-c ':so $VIMRUNTIME/syntax/2html.vim' \
-c ':wq' -c ':qa!' $input > /dev/null 2> /dev/null
之后,我运行 sed 将 CSS 和标题更改为我想要的样子。
*编辑:我应该提到,要获得颜色,您需要打开语法突出显示。我在我的 .vimrc 中这样做,但如果你想在此处添加它,那么它只是另一行,例如
-c ':syntax on' \