Next: Deletion, Previous: Insertion, Up: Text [Contents][Index]

### 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`. See Translation 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. (See Abbrevs, and Syntax Class Table.) It is also responsible for calling `blink-paren-function` when the inserted character has close parenthesis syntax (see Blinking).

  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).

Next: Deletion, Previous: Insertion, Up: Text [Contents][Index]