gpt4 book ai didi

go - 如何在 golang 的终端打印期间禁用键盘

转载 作者:IT王子 更新时间:2023-10-29 01:35:08 25 4
gpt4 key购买 nike

我正在用 golang 写一个文本界面,如果你在它打印的时候打字,它会干扰正在呈现的文本。我知道“stty -echo”将停止回显键盘的输出,“stty echo”会重新启用它,但是当我编写如下函数时:

func disableKeyboard() {
c := exec.Command("stty -echo")
c.Stdout = os.Stdout
c.Run()
}

func enableKeyboard() {
c := exec.Command("stty echo")
c.Stdout = os.Stdout
c.Run()
}

这些对我的程序输出没有影响。我发送这些命令的方式有问题吗?

类似于:

disableKeyboard()
time.Sleep(time.Second)
enableKeyboard()

没用。我目前使用的是 Mac。

最佳答案

crypto/ssh/terminal package (由于某种原因,这不是标准库)具有满足您需要的代码,尽管它使用相当低级的系统调用来实现它。您或许可以根据您的尝试对其进行调整(通过使用 syscall.Stdin 作为文件描述符)。不过,正如 Flimzy 指出的那样,这仍然不会禁用键盘输入,它只是抑制它回显到终端,因此如果您以后依赖它,您可能仍然需要刷新输入。

关于go - 如何在 golang 的终端打印期间禁用键盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46776014/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com