Variable: term-mode-abbrev-table

term-mode-abbrev-table is a variable defined in term.el.gz.

Value

#<obarray n=1>

Documentation

Abbrev table for term-mode.

Source Code

;; Defined in /usr/src/emacs/lisp/term.el.gz
(define-derived-mode term-mode fundamental-mode "Term"
  "Major mode for interacting with an inferior interpreter.
The interpreter name is same as buffer name, sans the asterisks.

There are two submodes: line mode and char mode.  By default, you are
in char mode.  In char sub-mode, each character (except
`term-escape-char') is sent immediately to the subprocess.
The escape character is equivalent to the usual meaning of \\`C-x'.

In line mode, you send a line of input at a time; use
\\[term-send-input] to send.

In line mode, this maintains an input history of size
`term-input-ring-size', and you can access it with the commands
\\[term-next-input], \\[term-previous-input], and
\\[term-dynamic-list-input-ring].  Input ring history expansion can be
achieved with the commands \\[term-replace-by-expanded-history] or
\\[term-magic-space].  Input ring expansion is controlled by the
variable `term-input-autoexpand', and addition is controlled by the
variable `term-input-ignoredups'.

Input to, and output from, the subprocess can cause the window to scroll to
the end of the buffer.  See variables `term-scroll-snap-to-bottom',
and `term-scroll-to-bottom-on-output'.

If you accidentally suspend your process, use \\[term-continue-subjob]
to continue it.

This mode can be customized to create specific modes for running
particular subprocesses.  This can be done by setting the hooks
`term-input-filter-functions', `term-input-filter',
`term-input-sender' and `term-get-old-input' to appropriate functions,
and the variable `term-prompt-regexp' to the appropriate regular
expression.

If you define custom keybindings, make sure to assign them to the
correct keymap (or to both): use `term-raw-map' in raw mode and
`term-mode-map' in line mode.

Commands in raw mode:

\\{term-raw-map}

Commands in line mode:

\\{term-mode-map}

Entry to this mode runs the hooks on `term-mode-hook'."
  :interactive nil
  ;; we do not want indent to sneak in any tabs
  (setq indent-tabs-mode nil)
  (setq buffer-display-table term-display-table)
  (setq-local term-home-marker (copy-marker 0))
  (setq-local term-height (floor (window-screen-lines)))
  (setq-local term-width (window-max-chars-per-line))
  (setq-local term-last-input-start (make-marker))
  (setq-local term-last-input-end (make-marker))
  (setq-local term-last-input-match "")
  (setq-local term-auto-margins t)

  ;; Always display the onscreen keyboard.
  (setq-local touch-screen-display-keyboard t)

  ;; These local variables are set to their local values:
  (make-local-variable 'term-saved-home-marker)
  (make-local-variable 'term-saved-cursor)
  (make-local-variable 'term-prompt-regexp)
  (make-local-variable 'term-input-ring-size)
  (make-local-variable 'term-input-ring)
  (make-local-variable 'term-input-ring-file-name)
  (make-local-variable 'term-input-ring-index)
  (unless term-input-ring
    (setq term-input-ring (make-ring term-input-ring-size)))

  ;; I'm not sure these saves are necessary but, since I
  ;; haven't tested the whole thing on a net connected machine with
  ;; a properly configured ange-ftp, I've decided to be conservative
  ;; and put them in. -mm

  (setq-local term-ansi-at-host (system-name))
  (setq-local term-ansi-at-dir default-directory)
  (setq-local term-ansi-at-message nil)

  ;; For user tracking purposes -mm
  (make-local-variable 'ange-ftp-default-user)
  (make-local-variable 'ange-ftp-default-password)
  (make-local-variable 'ange-ftp-generate-anonymous-password)

  ;; You may want to have different scroll-back sizes -mm
  (make-local-variable 'term-buffer-maximum-size)

  ;; Of course these have to be buffer-local -mm
  (make-local-variable 'term-ansi-current-bold)
  (make-local-variable 'term-ansi-current-color)
  (make-local-variable 'term-ansi-face-already-done)
  (make-local-variable 'term-ansi-current-bg-color)
  (make-local-variable 'term-ansi-current-underline)
  (make-local-variable 'term-ansi-current-reverse)
  (make-local-variable 'term-ansi-current-invisible)

  (make-local-variable 'term-terminal-undecoded-bytes)

  (make-local-variable 'term-do-line-wrapping)
  (make-local-variable 'term-kill-echo-list)
  (make-local-variable 'term-start-line-column)
  (make-local-variable 'term-current-column)
  (make-local-variable 'term-current-row)
  (make-local-variable 'term-log-buffer)
  (make-local-variable 'term-pager-count)
  (make-local-variable 'term-pager-old-local-map)
  (make-local-variable 'term-old-mode-map)
  (make-local-variable 'term-insert-mode)
  (make-local-variable 'term-completion-fignore)
  (make-local-variable 'term-get-old-input)
  (make-local-variable 'term-matching-input-from-input-string)
  (make-local-variable 'term-input-autoexpand)
  (make-local-variable 'term-input-ignoredups)
  (make-local-variable 'term-delimiter-argument-list)
  (make-local-variable 'term-input-filter)
  (make-local-variable 'term-input-sender)
  (make-local-variable 'term-eol-on-send)
  (make-local-variable 'term-scroll-to-bottom-on-output)
  (make-local-variable 'term-scroll-show-maximum-output)
  (make-local-variable 'term-ptyp)
  (setq-local term-vertical-motion 'vertical-motion)
  (setq-local term-pending-delete-marker (make-marker))
  (make-local-variable 'term-current-face)
  (term-ansi-reset)
  (add-hook 'menu-bar-update-hook 'term--update-term-menu)
  (setq-local term-pending-frame nil)
  ;; Cua-mode's keybindings interfere with the term keybindings, disable it.
  (setq-local cua-mode nil)

  (setq-local font-lock-defaults '(nil t))

  (add-function :filter-return
                (local 'filter-buffer-substring-function)
                #'term--filter-buffer-substring)
  (add-function :filter-return
                (local 'window-adjust-process-window-size-function)
                (lambda (size)
                  (when size
                    (term-reset-size (cdr size) (car size)))
                  size)
                '((name . term-maybe-reset-size)))

  (add-hook 'read-only-mode-hook #'term-line-mode-buffer-read-only-update nil t)

  (term--reset-scroll-region)

  (or term-input-ring
      (setq term-input-ring (make-ring term-input-ring-size)))
  (term-update-mode-line))