Depending upon hardware or operating system or NetHack's interface, some keystrokes may be off-limits. For example, ^S and ^Q are often used for XON/XOFF flow-control, meaning that ^S suspends output and subsequent ^Q resumes suspended output. When that is the case, neither of those characters will reach NetHack when it is waiting for a command keystroke. So they aren't used as commands, but 'whatdoes' might not be able to tell you that if they don't get passed through to NetHack. ^M or or is likely to be transformed into ^J or or 'newline' before being passed to NetHack for handling. So it isn't used as a command, and 'whatdoes' might seem as if it is reporting the wrong character but will be operating correctly if it describes ^J when you type ^M. A NUL character, which is typed as ^ on some keyboards, ^@ on others, and maybe not typeable at all on yet others, is not used as a command, and will be converted into ESC before reaching 'whatdoes'. Unlike ^M, this transformation is performed within NetHack. But like ^M, if you type NUL and get feedback about ESC, the situation is expected. ESC itself is a synonym for ^[, and is another source of oddity. Various function keys, including cursor arrow keys, may transmit an "escape sequence" of ESC + [ + other stuff, confusing NetHack as to what command was intended since the ESC will be processed and then whatever follows will seem to NetHack like--and be used as--something typed by the user. (If you press a function key and a menu of the armor your hero is wearing appears, what happened was that an escape sequence was sent to NetHack, its ESC aborted any pending key operation, its '[' was then treated as a command to show worn armor, and the "other stuff" probably got silently discarded as invalid choices while you dismissed the menu.) If you have NetHack's 'altmeta' option enabled, meaning that the or