;ELC ;;; Compiled ;;; in Emacs version 27.1 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. ;;; This file does not contain utf-8 non-ASCII characters, ;;; and so can be loaded in Emacs versions earlier than 23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\300\301!\210\302\303!\210\302\304!\210\302\305!\210\302\306!\207" [provide viper-macs require viper-mous viper-ex viper-util viper-keym] 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 (#$ . 756)) #@68 Vector of keys representing the name of last Viper keyboard macro. (defvar viper-last-kbd-macro nil (#$ . 882)) (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 ` 1', and the command before that, and the command\nbefore that one is accessible as ` 2'.\nThe notation for these keys is borrowed from XEmacs. Basically,\na key is a symbol, e.g., `a', `\\1', `f2', etc., or a list, e.g.,\n`(meta control f1)'." :type sexp :group viper] 8) (defalias 'ex-map #[0 "\305\306\211\211\211\307 \310\311\312\313\314!\315\"\316$\216q\210\317\320!\203%\321\262\320\262\322u\210)\210\323!\262@\262A\262\211F\203D\324\325!\202}\326\327\330\331!#!\210\211\203W\332 \210\333\306!\210\334\n\335\324#\210\334 \335\324#\210\334\f\335\324#\210\336\337\331!\203{\340\202|\341#\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-byte-code 0 "\301\300!\207" vconcat vector [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 "Mapping %S in %s state. Type macro definition followed by `C-x )'" "Insert" "Vi"] 12]) (defalias 'ex-unmap #[0 "\301\302\211\211\303 \304\305\306\307\310!\311\"\312$\216q\210\313\314!\203$\315\262\314\262\316u\210)\210\317!\262\320\307!!\262\321\322\323\324!#!\210\325\203H\326\202I\327\"\207" [viper-ex-work-buf "" nil current-window-configuration make-byte-code 0 "\301\300!\207" vconcat vector [set-window-configuration] 2 looking-at "!" t 1 ex-unmap-read-args viper-fixup-macro ex-fixup-history format "unmap%s %S" viper-display-macro viper-unrecord-kbd-macro insert-state vi-state] 11]) #@16 (fn VARIANT) (defalias 'ex-map-read-args #[257 "\301\302\303\211\211\211\211\211\211\30410\305\306\307\"\310P\262\311!\262@\262\311A\"@\211\2620\2025\210\312\313\314\"\210\203W\315!\204\315;\203M\316!\262\202\315\316\317!!\262\202\315\320\321 \"\210\322\323!\210\324\235\204\311\316\203v\325!\202w\302\"\262\326\235\203\214\327\330\nG\323Z#\262\331\332 \nG\330V\203\241\317\333\f!!\202\242\334#\262\320\335\"\210\336 \262\337!\203\301\320\340\"\210\322\323!\210\303\202\304\341!\262\202a\262G\330U\203\330\313\342!\210\343!\262\344!\203\350\345!\262\203\344!\203\372\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 " sit-for 2 (13 10 (control m) (control j) return linefeed) vector (8 127 '^\? '^H (control h) (control \?) backspace delete) viper-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 (#$ . 3004)]) #@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\313G\317Z#\262\202\227\325\313GS#\262\326\327G\313V\203\212\330\331!!\202\213\332#\262\333 #\262\326\327G\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 " 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)) viper-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 (#$ . 4408)]) #@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 (#$ . 5958) 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=\203G\305\211\323\305BE\202j 9\203Z\305\f\305BC\323\305BE\202j ;\205j \305BC\305\323\305BEB\262\353\354\n!\"\262\204\301\355 \356\357\315H!!\360#\210\354!\262\203\255\361@@!\361!\231\203\255@B\262A\262\202\217\362!\262\363 B\"L\210\262\n\323=\203\317\3648\202\356\n9\203\340\353 \3658\"\202\356\n;\205\356\353 A@\"\262\203\373\f\241\202%\n9\203AA  B\3658B\240\202%\n;\205%A  BA@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 eval define-key vector viper-key-to-emacs-key viper-exec-mapped-kbd-macro viper-array-to-string reverse append 3 2] 23 (#$ . 6645)]) #@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\320!\"\262 G\321U\203Q\322\323!\210\211\204a\322\324\325\f!\n\326 $\210\317\326 A@\"\262\317 \3278\"\262\3308\262A\203\246A\204\206A\203\224\331\332\333\325 !\326 #!\203\246\262\334\335\325\f!\n\326 $\210\202\357A\203\316A\203\275\331\332\336\325 ! #!\203\316\262\334\337\325\f!\n $\210\202\357\211\262A\203\343\334\340\325\f!\n#\210\202\357\322\324\325\f!\n\326 $\210\304\241\210A\206&A\206&A\206&\341\320 !\"L\210\342\n\321H\320!\"\205&\343\344\345 \321H!!\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 eval 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 (#$ . 9536)]) #@25 (fn CHAR MACRO-ALIST) (defalias 'viper-can-release-key #[514 "\211\300\301\203\"\203\"@@\262\302H=\203\301\262A\262\202\207" [t nil 0] 8 (#$ . 11499)]) #@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\315A\"\262\203u\313\316 A@\"A\211\262\204u\313\3178\"A\211\262\204u\3208A\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 viper-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 (#$ . 11675) "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\324\321\"\325!\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" mapcar internal-temp-output-buffer-show standard-output viper-vi-kbd-macro-alist viper-insert-kbd-macro-alist viper-emacs-kbd-macro-alist] 6 (#$ . 12887) nil]) #@14 (fn MACRO) (defalias 'viper-describe-one-macro #[257 "\300\301\302\303@!\"!\210\300\304!\210\211A@\203\305\306A@\"\210\202\"\300\307!\210\300\310!\210\3118\2036\305\306\3118\"\210\202:\300\307!\210\300\312!\210\3138A\203R\300\301\314\3138A\"!\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 (#$ . 13762)]) #@12 (fn ELT) (defalias 'viper-describe-one-macro-elt #[257 "\211@A\300\301\302#!\207" [princ format "\n * %S:\n %S\n"] 8 (#$ . 14312)]) #@18 (fn SEQ ALIST) (defalias 'viper-keyseq-is-a-possible-macro #[514 "\300!\301\302\303\304\305\306\307\310!\311\"\312\313%\314!\"B!\207" [viper-events-to-macro eval or mapcar make-byte-code 257 "\301\300\"\207" vconcat vector [viper-prefix-subseq-p] 4 "\n\n(fn ELT)" viper-this-buffer-macros] 12 (#$ . 14471)]) #@18 (fn SEQ1 SEQ2) (defalias 'viper-prefix-subseq-p #[514 "GGX\205\300\301#\232\207" [viper-subseq 0] 9 (#$ . 14793)]) #@19 (fn &rest SEQS) (defalias 'viper-common-seq-prefix #[128 "\211@A\300\301C\302G\301U\203\301\262\202\303\304\305\306 \"\"\262\242W\203U\307\310\305\311\312\313\314\315\f\n\"\300\"\316\317%\"B!\203L\314\315\242\234!\"\262\211\242T\240\210\202\207" [[] 0 nil apply min mapcar length eval and make-byte-code 257 "\300\301\242\234\301\242\234\232\207" vconcat vector 4 "\n\n(fn S)"] 16 (#$ . 14925)]) #@19 (fn PREF ALIST) (defalias 'viper-extract-matching-alist-members #[514 "\300\301\302\303\304\305\306\307 !\310\"\311\312%\313!\"\"\207" [delq nil mapcar make-byte-code 257 "\301\300\"\205\211\207" vconcat vector [viper-prefix-subseq-p] 4 "\n\n(fn ELT)" viper-this-buffer-macros] 11 (#$ . 15356)]) #@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\202T\2044\304\310\"\210\306\307!\210\262\202T\235\203J\304\311\"\210\306\307!\210\312!\210\202T\232\203T\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 (#$ . 15665)]) #@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 (#$ . 16168)]) #@18 (fn ALIST STR) (defalias 'viper-find-best-matching-macro #[514 "\301G\302\211\211\211\204V\203V@\262\211@G\262Y\203N\211@\303 \301 #\232\203N\304\305 A@\"A\204K\304\3068\"A\204K\3078A\203N\310\262A\262\202\203c\211\262\262\202i\302\262\301\262B\207" [major-mode 0 nil viper-subseq assoc buffer-name 2 3 t] 14 (#$ . 16724)]) #@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\3038\"A\204\3048A\205\211@\207" [major-mode assoc buffer-name 2 3] 5 "\n\n(fn ELT)"] delq] 5 (#$ . 17097)]) #@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 (#$ . 17371)]) #@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 (#$ . 17615)]) #@14 (fn ARRAY) (defalias 'viper-char-array-to-macro #[257 "\300\301\302\300!\"!\207" [vconcat mapcar viper-event-key] 6 (#$ . 17820)]) #@14 (fn MACRO) (defalias 'viper-fixup-macro #[257 "\211G\300\301\211\302!\204<\203tW\203t\211\204t\234\262\247\203Y\300X\203m\303X\203m\304!\203E\305\306\307\\!!I\210\202m<\203m\233\305\306\307\\!!\240\210\202m<\203e\310!\210\202m9\204m\311\262T\262\202\211\203\312\313\"\202\200\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 (#$ . 17960)]) #@19 (fn MACRO-BODY) (defalias 'viper-macro-to-events #[257 "\300\301\302\"!\207" [vconcat mapcar viper-key-to-emacs-key] 5 (#$ . 18440)]) #@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 (#$ . 18583)]) #@12 (fn REG) (defalias 'viper-set-register-macro #[257 "\301!\203\302\303!\204\304\305!\210\306\"\207" [last-kbd-macro get-register y-or-n-p "Register contains data. Overwrite? " error "Macro not saved in register. Can still be invoked via `C-x e'" set-register] 4 (#$ . 18875)]) #@66 Keyboard macros in registers - a modified @ command. (fn COUNT) (defalias 'viper-register-macro #[257 "\302 \227\303X\203'\211\304X\203'\211 \203\305 \210\306!\202y\307\310!\"\202y\211\311U\2049\211\312U\2049\211\313U\203J\204A\314\315!\210\307\310!\"\202y\211\316U\203V\317!\202y\211\320U\203u\302 \227\262\303X\205y\211\304X\205y\211\306!\202y\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 (#$ . 19168) "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 (#$ . 19803)])