Function: ghostel--rebuild-semi-char-keymap
ghostel--rebuild-semi-char-keymap is a natively compiled function
defined in ghostel.el.
Signature
(ghostel--rebuild-semi-char-keymap)
Documentation
Rebuild ghostel-semi-char-mode-map from ghostel-keymap-exceptions.
Mutates the existing keymap object in place so any buffer-local reference to it picks up the new bindings.
Source Code
;; Defined in /nix/store/1252krff0gb2kisjcpp45m50cpdskfrl-emacs-packages-deps/share/emacs/site-lisp/ghostel.el
(defun ghostel--rebuild-semi-char-keymap ()
"Rebuild `ghostel-semi-char-mode-map' from `ghostel-keymap-exceptions'.
Mutates the existing keymap object in place so any buffer-local
reference to it picks up the new bindings."
(let ((fresh (make-sparse-keymap)))
(set-keymap-parent fresh ghostel-mode-map)
(ghostel--define-terminal-keys fresh)
;; Yank bindings layer on top of the helper's defaults so the
;; kill ring wins over `ghostel--send-event' for `M-y',
;; `S-<insert>', etc.
(define-keymap :keymap fresh
"C-y" #'ghostel-yank
"S-<insert>" #'ghostel-yank
"<remap> <yank>" #'ghostel-yank
"M-y" #'ghostel-yank-pop)
;; C-q quotes the next key to the terminal (`quoted-insert' mnemonic).
;; Listing "C-q" in the exceptions lets it fall through to Emacs instead.
(unless (member "C-q" ghostel-keymap-exceptions)
(define-key fresh (kbd "C-q") #'ghostel-send-next-key))
(setcdr ghostel-semi-char-mode-map (cdr fresh)))
;; C-g honors the exception list: bound to nil (unbound) when excepted.
(define-key ghostel-mode-map (kbd "C-g")
(unless (member "C-g" ghostel-keymap-exceptions)
#'ghostel-send-C-g)))