package term import ( "fmt" "github.com/moby/term" "io" ) // TerminalSize 获取当前终端宽高,非终端返回err,同时宽高返回0值 func TerminalSize(w io.Writer) (int, int, error) { outFd, isTerminal := term.GetFdInfo(w) if !isTerminal { return 0, 0, fmt.Errorf("given writer is no terminal") } winSize, err := term.GetWinsize(outFd) if err != nil { return 0, 0, err } return int(winSize.Width), int(winSize.Height), nil }