GNU Emacs Lisp Reference Manual
Insertion means adding new text to a buffer. The inserted text goes at point---between the character before point and the character after point.
Insertion relocates markers that point at positions after the insertion point, so that they stay with the surrounding text (see Markers). When a marker points at the place of insertion, insertion normally doesn't relocate the marker, so that it points to the beginning of the inserted text; however, certain special functions such as insert-before-markers relocate such markers to point after the inserted text.
Some insertion functions leave point before the inserted text, while other functions leave it after. We call the former insertion after point and the latter insertion before point.
Insertion functions signal an error if the current buffer is read-only.
These functions copy text characters from strings and buffers along with their properties. The inserted characters have exactly the same properties as the characters they were copied from. By contrast, characters specified as separate arguments, not part of a string or buffer, inherit their text properties from the neighboring text.
nil.nil. This function is unlike the other insertion functions in that it relocates markers initially pointing at the insertion point, to point after the inserted text.
nil. If inherit is non-nil, then the inserted characters inherit sticky text properties from the two characters before and after the insertion point. See Sticky Properties.
nil. In this example, the form is executed with buffer `bar' as the current buffer. We assume that buffer `bar' is initially empty.
---------- Buffer: foo ----------
We hold these truths to be self-evident, that all
---------- Buffer: foo ----------
(insert-buffer-substring "foo" 1 20)
=> nil
---------- Buffer: bar ----------
We hold these truth-!-
---------- Buffer: bar ----------
See Sticky Properties, for other insertion functions that inherit text properties from the nearby text in addition to inserting it. Whitespace inserted by indentation functions also inherits text properties.