8.1.1 The interactive Expression

The interactive expression in the zap-to-char command looks like this:

(interactive "p\ncZap to char: ")

The part within quotation marks, "p\ncZap to char: ", specifies two different things. First, and most simply, is the ‘p’. This part is separated from the next part by a newline, ‘\n’. The ‘p’ means that the first argument to the function will be passed the value of a processed prefix. The prefix argument is passed by typing C-u and a number, or M- and a number. If the function is called interactively without a prefix, 1 is passed to this argument.

The second part of "p\ncZap to char: " is ‘cZap to char: ’. In this part, the lower case ‘c’ indicates that interactive expects a prompt and that the argument will be a character. The prompt follows the ‘c’ and is the string ‘Zap to char: ’ (with a space after the colon to make it look good).

What all this does is prepare the arguments to zap-to-char so they are of the right type, and give the user a prompt.

In a read-only buffer, the zap-to-char function copies the text to the kill ring, but does not remove it. The echo area displays a message saying that the buffer is read-only. Also, the terminal may beep or blink at you.