Question

I'm trying to scan for the up and down arrow key codes in Go, but it doesn't seem to be working. So far I've tried this:

in = bufio.NewReader(os.Stdin)
b, err := in.ReadByte()
fmt.Println("Key code:", b, err)

But when I press the up or down key, it never stops reading (it never run the Println statement) and just displays "^[[A" and "^[[B" directly in the terminal. Any idea?

Was it helpful?

Solution

I'm fairly certain you can't get raw mode input easily without os syscalls. Have a look at the answers to Read a character from standard input in Go (without pressing Enter) .

It seems that the generally accepted solution is to use termbox-go which apparently has fairly good cross platform capability.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top