如何读取交互式R中的任何按键(例如上移或上移)?

时间:2014-04-28 06:47:16

标签: r device keypress interactive

如何读取R(交互模式)中的任意按键,例如上移或上移,并返回按下的实际按键?

理想情况下,与设备无关,独立于操作系统的方式(我在Mac OS 10.8.x上)

我正在谈论读取任何实际的任意按键,包括光标键或修饰键,因此scan()readline()将不会这样做 - 光标键被交互式控制台拦截。而不只是waiting for a keypress

目前尚不清楚这是简单的还是与设备无关的。我查看了文档: interactive()options('device'),R_INTERACTIVE_DEVICE,R_DEFAULT_DEVICE

我读了R-internals,其中说“图形设备......可以处理请求/机会采取行动,例如......等待事件,例如鼠标点击或按键。” 但它没有多说。

我尝试了grDevices::getGraphicsEvent()但得到了:

> getGraphicsEvent('waiting for cursor keys', onKeybd=function(key) { print(key) } )
Error in setGraphicsEventEnv(which, as.environment(list(...))) : 
  this graphics device does not support event handling

如果你挖得足够深,你可以使用特定于工具包和/或特定于操作系统的黑客攻击,例如与石英。 This guy建议Sudoku::playSudoku(),它使用Quartz来处理鼠标和键输入。我有石英。但是特定于Quartz的解决方案不适用于Windows。这一切看起来都很混乱。

有人可以揭开这一切的神秘面纱吗?

0 个答案:

没有答案