这是为文本着色并在 ansi 控制台上提供粗体、闪烁、突出显示效果的脚本。
import (
"fmt"
"github.com/mgutz/ansi"
)
color1Func := ansi.ColorFunc(fmt.Sprintf("%v+bh:%v", 181, 255))
color2Func := ansi.ColorFunc(fmt.Sprintf("%v+B:%v", 121, 255))
io.WriteString(os.Stdout, color1Func(text1))
io.WriteString(os.Stdout, color2Func(text2))
我尝试打印斜体字体以设置更好的控制台应用程序样式,但几天的挣扎在任何地方都找不到它。 这是 ansi 控制台无法实现的吗?
更新:
这是我为mgutz/ansi
库检查的内容
if strings.Contains(fgStyle, "b") {
buf.WriteString(bold)
}
if strings.Contains(fgStyle, "B") {
buf.WriteString(blink)
}
if strings.Contains(fgStyle, "u") {
buf.WriteString(underline)
}
if strings.Contains(fgStyle, "i") {
buf.WriteString(inverse)
}
if strings.Contains(fgStyle, "s") {
buf.WriteString(strikethrough)
}
if strings.Contains(fgStyle, "h") {
base = highIntensityFG
}
它有"i",但它不是斜体。
无论如何可以在 ansi 控制台上打印斜体字体吗?
不。
从 https://en.wikipedia.org/wiki/ANSI_escape_code:
斜体 未得到广泛支持。有时被视为相反。
这在很大程度上取决于终端的细节,以至于没有可靠的便携式方法可以做到这一点。