Previous: Input Modes, Up: Terminal Input

39.12.2 Recording Input

— Function: recent-keys

This function returns a vector containing the last 300 input events from the keyboard or mouse. All input events are included, whether or not they were used as parts of key sequences. Thus, you always get the last 300 input events, not counting events generated by keyboard macros. (These are excluded because they are less interesting for debugging; it should be enough to see the events that invoked the macros.)

A call to clear-this-command-keys (see Command Loop Info) causes this function to return an empty vector immediately afterward.

— Command: open-dribble-file filename

This function opens a dribble file named filename. When a dribble file is open, each input event from the keyboard or mouse (but not those from keyboard macros) is written in that file. A non-character event is expressed using its printed representation surrounded by ‘<...>’.

You close the dribble file by calling this function with an argument of nil.

This function is normally used to record the input necessary to trigger an Emacs bug, for the sake of a bug report.

          (open-dribble-file "~/dribble")
               ⇒ nil

See also the open-termscript function (see Terminal Output).