Read a single key press from the terminal
install.packages("keypress")
> has_keypress_support()
[1] TRUE
> x <- keypress()
> cat("You pressed key", x, "\n")
You pressed key h
This is unfortunately impossible to do in
stdin() is not a terminal.In other words, it pretty much only works interactively, in a terminal. The terminal can be any Linux, macOS, or other Unix terminal or Windows cmd (also called RTerm in R) or Windows terminal.
Note that not all keys are supported, in particular most of the modifiers (alt, shift, etc.) are not. Supported special keys are:
up, down, right, left. Available on most keyboards.f1 to f12. Available on most keyboards.enter, backspace, escape, tab.CONTROL key: ctrl-a, ctrl-b,
ctrl-c, ctrl-d, ctrl-e, ctrl-f, ctrl-h, ctrl-k, ctrl-l,
ctrl-n, ctrl-p, ctrl-t, ctrl-u, ctrl-w.home, end, insert,
delete, pageup, pagedown.MIT © Gábor Csárdi