;ELC   
;;; Compiled
;;; in Emacs version 29.4
;;; with all optimizations.



(byte-code "\300\301!\210\300\302!\210\300\303!\210\300\304!\210\300\305!\207" [require viper-mous viper-ex viper-util viper-keym seq] 2)
(defvar viper-last-macro-reg nil)
(defvar viper-vi-kbd-macro-alist nil)
(defvar viper-insert-kbd-macro-alist nil)
(defvar viper-emacs-kbd-macro-alist nil)
(defvar viper-kbd-macro-parameters nil)#@76 Vector of keys representing the name of currently running Viper kbd macro.
(defvar viper-this-kbd-macro nil (#$ . 416))#@68 Vector of keys representing the name of last Viper keyboard macro.
(defvar viper-last-kbd-macro nil (#$ . 541))
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\207" [custom-declare-variable viper-repeat-from-history-key funcall function #[0 "\300\207" [f12] 1 ""] "Prefix key for accessing previously typed Vi commands.\n\nThe previous command is accessible, as usual, via `.'.  The command before this\ncan be invoked as `<this key> 1', and the command before that, and the command\nbefore that one is accessible as `<this key> 2'.\nBasically, a key is a symbol, e.g., `a', `\\1', `f2', etc., or a\nlist, e.g., `(meta control f1)'." :type sexp :group viper] 8)
(defalias 'ex-map #[0 "\305\306\211\211\211\307 \310\311\"\216q\210\312\313!\203 \314\262\313\262\315u\210)\210\316!\262@\262A\262\211F\203; \317\320!\207\321\322\323\324!#!\210\211\203N \325 \210\326\306!\210\327\n\330\317#\210\327\330\317#\210\327\f\330\317#\210\331\332\333!\324!\203t \334\202u \335#\207" [viper-ex-work-buf viper-kbd-macro-parameters viper-vi-intercept-map viper-insert-intercept-map viper-emacs-intercept-map "" nil current-window-configuration make-closure #[0 "\301\300!\207" [V0 set-window-configuration] 2] looking-at "!" t 1 ex-map-read-args viper-end-mapping-kbd-macro ignore ex-fixup-history format "map%s %S" viper-display-macro viper-change-state-to-insert start-kbd-macro define-key ")" message substitute-command-keys "Mapping %S in %s state.  Type macro definition followed by \\[kmacro-end-macro]" "Insert" "Vi"] 11])
(defalias 'ex-unmap #[0 "\301\302\211\211\303 \304\305\"\216q\210\306\307!\203 \310\262\307\262\311u\210)\210\312!\262\313\314!!\262\315\316\317\320!#!\210\321\203A \322\202B \323\"\207" [viper-ex-work-buf "" nil current-window-configuration make-closure #[0 "\301\300!\207" [V0 set-window-configuration] 2] looking-at "!" t 1 ex-unmap-read-args viper-fixup-macro vconcat ex-fixup-history format "unmap%s %S" viper-display-macro viper-unrecord-kbd-macro insert-state vi-state] 10])#@16 

(fn VARIANT)
(defalias 'ex-map-read-args #[257 "\301\302\303\211\211\211\211\211\211\30411 \305\306\307\"\310P\262\311!\262@\262\311A\"@\211\2620\210\2027 \210\312\313\314\"\210\203X \315!\204\316 ;\203N \316!\262\202\316 \316\317!!\262\202\316 \320\321\"\210\322\323!\210\324\235\204\312 \316\203w \325!\202x \302\"\262\326\235\203\215 \327\330\nG\323Z#\262\331\332\nG\330V\203\242 \317\333\f!!\202\243 \334#\262\320\335\"\210\336 \262\337!\203\302 \320\340\"\210\322\323!\210\303\202\305 \341!\262\202b \262G\330U\203\331 \313\342!\210\343!\262\344!\203\351 \345!\262\203\344!\203\373 \345!\262\202\315!\204\313\346!\210\303\322\330!)\210B\207" [cursor-in-echo-area t [] nil (error) ex-get-inline-cmd-args ".*map[!]*[ 	]?" "\n" " nil nil " read-from-string signal error ("map: Macro name and body must be a quoted string or a vector") vectorp vconcat prin1-to-string message ":map%s <Macro Name>" sit-for 2 (13 10 (control m) (control j) return linefeed) vector (8 127 '^? '^H (control h) (control \?) backspace delete) seq-subseq 0 format ":map%s %s" viper-display-macro "" "%s" read-key viper-mouse-event-p "%s (No mouse---only keyboard keys, please)" viper-event-key "Can't map an empty macro name" viper-fixup-macro viper-char-array-p viper-char-array-to-macro "map: Invalid syntax in macro definition"] 16 (#$ . 2592)])#@16 

(fn VARIANT)
(defalias 'ex-unmap-read-args #[257 "\306\307\230\203 \202\f 	\310\211\211\211\211\211\211\211\211\211\211	%\n&\f'\311\312!\262\211G\313V\204\326 \314\315\"\210\316\317!\210\320\235\204\323 \321\203V \322!\202W \323\"\262\324\267\202\227 \325\313G\317Z#\262\202\227 \325\313GS#\262\326\327G\313V\203\212 \330\331!!\202\213 \332#\262\333#\262\326\327G\313V\203\253 \330\331!!\202\254 \332#\262\314\334\"\210\335 \262\336!\203\313 \314\337\"\210\316\317!\210\310\202\316 \340!\262\202D \262\211G\313U\203\341 \341\342!\210\211\313\234\343>\203\360 \344!@\202\363 \321!.\207" [viper-insert-kbd-macro-alist viper-vi-kbd-macro-alist viper-emacs-intercept-minor-mode viper-insert-intercept-minor-mode viper-vi-intercept-minor-mode viper-emacs-kbd-minor-mode t "!" nil ex-get-inline-cmd-args ".*unma?p?[!]*[ 	]*" 0 message ":unmap%s <Name>" sit-for 2 (13 10 (control m) (control j) return linefeed) vconcat vector [] #s(hash-table size 11 test equal rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (8 96 127 96 '^? 96 '^H 96 (control h) 96 (control \?) 96 backspace 96 delete 96 tab 109 (control i) 109 9 109)) cl-subseq format ":unmap%s %s" prin1-to-string viper-display-macro "" viper-do-sequence-completion "%s" read-key viper-mouse-event-p "%s (No mouse---only keyboard keys, please)" viper-event-key error "Can't unmap an empty macro name" (91 34) read-from-string viper-insert-kbd-minor-mode viper-vi-kbd-minor-mode cursor-in-echo-area] 20 (#$ . 3996)])#@25 

(fn &optional IGNORE)
(defalias 'viper-end-mapping-kbd-macro #[256 "\306\307\310#\210\306	\307\310#\210\306\n\307\310#\210\211\204\" \203 \f\204\" \311\312!\210A@@\3138\3148\310\204? \315\310!\210\316!\262\317 \210\320\203I \321\202J \322\323!#\210\324\325\326\323!\323!$!\207" [viper-vi-intercept-map viper-insert-intercept-map viper-emacs-intercept-map viper-kbd-macro-parameters defining-kbd-macro last-kbd-macro define-key ")" nil error "Not mapping a kbd-macro" 2 3 end-kbd-macro viper-events-to-macro viper-change-state-to-vi viper-record-kbd-macro insert-state vi-state viper-display-macro ex-fixup-history format "map%s %S %S"] 12 (#$ . 5541) nil])#@561 Record a Vi macro.
Can be used in `viper-custom-file-name' to define permanent macros.
MACRO-NAME is a string of characters or a vector of keys.  STATE is
either `vi-state' or `insert-state'.  It specifies the Viper state in which to
define the macro.  MACRO-BODY is a string that represents the keyboard macro.
Optional SCOPE says whether the macro should be global (t), mode-specific
(a major-mode symbol), or buffer-specific (buffer name, a string).
If SCOPE is nil, the user is asked to specify the scope.

(fn MACRO-NAME STATE MACRO-BODY &optional SCOPE)
(defalias 'viper-record-kbd-macro #[1027 "\305\211\306\267\202 \307\262\262\310\202# \311\262	\262\312\202# \313\262\n\262\314\305\211\211\211\211\211\211G\315U\2036 \316\317!\210\320!\262\321!\203I \322!\262\320\f!\262\f\321\f!\203\\ \322\f!\262\f\n\323=\2045\n;\2045\n\203t \n9\2045\324\325\326\327 \"!\203\252 \325\330\331!\332\333\334\331!\211\262\n\"\335\336\211\n;\203\234 \337\202\235 \340%\327 %\262\327 \202\324\325\341\"!\203\335 \325\342\331!\332\333\334\331!\211\262\n\"\335\336\211;\203\321 \337\202\322 \340%%\262\202\333\343\331!\332\333\334\331!\211\262\n\"\335\336\211;\203\373 \337\202\374 \340%$\262\323\262\324\333\344\345\f!\"!\2030\346\333\347\331!\350!\203(\333\334\"\202*%\f\"\210\351\352\"\210\323=\203F\305\211\323CE\202e9\203W\305\fCC\323CE\202e;\205eCC\305\323CEB\262\353	J\"\262\204\272\354	\355\356\315H!!\357#\210J\262\203\246\360@@!\360!\231\203\246@B\262A\262\202\210\361!\262\362	B\"L\210\262\n\323=\203\310\3638\202\347\n9\203\331\353\3648\"\202\347\n;\205\347\353A@\"\262\203\362\f\241\207\n9\203AAB\3648B\240\207\n;\205ABA@B\240\207" [viper-vi-kbd-map viper-insert-kbd-map viper-emacs-kbd-map major-mode viper-custom-file-name nil #s(hash-table size 3 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (vi-state 8 insert-state 18 replace-state 18)) "Vi state" viper-vi-kbd-macro-alist "Insert state" viper-insert-kbd-macro-alist "Emacs state" viper-emacs-kbd-macro-alist 0 error "Can't map an empty macro name" viper-fixup-macro viper-char-array-p viper-char-array-to-macro t y-or-n-p format-message "Map this macro for buffer `%s' only? " buffer-name "%S is mapped to %s for %s in `%s'" viper-display-macro viper-abbreviate-string format "%S" 14 "" "  ....\"" "  ....]" "Map this macro for the major mode `%S' only? " "%S is mapped to %s for %s in `%S'" "%S is globally mapped to %s in %s" "Save this macro in %s? " abbreviate-file-name viper-save-string-in-file "\n(viper-record-kbd-macro %S '%S %s '%S)" vectorp message "%s" assoc define-key vector viper-key-to-emacs-key viper-exec-mapped-kbd-macro viper-array-to-string reverse append 3 2] 23 (#$ . 6227)])#@405 Delete macro MACRO-NAME from Viper STATE.
MACRO-NAME must be a vector of viper-style keys.  This command is used
by Viper internally, but you can also use it in `viper-custom-file-name'
to delete pre-defined macros supplied with Viper.  The best way to avoid
mistakes in macro names to be passed to this function is to use
`viper-describe-kbd-macros' and copy the name from there.

(fn MACRO-NAME STATE)
(defalias 'viper-unrecord-kbd-macro #[514 "\304\211\305\267\202 \306\262\262\307\202# \310\262	\262\311\202# \312\262\n\262\313\304\211\211\211\211\314\n!\262\n\315\n!\203; \316\n!\262\n\317\nJ\"\262	G\320U\203P \321\322!\210\211\204` \321\323\324\f!\n\325 $\210\317\325 A@\"\262\317\3268\"\262\3278\262A\203\245 A\204\205 A\203\223 \330\331\332\324!\325 #!\203\245 \262\333\334\324\f!\n\325 $\210\202\356 A\203\315 A\203\274 \330\331\335\324!#!\203\315 \262\333\336\324\f!\n$\210\202\356 \211\262A\203\342 \333\337\324\f!\n#\210\202\356 \321\323\324\f!\n\325 $\210\304\241\210A\206#A\206#A\206#\340J\"L\210\341\n\320HJ\"\205#\342\343\344\320H!!\304#\207" [viper-vi-kbd-map viper-insert-kbd-map viper-emacs-kbd-map major-mode nil #s(hash-table size 3 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (vi-state 8 insert-state 18 replace-state 18)) "Vi state" viper-vi-kbd-macro-alist "Insert state" viper-insert-kbd-macro-alist "Emacs state" viper-emacs-kbd-macro-alist viper-fixup-macro viper-char-array-p viper-char-array-to-macro assoc 0 error "Can't unmap an empty macro name" "%S is not mapped to a macro for %s in `%s'" viper-display-macro buffer-name 2 3 y-or-n-p format-message "Unmap %S for `%s' only? " message "%S is unmapped for %s in `%s'" "Unmap %S for the major mode `%S' only? " "%S is unmapped for %s in %S" "Global mapping for %S in %s is removed" delq viper-can-release-key define-key vector viper-key-to-emacs-key] 16 (#$ . 9079)])#@25 

(fn CHAR MACRO-ALIST)
(defalias 'viper-can-release-key #[514 "\211\300\301\203\" \203\" @@\262\302H=\203 \301\262A\262\202 \207" [t nil 0] 8 (#$ . 11024)])#@33 Dispatch kbd macro.

(fn COUNT)
(defalias 'viper-exec-mapped-kbd-macro #[257 "\306\267\202 	\202 \n\202 \307\310\211\310\211\310\211\211\211\211\211\262\311\n\"\262\312!\262\313\n\"\262\314	\"\262\204O @\262\315A\"\262\203u \313\316 A@\"A\211\262\204u \313\3178\"A\211\262\204u \3208A\262\203\235 \204\235 @\321\322!\"\210\310@ \323!)\202\300 \323!\210!\204\252 	!\324\325\310!!\262\326!\203\275 \327!\202\300 \330\331!+\207" [viper-current-state viper-vi-kbd-macro-alist viper-insert-kbd-macro-alist viper-emacs-kbd-macro-alist viper-vi-kbd-minor-mode viper-insert-kbd-minor-mode #s(hash-table size 3 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (vi-state 6 insert-state 10 replace-state 10)) "" nil viper-read-fast-keysequence viper-events-to-macro assoc viper-find-best-matching-macro cl-subseq buffer-name 2 3 execute-kbd-macro viper-macro-to-events viper-set-unread-command-events key-binding read-key-sequence commandp command-execute beep 1 viper-emacs-kbd-minor-mode last-command-event major-mode defining-kbd-macro command-history viper-this-kbd-macro viper-last-kbd-macro prefix-arg] 15 (#$ . 11199) "P"])#@41 Show currently defined keyboard macros.
(defalias 'viper-describe-kbd-macros #[0 "r\306\307!q\210p\310 \210\311\211\312\211\312\313 \210\314\315!+\210\211\316\317!\210\320\321\"\210\316\322!\210\320\321\"\210\316\323!\210\320\321\"\324!)\210\207" [default-directory buffer-read-only buffer-file-name buffer-undo-list inhibit-modification-hooks inhibit-read-only get-buffer-create " *viper-info*" kill-all-local-variables nil t erase-buffer run-hooks temp-buffer-setup-hook princ "Macros in Vi state:\n===================\n" mapc viper-describe-one-macro "\n\nMacros in Insert and Replace states:\n====================================\n" "\n\nMacros in Emacs state:\n======================\n" internal-temp-output-buffer-show standard-output viper-vi-kbd-macro-alist viper-insert-kbd-macro-alist viper-emacs-kbd-macro-alist] 6 (#$ . 12407) nil])#@14 

(fn MACRO)
(defalias 'viper-describe-one-macro #[257 "\300\301\302\303@!\"!\210\300\304!\210\211A@\203 \305\306A@\"\210\202\" \300\307!\210\300\310!\210\3118\2036 \305\306\3118\"\210\202: \300\307!\210\300\312!\210\3138A\203R \300\301\314\3138A\"!\210\202V \300\315!\210\300\316!\207" [princ format "\n  *** Mappings for %S:\n      ------------\n" viper-display-macro "   ** Buffer-specific:" mapc viper-describe-one-macro-elt "  none\n" "\n   ** Mode-specific:" 2 "\n   ** Global:" 3 "\n           %S" "  none" "\n"] 6 (#$ . 13274)])#@12 

(fn ELT)
(defalias 'viper-describe-one-macro-elt #[257 "\211@A\300\301\302#!\207" [princ format "\n       * %S:\n           %S\n"] 8 (#$ . 13823)])#@18 

(fn SEQ ALIST)
(defalias 'viper-keyseq-is-a-possible-macro #[514 "\300!\301\302\303\"\304!\"\207" [viper-events-to-macro seq-some make-closure #[257 "\301\300\"\207" [V0 viper-prefix-subseq-p] 4 "\n\n(fn ELT)"] viper-this-buffer-macros] 7 (#$ . 13981)])#@18 

(fn SEQ1 SEQ2)
(defalias 'viper-prefix-subseq-p #[514 "GGX\205 \300\301#\232\207" [cl-subseq 0] 9 (#$ . 14246)])#@19 

(fn &rest SEQS)
(defalias 'viper-common-seq-prefix #[128 "\211@A\300\301C\302G\301U\203 \301\262\202 \303\304\305\306	\"\"\262\242W\203G \307\310\311#\"\203> \312\313\242\234!\"\262\211\242T\240\210\202 \207" [[] 0 nil apply min mapcar length seq-every-p make-closure #[257 "\301\300\242\234\300\242\234\232\207" [V0 V1] 4 "\n\n(fn S)"] vconcat vector] 11 (#$ . 14374)])#@19 

(fn PREF ALIST)
(defalias 'viper-extract-matching-alist-members #[514 "\300\301\302\303\304\"\305!\"\"\207" [delq nil mapcar make-closure #[257 "\301\300\"\205 \211\207" [V0 viper-prefix-subseq-p] 4 "\n\n(fn ELT)"] viper-this-buffer-macros] 8 (#$ . 14774)])#@32 

(fn SEQ ALIST COMPL-MESSAGE)
(defalias 'viper-do-sequence-completion #[771 "\300\"\301\302\"\232\203 G\303U\203 \304\305\"\210\306\307!\210\207\204. \304\310\"\210\306\307!\210\207\235\203B \304\311\"\210\306\307!\210\312!\210\207\232\203L \312!\210\207" [viper-extract-matching-alist-members apply viper-common-seq-prefix 1 message "%s (Sole completion)" sit-for 2 "%s (No match)" "%s (Complete, but not unique)" viper-display-vector-completions] 8 (#$ . 15044)])#@13 

(fn LIST)
(defalias 'viper-display-vector-completions #[257 "r\306\307!q\210p\310 \210\311\211\312\211\312\313 \210\314\315!+\210\211\316\317\320\317\321\"\"!\322!)\210\207" [default-directory buffer-read-only buffer-file-name buffer-undo-list inhibit-modification-hooks inhibit-read-only get-buffer-create "*Completions*" kill-all-local-variables nil t erase-buffer run-hooks temp-buffer-setup-hook display-completion-list mapcar prin1-to-string viper-display-macro internal-temp-output-buffer-show standard-output] 10 (#$ . 15535)])#@18 

(fn ALIST STR)
(defalias 'viper-find-best-matching-macro #[514 "\301G\302\211\211\211\204V \203V @\262\211@G\262Y\203N \211@\303	\301	#\232\203N \304\305 A@\"A\204K \304\3068\"A\204K \3078A\203N \310\262A\262\202 \203c \211\262\262\202i \302\262\301\262B\207" [major-mode 0 nil cl-subseq assoc buffer-name 2 3 t] 14 (#$ . 16090)])#@20 

(fn MACRO-ALIST)
(defalias 'viper-this-buffer-macros #[257 "\300\301\302\"\262\303\300\"\211\262\207" [nil mapcar #[257 "\301\302 A@\"A\204 \301\3038\"A\204 \3048A\205 \211@\207" [major-mode assoc buffer-name 2 3] 5 "\n\n(fn ELT)"] delq] 5 (#$ . 16459)])#@27 

(fn MACRO-NAME-OR-BODY)
(defalias 'viper-display-macro #[257 "\300!\203\f \301\302\303#\207\304!\203 \301\305\303#\207\207" [viper-char-symbol-sequence-p mapconcat symbol-name "" viper-char-array-p char-to-string] 5 (#$ . 16732)])#@18 

(fn EVENT-SEQ)
(defalias 'viper-events-to-macro #[257 "\300\301\302\303\304\"\"!\207" [vconcat delq nil mapcar #[257 "\211:?\205	 \300!\207" [viper-event-key] 3 "\n\n(fn ELT)"]] 7 (#$ . 16975)])#@14 

(fn ARRAY)
(defalias 'viper-char-array-to-macro #[257 "\300\301\302\300!\"!\207" [vconcat mapcar viper-event-key] 6 (#$ . 17179)])#@14 

(fn MACRO)
(defalias 'viper-fixup-macro #[257 "\211G\300\301\211\302!\204 <\203t W\203t \211\204t \234\262\247\203Y \300X\203m \303X\203m \304!\203E \305\306\307\\!!I\210\202m <\203m \233\305\306\307\\!!\240\210\202m <\203e \310!\210\202m 9\204m \311\262T\262\202 \211\203} \312\313\"\207\207" [0 nil vectorp 9 arrayp intern char-to-string 48 viper-fixup-macro t error "Wrong type macro component, symbol-or-listp, %S"] 11 (#$ . 17318)])#@19 

(fn MACRO-BODY)
(defalias 'viper-macro-to-events #[257 "\300\301\302\"!\207" [vconcat mapcar viper-key-to-emacs-key] 5 (#$ . 17792)])#@26 

(fn EVENT MACRO-ALIST)
(defalias 'viper-read-fast-keysequence #[514 "\300!\301\302 \203% \303\"\203% \304 \262\305!\204 \306\300!\"\262\202 \207" [vector nil viper-fast-keysequence-p viper-keyseq-is-a-possible-macro read-event viper-mouse-event-p vconcat] 8 (#$ . 17934)])#@12 

(fn REG)
(defalias 'viper-set-register-macro #[257 "\301!\203 \302\303!\204 \304\305\306!!\210\307\"\207" [last-kbd-macro get-register y-or-n-p "Register contains data.  Overwrite? " error substitute-command-keys "Macro not saved in register.  Can still be invoked via \\[kmacro-end-and-call-macro]" set-register] 4 (#$ . 18225)])#@66 Keyboard macros in registers - a modified @ command.

(fn COUNT)
(defalias 'viper-register-macro #[257 "\302 \227\303X\203# \211\304X\203# \211	\203 \305 \210\306!\207\307\310!\"\207\211\311U\2045 \211\312U\2045 \211\313U\203D \204= \314\315!\210\307\310!\"\207\211\316U\203N \317!\207\211\320U\203k \302 \227\262\303X\205o \211\304X\205o \211\306!\207\314\321\"\207" [viper-last-macro-reg defining-kbd-macro read-char 97 122 end-kbd-macro viper-set-register-macro execute-kbd-macro get-register 64 10 13 error "No previous kbd macro" 35 start-kbd-macro 33 "`%c': Unknown register"] 5 (#$ . 18568) "P"])#@55 Call last keyboard macro for each line in the region.
(defalias 'viper-global-execute #[0 "`\300\301!V\203 \302 \210\303 \210\304 \210`\300\301!W\205% \305y\210\303 \210\304 \210\202 \207" [mark t exchange-point-and-mark beginning-of-line call-last-kbd-macro 1] 3 (#$ . 19192)])
(provide 'viper-macs)
