我正在用 golang 创建一个 CLI 工具,我们称之为
repl
。它从由 ;
分隔的 stdin 读取指令,将函数应用于读取的语句,并将结果打印到 stdout(并返回到读取)
repl> foo;
"foo"
repl> bar;
"bar"
如果我将
bar
错拼为 baer
并且想要修复它,我必须删除 a
之前的所有字符,然后重写,而不是能够导航到该字符(使用箭头键)并仅删除该字符。本质上,我试图复制一些商业 REPL(例如 mysql、python 等)中已经存在的行为,您可以使用箭头键在字符之间移动。关于如何做到这一点有什么建议吗?
您可以使用Readline,它有您所要求的以及更多。
检查班轮:https://github.com/peterh/liner
受 linenoise 启发,有历史的 Pure Go 行编辑器