没有fmt.Print()不会发生光标移动

时间:2019-09-04 06:14:34

标签: go

基本上,我是从头开始制作Go IDE的。我试图使光标在屏幕上移动时遇到的一件事是,如果我没有随机的fmt.Print(string(buffer)),那将是行不通的。

我设法破解了它,因此它不会进一步破坏实现。我试过仅显示一个切片,切片的一部分,但是不,它需要将整个内容转换为字符串。

https://gitlab.com/snippets/1891919 编辑:错误的链接

由于格式不正确而摘录。

这可以让您四处移动光标,但是,如果取出fmt.Printf(string(buffer)),将根本无法四处移动。

1 个答案:

答案 0 :(得分:1)

按箭头键时,它们会将转义序列打印到STDIN。您正在捕获这些转义序列,检查它们是什么,然后将它们打印出来,以便终端可以解释其运动。取出打印语句时,终端永远不会收到转义码,因此它不知道移动光标。

您不仅可以传递从STDIN中获得的信息,还可以编写自己的库来打印转义序列并对其进行调用。