像Emacs和Nano这样的程序如何在终端中运行时获得用户输入,而无需用户按回车键?



像Emacs和Nano这样的程序可以在终端窗口中运行并接受实时用户输入,我自己如何完成呢?我希望使用C++但我可以看到这可能需要与用户的 shell 接口,在本例中为 Bash。如何在用户无需按回车键的情况下从终端窗口进行输入(无论是从鼠标还是键盘(?

我的目标平台是Mac OSX版本10.13.5,但也欢迎回答如何在Windows或Linux等其他平台上执行此操作。

这些程序将终端设置为原始模式,而不是烹饪模式。烘焙模式一次读取一行并由终端驱动程序处理,原始模式一次读取一个字符,并由正在运行的程序处理。

此答案包含更多信息。

此存储库是一个简单的项目,它实现了可以从中学习的此模式。man termios还将为您提供有关操作终端模式的信息。

最新更新