使用 golang 在 Windows 中获取终端宽度
Get terminal width in Windows using golang
Go中可以获取终端宽度吗?
我尝试使用 http://github.com/nsf/termbox-go 和代码:
package main
import (
"fmt"
"github.com/nsf/termbox-go"
)
func main() {
fmt.Println(termbox.Size())
}
但它打印 0 0
.
我也试过 http://github.com/buger/goterm 但是当我尝试 go get
时,我得到一个错误:
$ go get github.com/buger/goterm
# github.com/buger/goterm
..\..\buger\goterm\terminal.go:78: undefined: syscall.SYS_IOCTL
..\..\buger\goterm\terminal.go:82: not enough arguments in call to syscall.Syscall
关于如何获取终端宽度还有其他想法吗?
您需要在调用 termbox.Size()
之前调用 termbox.Init()
,然后在完成后调用 termbox.Close()
。
package main
import (
"fmt"
"github.com/nsf/termbox-go"
)
func main() {
if err := termbox.Init(); err != nil {
panic(err)
}
w, h := termbox.Size()
termbox.Close()
fmt.Println(w, h)
}
您还可以使用 twin
包:
package main
import "github.com/walles/moar/twin"
func main() {
s, e := twin.NewScreen()
if e != nil {
panic(e)
}
w, h := s.Size()
println(w, h)
}
Go中可以获取终端宽度吗?
我尝试使用 http://github.com/nsf/termbox-go 和代码:
package main
import (
"fmt"
"github.com/nsf/termbox-go"
)
func main() {
fmt.Println(termbox.Size())
}
但它打印 0 0
.
我也试过 http://github.com/buger/goterm 但是当我尝试 go get
时,我得到一个错误:
$ go get github.com/buger/goterm
# github.com/buger/goterm
..\..\buger\goterm\terminal.go:78: undefined: syscall.SYS_IOCTL
..\..\buger\goterm\terminal.go:82: not enough arguments in call to syscall.Syscall
关于如何获取终端宽度还有其他想法吗?
您需要在调用 termbox.Size()
之前调用 termbox.Init()
,然后在完成后调用 termbox.Close()
。
package main
import (
"fmt"
"github.com/nsf/termbox-go"
)
func main() {
if err := termbox.Init(); err != nil {
panic(err)
}
w, h := termbox.Size()
termbox.Close()
fmt.Println(w, h)
}
您还可以使用 twin
包:
package main
import "github.com/walles/moar/twin"
func main() {
s, e := twin.NewScreen()
if e != nil {
panic(e)
}
w, h := s.Size()
println(w, h)
}