为了账号安全,请及时绑定邮箱和手机立即绑定

在 Go 中使用 256 色

在 Go 中使用 256 色

Go
茅侃侃 2023-03-07 16:50:17
我如何在 Golang 的终端中使用 256 色。因为像 faith/color 这样的库只有有限的颜色支持。这个 python 库 在这里使用某种默认代码和颜色代码在终端中打印彩色文本。我尝试使用颜色代码,而不是在 go 程序中打印颜色代码,而是在 python 程序中打印彩色文本。我怎样才能像上面的库那样使用颜色代码打印颜色...我需要初始化终端吗?如果是如何?谢谢!我期望在终端中打印 256 种颜色。*去版本:1.18.7
查看完整描述

1 回答

?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

Windows 可能很奇怪。在某些情况下,您需要设置控制台模式。如果您使用的是 Windows,请将其指定为问题的一部分。


colors.go:


package main


import (

    "fmt"

    "strconv"

)


func main() {

    setConsoleColors()


    for i := 0; i < 16; i++ {

        for j := 0; j < 16; j++ {

            code := strconv.Itoa(i*16 + j)

            color := "\u001b[38;5;" + code + "m"

            fmt.Printf("%s %-4s", color, code)

        }

        fmt.Println()

    }

    fmt.Print("\u001b[0m")

}

colors_windows.go:


//go:build windows


package main


import "golang.org/x/sys/windows"


func setConsoleColors() error {

    console := windows.Stdout

    var consoleMode uint32

    windows.GetConsoleMode(console, &consoleMode)

    consoleMode |= windows.ENABLE_VIRTUAL_TERMINAL_PROCESSING

    return windows.SetConsoleMode(console, consoleMode)

}

colors_other.go:


//go:build !windows


package main


func setConsoleColors() error {

    return nil

}


查看完整回答
反对 回复 2023-03-07
  • 1 回答
  • 0 关注
  • 105 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信