Function: ghostel-semi-char-mode

ghostel-semi-char-mode is an interactive and natively compiled function defined in ghostel.el.

Signature

(ghostel-semi-char-mode)

Documentation

Switch to semi-char mode — the default terminal input mode.

Most keys are sent to the terminal; keys in ghostel-keymap-exceptions pass through to Emacs.

Key Bindings

ghostel-char-mode-map M-<return> ghostel-char-mode-map M-RET ghostel-mode-map C-c C-j

Source Code

;; Defined in /nix/store/1252krff0gb2kisjcpp45m50cpdskfrl-emacs-packages-deps/share/emacs/site-lisp/ghostel.el
;;; Input mode switching commands

(defun ghostel-semi-char-mode ()
  "Switch to semi-char mode — the default terminal input mode.
Most keys are sent to the terminal; keys in
`ghostel-keymap-exceptions' pass through to Emacs."
  (interactive)
  (ghostel--ensure-ghostel-buffer)
  (setq ghostel--line-mode-paused nil)
  (unless (eq ghostel--input-mode 'semi-char)
    (pcase ghostel--input-mode
      ('copy  (ghostel--leave-readonly-state))
      ('emacs (ghostel--leave-readonly-state))
      ('line  (ghostel--line-mode-teardown)))
    (setq ghostel--char-mode-override-active nil)
    (setq ghostel--input-mode 'semi-char)
    (ghostel--sync-read-only)
    (use-local-map ghostel-semi-char-mode-map)
    (setq ghostel--mode-line-tag nil)
    (ghostel--mode-line-refresh)
    (when ghostel--term
      (deactivate-mark)  ; A region left active would grow with point.
      ;; Snap the window to the live viewport so the user lands back at the
      ;; prompt after exiting copy/emacs/line.  FORCE so a deliberate switch
      ;; wins over any `ghostel-inhibit-anchor-functions' roaming veto.
      (goto-char (point-max))
      (ghostel--anchor-window nil t)
      (setq ghostel--force-next-redraw t)
      (ghostel--invalidate))))