Function: ex-unmap-read-args
ex-unmap-read-args is a byte-compiled function defined in
viper-macs.el.gz.
Signature
(ex-unmap-read-args VARIANT)
Source Code
;; Defined in /usr/src/emacs/lisp/emulation/viper-macs.el.gz
;; read arguments for ex-unmap
(defun ex-unmap-read-args (variant)
(let ((cursor-in-echo-area t)
(macro-alist (if (string= variant "!")
viper-insert-kbd-macro-alist
viper-vi-kbd-macro-alist))
;; these are disabled just in case, to avoid surprises when doing
;; completing-read
viper-vi-kbd-minor-mode viper-insert-kbd-minor-mode
viper-emacs-kbd-minor-mode
viper-vi-intercept-minor-mode viper-insert-intercept-minor-mode
viper-emacs-intercept-minor-mode
event message
key key-seq macro-name)
(setq macro-name (ex-get-inline-cmd-args ".*unma?p?[!]*[ \t]*"))
(if (> (length macro-name) 0)
()
(message ":unmap%s <Name>" variant) (sit-for 2)
(while
(not
(member key '(?\C-m ?\n (control m) (control j) return linefeed)))
(setq key-seq (vconcat key-seq (if key (vector key) [])))
;; the only keys available for editing are these-- no help while there
(cond ((member
key
'(?\b ?\d '^? '^H (control h) (control \?) backspace delete))
(setq key-seq (cl-subseq key-seq 0 (- (length key-seq) 2))))
((member key '(tab (control i) ?\t))
(setq key-seq (cl-subseq key-seq 0 (1- (length key-seq))))
(setq message
(format
":unmap%s %s"
variant (if (> (length key-seq) 0)
(prin1-to-string
(viper-display-macro key-seq))
"")))
(setq key-seq
(viper-do-sequence-completion key-seq macro-alist message))
))
(setq message
(format
":unmap%s %s"
variant (if (> (length key-seq) 0)
(prin1-to-string
(viper-display-macro key-seq))
"")))
(message "%s" message)
(setq event (read-key))
;;(setq event (viper-read-event))
(setq key
(if (viper-mouse-event-p event)
(progn
(message "%s (No mouse---only keyboard keys, please)"
message)
(sit-for 2)
nil)
(viper-event-key event)))
)
(setq macro-name key-seq))
(if (= (length macro-name) 0)
(error "Can't unmap an empty macro name"))
;; convert macro names into vector, if starts with a `['
(if (memq (elt macro-name 0) '(?\[ ?\"))
(car (read-from-string macro-name))
(vconcat macro-name))
))