GNU Info

Info Node: (emacs-lisp-intro.info)Complete zap-to-char

(emacs-lisp-intro.info)Complete zap-to-char


Next: zap-to-char interactive Prev: zap-to-char Up: zap-to-char
Enter node , (file) or (file)node

The Complete `zap-to-char' Implementation
-----------------------------------------

   The GNU Emacs version 19 and version 21 implementations of the
`zap-to-char' function are nearly identical in form, and they work
alike.  The function removes the text in the region between the
location of the cursor (i.e., of point) up to and including the next
occurrence of a specified character.  The text that `zap-to-char'
removes is put in the kill ring; and it can be retrieved from the kill
ring by typing `C-y' (`yank').  If the command is given an argument, it
removes text through that number of occurrences.  Thus, if the cursor
were at the beginning of this sentence and the character were `s',
`Thus' would be removed.  If the argument were two, `Thus, if the curs'
would be removed, up to and including the `s' in `cursor'.

   If the specified character is not found, `zap-to-char' will say
"Search failed", tell you the character you typed, and not remove any
text.

   In order to determine how much text to remove, `zap-to-char' uses a
search function.  Searches are used extensively in code that
manipulates text, and we will focus attention on them as well as on the
deletion command.

   Here is the complete text of the version 19 implementation of the
function:

     (defun zap-to-char (arg char)  ; version 19 implementation
       "Kill up to and including ARG'th occurrence of CHAR.
     Goes backward if ARG is negative; error if CHAR not found."
       (interactive "*p\ncZap to char: ")
       (kill-region (point)
                    (progn
                      (search-forward
                       (char-to-string char) nil nil arg)
                      (point))))


automatically generated by info2www version 1.2.2.9