登录
首页 >  Golang >  Go问答

没有使用 fmt.Print() 将不会触发光标位移

来源:stackoverflow

时间:2024-03-03 13:00:26 329浏览 收藏

一分耕耘,一分收获!既然打开了这篇文章《没有使用 fmt.Print() 将不会触发光标位移》,就坚持看下去吧!文中内容包含等等知识点...希望你能在阅读本文后,能真真实实学到知识或者帮你解决心中的疑惑,也欢迎大佬或者新人朋友们多留言评论,多给建议!谢谢!

问题内容

基本上我是从头开始制作一个 Go IDE。我在尝试使光标在屏幕上移动时遇到的一件事是,如果我没有随机的 fmt.Print(string(buffer)) 就无法工作。

我设法破解了它,这样它就不会进一步破坏实现。我尝试过只显示单个切片(切片的一部分),但是不行,它需要将整个内容转换为字符串。

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

由于格式不正确而被片段化。

这允许您移动光标,但是如果您取出 fmt.Printf(string(buffer)) 它根本不会让您移动。


解决方案


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

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

好了,本文到此结束,带大家了解了《没有使用 fmt.Print() 将不会触发光标位移》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>