Xah Lee has a nice tutorial on getting user input with Emacs Lisp. Most Elisp programmers are aware of the interactive
control strings for this purpose and most of us probably use that for most occasions requiring user input:
(defun test-input-func (msg) (interactive "sEnter Message: ") (message "Your message was: %s" msg))
The interactive
form supports the input of many type of data as documented in the built-in info documentation and also the Emacs Lisp Reference Manual.
The nice thing about Lees tutorial is that he mentions the rarer but sometimes useful functions that also accept user input. These are handy when you need to get data from within a function that is not (necessarily) an input parameter. These functions are:
Function | Use |
---|---|
read-string |
Read input as a string |
read-file-name |
Read input as a file name |
read-regexp |
Read input as a regular expression |
An additional benefit of these functions is that they support the history mechanism and that read-regexp
doesn’t need the escaping that representing regular expressions as strings usually require.
Head on over to Lee’s tutorial for all the details. If you do anything other than very simple Elisp, this is stuff you need to know.