Previous: , Up: Deletion and Killing   [Contents][Index]

14.1.4 Options for Killing

Some specialized buffers contain read-only text, which cannot be modified and therefore cannot be killed. The kill commands work specially in a read-only buffer: they move over text and copy it to the kill ring, without actually deleting it from the buffer. Normally, they also beep and display an error message when this happens. But if you set the variable kill-read-only-ok to a non-nil value, they just print a message in the echo area to explain why the text has not been erased.

Before saving the kill to the kill ring, you can transform the string using kill-transform-function. It’s called with the string to be killed, and it should return the string you want to be saved. It can also return nil, in which case the string won’t be saved to the kill ring. For instance, if you never want to save a pure white space string to the kill ring, you can say:

(setq kill-transform-function
      (lambda (string)
        (and (not (string-blank-p string))
             string)))

If you change the variable kill-do-not-save-duplicates to a non-nil value, identical subsequent kills yield a single kill-ring entry, without duplication.

If you enable the minor mode kill-ring-deindent-mode, text saved to the kill-ring will have its indentation decreased by the amount of indentation of the first saved line. That is, if the first line of the saved text was indented n columns, this mode will remove that number of columns from the indentation of each saved line.