【发布时间】:2018-03-22 06:49:13
【问题描述】:
我有一个 CLI 程序,它会要求用户输入 ENTER 继续,其他键中止。
for {
show() // list one page
fmt.Printf("Press ENTER to show next page, press any other key then Enter to quit")
var input string
fmt.Scanln(&input)
if strings.Trim(input, " ") == "" {
continue
} else {
break
}
}
我想改善用户体验:而不是“ENTER or press something then ENTER”,我怎样才能使它“按空格显示下一页,按q退出”,就像Linux命令“更多”等。
说清楚:
- 要继续的现有控件是“ENTER”,我想使用“SPACE”(只是 SPACE,而不是 SPACE+ENTER);
- 现有要退出的控件是“任意键+ENTER”,我想使用“q”(只是q,而不是q+ENTER)
【问题讨论】:
-
使用 stdlib 不容易做到。您很可能需要第三方库,例如 GNU readline,例如 github.com/chzyer/readline 或 github.com/nsf/termbox-go。