基本上,我是从头开始制作Go IDE的。我试图使光标在屏幕上移动时遇到的一件事是,如果我没有随机的fmt.Print(string(buffer)),那将是行不通的。
我设法破解了它,因此它不会进一步破坏实现。我试过仅显示一个切片,切片的一部分,但是不,它需要将整个内容转换为字符串。
https://gitlab.com/snippets/1891919 编辑:错误的链接
由于格式不正确而摘录。
这可以让您四处移动光标,但是,如果取出fmt.Printf(string(buffer)),将根本无法四处移动。
答案 0 :(得分:1)
按箭头键时,它们会将转义序列打印到STDIN。您正在捕获这些转义序列,检查它们是什么,然后将它们打印出来,以便终端可以解释其运动。取出打印语句时,终端永远不会收到转义码,因此它不知道移动光标。
您不仅可以传递从STDIN中获得的信息,还可以编写自己的库来打印转义序列并对其进行调用。