elisp: Commands for Insertion

 
 31.5 User-Level Insertion Commands
 ==================================
 
 This section describes higher-level commands for inserting text,
 commands intended primarily for the user but useful also in Lisp
 programs.
 
  -- Command: insert-buffer from-buffer-or-name
      This command inserts the entire accessible contents of
      FROM-BUFFER-OR-NAME (which must exist) into the current buffer
      after point.  It leaves the mark after the inserted text.  The
      value is ‘nil’.
 
  -- Command: self-insert-command count
      This command inserts the last character typed; it does so COUNT
      times, before point, and returns ‘nil’.  Most printing characters
      are bound to this command.  In routine use, ‘self-insert-command’
      is the most frequently called function in Emacs, but programs
      rarely use it except to install it on a keymap.
 
      In an interactive call, COUNT is the numeric prefix argument.
 
      Self-insertion translates the input character through
      ‘translation-table-for-input’.  SeeTranslation of Characters.
 
      This command calls ‘auto-fill-function’ whenever that is non-‘nil’
      and the character inserted is in the table ‘auto-fill-chars’ (See
      Auto Filling).
 
      This command performs abbrev expansion if Abbrev mode is enabled
      and the inserted character does not have word-constituent syntax.
      (SeeAbbrevs, and SeeSyntax Class Table.)  It is also
      responsible for calling ‘blink-paren-function’ when the inserted
      character has close parenthesis syntax (SeeBlinking).
 
      The final thing this command does is to run the hook
      ‘post-self-insert-hook’.  You could use this to automatically
      reindent text as it is typed, for example.
 
      Do not try substituting your own definition of
      ‘self-insert-command’ for the standard one.  The editor command
      loop handles this function specially.
 
  -- Command: newline &optional number-of-newlines
      This command inserts newlines into the current buffer before point.
      If NUMBER-OF-NEWLINES is supplied, that many newline characters are
      inserted.
 
      This function calls ‘auto-fill-function’ if the current column
      number is greater than the value of ‘fill-column’ and
      NUMBER-OF-NEWLINES is ‘nil’.  Typically what ‘auto-fill-function’
      does is insert a newline; thus, the overall result in this case is
      to insert two newlines at different places: one at point, and
      another earlier in the line.  ‘newline’ does not auto-fill if
      NUMBER-OF-NEWLINES is non-‘nil’.
 
      This command indents to the left margin if that is not zero.  See
      Margins.
 
      The value returned is ‘nil’.  In an interactive call, COUNT is the
      numeric prefix argument.
 
  -- Variable: overwrite-mode
      This variable controls whether overwrite mode is in effect.  The
      value should be ‘overwrite-mode-textual’, ‘overwrite-mode-binary’,
      or ‘nil’.  ‘overwrite-mode-textual’ specifies textual overwrite
      mode (treats newlines and tabs specially), and
      ‘overwrite-mode-binary’ specifies binary overwrite mode (treats
      newlines and tabs like any other characters).