我正在使用 Ruby 制作一个简单的基于终端的游戏,我目前正在尝试想出一种从终端读取输入的方法。
到目前为止,我一直在使用gets
,但我想让游戏立即做出反应而不需要换行符(所以你不需要按一个键,然后输入)。
我发现我需要将终端置于非规范模式,我假设我可以通过调用$stdin.ioctl
. 问题是,我不确定我应该传递什么参数或标志,文档和搜索只会导致有关底层 C 函数的信息。
谁能告诉我我应该打电话给我$stdin.ioctl
吗?我在 OSX Leopard 上使用 Terminal.app/tcsh。
编辑:这就是我最终使用的,感谢 MarkusQ:
%x{stty -icanon -echo}
key = STDIN.read(1)