英文:
Using 256 colors in Go
问题
如何在使用Golang的终端中使用256种颜色。
由于像faith/color这样的库只支持有限的颜色。
这个Python库 这里
使用一种默认代码和颜色代码在终端中打印彩色文本。
我尝试使用颜色代码,但是在Go程序中它只打印颜色代码,而在Python程序中它打印彩色文本。
我应该如何打印使用颜色代码,就像上述库所做的那样...
我需要初始化终端吗?如果是的话,应该如何初始化?
谢谢!
我希望在终端中打印256种颜色。
*Go版本:1.18.7
英文:
How Can I used 256 colors in terminal with Golang.
As Libraries like faith/color only have limited colors support.
This python library here
use some kind of default code and a color code to print colored text in terminal.
I try to use color code but instead of color it printing color code in go program but in python program it prints colored text.
How can I print color use color code as above library doing...
Do I need to initialize the terminal ? If yes How?
Thanks!
I am expecting 256 colors to print in terminal.
*go version: 1.18.7
答案1
得分: 0
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
}
英文:
Windows can be weird. In some cases you need to set the console mode. If you are using Windows, specify it as part of your question.
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
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论