Function: viper-end-mapping-kbd-macro
viper-end-mapping-kbd-macro is an interactive and byte-compiled
function defined in viper-macs.el.gz.
Signature
(viper-end-mapping-kbd-macro &optional IGNORE)
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/emulation/viper-macs.el.gz
;; Terminate a Vi kbd macro.
;; optional argument IGNORE, if t, indicates that we are dealing with an
;; existing macro that needs to be registered, but there is no need to
;; terminate a kbd macro.
(defun viper-end-mapping-kbd-macro (&optional ignore)
(interactive)
(define-key viper-vi-intercept-map "\C-x)" nil)
(define-key viper-insert-intercept-map "\C-x)" nil)
(define-key viper-emacs-intercept-map "\C-x)" nil)
(if (and (not ignore)
(or (not viper-kbd-macro-parameters)
(not defining-kbd-macro)))
(error "Not mapping a kbd-macro"))
(let ((mod-char (nth 1 viper-kbd-macro-parameters))
(ins (nth 0 viper-kbd-macro-parameters))
(macro-name (nth 2 viper-kbd-macro-parameters))
(macro-body (nth 3 viper-kbd-macro-parameters)))
(setq viper-kbd-macro-parameters nil)
(or ignore
(progn
(end-kbd-macro nil)
(setq macro-body (viper-events-to-macro last-kbd-macro))
;; always go back to Vi, since this is where we started
;; defining macro
(viper-change-state-to-vi)))
(viper-record-kbd-macro macro-name
(if ins 'insert-state 'vi-state)
(viper-display-macro macro-body))
(ex-fixup-history (format "map%s %S %S" mod-char
(viper-display-macro macro-name)
(viper-display-macro macro-body)))
))