Go to the first, previous, next, last section, table of contents.


Functions for Killing

kill-region is the usual subroutine for killing text. Any command that calls this function is a "kill command" (and should probably have `kill' in its name). kill-region puts the newly killed text in a new element at the beginning of the kill ring or adds it to the most recent element. It determines automatically (using last-command) whether the previous command was a kill command, and if so appends the killed text to the most recent entry.

Command: kill-region start end
This function kills the text in the region defined by start and end. The text is deleted but saved in the kill ring, along with its text properties. The value is always nil.

In an interactive call, start and end are point and the mark.

If the buffer is read-only, kill-region modifies the kill ring just the same, then signals an error without modifying the buffer. This is convenient because it lets the user use all the kill commands to copy text into the kill ring from a read-only buffer.

User Option: kill-read-only-ok
If this option is non-nil, kill-region does not get an error if the buffer is read-only. Instead, it simply returns, updating the kill ring but not changing the buffer.

Command: copy-region-as-kill start end
This command saves the region defined by start and end on the kill ring (including text properties), but does not delete the text from the buffer. It returns nil. It also indicates the extent of the text copied by moving the cursor momentarily, or by displaying a message in the echo area.

The command does not set this-command to kill-region, so a subsequent kill command does not append to the same kill ring entry.

Don't call copy-region-as-kill in Lisp programs unless you aim to support Emacs 18. For newer Emacs versions, it is better to use kill-new or kill-append instead. See section Low-Level Kill Ring.


Go to the first, previous, next, last section, table of contents.