为此,他四处张望,但没有任何答案。
我可以通过使用scan或bufio.readstring循环在Go中使用控制台创建多行提示输入,并检查输入到结束输入字符。或者甚至可以将任何字符传递给bufio.readstring,以便输入\ n后可以继续阅读。
但是在两种情况下,用户都无法将其退格到前一行,因为已经输入并验证了前一行。
如何使用户退格到上一行,或在控制台输入的各行之间自由移动光标?
我可以想象清除终端并重画一些东西。那是唯一的方法吗?
答案 0 :(得分:1)
您可以使用一个readline库,如本演示所示
package main
import (
"github.com/chzyer/readline"
)
func main() {
rl, err := readline.NewEx(&readline.Config{
Prompt: "> ",
HistoryFile: "/tmp/readline-multiline",
DisableAutoSaveHistory: true,
})
if err != nil {
panic(err)
}
defer rl.Close()
for {
cmd, err := rl.Readline()
if err != nil {
break
}
rl.SaveHistory(cmd)
}
}