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)))
    ))