;ELC ;;; Compiled by pot@pot.cnuce.cnr.it on Tue Mar 18 15:39:40 2003 ;;; from file /home/pot/gnu/emacs-pretest.new/lisp/emulation/viper-cmd.el ;;; in Emacs version 21.3 ;;; with bytecomp version 2.85.4.1 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. (if (and (boundp 'emacs-version) (< (aref emacs-version (1- (length emacs-version))) ?A) (or (and (boundp 'epoch::version) epoch::version) (string-lessp emacs-version "19.29"))) (error "`viper-cmd.el' was compiled for Emacs 19.29 or later")) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\302\303!\210\304\305!\210\306B\307B\310B\311B\312B\313B\314B\315B\316B\317B\320B\321B \210\304\322!\210\304\323!\210\304\324!\210\304\325!\210\304\326!\207" [current-load-list noninteractive provide viper-cmd require advice viper-minibuffer-current-face viper-minibuffer-insert-face viper-minibuffer-vi-face viper-minibuffer-emacs-face viper-always viper-mode-string viper-custom-file-name iso-accents-mode quail-mode quail-current-str zmacs-region-stays mark-even-if-inactive viper-util viper-keym viper-mous viper-macs viper-ex] 2) (defalias 'viper-test-com-defun '(macro . #[(name) "\304!\305 \306P!\305 \307P!\310\n\311\312\313\314 EDF+\207" [name snm nm-p nms symbol-name intern "-p" "s" defun (com) consp viper-memq-char com] 7])) (byte-code "\301B\302\301\207" [current-load-list viper-prefix-commands (99 100 121 33 61 35 60 62 34)] 2) (defalias 'viper-prefix-command-p #[(com) "\302 \":\207" [com viper-prefix-commands viper-memq-char] 3]) (byte-code "\301B\302\301\207" [current-load-list viper-charpair-commands (99 100 121 33 61 60 62 114 82)] 2) (defalias 'viper-charpair-command-p #[(com) "\302 \":\207" [com viper-charpair-commands viper-memq-char] 3]) #@19 Movement commands (defconst viper-movement-commands '(98 66 101 69 102 70 71 104 72 106 107 108 72 77 76 110 116 84 119 87 36 37 94 40 41 45 43 124 123 125 91 93 39 96 59 44 48 63 47 32 13 space return delete backspace) (#$ . 1847)) (defalias 'viper-movement-command-p #[(com) "\302 \":\207" [com viper-movement-commands viper-memq-char] 3]) (byte-code "\301B\302\301\207" [current-load-list viper-digit-commands (49 50 51 52 53 54 55 56 57)] 2) (defalias 'viper-digit-command-p #[(com) "\302 \":\207" [com viper-digit-commands viper-memq-char] 3]) (byte-code "\301B\302\301\207" [current-load-list viper-dotable-commands (99 100 67 115 83 68 62 60)] 2) (defalias 'viper-dotable-command-p #[(com) "\302 \":\207" [com viper-dotable-commands viper-memq-char] 3]) (byte-code "\301B\302\301\207" [current-load-list viper-hash-commands (99 67 103 113 115)] 2) (defalias 'viper-hash-command-p #[(com) "\302 \":\207" [com viper-hash-commands viper-memq-char] 3]) (byte-code "\301B\302\301\207" [current-load-list viper-regsuffix-commands (100 121 89 68 112 80 120 88)] 2) (defalias 'viper-regsuffix-command-p #[(com) "\302 \":\207" [com viper-regsuffix-commands viper-memq-char] 3]) #@39 The list of all commands in Vi-state. (defconst viper-vi-commands (append viper-movement-commands viper-digit-commands viper-dotable-commands viper-charpair-commands viper-hash-commands viper-prefix-commands viper-regsuffix-commands) (#$ . 3046)) (defalias 'viper-vi-command-p #[(com) "\302 \":\207" [com viper-vi-commands viper-memq-char] 3]) (byte-code "\301B\302\301!\204\f\303\303\207" [current-load-list viper-saved-mark boundp nil] 2) (defalias 'viper-after-change-sentinel #[(beg end len) "\303\304 \n$\207" [beg end len run-hook-with-args viper-after-change-functions] 5]) (defalias 'viper-before-change-sentinel #[(beg end) "\302\303 #\207" [beg end run-hook-with-args viper-before-change-functions] 4]) (defalias 'viper-post-command-sentinel #[nil "\301\302!\210\303=\205 \304\305!\207" [viper-current-state run-hooks viper-post-command-hooks vi-state viper-restore-cursor-color after-insert-mode] 2]) (put 'viper-post-command-sentinel 'byte-optimizer 'byte-compile-inline-expand) (defalias 'viper-pre-command-sentinel #[nil "\300\301!\207" [run-hooks viper-pre-command-hooks] 2]) (put 'viper-pre-command-sentinel 'byte-optimizer 'byte-compile-inline-expand) (defalias 'viper-insert-state-post-command-sentinel #[nil "\306>\203 \203` Y\203\307 \310 !\204!\311ee\"\210\312 \210\313=\203Q\f\203/\314\2020\315\316 \317\"\2068 ;\211\204K\320 \230\204K\321\322!\210\323!\210)\324>\205v\250\205v\325 !\205v\326 !\205v V\205v\327 \"\207" [viper-current-state viper-insert-point viper-last-posn-while-in-insert-state viper-replace-overlay viper-emacs-p viper-vi-state-cursor-color (insert-state replace-state) point-marker viper-overlay-p viper-set-replace-overlay viper-hide-replace-overlay insert-state frame-parameter frame-property selected-frame viper-saved-cursor-color-in-insert-mode viper-get-cursor-color viper-save-cursor-color before-insert-mode viper-change-cursor-color (dabbrev-expand hippie-expand) markerp marker-position viper-move-marker-locally has-saved-cursor-color-in-insert-mode viper-insert-state-cursor-color this-command viper-pre-command-point] 4]) (put 'viper-insert-state-post-command-sentinel 'byte-optimizer 'byte-compile-inline-expand) (defalias 'viper-preserve-cursor-color #[nil "\302>\206 \303 !\304>\207" [this-command last-command-event (self-insert-command viper-del-backward-char-in-insert viper-del-backward-char-in-replace viper-delete-backward-char viper-join-lines viper-delete-char) viper-event-key (up down left right (meta f) (meta b) (control n) (control p) (control f) (control b))] 2]) (put 'viper-preserve-cursor-color 'byte-optimizer 'byte-compile-inline-expand) (defalias 'viper-insert-state-pre-command-sentinel #[nil "\303 \204 \304\305!\210\306>\205 \307 !\205 \310 !\205 \310 !\211\207" [this-command viper-insert-point viper-pre-command-point viper-preserve-cursor-color viper-restore-cursor-color after-insert-mode (dabbrev-expand hippie-expand) markerp marker-position] 2]) (put 'viper-insert-state-pre-command-sentinel 'byte-optimizer 'byte-compile-inline-expand) (defalias 'viper-R-state-post-command-sentinel #[nil "\302!`X\203`\303!X\203\304 !\207\305\306!\207" [viper-replace-overlay viper-replace-overlay-cursor-color viper-overlay-start viper-overlay-end viper-change-cursor-color viper-restore-cursor-color after-replace-mode] 3]) (put 'viper-R-state-post-command-sentinel 'byte-optimizer 'byte-compile-inline-expand) (defalias 'viper-replace-state-pre-command-sentinel #[nil "\302>\206\303 !\304>\206\305\306!\207" [this-command last-command-event (self-insert-command viper-del-backward-char-in-insert viper-del-backward-char-in-replace viper-delete-backward-char viper-join-lines viper-delete-char) viper-event-key (up down left right (meta f) (meta b) (control n) (control p) (control f) (control b)) viper-restore-cursor-color after-replace-mode] 2]) (put 'viper-replace-state-pre-command-sentinel 'byte-optimizer 'byte-compile-inline-expand) (defalias 'viper-trim-replace-chars-to-delete-if-necessary #[nil "\303\304\305 !\n\"^\304`\306\307!\"^]\211\207" [viper-replace-chars-to-delete viper-replace-overlay viper-last-posn-in-replace-region 0 viper-chars-in-region viper-overlay-end viper-line-pos end] 6]) (put 'viper-trim-replace-chars-to-delete-if-necessary 'byte-optimizer 'byte-compile-inline-expand) (defalias 'viper-replace-state-post-command-sentinel #[nil "\306 \204 \307\310!\210\311=\203j\312 !\212 b\210\313\f\314\312 ! \"^\314`\315\305!\"^]\316\f!\210\313 \312 !U\203:\317 \210)`\320 !\n\211 ^Y\205U ]Y+\205h\311=\203d\321!\210\322 \211)\207\317 \207" [viper-current-state viper-replace-overlay replace-boundary viper-last-posn-in-replace-region viper-replace-chars-to-delete end viper-preserve-cursor-color viper-restore-cursor-color after-replace-mode replace-state viper-overlay-end 0 viper-chars-in-region viper-line-pos delete-char viper-finish-change viper-overlay-start viper-change-cursor-color point-marker beg pos viper-replace-overlay-cursor-color] 7]) (defalias 'viper-change-state #[(new-state) "\306\307!\210\306\310!\210\306\311!\210\306\312!\210\313\314\315\"\210\316\314\315\"\210\313\317\320\"\210\316\317\320\321#\210\313\311\322\323#\210\313\312\324\323#\210\325 \326=\203\332\n\327\235\203\376\n\330>\203R \203R` Y\203R\331 \332 !\204`\333ee\"\210\334 \210\n\335=\203\222;\203o\336\202p\337\340 \341\"\206y<;\211=\204\214\342 >\230\204\214\343\344!\210\345>!\210)?\346>\203\270@\250\203\270\347 !\203\270\350 !\203\270 @V\203\270\351 @\"\210\352\353\354\217\210AG\355V\203\313\356A\357\"\210B\203\376n\204\376\360u\210\202\376 \361>\203\376\n\362>\203\353\351\303`\"\210\351\304`\"\210\316\311\322\321\323$\210\316\312\324\321\323$\210 \326=\203\325C\363\364!\203C4)\2029D\203+\321C\363\364!\203'C4)\2029\325C\363\364!\2038C4) \326=\203F\365\325!\210\202VE\203R\365\321!\210\202V\365\325!\210 \366 \210\367 \210\370 !\210\371 !\210\372 \207" [viper-intermediate-command new-state viper-current-state viper-insert-point viper-last-posn-while-in-insert-state viper-replace-overlay make-local-hook viper-after-change-functions viper-before-change-functions viper-post-command-hooks viper-pre-command-hooks remove-hook post-command-hook viper-post-command-sentinel add-hook pre-command-hook viper-pre-command-sentinel t viper-insert-state-post-command-sentinel local viper-insert-state-pre-command-sentinel nil vi-state (insert-state replace-state) (insert-state replace-state) point-marker viper-overlay-p viper-set-replace-overlay viper-hide-replace-overlay insert-state frame-parameter frame-property selected-frame viper-saved-cursor-color-in-insert-mode viper-get-cursor-color viper-save-cursor-color before-insert-mode viper-change-cursor-color (dabbrev-expand hippie-expand) markerp marker-position viper-move-marker-locally conds (byte-code "\303 \"\210\n\203\304\202\212\305 \210)\304\207" [viper-insert-point viper-last-posn-while-in-insert-state viper-began-as-replace viper-save-last-insertion nil viper-repeat-insert-command] 3) ((error (viper-message-conditions conds))) 0 viper-push-onto-ring viper-insertion-ring -1 (insert-state replace-state) (emacs-state vi-state) boundp iso-accents-mode viper-set-input-method viper-update-syntax-classes viper-normalize-minor-mode-map-alist viper-adjust-keys-for viper-set-mode-vars-for viper-refresh-mode-line viper-emacs-p viper-vi-state-cursor-color has-saved-cursor-color-in-insert-mode viper-insert-state-cursor-color this-command viper-pre-command-point viper-last-insertion viper-ESC-moves-cursor-back arg viper-automatic-iso-accents viper-special-input-method] 5]) #@62 Make necessary adjustments to keymaps before entering STATE. (defalias 'viper-adjust-keys-for #[(state) "\306>\203c \203&\307\n\310\311#\210 \203\307\n\312\313#\210\2022\307\n\312\311#\210\2022\307\n\310\313#\210\307\n\312\313#\210 ? \203I\307\n\314\315#\210\307\314\315#\210\202V\307\n\314\316#\210\307\314\317#\210\307\n\320\316#\210\307\321\317#\207? \203v\307\314\315#\210\202}\307\314\322#\210\307\323\322#\207" [state viper-auto-indent viper-insert-basic-map viper-want-emacs-keys-in-insert viper-insert-diehard-minor-mode viper-want-ctl-h-help (insert-state replace-state) define-key " " viper-autoindent "\n" nil "" help-command viper-del-backward-char-in-insert viper-del-backward-char-in-replace [backspace] [backspace] viper-backward-char [backspace] viper-replace-map viper-want-emacs-keys-in-vi viper-vi-diehard-minor-mode viper-vi-basic-map] 4 (#$ . 10744)]) (defalias 'viper-normalize-minor-mode-map-alist #[nil "\306\307B\310 B\311\nB\312 B\313\fB\314\315\316 \"A!\203%\316 \"A\202' B\317!B\320\"B\321#B\322$B\323 B\324%B\325&B\326'B\327\315\316 (\"A!\203\\\316 (\"A\202^ B\330)B\331*B\332+B\333,B\334-B\335.B\336\315\316 /\"A!\203\214\316 /\"A\202\216 B\2570\"\2110\207" [viper-vi-intercept-map viper-minibuffer-map viper-vi-local-user-map viper-vi-kbd-map viper-vi-global-user-map major-mode viper-append-filter-alist viper-vi-intercept-minor-mode viper-vi-minibuffer-minor-mode viper-vi-local-user-minor-mode viper-vi-kbd-minor-mode viper-vi-global-user-minor-mode viper-vi-state-modifier-minor-mode keymapp assoc viper-vi-diehard-minor-mode viper-vi-basic-minor-mode viper-insert-intercept-minor-mode viper-replace-minor-mode viper-insert-minibuffer-minor-mode viper-insert-local-user-minor-mode viper-insert-kbd-minor-mode viper-insert-global-user-minor-mode viper-insert-state-modifier-minor-mode viper-insert-diehard-minor-mode viper-insert-basic-minor-mode viper-emacs-intercept-minor-mode viper-emacs-local-user-minor-mode viper-emacs-kbd-minor-mode viper-emacs-global-user-minor-mode viper-emacs-state-modifier-minor-mode viper-vi-state-modifier-alist viper-empty-keymap viper-vi-diehard-map viper-vi-basic-map viper-insert-intercept-map viper-replace-map viper-insert-local-user-map viper-insert-kbd-map viper-insert-global-user-map viper-insert-state-modifier-alist viper-insert-diehard-map viper-insert-basic-map viper-emacs-intercept-map viper-emacs-local-user-map viper-emacs-kbd-map viper-emacs-global-user-map viper-emacs-state-modifier-alist minor-mode-map-alist] 27]) (defalias 'viper-refresh-mode-line #[nil "\306=\203\n \202%\307=\203\n\202%\310=\203 \202%\311=\205%\f\312 \207" [viper-current-state viper-emacs-state-id viper-vi-state-id viper-replace-state-id viper-insert-state-id viper-mode-string emacs-state vi-state replace-state insert-state force-mode-line-update] 2]) (defalias 'viper-exit-insert-state #[nil "\300 \207" [viper-change-state-to-vi] 1 nil nil]) #@71 Sets Viper minor mode variables to put Viper's state STATE in effect. (defalias 'viper-set-mode-vars-for #[(state) "\306\306\306\306\306\306\306\306\306\306\306\306 \306!\306\"\306#\306$\306%\307&\307'\310 (\311\216\312\313\314 \"*?)\307*\307+,\315=\203\232\307\310 (\316\216\312\313\314 \"*\307\310 (\317\216\312\313\314 \"*?\307\307-\206\205\310 (\320\216\312\313\314 \"*?\307\306&\306'\306)\306*\306+,\321\235\203\364\307,\322=\310 (\323\216\312\313\314 \"*\307 \310 (\324\216\312\313\314 \"*?!\307\"\307#.\206\337\310 (\325\216\312\313\314 \"*?$\307%\306&\306'\306)\306*\306+\326 \203,\327=\203/\202,\315=\2030\202,\330>\20512\310 (\331\216\312\313\314 \"*\205-\332 \207" [viper-vi-minibuffer-minor-mode viper-insert-minibuffer-minor-mode viper-vi-intercept-minor-mode viper-insert-intercept-minor-mode viper-vi-local-user-minor-mode viper-vi-kbd-minor-mode nil t match-data ((set-match-data save-match-data-internal)) string-match "*Minibuf-" buffer-name vi-state ((set-match-data save-match-data-internal)) ((set-match-data save-match-data-internal)) ((set-match-data save-match-data-internal)) (insert-state replace-state) replace-state ((set-match-data save-match-data-internal)) ((set-match-data save-match-data-internal)) ((set-match-data save-match-data-internal)) viper-has-face-support-p emacs-state (insert-state replace-state) ((set-match-data save-match-data-internal)) viper-set-minibuffer-overlay viper-vi-global-user-minor-mode viper-vi-state-modifier-minor-mode viper-vi-diehard-minor-mode viper-vi-basic-minor-mode viper-replace-minor-mode viper-insert-local-user-minor-mode viper-insert-kbd-minor-mode viper-insert-global-user-minor-mode viper-insert-state-modifier-minor-mode viper-insert-diehard-minor-mode viper-insert-basic-minor-mode viper-emacs-intercept-minor-mode viper-emacs-local-user-minor-mode save-match-data-internal viper-emacs-kbd-minor-mode viper-emacs-global-user-minor-mode viper-emacs-state-modifier-minor-mode state viper-want-emacs-keys-in-vi viper-want-emacs-keys-in-insert viper-minibuffer-emacs-face viper-minibuffer-vi-face viper-minibuffer-insert-face viper-minibuffer-current-face] 3 (#$ . 13734)]) #@27 Change Viper state to Vi. (defalias 'viper-change-state-to-vi #[nil "\203\306 \307\216\310\311\312 \"*\204\313 \207\n\203\302\314!\210\315 !\204(\316ee\"\210\317 \210\f\2032\320 \210 \203@iV\203@ \210 \321>\203U\212\322 \210\323\324!)\203U\325 \210\326 \210\327 \210\330\331!\210\332\333!\210\334\335\336\217\207" [viper-first-time save-match-data-internal overwrite-mode viper-replace-overlay abbrev-mode auto-fill-function match-data ((set-match-data save-match-data-internal)) string-match "*Minibuf-" buffer-name viper-mode -1 viper-overlay-p viper-set-replace-overlay viper-hide-replace-overlay expand-abbrev (viper-autoindent viper-open-line viper-Open-line viper-replace-state-exit-cmd) beginning-of-line looking-at "^[ ]*$" indent-to-left-margin viper-add-newline-at-eob-if-necessary viper-adjust-undo viper-change-state vi-state viper-restore-cursor-color after-insert-mode conds (byte-code "\300\301!\207" [run-hooks viper-vi-state-hook] 2) ((error (viper-message-conditions conds))) fill-column last-command] 3 (#$ . 15985) nil]) #@31 Change Viper state to Insert. (defalias 'viper-change-state-to-insert #[nil "\305\306!\210\307!\204\310ee\"\210\311 \210 \203\312\202\313\314 \315\"\206#\n;\211\2044\316 \f\230\2044\317\320!\210\321\f!\210)\322\323\324\217\207" [viper-replace-overlay viper-emacs-p viper-vi-state-cursor-color has-saved-cursor-color-in-insert-mode viper-insert-state-cursor-color viper-change-state insert-state viper-overlay-p viper-set-replace-overlay viper-hide-replace-overlay frame-parameter frame-property selected-frame viper-saved-cursor-color-in-insert-mode viper-get-cursor-color viper-save-cursor-color before-insert-mode viper-change-cursor-color conds (byte-code "\300\301!\207" [run-hooks viper-insert-state-hook] 2) ((error (viper-message-conditions conds)))] 4 (#$ . 17051) nil]) (defalias 'viper-downgrade-to-insert #[nil "\302\303\304\217\210\305\306\211\207" [viper-current-state viper-replace-minor-mode conds (byte-code "\300\301!\207" [run-hooks viper-insert-state-hook] 2) ((error (viper-message-conditions conds))) insert-state nil] 3]) (put 'viper-downgrade-to-insert 'byte-optimizer 'byte-compile-inline-expand) (defalias 'viper-change-state-to-replace #[(&optional non-R-cmd) "\301\302!\210\303\304\305\217\210\203\306 \207\307 \207" [non-R-cmd viper-change-state replace-state conds (byte-code "\300\301\302\"\207" [run-hooks viper-insert-state-hook viper-replace-state-hook] 3) ((error (viper-message-conditions conds))) viper-start-replace viper-start-R-mode] 3]) #@30 Change Viper state to Emacs. (defalias 'viper-change-state-to-emacs #[nil "\301!\204 \302ee\"\210\303 \210\304\305!\210\306\307\310\217\207" [viper-replace-overlay viper-overlay-p viper-set-replace-overlay viper-hide-replace-overlay viper-change-state emacs-state conds (byte-code "\300\301!\207" [run-hooks viper-emacs-state-hook] 2) ((error (viper-message-conditions conds)))] 3 (#$ . 18550) nil]) #@193 Escape to Emacs state from Vi state for one Emacs command. ARG is used as the prefix value for the executed command. If EVENTS is a list of events, which become the beginning of the command. (defalias 'viper-escape-to-emacs #[(arg &optional events) "\303\304\"\203 \305\306!\210\307 \n\310#\207" [last-command-char arg events viper= 92 message "Switched to EMACS state for the next command..." viper-escape-to-state emacs-state] 4 (#$ . 18959) "P"]) #@255 Escape from Emacs state to Vi state for one Vi 1-character command. If the Vi command that the user types has a prefix argument, e.g., `d2w', then Vi's prefix argument will be used. Otherwise, the prefix argument passed to `viper-escape-to-vi' is used. (defalias 'viper-escape-to-vi #[(arg) "\301\302!\210\303\304\305#\207" [arg message "Switched to VI state for the next command..." viper-escape-to-state nil vi-state] 4 (#$ . 19419) "P"]) (defalias 'viper-escape-to-state #[(arg events state) "\305\211\306\n!\210\307 \210 \203\310 !\210\305\311\312\217\210*\306\f!\207" [key com state events viper-current-state nil viper-set-mode-vars-for viper-normalize-minor-mode-map-alist viper-set-unread-command-events (byte-code "\306\211\211\306\216\307\310\306!\211!\311\f!\203\307\f!\202)\312 !\210\f\203@\313 \211\211GS\234)!\314!\202P\313 \211\211GS\234)!\211\315\f!\203c\206]\316\f!\210+\306\207" [viper-emacs-kbd-minor-mode viper-insert-kbd-minor-mode viper-vi-kbd-minor-mode key com viper-current-state nil key-binding viper-read-key-sequence vectorp viper-set-mode-vars-for viper-copy-event event-to-character commandp command-execute this-command viper-xemacs-p seq last-command-event last-command-char prefix-arg arg] 4) ((quit (ding)) (error (beep 1)))] 3]) (defalias 'viper-special-read-and-insert-char #[nil "\305\306!\210\307 \210\203\310\311!\210 \203\311\312\303!\203\n)\313\314\315\217\210\310\313!\210\313\312\303!\2031\n)\305\f!\207" [viper-special-input-method viper-automatic-iso-accents arg iso-accents-mode viper-current-state viper-set-mode-vars-for emacs-state viper-normalize-minor-mode-map-alist viper-set-input-method t boundp nil (byte-code "\306\211\211\211\f\203H \203H\307\310!\203H\306\311 \312!\210\310\306!\210\2035\313\230\2035c\210\2029c\210\206C\211GSH)\202\246\f\203\211\203\211\307\314!\203\211\306\311 \312!\210\314\306!\210\203v\313\230\203vc\210\202zc\210\206\204\211GSH)\202\246\315\316!\203\240\203\240\317\306!\320H\211c\210\202\246\311 \211c\210\321\203\262\322!\202\263!,\306\207" [ch viper-emacs-kbd-minor-mode viper-insert-kbd-minor-mode viper-vi-kbd-minor-mode viper-special-input-method viper-emacs-p nil fboundp quail-input-method read-char viper-set-unread-command-events "" quail-start-translation boundp iso-accents-mode read-key-sequence 0 viper-copy-event character-to-event unread-command-events quail-current-str viper-xemacs-p last-command-event] 5) ((error))] 3]) #@64 Execute FORM in Vi state, regardless of the Ccurrent Vi state. (defalias 'viper-exec-form-in-vi #[(form) "p\303\304\305!\210\303\306\307\217\210 p\232\204\212 q\210\304\n!\210)\304\n!\210*\207" [result buff viper-current-state nil viper-set-mode-vars-for vi-state (byte-code "\303\304 !)\303\207" [viper-vi-kbd-minor-mode form result nil eval] 2) ((error (byte-code "\300\301\302\"\207" [signal quit nil] 3)))] 3 (#$ . 21967)]) #@143 Execute FORM in Emacs, temporarily disabling Viper's minor modes. Similar to viper-escape-to-emacs, but accepts forms rather than keystrokes. (defalias 'viper-exec-form-in-emacs #[(form) "p\304\305\306!\210\307\n! p\232\204\212 q\210\305 !\210)\305 !\210*\207" [result buff form viper-current-state nil viper-set-mode-vars-for emacs-state eval] 2 (#$ . 22409)]) (defalias 'viper-exec-key-in-emacs #[(arg) "\302 \"\207" [arg last-command-event viper-escape-to-emacs] 3 nil "P"]) #@393 Familiarize Viper with a minor mode defined in LOAD_FILE. Minor modes that have their own keymaps may overshadow Viper keymaps. This function is designed to make Viper aware of the packages that define such minor modes. Usage: (viper-harness-minor-mode load-file) LOAD-FILE is a name of the file where the specific minor mode is defined. Suffixes such as .el or .elc should be stripped. (defalias 'viper-harness-minor-mode #[(load-file) "\301\302\"\210\301\303\"\207" [load-file eval-after-load (viper-normalize-minor-mode-map-alist) (setq-default minor-mode-map-alist minor-mode-map-alist)] 3 (#$ . 22901) "sEnter name of the load file: "]) #@505 Emulate ESC key in Emacs. Prevents multiple escape keystrokes if viper-no-multiple-ESC is true. If viper-no-multiple-ESC is 'twice double ESC would ding in vi-state. Other ESC sequences are emulated via the current Emacs's major mode keymap. This is more convenient on TTYs, since this won't block function keys such as up,down, etc. ESC will also will also work as a Meta key in this case. When viper-no-multiple-ESC is nil, ESC functions as a Meta key and any number of multiple escapes is allowed. (defalias 'viper-ESC #[(arg) "\305 \204\n\306=\203\307 \310 \311D\"\202? \312=\203=\n\306=\203=\307 \211\313\f!U\2034\314 \202?\310 \311D\"\202?\314 )\207" [char viper-no-multiple-ESC viper-current-state arg viper-ESC-key nil vi-state viper-read-char-exclusive viper-escape-to-emacs 27 twice string-to-char ding] 5 (#$ . 23557) "P"]) #@26 Simulate Emacs Meta key. (defalias 'viper-alternate-Meta-key #[(arg) "\301\302!\210\303\304!\210\305\306\"\207" [arg sit-for 1 message "ESC-" viper-escape-to-emacs (27)] 3 (#$ . 24416) "P"]) #@37 Action bound to `viper-toggle-key'. (defalias 'viper-toggle-key-action #[nil "\302W\203 \303\232\203\304 \203\305 \207\306 \207\307 \207" [viper-expert-level viper-toggle-key 2 "" viper-window-display-p viper-iconify suspend-emacs viper-change-state-to-emacs] 2 (#$ . 24614) nil]) (defalias 'viper-envelop-ESC-key #[nil "\306\307\211\310\311 !\f \235+\203\340\312\313!\203!\202#\307\"\204\325\314 \315 !\210\316\314\317\")\n\320\234!\321!!\"!\310\311 !\f \235+\203p#\204p\315\322\n\323\"!\210 $\203g\324\202l\325\326\327!!\202\321%\203\237\330!!\203\237\"\331\232\203\237\315\332\325\326\333!!!!\322\n\323\"\"!\210 \325\326\327!!\202\321!\211&\250\206\307&9\203\265&\334N\206\307&:\205\307&@9\205\307&@\334N)\203\321\335!!'*\202\344\315 !\210\316\314!\202\344\325 !\n+\207" [last-input-event inhibit-quit keyseq event key ESC-keys [nil] t (27 (control \[) escape) viper-event-key viper-sit-for-short viper-ESC-event-p nil viper-set-unread-command-events read-key-sequence continue-echo 0 event-modifiers subseq 1 "" vector character-to-event 27 key-press-event-p (meta) vconcat event-key event-symbol-elements viper-copy-event viper-ESC-keyseq-timeout viper-fast-keyseq-timeout minor-mode-map-alist first-key key-mod viper-translate-all-ESC-keysequences viper-emacs-p viper-xemacs-p obj last-command-event] 7]) #@60 Function that implements ESC key in Viper emulation of Vi. (defalias 'viper-intercept-ESC-key #[nil "\302\303 !\206\304\211\305=\203/ \306=\203\307\202. \310=\203#\311\202. \312=\203-\313\202.\314\315!)\207" [cmd viper-current-state key-binding viper-envelop-ESC-key (lambda nil (interactive) (error "")) viper-intercept-ESC-key vi-state viper-ESC insert-state viper-exit-insert-state replace-state viper-replace-state-exit-cmd viper-change-state-to-vi call-interactively] 3 (#$ . 26003) nil]) (defalias 'viper-p-val #[(arg) "\204\301\207:\203@\203@\302\232\203\301\207@\207\207" [arg 1 (nil)] 2]) (put 'viper-p-val 'byte-optimizer 'byte-compile-inline-expand) (defalias 'viper-P-val #[(arg) ":\203@\207\207" [arg] 1]) (put 'viper-P-val 'byte-optimizer 'byte-compile-inline-expand) (defalias 'viper-getcom #[(arg) "\204\301\207:\203A\207\301\207" [arg nil] 1]) (put 'viper-getcom 'byte-optimizer 'byte-compile-inline-expand) (defalias 'viper-getCom #[(arg) "\211\204\n\302\202:\203A\202\302)\303 \304\"\203\"\304\2029\303 \305\"\203-\306\2029\303 \307\"\2038\310\2029 )\207" [arg com nil viper= 99 100 68 121 89] 4]) (defalias 'viper-prefix-arg-value #[(event-char com) "\306\307\211\310 !\203/ \311Y\203/ \312X\203/ \250\203! \202\"\313\314_ \311Z\\\315 \202  \2039\f B \316=\203J\317\f!\210\315 \211\202: \204a\320=\204\243\310 !\203\243\321 !\203\243 \322=\203l\323\202\212 \324=\203w\325\202\212 \326=\203\202\327\202\212 \330=\203\212\331 \206\217 \332\333\334 DD!\211\f!\210\307\211\202\246\335 !+\207" [func value viper-intermediate-command event-char prefix-arg com viper-digit-argument nil viper-characterp 48 57 0 10 viper-read-event-convert-to-char 85 viper-describe-arg vi-state viper-vi-command-p return 13 delete 127 backspace 8 space 32 viper-exec-form-in-vi key-binding char-to-string viper-set-unread-command-events viper-current-state last-command-char] 5]) (defalias 'viper-prefix-arg-com #[(char value com) "\306\307\211\n\203\207\310 \311\312\313\314\315\316\317\320\321\322\323\f\257\f\"\203\207 \2037\310 \324\"\203-\325\326!\210 B\307\211\202\310 \327\"\203I \330 \307\211\202\331 \320\"\203[\330 \332\\\330 \202\331 \323\"\203\330 9\3339!\203t9:\202x\325\326!\210\330 )\202 \330 \202 :\204\312; B\331 \334\"\203\242\335 !\210\330 \202\221\336 !\204\277\337 !\204\277\340 !\204\277\331 \314\"\204\277\325\326!\210\341\342\343 DD!\202\211\310 @\344\"\203\371 @ A; B<\331 \321\"\203\355\345\203\234\366 !\202\235 !?\307\367\370\217+\207" [cmd-to-exec-at-end cmd-info cont char viper-buffer-search-char com t nil viper-memq-char 99 100 121 33 60 62 61 35 114 82 34 (35 34) error "" (33 61) read-char viper= 128 viper-valid-register 85 viper-describe-arg viper-movement-command-p viper-digit-command-p viper-regsuffix-command-p viper-exec-form-in-vi key-binding char-to-string (114 82) viper-region viper-Region 1 (99 . 99) viper-line 67 (100 . 100) 68 (100 . 121) viper-yank-defun (121 . 121) 89 (60 . 60) (62 . 62) (33 . 33) (61 . 61) viper-copy-event character-to-event (funcall cmd-to-exec-at-end cmd-info) ((error (error ""))) reg viper-use-register value prefix-arg last-command-char viper-xemacs-p last-command-event] 15]) (defalias 'viper-describe-arg #[(arg) "\303\211\n\211:\203\n@\202\n)\n\211\204\303\202(\n:\203'\nA\202(\303) \204?\2048\304\305!\202O\304\306\"\202O\204J\304\307 \"\202O\304\310 #*\207" [com val arg nil message "Value is nil, and command is nil" "Value is nil, and command is `%c'" "Value is `%d', and command is nil" "Value is `%d', and command is `%c'"] 5]) #@46 Begin numeric argument for the next command. (defalias 'viper-digit-argument #[(arg) "\203\304\305\n :\205 A\"\207" [viper-xemacs-p zmacs-region-stays last-command-char arg t viper-prefix-arg-value] 3 (#$ . 30120) "P"]) #@41 Accept a motion command as an argument. (defalias 'viper-command-argument #[(arg) "\301\302\303\304\217\210\305 )\207" [viper-intermediate-command viper-command-argument nil (byte-code "\303 \204\n\304\202 :\203 @\202 \250\203 \202 \305\n! \204(\304\202> :\2032 A\202> \250\203;\304\202>\305\n!#\207" [last-command-char arg viper-InvalidCommandArgument viper-prefix-arg-com nil error] 5) ((quit (byte-code "\301\302\303\301\"\207" [viper-use-register nil signal quit] 3))) viper-deactivate-mark] 3 (#$ . 30352) "P"]) (defalias 'viper-append-to-register #[(reg start end) "\303\304!;\203\304!\202\305 \n{P\"\207" [reg start end set-register get-register ""] 5]) (put 'viper-append-to-register 'byte-optimizer 'byte-compile-inline-expand) (defalias 'viper-save-last-insertion #[(beg end) "\305\306\307\217\210 { G\310W\204\311 \233\n\240\210\f?\206,\312\f!\206,\311\313\f!\233\n\240\210\314\f!\207" [beg end viper-last-insertion viper-d-com viper-command-ring nil (byte-code " {\303\207" [beg end viper-last-insertion nil] 2) ((error (byte-code "\301\301\207" [viper-last-insertion nil] 1))) 5 4 ring-empty-p viper-current-ring-item viper-cleanup-ring] 3]) #@75 Inserts the text saved by the previous viper-save-last-insertion command. (defalias 'viper-yank-last-insertion #[nil "\300\301\302\217\207" [nil (insert viper-last-insertion) ((error))] 3 (#$ . 31548)]) (put 'viper-yank-last-insertion 'byte-optimizer 'byte-compile-inline-expand) (defalias 'viper-exec-change #[(m-com com) "\303!\203\f\304!\204`p\223\210l\203`U\204!dU\203'\305c\210\306u\210`U\2030\307 \210\310!\210 \311=\203A\312\313\314!`\"\210`\313\314!W\203L\315 \210h\316=\203U\317 \210\n\320=\203b\321\313\314!`\"\207\322\313\314!`\"\207" [viper-com-point m-com viper-intermediate-command markerp marker-position " " -1 viper-forward-char-carefully set-mark viper-next-line-at-bol viper-enlarge-region mark t exchange-point-and-mark 10 viper-backward-char-carefully viper-repeat viper-change-subr viper-change] 3]) (defalias 'viper-exec-Change #[(m-com com) "\212\306!\210\307\310\311!`\"\210 \203V\312 \313\"\203#\314 \310\311!`\315$\210\202T\312 \316\"\203M \227\310\311!`\317\f\320\f!;\203B\320\f!\202C\321 \n{P\"\210+\202T\315\322 \"\210\315\310\311!`|\210)\323\324!\210\325=\203m\315\326\327\217\207\330 \207" [viper-com-point viper-use-register end start reg viper-InvalidRegister set-mark viper-enlarge-region mark t viper-valid-register (letter digit) copy-to-register nil (Letter) set-register get-register "" error open-line 1 viper-repeat (insert viper-last-insertion) ((error)) viper-change-state-to-insert viper-intermediate-command] 5]) (defalias 'viper-exec-delete #[(m-com com) "\306!\203\f\307!\204`p\223\210\310\n\203Z\311\n\312\"\203(\313\n`\310$\210\202X\311\n\314\"\203P\n\227`\315 \316 !;\203E\316 !\202F\317\f {P\"\210+\202X\310\320\n\"\210\310\321=\205b\322\323`Z!\211V\203v\324\325 \"\210\322`\"\210\321\205\216l\205\216n?\205\216\326u)\207" [viper-com-point chars-deleted viper-use-register end start reg markerp marker-position nil viper-valid-register (letter digit) copy-to-register (Letter) set-register get-register "" error d-command kill-region abs message "Deleted %d characters" -1 viper-InvalidRegister last-command viper-change-notification-threshold this-command viper-ex-style-motion] 6]) (defalias 'viper-exec-Delete #[(m-com com) "\212\306!\210\307\310\311!`\"\210\312\n\203Y\313\n\314\"\203%\315\n\310\311!`\312$\210\202W\313\n\316\"\203O\n\227\310\311!`\317 \320 !;\203D\320 !\202E\321\f {P\"\210+\202W\312\322\n\"\210\312\323=\205a\324\325`\"\211V\203t\326\327 \"\210\324\310\311!`\"\210\330=\203\205\323)\331 )\207" [viper-com-point lines-deleted viper-use-register end start reg set-mark viper-enlarge-region mark t nil viper-valid-register (letter digit) copy-to-register (Letter) set-register get-register "" error D-command kill-region count-lines message "Deleted %d lines" viper-line back-to-indentation viper-InvalidRegister last-command viper-change-notification-threshold m-com this-command] 6]) (defalias 'viper-exec-yank #[(m-com com) "\306!\203\f\307!\204`p\223\210\310\n\203Z\311\n\312\"\203(\313\n`\310$\210\202X\311\n\314\"\203P\n\227`\315 \316 !;\203E\316 !\202F\317\f {P\"\210+\202X\310\320\n\"\210\310\310\321`\"\210\322`Z!\211V\203t\323\324 \"\210b)\207" [viper-com-point chars-saved viper-use-register end start reg markerp marker-position nil viper-valid-register (letter digit) copy-to-register (Letter) set-register get-register "" error copy-region-as-kill abs message "Saved %d characters" viper-InvalidRegister last-command viper-change-notification-threshold] 6]) (defalias 'viper-exec-Yank #[(m-com com) "\212\306!\210\307\310\311!`\"\210\312\n\203Y\313\n\314\"\203%\315\n\310\311!`\312$\210\202W\313\n\316\"\203O\n\227\310\311!`\317 \320 !;\203D\320 !\202E\321\f {P\"\210+\202W\312\322\n\"\210\312\312\323\310\311!`\"\210\324\310\311!`\"\211V\203v\325\326 \"\210*\327 \210b\207" [viper-com-point lines-saved viper-use-register end start reg set-mark viper-enlarge-region mark t nil viper-valid-register (letter digit) copy-to-register (Letter) set-register get-register "" error copy-region-as-kill count-lines message "Saved %d lines" viper-deactivate-mark viper-InvalidRegister last-command viper-change-notification-threshold] 6]) (defalias 'viper-exec-bang #[(m-com com) "\212\304!\210\305\306\307!`\"\210\310 \210\311\306\307!`\312 \313\"\203'\314\315\316\302\n@$\211\202( \307$)\207" [viper-com-point com viper-shell-history viper-last-shell-com set-mark viper-enlarge-region mark t exchange-point-and-mark shell-command-on-region viper= 33 viper-read-string-with-history "!" nil] 8]) (defalias 'viper-exec-equals #[(m-com com) "\212\301!\210\302\303\304!`\"\210\303\304!`V\203\305 \210\306\303\304!`\307#)\207" [viper-com-point set-mark viper-enlarge-region mark t exchange-point-and-mark indent-region nil] 4]) (defalias 'viper-exec-shift #[(m-com com) "\212\303!\210\304\305\306!`\"\210\305\306!`V\203\307 \210\310\305\306!`\311 \312\"\203'\n\202)\n[#\210)b\207" [viper-com-point com viper-shift-width set-mark viper-enlarge-region mark t exchange-point-and-mark indent-rigidly viper= 62] 6]) (defalias 'viper-exec-dummy #[(m-com com) "\300\207" [nil] 1]) (put 'viper-exec-dummy 'byte-optimizer 'byte-compile-inline-expand) (defalias 'viper-exec-buffer-search #[(m-com com) "`{\305 B\306\307 \n\310#\207" [viper-com-point viper-s-string viper-s-forward viper-search-history viper-intermediate-command t viper-exec-buffer-search viper-search 1] 4]) (byte-code "\301B\302\301!\204\303\304\305\" \306\307I\210 \310\311I\210 \312\313I\210 \314\315I\210 \316\317I\210 \320\321I\210 \322\323I\210 \324\325I\210 \326\327I\210 \330\327I\210 \331\332I\207" [current-load-list viper-exec-array boundp make-vector 128 nil 99 viper-exec-change 67 viper-exec-Change 100 viper-exec-delete 68 viper-exec-Delete 121 viper-exec-yank 89 viper-exec-Yank 114 viper-exec-dummy 33 viper-exec-bang 60 viper-exec-shift 62 61 viper-exec-equals] 3) (defalias 'viper-execute-com #[(m-com val com) "\n\306V\203\307\n\306Z!\210\202) \nH\211\204\"\310\311\n #\210\202(\f \n\"\210)\312\n!\205;\313 \n \314\211\257!)\207" [viper-use-register reg com viper-exec-array fn viper-InvalidViCommand 128 viper-special-prefix-com error "%c: %s" viper-dotable-command-p viper-set-destructive-command nil m-com val] 8]) #@385 Re-execute last destructive command. Use the info in viper-d-com, which has the form (com val ch reg inserted-text command-keys), where `com' is the command to be re-executed, `val' is the argument to `com', `ch' is a flag for repeat, and `reg' is optional; if it exists, it is the name of the register for `com'. If the prefix argument, ARG, is non-nil, it is used instead of `val'. (defalias 'viper-repeat #[(arg) "`\306\n\307=\203\310 \210\202\213 @\f\211:\203\f@\202\f)\311 8\312 8\2047 A@\204@\313\314!\210 \315 8\203S\315 8\315 8B!\210 `W\203m\203m b\210\202 `W\203\203n\204\316u\210l\203\212n\204\212\316u\210,\317 \210\n\320=\203\231\321 \322\"\210\323 *\207" [viper-intermediate-command save-point last-command viper-d-com arg reg viper-repeat viper-undo viper-undo-more 2 3 error "No previous command to repeat" 4 -1 viper-adjust-undo viper-display-current-destructive-command viper-push-onto-ring viper-command-ring viper-deactivate-mark com val m-com viper-use-register viper-last-insertion viper-d-char viper-keep-point-on-repeat viper-ex-style-editing] 6 (#$ . 37924) "P"]) #@387 Repeat a destructive command from history. Doesn't change viper-command-ring in any way, so `.' will work as before executing this command. This command is supposed to be bound to a two-character Vi macro where the second character is a digit 0 to 9. The digit indicates which history command to execute. `0' is equivalent to `.', `1' invokes the command before that, etc. (defalias 'viper-repeat-from-history #[nil "\306 \203\307\310 \311\234!!\202\312\211\f \247\203'\312 X\203' \313X\204/\312\312\314\315!\210\312 W\203@\316 \317\" S\202/\320\321!\210\n V\205U\316 \311\"\210 T\202D,\207" [viper-intermediate-command viper-this-kbd-macro idx num viper-d-com viper-command-ring repeating-display-destructive-command string-to-number symbol-name 1 0 9 message "`viper-repeat-from-history' must be invoked as a Vi macro bound to `'" viper-special-ring-rotate1 -1 viper-repeat nil] 5 (#$ . 39074) nil]) (defalias 'viper-special-prefix-com #[(char) "\304\305\"\203\306 `^ `]\"\207\304\307\"\203 \310 `^ `]\"\207\304\311\"\203/\312 \313\"\210\314 \207\304\315\"\203>\312 \313\"\210\316 \207\304\317\"\203J\n `\"\207\320\321 #\207" [char viper-com-point viper-spell-function viper-InvalidViCommand viper= 99 downcase-region 67 upcase-region 103 push-mark t viper-global-execute 113 viper-quote-region 115 error "#%c: %s"] 4]) #@23 Undo previous change. (defalias 'viper-undo #[nil "\306\307!\210\310 \311 \312\211\313\300\314\"\210\315 \210\316\317!\210\n\206!  \206'\n\nb\210\320\321!\210 \203\240\322 !\203\240\323\311 \324\"\210\325\312\203V\320\326\245\"\210\202^\320\321#\210* b\210\325\312\203y\320\326\245\"\210\202\201\320\321#\210*\327\n \"\330V\203\232\327 \"\330V\203\232 b\210\202\245\nb\210\202\245\323 \324\"\210l\203\260n\204\260\331u\210\f\204\270\332\324!\210-\333\211\207" [after-change-functions undo-end-posn undo-beg-posn before-undo-pt modified viper-keep-point-on-undo message "undo!" buffer-modified-p point-marker nil add-hook (lambda (beg end len) (setq undo-beg-posn beg undo-end-posn (or end beg))) undo-start undo-more 2 sit-for 0 pos-visible-in-window-p push-mark t 300 1000.0 viper-chars-in-region 1 -1 set-buffer-modified-p viper-undo nodisp val viper-xemacs-p this-command] 5 (#$ . 40459) nil]) (defalias 'viper-undo-more #[nil "\301\302!\210\303\304\305\217\210l\203n\204\306u\210\307\211\207" [this-command message "undo more!" nil (undo-more 1) ((error (byte-code "\300 \210\301\302!\207" [beep message "No further undo information in this buffer"] 2))) -1 viper-undo] 3]) (defalias 'viper-adjust-undo #[nil "\2059\306\307\211\307\f<\2058 \f>\211\2032\nA\n\307\241\210\310\307\f\"\310 \f\"\211 \244\211\2028\310\307\f\"\211+\207" [viper-undo-needs-adjustment tmp2 tmp inhibit-quit buffer-undo-list viper-buffer-undo-list-mark t nil delq] 4]) (defalias 'viper-set-complex-command-for-undo #[nil "<\205 ?\205\304 B\304\211)\207" [buffer-undo-list viper-undo-needs-adjustment inhibit-quit viper-buffer-undo-list-mark t] 2]) (defalias 'viper-display-current-destructive-command #[nil "\3068\3078\310\311\312\313\314\315\n!\316Q\317 \2036\320\321 !\203&\322 !\2020 ;\203/ \2020\323\324\325#\2027 \326\316\327%#+\207" [viper-d-com max-text-len keys text this-command viper-xemacs-p 4 5 30 viper-display-current-destructive-command message " `.' runs %s%s" "`" viper-array-to-string "'" viper-abbreviate-string replace-in-string characterp char-to-string "" "\n" "^J" " inserting `" " ......."] 9]) (defalias 'viper-set-destructive-command #[(list) "\304=\204 \305\n\233\306\307 !\203 \202\310 !\240\210\311\n\312\"\210\313\211\207" [viper-intermediate-command list viper-d-com viper-this-command-keys viper-repeat 5 viper-array-to-string arrayp this-command-keys viper-push-onto-ring viper-command-ring nil] 4]) #@128 Find previous destructive command in the history of destructive commands. With prefix argument, find next destructive command. (defalias 'viper-prev-destructive-command #[(next) "\306\211\n\307=\203\310\202\311 ! \203\312\f\313\"\202\"\312\f\314\"\211\203*  \307 *\207" [viper-intermediate-command cmd last-command viper-command-ring viper-temp-command-ring next nil viper-display-current-destructive-command repeating-display-destructive-command copy-list viper-special-ring-rotate1 1 -1 viper-d-com] 4 (#$ . 42988) "P"]) #@71 Find next destructive command in the history of destructive commands. (defalias 'viper-next-destructive-command #[nil "\300\301!\207" [viper-prev-destructive-command next] 2 (#$ . 43531) nil]) #@319 Cycle through insertion ring in the direction of older insertions. Undoes previous insertion and inserts new. With prefix argument, cycles in the direction of newer elements. In minibuffer, this command executes whatever the invocation key is bound to in the global map, instead of cycling through the insertion ring. (defalias 'viper-insert-prev-from-insertion-ring #[(arg) "\306 \307=\203#\310\n\311=\203\312\313!\210\202' \203'\314 G!\210\202'\315\f!\307\306B\316 \203;\313\202<\317\"\306 \205F c)\207" [viper-intermediate-command last-command viper-current-state viper-last-inserted-string-from-insertion-ring viper-insertion-ring viper-temp-insertion-ring nil viper-insert-from-insertion-ring repeating-insertion-from-ring replace-state undo 1 backward-delete-char copy-list viper-special-ring-rotate1 -1 this-command buffer-undo-list arg] 3 (#$ . 43731) "P"]) #@109 Cycle through insertion ring in the direction of older insertions. Undo previous insertion and inserts new. (defalias 'viper-insert-next-from-insertion-ring #[nil "\300\301!\207" [viper-insert-prev-from-insertion-ring next] 2 (#$ . 44626) nil]) (defalias 'viper-add-newline-at-eob-if-necessary #[nil "\212\303\210m\205'n?\205'\205'\304 \305\216\306\307\310 \"*?\205'\n?\205'\311c)\207" [require-final-newline save-match-data-internal buffer-read-only nil match-data ((set-match-data save-match-data-internal)) string-match "*Minibuf-" buffer-name "\n"] 3]) (defalias 'viper-yank-defun #[nil "\300 \210\301`\302\303!\"\207" [mark-defun copy-region-as-kill mark t] 4]) (defalias 'viper-enlarge-region #[(beg end) "\204  \204\f W\203b\210\302 !\210\202# b\210\302!\210\303 \210\304 \210m\2031n\2044\305y\210m\204;\303 \210 V\205C\304 \207" [beg end set-mark beginning-of-line exchange-point-and-mark 1] 2]) (defalias 'viper-quote-region #[nil "\304\305\306\307\310\311\312\313 !\"\203\314\202S\311\315\313 !\"\203\"\316\202S\311\317\313 !\"\203/\320\202S\311\321\313 !\"\203<\322\202S \323>\203F\316\202S \324>\203P\320\202S\307\n$ \204[\n\325`\326\304!\"\210`\326\304!V\203m\327 \210\nc\210\330 \210\331y\210`\326\304!W\205\216n\205\216\nc\210\330 \210\331y\210\202v*\207" [viper-quote-string donot-change-dafault quote-str major-mode t viper-read-string-with-history "Quote string: " nil viper-quote-region-history string-match "tex.*-mode" symbol-name "%%" "java.*-mode" "//" "perl.*-mode" "#" "lisp.*-mode" ";;" (c-mode cc-mode c++-mode) (sh-mode shell-mode) viper-enlarge-region mark exchange-point-and-mark beginning-of-line 1] 8]) (defalias 'viper-same-line #[(beg end) "\305\306\305 \203\f\203 \fV\203 \f \205D\f\205D dV\204.\fdV\2032\305\202D\307\310!\fU\203<\311 \312 \f\"\\\311X+\207" [temp incr selective-display beg end nil 0 viper-line-pos start 1 count-lines] 4]) (defalias 'viper-end-with-a-newline-p #[(string) "\302\230\206\211\211GS\234)\303U\207" [string seq "" 10] 3]) (defalias 'viper-tmp-insert-at-eob #[(msg) "d\211b\210 c\210\302\303!\210b\210`d|)\207" [savemax msg sit-for 2] 3]) (defalias 'viper-set-minibuffer-style #[nil "\300\301\302\"\207" [add-hook minibuffer-setup-hook viper-minibuffer-setup-sentinel] 3]) (put 'viper-set-minibuffer-style 'byte-optimizer 'byte-compile-inline-expand) (defalias 'viper-minibuffer-setup-sentinel #[nil "\203\302\202 \303\211 )\207" [viper-vi-style-in-minibuffer hook viper-change-state-to-insert viper-change-state-to-emacs] 2]) (defalias 'viper-minibuffer-standard-hook #[nil ";\203 \304!\210 ;\205-\n\204 \204\305\306!\210\307\310!\203(\310 d|\210\202+\311 \210 c\207" [init-message initial unread-command-events executing-kbd-macro viper-tmp-insert-at-eob sit-for 840 fboundp minibuffer-prompt-end erase-buffer] 2]) (defalias 'viper-minibuffer-real-start #[nil "\300\301!\203 \301 \207e\207" [fboundp minibuffer-prompt-end] 2]) (put 'viper-minibuffer-real-start 'byte-optimizer 'byte-compile-inline-expand) #@28 Exit minibuffer Viper way. (defalias 'viper-exit-minibuffer #[nil "\302\303\304 !!\305\306!\210\203\307!\202\310 )\207" [command last-command-char nil local-key-binding char-to-string run-hooks viper-minibuffer-exit-hook command-execute exit-minibuffer] 3 (#$ . 47697) nil]) #@638 *List of suffixes that Viper tries to append to filenames ending with a `.'. This is useful when the current directory contains files with the same prefix and many different suffixes. Usually, only one of the suffixes represents an editable file. However, file completion will stop at the `.' The smart suffix feature lets you hit RET in such a case, and Viper will select the appropriate suffix. Suffixes are tried in the order given and the first suffix for which a corresponding file exists is selected. If no file exists for any of the suffixes, the user is asked to confirm. To turn this feature off, set this variable to nil. (custom-declare-variable 'viper-smart-suffix-list ''("" "tex" "c" "cc" "C" "java" "el" "html" "htm" "xml" "pl" "flr" "P" "p" "h" "H") '(#$ . -47987) :type '(repeat string) :group 'viper-misc) (defalias 'viper-file-add-suffix #[nil "\306G\307\310\311!\203\311 \202ed\"\312\211\211\211db\210\205\230\313\314 \"\205\230\f\204WW\203W8T\315\316\317\320 ! #!\203-\321 c\210\202-\f?\205\230\322\323!\210\312\216\n\324>?\205\227\325\326\312!\211!\211\327=\203\212\203\204\330 !c\210\202b c\210\202b\n\331>\204b\332\n!\210\202b).\207" [viper-smart-suffix-list suff cmd key found file 0 buffer-substring-no-properties fboundp minibuffer-prompt-end nil string-match "\\.$" file-exists-p format "%s%s" substitute-in-file-name t viper-tmp-insert-at-eob " [Please complete file name]" (exit-minibuffer viper-exit-minibuffer) key-binding read-key-sequence self-insert-command events-to-keys (exit-minibuffer viper-exit-minibuffer) command-execute len count viper-xemacs-p] 8]) #@148 Delete junk at the end of the first line of the minibuffer input. Remove this function from `viper-minibuffer-exit-hook', if this causes problems. (defalias 'viper-minibuffer-trim-tail #[nil "\301 \302\216\303\304\305 \"*\205\"\306\307!\203\307 \202eb\210\310\210`d|\207" [save-match-data-internal match-data ((set-match-data save-match-data-internal)) string-match "*Minibuf-" buffer-name fboundp minibuffer-prompt-end nil] 3 (#$ . 49640)]) (defalias 'viper-read-string-with-history #[(prompt &optional initial history-var default keymap init-message) "\306\300!\205\307 <\203 @\310=\203 C\202 )B\311\211\312 \206*\2061\311\203@\313\314\"\202A\311\312\315\n\f R \312%\312\316\317 !\311\f\320!@\230\204q\f\320!BL\210\320!@\320!A@\230\204\212\320!@\311\230\203\223\320!AL\210\f\311\230\203\253\321\230\204\253\322>\204\253\311\202\273\f\311\230\203\272\206\273\311\202\273\f,\207" [minibuffer-setup-hook old temp-msg padding val keymap boundp viper-minibuffer-standard-hook lambda "" nil format "(default: %s) " read-from-minibuffer viper-array-to-string this-command-keys eval "!" (viper-ex viper-command-argument t) minibuffer-local-map initial default viper-incomplete-ex-cmd prompt history-var last-command] 6]) (defalias 'viper-repeat-insert-command #[nil "@A@\3048\n\205-\n\305V\205- \nS\306\307\211\211\257\310\307!\210 \n \307\211\211\257\211+\207" [viper-d-com char val i-com 2 1 114 nil viper-repeat] 6]) #@22 Insert before point. (defalias 'viper-insert #[(arg) "\304 \210\211\204 \305\202(:\203'@\203@\306\232\203\"\305\202(@\202()\307\310 \311\312\211\211\257!\210\n\313=\203S \211\314V\205O\312\315\316\217\210 S\211\202>)\202U\317 )\207" [arg val viper-intermediate-command count viper-set-complex-command-for-undo 1 (nil) viper-set-destructive-command viper-insert 114 nil viper-repeat 0 (insert viper-last-insertion) ((error)) viper-change-state-to-insert] 8 (#$ . 51153) "P"]) #@21 Append after point. (defalias 'viper-append #[(arg) "\304 \210\211\204 \305\202(:\203'@\203@\306\232\203\"\305\202(@\202()\307\310 \311\312\211\211\257!\210l\204<\312u\210\n\313=\203Z \211\314V\205V\312\315\316\217\210 S\211\202E)\202\\\317 )\207" [arg val viper-intermediate-command count viper-set-complex-command-for-undo 1 (nil) viper-set-destructive-command viper-append 114 nil viper-repeat 0 (insert viper-last-insertion) ((error)) viper-change-state-to-insert] 8 (#$ . 51657) "P"]) #@24 Append at end of line. (defalias 'viper-Append #[(arg) "\304 \210\211\204 \305\202(:\203'@\203@\306\232\203\"\305\202(@\202()\307\310 \311\312\211\211\257!\210\312\210\n\313=\203V \211\314V\205R\312\315\316\217\210 S\211\202A)\202X\317 )\207" [arg val viper-intermediate-command count viper-set-complex-command-for-undo 1 (nil) viper-set-destructive-command viper-Append 114 nil viper-repeat 0 (insert viper-last-insertion) ((error)) viper-change-state-to-insert] 8 (#$ . 52177) "P"]) #@32 Insert before first non-white. (defalias 'viper-Insert #[(arg) "\304 \210\211\204 \305\202(:\203'@\203@\306\232\203\"\305\202(@\202()\307\310 \311\312\211\211\257!\210\313 \210\n\314=\203V \211\315V\205R\312\316\317\217\210 S\211\202A)\202X\320 )\207" [arg val viper-intermediate-command count viper-set-complex-command-for-undo 1 (nil) viper-set-destructive-command viper-Insert 114 nil back-to-indentation viper-repeat 0 (insert viper-last-insertion) ((error)) viper-change-state-to-insert] 8 (#$ . 52692) "P"]) #@18 Open line below. (defalias 'viper-open-line #[(arg) "\305 \210\211\204 \306\202(:\203'@\203@\307\232\203\"\306\202(@\202()\310\311 \312\313\211\211\257!\210\314  \315=\203a \211\316V\205]\313\210\317\306!\210\320\n!\210\313\321\322\217\210\fS\211\202A)\202n\313\210\317\306!\210\320\n!\210\323 *\207" [arg val col viper-intermediate-command count viper-set-complex-command-for-undo 1 (nil) viper-set-destructive-command viper-open-line 114 nil current-indentation viper-repeat 0 newline viper-indent-line (insert viper-last-insertion) ((error)) viper-change-state-to-insert] 8 (#$ . 53235) "P"]) #@18 Open line above. (defalias 'viper-Open-line #[(arg) "\305 \210\211\204 \306\202(:\203'@\203@\307\232\203\"\306\202(@\202()\310\311 \312\313\211\211\257!\210\314  \315=\203a \211\316V\205]\317 \210\320\306!\210\321\n!\210\313\322\323\217\210\fS\211\202A)\202n\317 \210\320\306!\210\321\n!\210\324 *\207" [arg val col viper-intermediate-command count viper-set-complex-command-for-undo 1 (nil) viper-set-destructive-command viper-Open-line 114 nil current-indentation viper-repeat 0 beginning-of-line open-line viper-indent-line (insert viper-last-insertion) ((error)) viper-change-state-to-insert] 8 (#$ . 53863) "P"]) #@21 Open line at point. (defalias 'viper-open-line-at-point #[(arg) "\304 \210\211\204 \305\202(:\203'@\203@\306\232\203\"\305\202(@\202()\307\310 \311\312\211\211\257!\210\n\313=\203W \211\314V\205S\315\305!\210\312\316\317\217\210 S\211\202>)\202]\315\305!\210\320 )\207" [arg val viper-intermediate-command count viper-set-complex-command-for-undo 1 (nil) viper-set-destructive-command viper-open-line-at-point 114 nil viper-repeat 0 open-line (insert viper-last-insertion) ((error)) viper-change-state-to-insert] 8 (#$ . 54511) "P"]) #@24 Substitute characters. (defalias 'viper-substitute #[(arg) "\211\204\n\303\202%:\203$@\203@\304\232\203\303\202%@\202%)\305\306\307\"\210 u\210\n\310=\203?\311\312\307!`\"\210\202F\313\312\307!`\"\210\314\315 \316\306\211\211\257!)\207" [arg val viper-intermediate-command 1 (nil) push-mark nil t viper-repeat viper-change-subr mark viper-change viper-set-destructive-command viper-substitute 114] 8 (#$ . 55074) "P"]) #@19 Substitute lines. (defalias 'viper-substitute-line #[(arg) "\301 \210\302\303B!\207" [arg viper-set-complex-command-for-undo viper-line 67] 3 (#$ . 55519) "p"]) (defalias 'viper-start-replace #[nil "\305\305\306\307\310\311\305\312$\210\307\313\314\305\312$\210\307\315\316\305#\210\307\317\320\305#\210\321\322\323 !\"\210\307\324\325\305\312$\210\307\326\327\305\312$\210\330\324\331\312#\210\f\205B\304\332!\207" [viper-began-as-replace viper-sitting-in-replace viper-replace-chars-to-delete viper-replace-overlay overwrite-mode t 0 add-hook viper-after-change-functions viper-replace-mode-spy-after local viper-before-change-functions viper-replace-mode-spy-before after-change-functions viper-after-change-sentinel before-change-functions viper-before-change-sentinel viper-move-marker-locally viper-last-posn-in-replace-region viper-overlay-start viper-post-command-hooks viper-replace-state-post-command-sentinel viper-pre-command-hooks viper-replace-state-pre-command-sentinel remove-hook viper-R-state-post-command-sentinel -1] 5]) (defalias 'viper-replace-mode-spy-before #[(beg end) "\303 \"\211\207" [beg end viper-replace-region-chars-deleted viper-chars-in-region] 3]) (defalias 'viper-replace-mode-spy-after #[(beg end length) "\306>\203 \307\310\311`\"\207\n\312 !^\212\fb\210i)\212 b\210i)Z\307\307V\2030\307 \313 \f\"\314>\203D\202E\307]Z\\\310\311\n\312 !V\203[\312 !\202\\\n\315 !\206f\316 !]\"+\207" [viper-intermediate-command viper-replace-chars-to-delete end viper-replace-overlay real-end beg (dabbrev-expand hippie-expand repeating-insertion-from-ring) 0 viper-move-marker-locally viper-last-posn-in-replace-region viper-overlay-end viper-chars-in-region (self-insert-command quoted-insert viper-insert-tab) marker-position viper-overlay-start column-shift chars-deleted length viper-replace-region-chars-deleted this-command] 5]) (defalias 'viper-finish-change #[nil "\306\307\310\311#\210\306\312\313\311#\210\306\314\315\311#\210\306\316\317\311#\210\320\321!\210\322\212 \203L\n\323 !\324 !\211\f ^Y\205:\f ] Y+\203L`\324 !W\203L\n\324 !|\210)\325=\203_\326\327\330\217\210\331\322\332\302\322\"\210\333 \210\334 \210\335 !\207" [viper-sitting-in-replace viper-replace-overlay viper-last-posn-in-replace-region end beg pos remove-hook viper-after-change-functions viper-replace-mode-spy-after local viper-before-change-functions viper-replace-mode-spy-before viper-post-command-hooks viper-replace-state-post-command-sentinel viper-pre-command-hooks viper-replace-state-pre-command-sentinel viper-restore-cursor-color after-replace-mode nil viper-overlay-start viper-overlay-end replace-state conds (byte-code "\300\301!\207" [run-hooks viper-insert-state-hook] 2) ((error (viper-message-conditions conds))) insert-state viper-move-marker-locally viper-hide-replace-overlay viper-refresh-mode-line viper-put-string-on-kill-ring viper-current-state viper-replace-minor-mode viper-last-replace-region] 5]) (defalias 'viper-put-string-on-kill-ring #[(string) " B\211G\nV\203\nS \233\304\241\210 \211\207" [string kill-ring kill-ring-max kill-ring-yank-pointer nil] 3]) (defalias 'viper-finish-R-mode #[nil "\302\303\304\305#\210\302\306\307\305#\210\310\311\312\217\210\313\314\211\207" [viper-current-state viper-replace-minor-mode remove-hook viper-post-command-hooks viper-R-state-post-command-sentinel local viper-pre-command-hooks viper-replace-state-pre-command-sentinel conds (byte-code "\300\301!\207" [run-hooks viper-insert-state-hook] 2) ((error (viper-message-conditions conds))) insert-state nil] 4]) (defalias 'viper-start-R-mode #[nil "\300\301!\210\302\303\304\305\306$\210\302\307\310\305\306$\210\311\303\312\306#\207" [overwrite-mode 1 add-hook viper-post-command-hooks viper-R-state-post-command-sentinel t local viper-pre-command-hooks viper-replace-state-pre-command-sentinel remove-hook viper-replace-state-post-command-sentinel] 5]) #@111 Binding for keys that cause Replace state to switch to Vi or to Insert. These keys are ESC, RET, and LineFeed (defalias 'viper-replace-state-exit-cmd #[nil "\203\n\304 \210\202 \305 \210\306\n\307=\203\310\202$\311 !\210\312\313\306!!\314\315\316\217\210)\317 \207" [overwrite-mode com this-command last-input-char viper-finish-R-mode viper-finish-change nil viper-intercept-ESC-key viper-exit-insert-state viper-set-unread-command-events key-binding viper-read-key-sequence conds (command-execute com) ((error (viper-message-conditions conds))) viper-hide-replace-overlay] 3 (#$ . 59470) nil]) #@41 Carriage return in Viper replace state. (defalias 'viper-replace-state-carriage-return #[nil "`\305!W\204`\306!V\203$\307\211\310 !\210\311\312\307!!\313\314\315\217*\207\f\204+\316 \207\317`\306!\"\2037\316 \207`\320\321!|\210\212\307\210m\203I\322\323!\210)\324y\210\325 \207" [viper-replace-overlay com viper-replace-minor-mode last-input-char viper-allow-multiline-replace-regions viper-overlay-start viper-overlay-end nil viper-set-unread-command-events key-binding read-key-sequence conds (command-execute com) ((error (viper-message-conditions conds))) viper-replace-state-exit-cmd viper-same-line viper-line-pos end error "Last line in buffer" 1 back-to-indentation] 4 (#$ . 60080) nil]) #@23 Begin overwrite mode. (defalias 'viper-overwrite #[(arg) "\211\204\n\306\202%:\203$@\203@\307\232\203\306\202%@\202%)\310\311\312\n\313\310\211\211\257!\210 \314=\203_\fG\315 d`Z\306Z^!\210\n\211\316V\205[\310\317\320\217\210 S\211\202J)\202n\312\321 \210\322`\323\324!\"\210\325 *\207" [arg len val viper-intermediate-command viper-last-insertion count 1 (nil) nil viper-set-destructive-command viper-overwrite 114 viper-repeat delete-char 0 (insert viper-last-insertion) ((error)) viper-set-complex-command-for-undo viper-set-replace-overlay viper-line-pos end viper-change-state-to-replace last-command] 8 (#$ . 60795) "P"]) (defalias 'viper-line #[(arg) "@A\303\304`\"\210m\204\305\nS!\210\306 \210\307\310\n #\210*m\205)o?\205)\311y\207" [arg com val viper-move-marker-locally viper-com-point viper-next-line-carefully viper-add-newline-at-eob-if-necessary viper-execute-com viper-line -1] 4]) #@33 Yank ARG lines (in Vi's sense). (defalias 'viper-yank-line #[(arg) "\211\204\n\302\202%:\203$@\203@\303\232\203\302\202%@\202%)\304 \305B!)\207" [arg val 1 (nil) viper-line 89] 4 (#$ . 61736) "P"]) #@30 Execute command on a region. (defalias 'viper-region #[(arg) "\211:\203\f@\202 )\211\204\303\202#:\203\"A\202#\303)\304\305`\"\210\306 \210\307\310\n #*\207" [arg com val nil viper-move-marker-locally viper-com-point exchange-point-and-mark viper-execute-com viper-region] 5 (#$ . 61957) "P"]) #@30 Execute command on a Region. (defalias 'viper-Region #[(arg) "\211:\203\f@\202 )\303!\304\305`\"\210\306 \210\307\310\n #*\207" [arg com val viper-getCom viper-move-marker-locally viper-com-point exchange-point-and-mark viper-execute-com viper-Region] 5 (#$ . 62274) "P"]) #@56 Replace the following ARG chars by the character read. (defalias 'viper-replace-char #[(arg) "l\203\fn\203\f\305\306!\210\211\204\307\2021:\2030@\203'@\310\232\203+\307\2021@\2021)\211\204<\311\202G:\203FA\202G\311)\312 \n\"\210l\203Zn\204Z\307u\210\313\314\250\203e\202f\315\"\316\317\n\320\311\f\311\257!*\207" [arg com val viper-this-command-keys viper-d-char error "No character to replace here" 1 (nil) nil viper-replace-char-subr format "%sr" "" viper-set-destructive-command viper-replace-char 114] 8 (#$ . 62562) "P"]) (defalias 'viper-replace-char-subr #[(com arg) "\306\307\310 \210\n\311=\204\312 \210\313=\203\314\315\316\306\"\210 \203%\f\202(\317\320! \2030c\210 \321V\203< \202> [S\211\321V\203X\315\316\306\"\210c\210S\211\202B)\322 \210\323 !*\207" [char inhibit-quit viper-intermediate-command com viper-d-char arg t nil viper-set-complex-command-for-undo viper-repeat viper-special-read-and-insert-char 13 10 delete-char 1 viper-char-at-pos backward 0 viper-adjust-undo backward-char count] 4]) #@105 Move point right ARG characters (left if ARG negative). On reaching end of line, stop and signal error. (defalias 'viper-forward-char #[(arg) "\203\306\n\211\204\307\202+\n:\203*\n@\203!\n@\310\232\203%\307\202+\n@\202+\n)\n\211\2046\311\202A\n:\203@\nA\202A\311) \203M\312\313`\"\210 \203zl\203`n\203`\314\315!\210\202c\fu\210 \203m\316\317\f #\210l\205\206\320u\210\314\315!\202\206\fu\210 \205\206\316\317\f #*\207" [viper-xemacs-p zmacs-region-stays arg com val viper-ex-style-motion t 1 (nil) nil viper-move-marker-locally viper-com-point error "" viper-execute-com viper-forward-char -1] 5 (#$ . 63644) "P"]) #@111 Move point left ARG characters (right if ARG negative). On reaching beginning of line, stop and signal error. (defalias 'viper-backward-char #[(arg) "\203\306\n\211\204\307\202+\n:\203*\n@\203!\n@\310\232\203%\307\202+\n@\202+\n)\n\211\2046\311\202A\n:\203@\nA\202A\311) \203M\312\313`\"\210 \203ln\203\\\314\315!\210\202`\316\f!\210 \205y\317\320\f #\202y\316\f!\210 \205y\317\320\f #*\207" [viper-xemacs-p zmacs-region-stays arg com val viper-ex-style-motion t 1 (nil) nil viper-move-marker-locally viper-com-point error "" backward-char viper-execute-com viper-backward-char] 5 (#$ . 64295) "P"]) (defalias 'viper-forward-char-carefully #[(&optional arg) "\206\302`\303\304\305\217\210` W\203\306 `\"[\202\306 `\")\207" [arg pt 1 nil (forward-char arg) ((error)) viper-chars-in-region] 3]) (defalias 'viper-backward-char-carefully #[(&optional arg) "\206\302`\303\304\305\217\210` V\203\306 `\"\202\306 `\"[)\207" [arg pt 1 nil (backward-char arg) ((error)) viper-chars-in-region] 3]) (defalias 'viper-next-line-carefully #[(arg) "\300\301\302\217\207" [nil (next-line arg) ((error))] 3]) (defalias 'viper-skip-separators #[(forward) "\203c\301\n\306=\203 \203 \307w\210\202/\f\307w\210\202/\310\300 \206&\311 \205-\312\313!$\210)\314\311!\205\331\307u\210\301\n\306=\203Q \203K \307w\202a\f\307w\202a\310\300 \206Y\311 \205`\312\313!$)\207m\203t\212\315 \210\316 )\203t\315 \210\301\n\306=\203\216 \203\207 \307x\210\202\237\f\307x\210\202\237\310\317 \206\226\311 \205\235\312\320!$\210)\315 \210\314\311!\203\323\301\n\306=\203\301 \203\273 \307x\202\321\f\307x\202\321\310\317 \206\311\311 \205\320\312\320!$)\207o\206\331\307u\207" [forward within-line viper-syntax-preference viper-strict-SEP-chars-sans-newline viper-strict-SEP-chars viper-SEP-char-class strict-vi nil viper-skip-syntax "\n" viper-line-pos end looking-at viper-backward-char-carefully viper-looking-at-separator backward start] 6]) (defalias 'viper-forward-word-kernel #[(val) "\302V\205>\303 \203\304\305!\210\306\307!\210\2027\310 \203\"\306\307!\210\2027\311\310 \206,\303 !)\2047\312 \210\306\307!\210S\211\202\207" [val addl-chars 0 viper-looking-at-alpha viper-skip-alpha-forward "_" viper-skip-separators t viper-looking-at-separator nil viper-skip-nonalphasep-forward] 3]) (defalias 'viper-separator-skipback-special #[(twice lim) "\305\306!`\307 \310\"\2042\n`W\2032 \311=\203 \307 \312\"\202%\307 z\313\"\2032\314 \210\305\306!\202\n`W\203D \315=\203D\316u\210\202Gb\210\305\306!\f\203{\307 \317\"\204{\n`W\203{ \311=\203i\307 \320\"\202n\307 z\321\"\203{\314 \210\305\306!\202O`\nU\205\203\322 *\207" [saved-point prev-char lim viper-syntax-preference twice viper-char-at-pos backward viper-memq-char (nil n) strict-vi (32 9) (32 45) viper-backward-char-carefully 10 -1 (nil n) (32 9) (32 45) viper-forward-char-carefully] 3]) #@15 Forward word. (defalias 'viper-forward-word #[(arg) "\203\306\n\211\204\307\202+\n:\203*\n@\203!\n@\310\232\203%\307\202+\n@\202+\n)\n\211\2046\311\202A\n:\203@\nA\202A\311) \203M\312\305`\"\210\313\f!\210 \205\203\314 \315\"\203d\316\317 \"\210\202~\314 \320\"\203s\316\311 \"\210\202~\321 !\203~\316\311 \"\210\322\323\f #*\207" [viper-xemacs-p zmacs-region-stays arg com val viper-com-point t 1 (nil) nil viper-move-marker-locally viper-forward-word-kernel viper-char-equal 99 viper-separator-skipback-special twice 121 viper-dotable-command-p viper-execute-com viper-forward-word] 5 (#$ . 67240) "P"]) #@45 Forward word delimited by white characters. (defalias 'viper-forward-Word #[(arg) "\203\306\n\211\204\307\202+\n:\203*\n@\203!\n@\310\232\203%\307\202+\n@\202+\n)\n\211\2046\311\202A\n:\203@\nA\202A\311) \203M\312\313`\"\210\f\211\314V\203d\315\316!\210\317\306!\210 S\211\202P) \205\232\320 \321\"\203y\322\323 \"\210\202\225\320 \324\"\203\211\322\311 \"\210\202\225\325 !\203\225\322\311 \"\210\326\327\f #*\207" [viper-xemacs-p zmacs-region-stays arg com val count t 1 (nil) nil viper-move-marker-locally viper-com-point 0 viper-skip-nonseparators forward viper-skip-separators viper-char-equal 99 viper-separator-skipback-special twice 121 viper-dotable-command-p viper-execute-com viper-forward-Word] 5 (#$ . 67879) "P"]) (defalias 'viper-end-of-word-kernel #[nil "\306 \203\307u\210\310 \2039\307 \311=\203'\203 \n\307w\210\2028 \307w\210\2028\312\313\f\206/\314\2056\315\316!$\210)\317 \203E\320\321!\210\202V\307\310 \206O\317 !)\204V\322 \210\323 \207" [within-line viper-syntax-preference viper-strict-SEP-chars-sans-newline viper-strict-SEP-chars viper-SEP-char-class addl-chars viper-end-of-word-p nil viper-looking-at-separator strict-vi viper-skip-syntax forward "\n" viper-line-pos end viper-looking-at-alpha viper-skip-alpha-forward "_" viper-skip-nonalphasep-forward viper-backward-char-carefully] 6]) (defalias 'viper-end-of-word-p #[nil "m\2061\212\301 \203\302u\210\301 ?\2020\302\303 \206\301!)?\2050\302u\210\302\303 \206/\301!))\207" [addl-chars viper-looking-at-alpha nil viper-looking-at-separator] 2]) #@36 Move point to end of current word. (defalias 'viper-end-of-word #[(arg &optional careful) "\203\306\n\211\204\307\202+\n:\203*\n@\203!\n@\310\232\203%\307\202+\n@\202+\n)\n\211\2046\311\202A\n:\203@\nA\202A\311) \203M\312\313`\"\210\f\211\314V\203_\315 \210 S\211\202P) \205l\311u\210\316\317\f #*\207" [viper-xemacs-p zmacs-region-stays arg com val count t 1 (nil) nil viper-move-marker-locally viper-com-point 0 viper-end-of-word-kernel viper-execute-com viper-end-of-word] 5 (#$ . 69478) "P"]) #@54 Forward to end of word delimited by white character. (defalias 'viper-end-of-Word #[(arg) "\203\306\n\211\204\307\202+\n:\203*\n@\203!\n@\310\232\203%\307\202+\n@\202+\n)\n\211\2046\311\202A\n:\203@\nA\202A\311) \203M\312\313`\"\210\f\211\314V\203f\315 \210\316\317!\210\320u\210 S\211\202P) \205s\311u\210\321\322\f #*\207" [viper-xemacs-p zmacs-region-stays arg com val count t 1 (nil) nil viper-move-marker-locally viper-com-point 0 viper-end-of-word-kernel viper-skip-nonseparators forward -1 viper-execute-com viper-end-of-Word] 5 (#$ . 70007) "P"]) (defalias 'viper-backward-word-kernel #[(val) "\302V\205f\303 \210\304 \203\305\306!\210\202_\307 \203N\310u\210\311\310!\210\303 \210\304 \2030\305\306!\210\202_\310\307 \206:\304 !)\204D\312 \210\202_o\204_\310u\210\202_\310\307 \206X\304 !)\204_\312 \210S\211\202\207" [val addl-chars 0 viper-backward-char-carefully viper-looking-at-alpha viper-skip-alpha-backward "_" viper-looking-at-separator nil viper-skip-separators viper-skip-nonalphasep-backward] 3]) #@16 Backward word. (defalias 'viper-backward-word #[(arg) "\203\306\n\211\204\307\202+\n:\203*\n@\203!\n@\310\232\203%\307\202+\n@\202+\n)\n\211\2046\311\202A\n:\203@\nA\202A\311) \203g\311\212\312u\210\313\314!)\211\203Z\312u\210\315\316`\"\210 \203f\311u\210)\317\f!\210 \205t\320\321\f #*\207" [viper-xemacs-p zmacs-region-stays arg com val i t 1 (nil) nil -1 looking-at "\n" viper-move-marker-locally viper-com-point viper-backward-word-kernel viper-execute-com viper-backward-word] 5 (#$ . 71078) "P"]) #@45 Backward word delimited by white character. (defalias 'viper-backward-Word #[(arg) "\203\306\n\211\204\307\202+\n:\203*\n@\203!\n@\310\232\203%\307\202+\n@\202+\n)\n\211\2046\311\202A\n:\203@\nA\202A\311) \203g\311\212\312u\210\313\314!)\211\203Z\312u\210\315\316`\"\210 \203f\311u\210)\f\211\317V\203\201\320\311!\210\321\322!\210S\211\202k) \205\213\323\324\f #*\207" [viper-xemacs-p zmacs-region-stays arg com val i t 1 (nil) nil -1 looking-at "\n" viper-move-marker-locally viper-com-point 0 viper-skip-separators viper-skip-nonseparators backward viper-execute-com viper-backward-Word count] 5 (#$ . 71614) "P"]) #@26 Go to beginning of line. (defalias 'viper-beginning-of-line #[(arg) "\203\305\n\211\204\306\202+\n:\203*\n@\203!\n@\307\232\203%\306\202+\n@\202+\n)\n\211\2046\310\202A\n:\203@\nA\202A\310) \203M\311\312`\"\210\313\f!\210 \205Z\314\315\f #*\207" [viper-xemacs-p zmacs-region-stays arg com val t 1 (nil) nil viper-move-marker-locally viper-com-point beginning-of-line viper-execute-com viper-beginning-of-line] 5 (#$ . 72272) "P"]) #@49 Beginning of line at first non-white character. (defalias 'viper-bol-and-skip-white #[(arg) "\203\305\n\211\204\306\202+\n:\203*\n@\203!\n@\307\232\203%\306\202+\n@\202+\n)\n\211\2046\310\202A\n:\203@\nA\202A\310) \203M\311\312`\"\210\313\fS!\210 \205[\314\315\f #*\207" [viper-xemacs-p zmacs-region-stays arg com val t 1 (nil) nil viper-move-marker-locally viper-com-point forward-to-indentation viper-execute-com viper-bol-and-skip-white] 5 (#$ . 72731) "P"]) #@20 Go to end of line. (defalias 'viper-goto-eol #[(arg) "\203\306\n\211\204\307\202+\n:\203*\n@\203!\n@\310\232\203%\307\202+\n@\202+\n)\n\211\2046\311\202A\n:\203@\nA\202A\311) \203M\312\313`\"\210\f\210 \203Z\314\315\f #\210 \205ql\205qn?\205q\316\232?\205q\317u*\207" [viper-xemacs-p zmacs-region-stays arg com val viper-ex-style-motion t 1 (nil) nil viper-move-marker-locally viper-com-point viper-execute-com viper-goto-eol insert-state -1 viper-current-state] 5 (#$ . 73221) "P"]) #@21 Go to ARG's column. (defalias 'viper-goto-col #[(arg) "\203\306\n\211\204\307\202+\n:\203*\n@\203!\n@\310\232\203%\307\202+\n@\202+\n)\n\211\2046\311\202A\n:\203@\nA\202A\311)\311\312\313\314!\313\315!\"\f\203X\316\317`\"\210\320 \210 ^Su\210i SV\203n\321u\210\202a\f\203x\322\323 \f#\210\212\311\210 iV\205\205\324\325!,\207" [viper-xemacs-p zmacs-region-stays arg line-len com val t 1 (nil) nil viper-chars-in-region viper-line-pos start end viper-move-marker-locally viper-com-point beginning-of-line -1 viper-execute-com viper-goto-col error ""] 5 (#$ . 73740) "P"]) #@18 Go to next line. (defalias 'viper-next-line #[(arg) "\203\306\n\211\204\307\202+\n:\203*\n@\203!\n@\310\232\203%\307\202+\n@\202+\n)\311\n! \203:\312\313`\"\210\314\f!\210 \203Ml\203Mn\204M\315u\210\314 \205Y\316\317\f #*\207" [viper-xemacs-p zmacs-region-stays arg com val viper-ex-style-motion t 1 (nil) viper-getCom viper-move-marker-locally viper-com-point next-line -1 viper-execute-com viper-next-line this-command] 5 (#$ . 74346) "P"]) #@33 Next line at beginning of line. (defalias 'viper-next-line-at-bol #[(arg) "\203\305\212\306\210m\203\307\310!\210)\n\211\204\311\2028\n:\2037\n@\203.\n@\312\232\2032\311\2028\n@\2028\n)\313\n! \203G\314\315`\"\210\fy\210\316 \210 \205V\317\320\f #*\207" [viper-xemacs-p zmacs-region-stays arg com val t nil error "Last line in buffer" 1 (nil) viper-getCom viper-move-marker-locally viper-com-point back-to-indentation viper-execute-com viper-next-line-at-bol] 5 (#$ . 74817) "P"]) #@22 Go to previous line. (defalias 'viper-previous-line #[(arg) "\203\306\n\211\204\307\202+\n:\203*\n@\203!\n@\310\232\203%\307\202+\n@\202+\n)\311\n! \203:\312\313`\"\210\314\f!\210 \203Ml\203Mn\204M\315u\210\314 \205Y\316\317\f #*\207" [viper-xemacs-p zmacs-region-stays arg com val viper-ex-style-motion t 1 (nil) viper-getCom viper-move-marker-locally viper-com-point previous-line -1 viper-execute-com viper-previous-line this-command] 5 (#$ . 75324) "P"]) #@37 Previous line at beginning of line. (defalias 'viper-previous-line-at-bol #[(arg) "\203\305\212\306 \210o\203\307\310!\210)\n\211\204\311\2028\n:\2037\n@\203.\n@\312\232\2032\311\2028\n@\2028\n)\313\n! \203G\314\315`\"\210\f[y\210\316 \210 \205W\317\320\f #*\207" [viper-xemacs-p zmacs-region-stays arg com val t beginning-of-line error "First line in buffer" 1 (nil) viper-getCom viper-move-marker-locally viper-com-point back-to-indentation viper-execute-com viper-previous-line] 5 (#$ . 75811) "P"]) #@24 Change to end of line. (defalias 'viper-change-to-eol #[(arg) "\301\302B!\207" [arg viper-goto-eol 99] 3 (#$ . 76339) "P"]) #@14 Delete line. (defalias 'viper-kill-line #[(arg) "\301\302B!\207" [arg viper-goto-eol 100] 3 (#$ . 76470) "P"]) #@13 Erase line. (defalias 'viper-erase-line #[(arg) "\301\302B!\207" [arg viper-beginning-of-line 100] 3 (#$ . 76588) "P"]) #@53 Go to ARG's line. Without ARG go to end of buffer. (defalias 'viper-goto-line #[(arg) "\211:\203\f@\202 )\303!\304\305`\"\210\306 \210\307\310\311\"\210\n\204*db\210\2021eb\210\nSy\210m\203@n\203@o\204@\312y\210\313 \210 \203M\314\315\n #\210m\203\\n\203\\o\204\\\312y\210\313 *\207" [arg com val viper-getCom viper-move-marker-locally viper-com-point viper-deactivate-mark push-mark nil t -1 back-to-indentation viper-execute-com viper-goto-line] 5 (#$ . 76715) "P"]) (defalias 'viper-find-char #[(arg char forward offset) "\306!\204\n\307\310!\210 \203\n\202\n[ \311=\203 \312\f8\202$\313\314 !\315\211\211 \212\214\n\316V\203N`!\203F\317\320!\210\202I\315\210`\202b`!\203\\\321\320!\210\202_\322 \210`\n\316W\203~ Z!\203u\323\202v\320W\203~n\204\232\n\316V\203\265 Z!\203\221\324\202\222\323W\203\265l\203\265\307\325 \n\316V\203\250\326\202\251\327!\203\262\330\202\263\331$\210 }\210\n\316V\203\307eTb\210\202\312db\210\315\"\332\333!\315\316\n$)\203\337`\202\346\307\334 #\210*b\210\n\316V\203\335#\203\373\323\202\374\320!\202 #\203 \320\202\n\316u-\207" [char forward arg viper-intermediate-command viper-d-com region-end char-or-string-p error "" viper-repeat 5 viper-array-to-string this-command-keys nil 0 viper-forward-paragraph 1 viper-backward-paragraph beginning-of-line 2 3 "Command `%s': At %s of %s" "end" "beginning" "paragraph" "line" search-forward char-to-string "Command `%s': `%c' not found" backward-char region-beg point cmd viper-allow-multiline-replace-regions case-fold-search offset] 5]) #@217 Find char on the line. If called interactively read the char to find from the terminal, and if called from viper-repeat, the char last used is used. This behaviour is controlled by the sign of prefix numeric value. (defalias 'viper-find-char-forward #[(arg) "\211\204\n\306\202%:\203$@\203@\307\232\203\306\202%@\202%)\211\2040\310\202;:\203:A\202;\310)\311 8\211\312V\203T\313 \314\310\202n\n;\203e\n\211\211GS\234)\202g\211\f[ \203w\315\316`\"\210\317\f\211\204\203\306\202\236:\203\235@\203\224@\307\232\203\230\306\202\236@\202\236)\312V\203\250 \202\252\314\310$\210\f[ \205\300 \310u\210\320\321\f #+\207" [arg viper-d-com cmd-representation com val viper-f-char 1 (nil) nil 5 0 read-char t viper-move-marker-locally viper-com-point viper-find-char viper-execute-com viper-find-char-forward viper-f-forward viper-f-offset seq viper-F-char] 6 (#$ . 78336) "P"]) #@36 Go up to char ARG forward on line. (defalias 'viper-goto-char-forward #[(arg) "\211\204\n\306\202%:\203$@\203@\307\232\203\306\202%@\202%)\211\2040\310\202;:\203:A\202;\310)\311 8\211\312V\203T\313 \314\314\202n\n;\203e\n\211\211GS\234)\202g\211\f[ \203w\315\316`\"\210\317\f\211\204\203\306\202\236:\203\235@\203\224@\307\232\203\230\306\202\236@\202\236)\312V\203\250 \202\252\314\211$\210\f[ \205\300 \310u\210\320\321\f #+\207" [arg viper-d-com cmd-representation com val viper-f-char 1 (nil) nil 5 0 read-char t viper-move-marker-locally viper-com-point viper-find-char viper-execute-com viper-goto-char-forward viper-f-forward viper-f-offset seq viper-F-char] 6 (#$ . 79277) "P"]) #@33 Find char ARG on line backward. (defalias 'viper-find-char-backward #[(arg) "\211\204\n\306\202%:\203$@\203@\307\232\203\306\202%@\202%)\211\2040\310\202;:\203:A\202;\310)\311 8\211\312V\203T\313 \310\310\202n\n;\203e\n\211\211GS\234)\202g\211\f[ \203w\314\315`\"\210\316\f\211\204\203\306\202\236:\203\235@\203\224@\307\232\203\230\306\202\236@\202\236)\312V\203\250 \202\252\310\211$\210\f[ \205\275 \317\320\f #+\207" [arg viper-d-com cmd-representation com val viper-f-char 1 (nil) nil 5 0 read-char viper-move-marker-locally viper-com-point viper-find-char viper-execute-com viper-find-char-backward viper-f-forward viper-f-offset seq viper-F-char] 6 (#$ . 80037) "P"]) #@37 Go up to char ARG backward on line. (defalias 'viper-goto-char-backward #[(arg) "\211\204\n\306\202%:\203$@\203@\307\232\203\306\202%@\202%)\211\2040\310\202;:\203:A\202;\310)\311 8\211\312V\203T\313 \310\314\202n\n;\203e\n\211\211GS\234)\202g\211\f[ \203w\315\316`\"\210\317\f\211\204\203\306\202\236:\203\235@\203\224@\307\232\203\230\306\202\236@\202\236)\312V\203\250 \202\252\310\314$\210\f[ \205\275 \320\321\f #+\207" [arg viper-d-com cmd-representation com val viper-f-char 1 (nil) nil 5 0 read-char t viper-move-marker-locally viper-com-point viper-find-char viper-execute-com viper-goto-char-backward viper-f-forward viper-f-offset seq viper-F-char] 6 (#$ . 80785) "P"]) #@31 Repeat previous find command. (defalias 'viper-repeat-find #[(arg) "\211\204\n\306\202%:\203$@\203@\307\232\203\306\202%@\202%)\211\2040\310\202;:\203:A\202;\310)\311 \210 \203J\312\313`\"\210\314\n \f $\210 \205a\f\203\\\310u\210\315\316\n #*\207" [arg com val viper-f-char viper-f-forward viper-f-offset 1 (nil) nil viper-deactivate-mark viper-move-marker-locally viper-com-point viper-find-char viper-execute-com viper-repeat-find] 6 (#$ . 81539) "P"]) #@57 Repeat previous find command in the opposite direction. (defalias 'viper-repeat-find-opposite #[(arg) "\211\204\n\306\202%:\203$@\203@\307\232\203\306\202%@\202%)\211\2040\310\202;:\203:A\202;\310)\311 \210 \203J\312\313`\"\210\314\n \f? $\210 \205b\f\203]\310u\210\315\316\n #*\207" [arg com val viper-f-char viper-f-forward viper-f-offset 1 (nil) nil viper-deactivate-mark viper-move-marker-locally viper-com-point viper-find-char viper-execute-com viper-repeat-find-opposite] 6 (#$ . 82030) "P"]) #@25 Go to home window line. (defalias 'viper-window-top #[(arg) "\211\204\n\305\202%:\203$@\203@\306\232\203\305\202%@\202%)\307! \2031\310 \203:\311\312`\"\210\313\314\310\"\210\315\nS!\210m\203Sn\203So\204S\316y\210\317 \210 \203`\320\321\n #\210m\203on\203oo\204o\316y\210\317 *\207" [arg com val viper-xemacs-p zmacs-region-stays 1 (nil) viper-getCom t viper-move-marker-locally viper-com-point push-mark nil move-to-window-line -1 back-to-indentation viper-execute-com viper-window-top] 5 (#$ . 82565) "P"]) #@27 Go to middle window line. (defalias 'viper-window-middle #[(arg) "\211\204\n\305\202%:\203$@\203@\306\232\203\305\202%@\202%)\307! \2031\310 \203:\311\312`\"\210\313\314\310\"\210\315\316 S\317\245\nS\\!\210m\203Yn\203Yo\204Y\320y\210\321 \210 \203f\322\323\n #\210m\203un\203uo\204u\320y\210\321 *\207" [arg com val viper-xemacs-p zmacs-region-stays 1 (nil) viper-getCom t viper-move-marker-locally viper-com-point push-mark nil move-to-window-line window-height 2 -1 back-to-indentation viper-execute-com viper-window-middle] 5 (#$ . 83109) "P"]) #@25 Go to last window line. (defalias 'viper-window-bottom #[(arg) "\211\204\n\305\202%:\203$@\203@\306\232\203\305\202%@\202%)\307! \2031\310 \203:\311\312`\"\210\313\314\310\"\210\315\n[!\210m\203Sn\203So\204S\316y\210\317 \210 \203`\320\321\n #\210m\203on\203oo\204o\316y\210\317 *\207" [arg com val viper-xemacs-p zmacs-region-stays 1 (nil) viper-getCom t viper-move-marker-locally viper-com-point push-mark nil move-to-window-line -1 back-to-indentation viper-execute-com viper-window-bottom] 5 (#$ . 83693) "P"]) #@36 Put current line on the home line. (defalias 'viper-line-to-top #[(arg) "\301S!\207" [arg recenter] 2 (#$ . 84243) "p"]) #@38 Put current line on the middle line. (defalias 'viper-line-to-middle #[(arg) "\301S\302 S\303\245\\!\207" [arg recenter window-height 2] 4 (#$ . 84371) "p"]) #@36 Put current line on the last line. (defalias 'viper-line-to-bottom #[(arg) "\301\302 TZ!\207" [arg recenter window-height] 3 (#$ . 84536) "p"]) (defalias 'viper-adjust-window #[nil "\203\n\306 S\202\f\307 `\310\211\211\211\212\311\312!\210\313 `\"X\311\314!\210\313 `\"X)\f\203?S\315\202I \203IT\314\n\205W\316\n\317\245] _!.\207" [viper-emacs-p direction min-scroll at-bottom-p at-top-p pt window-height window-displayed-height nil move-to-window-line 0 count-lines -1 1 recenter 7 win-height viper-search-scroll-threshold] 6]) #@33 Go to the matching parenthesis. (defalias 'viper-paren-match #[(arg) "\203\306\n\211\204\307\202\n:\203\nA\202\307) \307\n\250\203S\n\310V\2043\n\311W\2039\312\313!\202d\314V\203Gd\315\245\n_\202Ld\n_\315\245b\210\316 \202\307\211 !l\203dn\204d\317u\210\320\321!\204l`\212\322 \210`!\307\210` )\323\321 \306#\203\211\317u\210\202\226\324\321!\306#\204\226\312\325!\210*\320\326!\203\276\203\247\327\330`\"\210\331\311!\210\203\271\332\333\307#\202\317u\202\f\203\330\205\327\330\f\"\210\311u\210\332\333\307#\202\320\334!\203\375\307u\210\203\353\327\330`\"\210\335\311!\210\205\332\333\307#\202\312\336!+\207" [viper-xemacs-p zmacs-region-stays arg viper-parse-sexp-ignore-comments anchor-point parse-sexp-ignore-comments t nil 99 1 error "Prefix must be between 1 and 99" 80000 100 back-to-indentation -1 looking-at "[][(){}]" beginning-of-line re-search-forward re-search-backward "No matching character on line" "[([{]" viper-move-marker-locally viper-com-point forward-sexp viper-execute-com viper-paren-match "[])}]" backward-sexp "" com end-lim beg-lim] 5 (#$ . 85103) "P"]) (defalias 'viper-toggle-parse-sexp-ignore-comments #[nil "?\301\302\303\203\304\202\305\"!\207" [viper-parse-sexp-ignore-comments princ format "From now on, `%%' will %signore parentheses inside comment fields" "" "NOT "] 4 nil nil]) #@19 Forward sentence. (defalias 'viper-forward-sentence #[(arg) " =\204 \305\306\307\"\210\n\211\204\310\2020\n:\203/\n@\203&\n@\311\232\203*\310\2020\n@\2020\n)\n\211\204;\306\202F\n:\203E\nA\202F\306) \203R\312\313`\"\210\314\f!\210 \205_\315\316\306 #*\207" [last-command this-command arg com val push-mark nil t 1 (nil) viper-move-marker-locally viper-com-point forward-sentence viper-execute-com viper-forward-sentence] 5 (#$ . 86506) "P"]) #@20 Backward sentence. (defalias 'viper-backward-sentence #[(arg) " =\204 \305\306\307\"\210\n\211\204\310\2020\n:\203/\n@\203&\n@\311\232\203*\310\2020\n@\2020\n)\n\211\204;\306\202F\n:\203E\nA\202F\306) \203R\312\313`\"\210\314\f!\210 \205_\315\316\306 #*\207" [last-command this-command arg com val push-mark nil t 1 (nil) viper-move-marker-locally viper-com-point backward-sentence viper-execute-com viper-backward-sentence] 5 (#$ . 86974) "P"]) #@20 Forward paragraph. (defalias 'viper-forward-paragraph #[(arg) " =\204 \305\306\307\"\210\n\211\204\310\2020\n:\203/\n@\203&\n@\311\232\203*\310\2020\n@\2020\n)\n\211\204;\306\202F\n:\203E\nA\202F\306) \203R\312\313`\"\210\314\f!\210 \205b\315u\210\316\317\306 #*\207" [last-command this-command arg com val push-mark nil t 1 (nil) viper-move-marker-locally viper-com-point forward-paragraph -1 viper-execute-com viper-forward-paragraph] 5 (#$ . 87446) "P"]) #@21 Backward paragraph. (defalias 'viper-backward-paragraph #[(arg) " =\204 \305\306\307\"\210\n\211\204\310\2020\n:\203/\n@\203&\n@\311\232\203*\310\2020\n@\2020\n)\n\211\204;\306\202F\n:\203E\nA\202F\306) \203R\312\313`\"\210\314\f!\210 \205e\310u\210\315\316\306 #\210\317u*\207" [last-command this-command arg com val push-mark nil t 1 (nil) viper-move-marker-locally viper-com-point backward-paragraph viper-execute-com viper-backward-paragraph -1] 5 (#$ . 87930) "P"]) (defalias 'viper-prev-heading #[(arg) "\211\204\n\304\202%:\203$@\203@\305\232\203\304\202%@\202%)\306! \2034\307\310`\"\210\311 \312\313\n$\210\314\224b\210 \205H\315\316\312 #*\207" [arg com val viper-heading-start 1 (nil) viper-getCom viper-move-marker-locally viper-com-point re-search-backward nil t 0 viper-execute-com viper-prev-heading] 6 nil "P"]) (defalias 'viper-heading-end #[(arg) "\211\204\n\304\202%:\203$@\203@\305\232\203\304\202%@\202%)\306! \2034\307\310`\"\210\311 \312\313\n$\210\314\224b\210 \205H\315\303\312 #*\207" [arg com val viper-heading-end 1 (nil) viper-getCom viper-move-marker-locally viper-com-point re-search-forward nil t 0 viper-execute-com] 6 nil "P"]) (defalias 'viper-next-heading #[(arg) "\211\204\n\304\202%:\203$@\203@\305\232\203\304\202%@\202%)\306! \2034\307\310`\"\210\311\210\312 \311\313\n$\210\314\224b\210 \205K\315\316\311 #*\207" [arg com val viper-heading-start 1 (nil) viper-getCom viper-move-marker-locally viper-com-point nil re-search-forward t 0 viper-execute-com viper-next-heading] 6 nil "P"]) #@24 Scroll to next screen. (defalias 'viper-scroll-screen #[(arg) "\300\301\302\217\207" [nil (byte-code "\301V\203\301V\205%\302 \210S\211\202\301V\205%\303 \210T\202\207" [arg 0 scroll-up scroll-down] 3) ((error (byte-code "\301\302!\210\303V\203\304\305!\210db\207\304\306!\210eb\207" [arg beep 1 0 message "End of buffer" "Beginning of buffer"] 2)))] 3 (#$ . 89546) "p"]) #@28 Scroll to previous screen. (defalias 'viper-scroll-screen-back #[(arg) "\301[!\207" [arg viper-scroll-screen] 2 (#$ . 89942) "p"]) #@24 Pull down half screen. (defalias 'viper-scroll-down #[(arg) "\300\301\302\217\207" [nil (byte-code "\204 \301\302 \303\245!\207\301!\207" [arg scroll-down window-height 2] 3) ((error (byte-code "\300\301!\210\302\303!\210eb\207" [beep 1 message "Beginning of buffer"] 2)))] 3 (#$ . 90080) "P"]) #@21 Scroll up one line. (defalias 'viper-scroll-down-one #[(arg) "\301!\207" [arg scroll-down] 2 (#$ . 90384) "p"]) #@22 Pull up half screen. (defalias 'viper-scroll-up #[(arg) "\300\301\302\217\207" [nil (byte-code "\204 \301\302 \303\245!\207\301!\207" [arg scroll-up window-height 2] 3) ((error (byte-code "\300\301!\210\302\303!\210db\207" [beep 1 message "End of buffer"] 2)))] 3 (#$ . 90503) "P"]) #@23 Scroll down one line. (defalias 'viper-scroll-up-one #[(arg) "\301!\207" [arg scroll-up] 2 (#$ . 90795) "p"]) (defalias 'viper-if-string #[(prompt) "\306>\203 \307 \310\n\311\303 @$\211\312\230?\205\f\211)\207" [viper-intermediate-command viper-this-command-keys prompt viper-search-history s viper-s-string (viper-command-argument viper-digit-argument viper-repeat) this-command-keys viper-read-string-with-history nil ""] 6]) #@636 Toggle the value of viper-case-fold-search/viper-re-search. Without prefix argument, will ask which search style to toggle. With prefix arg 1,toggles viper-case-fold-search; with arg 2 toggles viper-re-search. Although this function is bound to \[viper-toggle-search-style], the most convenient way to use it is to bind `//' to the macro `1 M-x viper-toggle-search-style' and `///' to `2 M-x viper-toggle-search-style'. In this way, hitting `//' quickly will toggle case-fold-search and hitting `/' three times witth toggle regexp search. Macros are more convenient in this case because they don't affect the Emacs binding of `/'. (defalias 'viper-toggle-search-style #[(arg) "\304 \305=\204& \2047\306\307\310\n\203\311\202\312\n\203 \312\202!\311#!\2037\n?\211\2032\313\202n\314\202n \315=\204[ \204l\306\307\310 \203L\316\202M\317 \203U\317\202V\316#!\203l ?\211\203g\320\202n\321\202n\322\323\324\")\207" [msg arg viper-case-fold-search viper-re-search nil 1 y-or-n-p format "Search style: '%s'. Want '%s'? " "case-insensitive" "case-sensitive" "Search becomes case-insensitive" "Search becomes case-sensitive" 2 "regexp-search" "vanilla-search" "Search becomes regexp-style" "Search becomes vanilla-style" "Search style remains unchanged" princ t] 6 (#$ . 91238) "P"]) #@241 Set the macros for toggling the search style in Viper's vi-state. The macro that toggles case sensitivity is bound to `//', and the one that toggles regexp search is bound to `///'. With a prefix argument, this function unsets the macros.  (defalias 'viper-set-searchstyle-toggling-macros #[(unset) "\206+ \204\302\303\304\305\306$\210\302\307\304\310\306$\210t\205+\311\312!\207\313\303\304\"\210\314\315!\210\313\307\304\"\207" [noninteractive unset viper-record-kbd-macro "//" vi-state [1 (meta x) v i p e r - t o g g l e - s e a r c h - s t y l e return] t "///" [2 (meta x) v i p e r - t o g g l e - s e a r c h - s t y l e return] message "// and /// now toggle case-sensitivity and regexp search" viper-unrecord-kbd-macro sit-for 2] 5 (#$ . 92555) "P"]) #@197 Set `%%%' to be a macro that toggles whether comment fields should be parsed for matching parentheses. This is used in conjunction with the `%' command. With a prefix argument, unsets the macro. (defalias 'viper-set-parsing-style-toggling-macro #[(unset) "\206 \204\302\303\304\305\306$\210t\205\307\310!\207\311\303\304\"\207" [noninteractive unset viper-record-kbd-macro "%%%" vi-state [(meta x) v i p e r - t o g g l e - p a r s e - s e x p - i g n o r e - c o m m e n t s return] t message "%%%%%% now toggles whether comments should be parsed for matching parentheses" viper-unrecord-kbd-macro] 5 (#$ . 93328) "P"]) #@502 Set the macros for toggling the search style in Viper's emacs-state. The macro that toggles case sensitivity is bound to `//', and the one that toggles regexp search is bound to `///'. With a prefix argument, this function unsets the macros. If the optional prefix argument is non-nil and specifies a valid major mode, this sets the macros only in the macros in that major mode. Otherwise, the macros are set in the current major mode. (When unsetting the macros, the second argument has no effect.) (defalias 'viper-set-emacs-state-searchstyle-macros #[(unset &optional arg-majormode) "\2063 \204&\304\305\306\307\n\206 $\210\304\310\306\311\n\206 $\210t\2053\312\313!\207\314\305\306\"\210\315\316!\210\314\310\306\"\207" [noninteractive unset arg-majormode major-mode viper-record-kbd-macro "//" emacs-state [1 (meta x) v i p e r - t o g g l e - s e a r c h - s t y l e return] "///" [2 (meta x) v i p e r - t o g g l e - s e a r c h - s t y l e return] message "// and /// now toggle case-sensitivity and regexp search." viper-unrecord-kbd-macro sit-for 2] 5 (#$ . 93964) "P"]) #@123 Search a string forward. ARG is used to find the ARG's occurrence of the string. Null string will repeat previous search. (defalias 'viper-search-forward #[(arg) "\211:\203\f@\202 )\211\204\306\202#:\203\"A\202#\306) \307\310\311!\210\n \232\203B\312!\203B\313!\204F\314 \315 \307\f#\210 \205\\\316\317\320\307!\"\210\321\322\f #+\207" [arg viper-s-string old-str com val viper-s-forward nil t viper-if-string "/" markerp marker-buffer point-marker viper-search viper-move-marker-locally viper-com-point mark viper-execute-com viper-search-next viper-local-search-start-marker] 5 (#$ . 95062) "P"]) #@124 Search a string backward. ARG is used to find the ARG's occurrence of the string. Null string will repeat previous search. (defalias 'viper-search-backward #[(arg) "\211:\203\f@\202 )\211\204\306\202#:\203\"A\202#\306) \306\307\310!\210\n \232\203B\311!\203B\312!\204F\313 \314 \306\f#\210 \205\\\315\316\317\320!\"\210\321\322\f #+\207" [arg viper-s-string old-str com val viper-s-forward nil viper-if-string "?" markerp marker-buffer point-marker viper-search viper-move-marker-locally viper-com-point mark t viper-execute-com viper-search-next viper-local-search-start-marker] 5 (#$ . 95697) "P"]) (defalias 'viper-search #[(string forward arg &optional no-offset init-point fail-if-not-found) "\306\232?\205{ \211\204\307\202, :\203+ @\203\" @\310\232\203&\307\202, @\202, ) \211\2047\311\202B :\203A A\202B\311)\n? \f\206K`\312 \210\203d\311\313\314\217\210\202i\311\315\316\217\210\317 \210\206z\320>\206z\321 -\207" [string arg no-offset viper-case-fold-search init-point start-point "" 1 (nil) nil viper-deactivate-mark (byte-code "\203\305 \210 \203\306\n\307\211 $\210\310\n!\210\202$\311\n\307\211 $\210\312\n!\210\f`\232\204/\313\f\314\"\210\307\207" [offset viper-re-search string val start-point viper-forward-char-carefully re-search-forward nil re-search-backward search-forward search-backward push-mark t] 5) ((search-failed (byte-code "\2042 \2032\306\307!\210eb\210\310\n \311\fB\312 \313&\210\204+\314>\204+\315\316!\210\306\317!\210\202D b\210\320\321\n\203A\322\202B\323#\210\306\207" [fail-if-not-found viper-search-wrap-around-t string forward com start-point message "Search wrapped around BOTTOM of buffer" viper-search 1 t fail (viper-repeat viper-digit-argument viper-command-argument) sit-for 2 "" error "`%s': %s not found" "Pattern" "String" executing-kbd-macro viper-intermediate-command viper-re-search] 7))) (byte-code "\203\304 \305\211\n$\210\202\306 \305\211\n$\210 `\232\204 \307 \310\"\210\305\207" [viper-re-search string val start-point re-search-backward nil search-backward push-mark t] 5) ((search-failed (byte-code "\2042 \2032\306\307!\210db\210\310\n \311\fB\312 \313&\210\204+\314>\204+\315\316!\210\306\317!\210\202D b\210\320\321\n\203A\322\202B\323#\210\306\207" [fail-if-not-found viper-search-wrap-around-t string forward com start-point message "Search wrapped around TOP of buffer" viper-search 1 t fail (viper-repeat viper-digit-argument viper-command-argument) sit-for 2 "" error "`%s': %s not found" "Pattern" "String" executing-kbd-macro viper-intermediate-command viper-re-search] 7))) viper-adjust-window (viper-repeat viper-digit-argument viper-command-argument) viper-flash-search-pattern case-fold-search offset com val forward executing-kbd-macro viper-intermediate-command] 6]) #@25 Repeat previous search. (defalias 'viper-search-next #[(arg) "\211\204\n\306\202%:\203$@\203@\307\232\203\306\202%@\202%)\211\2040\310\202;:\203:A\202;\310) \204F\311\f!\210\312 #\210 \205\\\313\314\315\316!\"\210\317\320\n #*\207" [arg com val viper-s-string viper-NoPrevSearch viper-s-forward 1 (nil) nil error viper-search viper-move-marker-locally viper-com-point mark t viper-execute-com viper-search-next] 5 (#$ . 98556) "P"]) #@50 Repeat previous search in the reverse direction. (defalias 'viper-search-Next #[(arg) "\211\204\n\306\202%:\203$@\203@\307\232\203\306\202%@\202%)\211\2040\310\202;:\203:A\202;\310) \204F\311\f!\210\312 ?#\210 \205]\313\314\315\316!\"\210\317\320\n #*\207" [arg com val viper-s-string viper-NoPrevSearch viper-s-forward 1 (nil) nil error viper-search viper-move-marker-locally viper-com-point mark t viper-execute-com viper-search-Next] 5 (#$ . 99025) "P"]) (defalias 'viper-buffer-search-enable #[(&optional c) "\203 \202 \204\305\306\n\307 !\203\310 !\202!\311\312 \"\313#\210 \314I\210 \fB\211\207" [c viper-buffer-search-char viper-vi-basic-map viper-exec-array viper-prefix-commands 103 define-key viper-characterp char-to-string error "viper-buffer-search-char: wrong value type, %s" viper-command-argument viper-exec-buffer-search] 5]) #@32 Do incremental search forward. (defalias 'viper-isearch-forward #[(arg) "<\203@\301\302D!\207" [arg viper-exec-form-in-emacs isearch-forward] 3 (#$ . 99918) "P"]) #@33 Do incremental search backward. (defalias 'viper-isearch-backward #[(arg) "<\203@\301\302D!\207" [arg viper-exec-form-in-emacs isearch-backward] 3 (#$ . 100093) "P"]) #@41 Switch to buffer in the current window. (defalias 'viper-switch-to-buffer #[nil "\301p!\303\n\304 \"\305!*\207" [buffer other-buffer viper-read-buffer-function nil "Switch to buffer in this window: " switch-to-buffer] 3 (#$ . 100272) nil]) #@37 Switch to buffer in another window. (defalias 'viper-switch-to-buffer-other-window #[nil "\301p!\303\n\304 \"\305!*\207" [buffer other-buffer viper-read-buffer-function nil "Switch to buffer in another window: " switch-to-buffer-other-window] 3 (#$ . 100522) nil]) #@16 Kill a buffer. (defalias 'viper-kill-buffer #[nil "\303\211\n\304\305\300p!\"!\211\204p\202\306!\211\204\"\307\310\"\210\311 !\2031\312\304\313\"!\2037\314 !\202:\307\315!*\207" [buffer-name buffer viper-read-buffer-function nil format "Kill buffer (%s): " get-buffer error "`%s': No such buffer" buffer-modified-p y-or-n-p "Buffer `%s' is modified, are you sure you want to kill it? " kill-buffer "Buffer not killed"] 6 (#$ . 100797) nil]) #@74 Yank TEXT silently. This works correctly with Emacs's yank-pop command. (defalias 'viper-yank #[(text) "c\210\302\211\207" [text this-command yank] 2 (#$ . 101259)]) (put 'viper-yank 'byte-optimizer 'byte-compile-inline-expand) #@34 Put back after point/below line. (defalias 'viper-put-back #[(arg) "\211\204\n\306\202%:\203$@\203@\307\232\203\306\202%@\202%) \203N\310 \311\"\203:\312 \313Z\314\"\202Q\310 !\203G\315 \227!\202Q\316\n \"\202Q\312\317!\320\211\211%&%\204x \203t '\320\316('\"\210)\202x\316\321!\210\320\322%!\203\227\320\210m\203\216\323c\210\202\221\306y\210\324 \210\202\236l\204\236\325 \210)\203\251\326\327!\202\253\326 `p\223\210\330\331&\320 \320\211\257!\210`&\211*\317V\203\333%\211%c\210\332+)*S\211*\202\302)\333` Z!\333\334` \"!\f,V\204\367 ,V\203\375\335\336\f #\210-\337`\340 \"\203`\340 U\204\341 \210\202\342 \210n\203\343 \210\344 \207" [arg viper-use-register viper-InvalidRegister lines-inserted chars-inserted sv-point 1 (nil) viper-valid-register (digit) current-kill 49 do-not-rotate get-register error 0 nil "" viper-end-with-a-newline-p "\n" beginning-of-line viper-forward-char-carefully mark-marker t viper-set-destructive-command viper-put-back yank abs count-lines message "Inserted %d character(s), %d line(s)" viper-same-line mark viper-backward-char-carefully exchange-point-and-mark back-to-indentation viper-deactivate-mark text val reg viper-EmptyRegister viper-xemacs-p count this-command viper-change-notification-threshold] 8 (#$ . 101496) "P"]) #@31 Put back at point/above line. (defalias 'viper-Put-back #[(arg) "\211\204\n\306\202%:\203$@\203@\307\232\203\306\202%@\202%) \203N\310 \311\"\203:\312 \313Z\314\"\202Q\310 !\203G\315 \227!\202Q\316\n \"\202Q\312\317!\320\211\211#$#\204x \203t %\320\316&%\"\210)\202x\316\321!\210\320\322#!\203\204\323 \210\324\325$\320 \320\211\257!\210'\203\233\326\327!\202\235\326 `p\223\210`$\211(\317V\203\301#\211#c\210\330))(S\211(\202\250)\331` Z!\331\332` \"!\f*V\204\335 *V\203\343\333\334\f #\210-\335`\336 \"\203\371`\336 U\204\337 \210\202\340 \210n\203\341 \210\342 \207" [arg viper-use-register viper-InvalidRegister lines-inserted chars-inserted sv-point 1 (nil) viper-valid-register (digit) current-kill 49 do-not-rotate get-register error 0 nil "" viper-end-with-a-newline-p beginning-of-line viper-set-destructive-command viper-Put-back mark-marker t yank abs count-lines message "Inserted %d character(s), %d line(s)" viper-same-line mark viper-backward-char-carefully exchange-point-and-mark back-to-indentation viper-deactivate-mark text val reg viper-EmptyRegister viper-xemacs-p count this-command viper-change-notification-threshold] 8 (#$ . 102841) "P"]) (defalias 'viper-copy-region-as-kill #[(beg end) "\300\301\302\217\207" [nil (copy-region-as-kill beg end) ((error (byte-code "\301\211\"\207" [beg copy-region-as-kill] 3)))] 3]) #@24 Delete next character. (defalias 'viper-delete-char #[(arg) "\211\204\n\306\202%:\203$@\203@\307\232\203\306\202%@\202%)\310\311\312\n\310\211\211\211\257!\210 \203J\n\313`\314\315!\"V\203J\313`\314\315!\"\f\203_l\203_n\203]\316\317!\210\202_\320\212\321\n!\210`) \203\263\322 \323\"\203\233 \227`  \324\325!;\203\216\325!\202\217\317 {P\"\210+\202\261\322 !\203\253\326 ` \310$\210\202\261\316 \"\210\310\327\n\330\"\210\f\205\307l\205\307n?\205\307\331u*\207" [arg end-del-pos val viper-ex-style-editing viper-ex-style-motion viper-use-register 1 (nil) nil viper-set-destructive-command viper-delete-char viper-chars-in-region viper-line-pos end error "" 0 viper-forward-char-carefully viper-valid-register ((Letter)) set-register get-register copy-to-register delete-char t -1 start reg viper-InvalidRegister] 8 (#$ . 104258) "P"]) #@75 Delete previous character. On reaching beginning of line, stop and beep. (defalias 'viper-delete-backward-char #[(arg) "\211\204\n\306\202%:\203$@\203@\307\232\203\306\202%@\202%)\310\311\312\n\310\211\211\211\257!\210 \203J\n\313\314\315!`\"V\203J\313\314\315!`\"\212\316\n!\210`)\f\203\234\317\f\320\"\203\204\f\227 ` \321\322!;\203x\322!\202y\323 {P\"\210+\202\232\317\f!\203\224\324\f `\310$\210\202\232\325\f\"\210\310n\203\247 \203\247\326 \210\327\n\330\"*\207" [arg end-del-pos val viper-ex-style-editing viper-use-register end 1 (nil) nil viper-set-destructive-command viper-delete-backward-char viper-chars-in-region viper-line-pos start viper-backward-char-carefully viper-valid-register (Letter) set-register get-register "" copy-to-register error ding delete-backward-char t reg viper-InvalidRegister] 8 (#$ . 105154) "P"]) #@47 Delete 1 char backwards while in insert mode. (defalias 'viper-del-backward-char-in-insert #[nil "\203\fn\203\f\301\302!\207\303\302\304\"\207" [viper-ex-style-editing beep 1 delete-backward-char t] 3 (#$ . 106045) nil]) #@298 Delete one character in replace mode. If `viper-delete-backwards-in-replace' is t, then DEL key actually deletes charecters. If it is nil, then the cursor just moves backwards, similarly to Vi. The variable `viper-ex-style-editing', if t, doesn't let the cursor move past the beginning of line. (defalias 'viper-del-backward-char-in-replace #[nil "\203\"n\204 \302\303\304\"\207 \203\305\303!\207o\203\305\303!\207\302\303\304\"\207 \2031n\203.\305\303!\207\306u\207\306u\207" [viper-delete-backwards-in-replace viper-ex-style-editing delete-backward-char 1 t beep -1] 3 (#$ . 106276) nil]) #@68 Join this line to next, if ARG is nil. Otherwise, join ARG lines. (defalias 'viper-join-lines #[(arg) "\211:\203\f@\202 )\303\304 \305\211\211\211\257!\210 \204\"\306\202$ S\211\307V\205R\305\210m\204K\306y\210``S|\210\310 \210\311\312!\204K\312c\204K\313u\210\nS\211\202&*\207" [arg val count viper-set-destructive-command viper-join-lines nil 1 0 fixup-whitespace looking-at " " -1] 8 (#$ . 106884) "*P"]) (defalias 'viper-change #[(beg end) "\306!\203\n\307!\306 !\203\307 !\204 \310 \210\n\203*\311\n \312$\210\312\313 \"\210\312\314\f!dU\203=\315\316!\210\314\f!\317\f!{\320\321\322\217\207" [beg end viper-use-register last-command viper-replace-overlay viper-last-replace-region markerp marker-position viper-set-complex-command-for-undo copy-to-register nil viper-set-replace-overlay viper-overlay-start error "End of buffer" viper-overlay-end conds (byte-code "\204\306\307 !\310 !\"\203>\310 !b\210\311\312!\210\313\307 !`\"\210\314\315!\210\316\n \"\210\307 !`\317 \f#\210*\307 !b\210\320\321!\207\322\307 !\310 !\"\210\323 \210\324 \207" [viper-allow-multiline-replace-regions viper-replace-overlay viper-replace-region-start-delimiter viper-replace-region-end-delimiter end beg viper-same-line viper-overlay-start viper-overlay-end insert-before-markers "@" untabify delete-backward-char 1 viper-set-replace-overlay-glyphs viper-move-overlay viper-change-state-to-replace t kill-region viper-hide-replace-overlay viper-change-state-to-insert] 4) ((error (byte-code "\302!b\210\303 \210\304 !\207" [viper-replace-overlay conds viper-overlay-start viper-hide-replace-overlay viper-message-conditions] 2)))] 5]) (defalias 'viper-change-subr #[(beg end) "\204 \n\203\304\n \305$\210\305\306 \"\210\307\305\310\311\217\207" [beg end viper-use-register this-command copy-to-register nil kill-region viper-change (insert viper-last-insertion) ((error))] 5]) #@24 Toggle character case. (defalias 'viper-toggle-case #[(arg) "\211\204\n\303\202%:\203$@\203@\304\232\203\303\202%@\202%)\305\306\307\n\305\211\211\211\257!\210\n\310V\205eg\311\303\305\"\210 \211\226=\203Q\312 \227\303\"\210\202W\312 \226\303\"\210l\203^\313u\210\nS\211\2025*\207" [arg c val 1 (nil) nil viper-set-destructive-command viper-toggle-case 0 delete-char insert-char -1] 8 (#$ . 108809) "P"]) #@152 Query replace. If a null string is suplied as the string to be replaced, the query replace mode will toggle between string replace and regexp replace. (defalias 'viper-query-replace #[nil "\303\304 \203 \305\202\f\306\303\302\n@$\211\307\230\203* ?\310\311 \203%\312\202&\313\"\202K \203>\314\304\315\316\"\303\302\n@$\"\202K\317\304\315\320\"\303\302\n@$\")\207" [str viper-re-query-replace viper-replace1-history nil viper-read-string-with-history "Query replace regexp: " "Query replace: " "" message "Query replace mode changed to %s" "regexp replace" "string replace" query-replace-regexp format "Query replace regexp `%s' with: " query-replace "Query replace `%s' with: "] 8 (#$ . 109247) nil]) #@27 Mark beginning of buffer. (defalias 'viper-mark-beginning-of-buffer #[nil "\300`!\210eb\210\301 \210\302\303!\207" [push-mark exchange-point-and-mark message "Mark set at the beginning of buffer"] 2 (#$ . 109969) nil]) #@21 Mark end of buffer. (defalias 'viper-mark-end-of-buffer #[nil "\300`!\210db\210\301 \210\302\303!\207" [push-mark exchange-point-and-mark message "Mark set at the end of buffer"] 2 (#$ . 110194) nil]) #@30 Set mark at point of buffer. (defalias 'viper-mark-point #[nil "\303 \304X\203\305X\203\306\307\304ZT!!\202s\310\311\"\203&\312 \202s\310\313\"\2032\314 \202s\310\315\"\203I\316\317 \"\320\321!\210`\211\202s\310\322\"\203U\323 \202s\310\324\"\203d\325\n\326\211#\202s\310\327\"\203p\330 \202s\331\332!)\207" [char mark-ring viper-saved-mark read-char 97 122 point-to-register viper-int-to-char viper= 60 viper-mark-beginning-of-buffer 62 viper-mark-end-of-buffer 46 delete viper-mark-marker set-mark-command nil 44 viper-cycle-through-mark-ring 94 push-mark t 68 mark-defun error ""] 4 (#$ . 110401) nil]) #@99 Visit previous locations on the mark ring. One can use `` and '' to temporarily jump 1 step back. (defalias 'viper-cycle-through-mark-ring #[nil "` \305=\204%\306\n\203\307\310!\202\307 \"\311\310!\203%\312\311\310!\310\"\210\313 \210\314\315!\210\306\n\2037\307\310!\2029\307 \"\312\310\"\210\316 \210\305\211)\207" [sv-pt last-command viper-xemacs-p mark-ring this-command viper-cycle-through-mark-ring delete mark-marker t mark push-mark pop-mark set-mark-command 1 viper-deactivate-mark] 3 (#$ . 111043)]) #@13 Go to mark. (defalias 'viper-goto-mark #[(arg) "\303 \211\204\f\304\202:\203A\202\304)\305\n \304#*\207" [arg com char read-char nil viper-goto-mark-subr] 5 (#$ . 111574) "P"]) #@59 Go to mark and skip to first non-white character on line. (defalias 'viper-goto-mark-and-skip-white #[(arg) "\303 \304!\305\n \306#*\207" [arg com char read-char viper-getCom viper-goto-mark-subr t] 4 (#$ . 111770) "P"]) (defalias 'viper-goto-mark-subr #[(char com skip-white) "m\203o\203\306\307!\210\202\310u\210\311\312\"\203\327p\313\314ZT!\315\n!\211:\203h @\316=\203h\317 A@!\204E\320\321\322 A@\"!\203h\212\323 A@!\210\324 8dX\203ge\324 8X\203g\325\324 8!\326\n \"\210)\f\203q\327\330`\"\210\331 !\204|\306 \"\210\332`/\"\203\224`0U\203\224\333/\334\"\210\202\231\333\335\334\"\210\336\n!\210\337 /1\203\254\340 \210`0\f\205\325 p\232\203\307\3411\203\300\342\202\301\343\335\f#\202\325\344 !\210b\210\345 \210\306\346!+\2071\204(\347\350\"\203(\f\203\354\327\330`\"\210\332`/\"\203\377`0U\203\377/b\210\351\334!\204 \306\352!\210`\351\334!U\203\353 \210\354 \210\337 /\3550\f\205v\341\343\335\f#\2071\203q\347\356\"\203q\f\203=\327\330`\"\210\332`/\"\203P`0U\203P/b\210`\351\334!U\203[\353 \210\354 \210`/\340 \210`0\f\205v\341\342\335\f#\207\3062\"\207" [char buff reg text-marker com viper-EmptyTextmarker error "Empty buffer" -1 viper-valid-register (letter) viper-int-to-char 97 get-register file-query find-buffer-visiting y-or-n-p format "Visit file %s again? " find-file 2 copy-marker set-register viper-move-marker-locally viper-com-point viper-valid-marker viper-same-line push-mark t nil viper-register-to-point point-marker back-to-indentation viper-execute-com viper-goto-mark-and-skip-white viper-goto-mark switch-to-buffer viper-change-state-to-vi "" viper= 96 mark "Mark is not set in this buffer" pop-mark exchange-point-and-mark 0 39 viper-last-jump viper-last-jump-ignore skip-white viper-InvalidTextmarker] 5]) (defalias 'viper-insert-tab #[nil "\300 \207" [insert-tab] 1 nil nil]) (defalias 'viper-exchange-point-and-mark #[nil "\300 \210\301 \207" [exchange-point-and-mark back-to-indentation] 1 nil nil]) (defalias 'viper-looking-back #[(str) "\212\301\302\303#)\205`\304\225U\207" [str re-search-backward nil t 0] 4]) (put 'viper-looking-back 'byte-optimizer 'byte-compile-inline-expand) #@32 Indent forward -- `C-t' in Vi. (defalias 'viper-forward-indent #[nil "\302i \\j\207" [viper-cted viper-shift-width t] 2 (#$ . 113973) nil]) #@20 Backtab, C-d in VI (defalias 'viper-backward-indent #[nil "\205m`i\306\307\310\212\311 \306\307#)\205`\312\225U)\2031h\313=\203)\307\314\315!\210`\306\212\316 \210`)\311\317\n\315#\203C\306u\210`\f|\210 \203Q Zj\210n\204i\317\212\311 \306\307#)\205e`\312\225U)\205l\306\211,\207" [viper-cted indent bol c p str nil t "[0^]" re-search-backward 0 94 delete-backward-char 1 beginning-of-line "[^ ]" viper-preserve-indent viper-shift-width] 4 (#$ . 114120) nil]) (defalias 'viper-indent-line #[(col) "\205\305\n\203 \306>\204\307 \207\fj\207" [viper-auto-indent viper-cted viper-electric-mode major-mode col t (fundamental-mode text-mode paragraph-indent-text-mode) indent-according-to-mode] 2]) #@29 Auto Indentation, Vi-style. (defalias 'viper-autoindent #[nil "\305  \203\n\306 \210\n\203\307\202\f\310>\203\311 \210\312c\210\313 !)\207" [col abbrev-mode viper-preserve-indent viper-current-indent last-command current-indentation expand-abbrev nil (viper-autoindent viper-open-line viper-Open-line viper-replace-state-exit-cmd) indent-to-left-margin "\n" viper-indent-line] 2 (#$ . 114852) nil]) #@61 Function called by ], the ket. View registers and call ]]. (defalias 'viper-ket-function #[(arg) "\304 \305\306\"\203\307\227!\202A\305\310\"\2030\311\312Z\313\"\314\220\315\316\317\"!\210\315 !\221)\202A\320\321\"\203=\322\n!\202A\323 \")\207" [reg text arg viper-InvalidRegister read-char viper-valid-register (letter Letter) view-register (digit) current-kill 49 do-not-rotate " *viper-info*" princ format "Register %c contains the string:\n" viper= 93 viper-next-heading error] 5 (#$ . 115268) "P"]) #@63 Function called by [, the brac. View textmarkers and call [[ (defalias 'viper-brac-function #[(arg) "\306 \307\310\"\203\311 !\202\321\307\312\"\203\313 !\202\321\314\315\"\203\314\316\317\320ZT!!\321\n!\204:\322 \"\202=\323\n!\324\n!\325%\325& ' (\326\220\f\203\300 \203\300\212\fq\210\327e\n\"T% b\210\330 \210\331\332\325\333#\203w\330 \210`' b\210\334y\210\335\332\325\333#\203\213\325\210`('({&\336\337&\340 'ZO& 'Z\325O$&)\341\336\342\343\f!%$!\210\341\336\344&#!\202\306\341\336 \"!\221.\202\321\322)\")\207" [reg arg val viper-EmptyTextmarker buf pos read-char viper= 91 viper-prev-heading 93 viper-heading-end viper-valid-register (letter) get-register viper-int-to-char 97 markerp error marker-buffer marker-position nil " *viper-info*" count-lines beginning-of-line re-search-backward "[^ ]" t 1 re-search-forward format "%s<%c>%s" 0 princ "Textmarker `%c' is in buffer `%s' at line %d.\n" buffer-name "Here is some text around %c:\n\n %s" line-no text s e viper-InvalidTextmarker] 8 (#$ . 115795) "P"]) #@23 Delete previous word. (defalias 'viper-delete-backward-word #[(arg) "\212\301\302\303\"\210\304!\210`\305\303!|\210\306 )\207" [arg push-mark nil t backward-word mark pop-mark] 3 (#$ . 116867) "p"]) #@408 Sets the expert level for a Viper user. Can be called interactively to change (temporarily or permanently) the current expert level. The optional argument DONT-CHANGE-UNLESS, if not nil, says that the level should not be changed, unless its current value is meaningless (i.e., not one of 1,2,3,4,5). User level determines the setting of Viper variables that are most sensitive for VI-style look-and-feel. (defalias 'viper-set-expert-level #[(&optional dont-change-unless) "\306!\204\307\310\213\210\311\311\311\312\313=\203?\314 \315 \203$\316\202%\317\"\210\311\311\311\311\312\312\312\202\302\313V\203\213\320W\203\213\315 \203T\311\202U\321\311\311\322V\323=\203\302\324\303\325\303!\"\210\324\302\325\302!\"\210\325\302!\325\303!\325\326!\325\327!\202\302\324\303\325\303!\"\210\324\302\325\302!\"\210\325\304!\325\301!\325\327!\325\302!\325\303!\325\326!\325\330!\325\331!\325\332!\333!\210 \204\327\307V\205\331\320V\205\331\334 \207" [viper-expert-level viper-always viper-ex-style-motion viper-ex-style-editing viper-want-ctl-h-help viper-toggle-key natnump 0 ((byte-code "\301 \210\302!\207" [dont-change-unless delete-other-windows viper-ask-level] 2)) t nil 1 global-set-key viper-window-display-p viper-iconify suspend-emacs 5 twice 2 4 set-default viper-standard-value viper-re-search viper-no-multiple-ESC viper-electric-mode viper-want-emacs-keys-in-vi viper-want-emacs-keys-in-insert viper-set-mode-vars-for viper-set-hooks viper-vi-style-in-minibuffer viper-search-wrap-around-t viper-current-state] 4 (#$ . 117074) nil]) (defalias 'viper-ask-level #[(dont-change-unless) "\303\304\211\305\213+\207" [repeated level-changed ask-buffer " *viper-ask-level*" nil ((byte-code "\306!\210 \nV\204 \307W\204 \2048\310 \210\f\203&\311\312!\210\313\307!\210\202(\314\314\314\315c\210\316 \317Z\211\202 \203R\320\321 \"c\210\322\323!\203R\324\301\320\325 \"#\210\326 \210\311\327!\207" [ask-buffer viper-expert-level viper-max-expert-level dont-change-unless repeated level-changed switch-to-buffer 1 erase-buffer message "Invalid user level" beep t "\nPlease specify your level of familiarity with the venomous VI PERil\n(and the VI Plan for Emacs Rescue).\nYou can change it at any time by typing `M-x viper-set-expert-level RET'\n\n 1 -- BEGINNER: Almost all Emacs features are suppressed.\n Feels almost like straight Vi. File name completion and\n command history in the minibuffer are thrown in as a bonus.\n To use Emacs productively, you must reach level 3 or higher.\n 2 -- MASTER: C-c now has its standard Emacs meaning in Vi command state,\n so most Emacs commands can be used when Viper is in Vi state.\n Good progress---you are well on the way to level 3!\n 3 -- GRAND MASTER: Like 2, but most Emacs commands are available also\n in Viper's insert state.\n 4 -- GURU: Like 3, but user settings are respected for viper-no-multiple-ESC,\n viper-ex-style-motion, viper-ex-style-editing, and\n viper-re-search variables. Adjust these settings to your taste.\n 5 -- WIZARD: Like 4, but user settings are also respected for viper-always,\n viper-electric-mode, viper-want-ctl-h-help, viper-want-emacs-keys-in-vi,\n and viper-want-emacs-keys-in-insert. Adjust these to your taste.\n\nPlease, specify your level now: " viper-read-char-exclusive 48 format "\n\n\n\n\n You have selected user level %d" y-or-n-p "Do you wish to make this change permanent? " viper-save-setting "Saving user level %d ..." bury-buffer "" viper-custom-file-name] 6))] 3]) (defalias 'viper-nil #[nil "\300\301!\207" [beep 1] 2 nil nil]) #@74 Like jump-to-register, but switches to another buffer in another window. (defalias 'viper-register-to-point #[(char &optional enforce-buffer) "\304!\305\306!\203\306 !\203\307 !\202g\310 !\203\"\311 !\202g\312 !\203K\n\203@p\313 !\232\204@\314 \315P\316\317\\S!\"\210\320\313 !!\210 b\202g :\203^ @\321=\203^\322 A!\202g\314 \316\317\\S!\")\207" [char val enforce-buffer viper-EmptyTextmarker get-register fboundp frame-configuration-p set-frame-configuration window-configuration-p set-window-configuration viper-valid-marker marker-buffer error " in this buffer" viper-int-to-char 97 pop-to-buffer file find-file] 5 (#$ . 120765) "cViper register to point: "]) #@32 Save then kill current buffer. (defalias 'viper-save-kill-buffer #[nil "\301W\203 \302 \207\303 \210\304p!\207" [viper-expert-level 2 save-buffers-kill-emacs save-buffer kill-buffer] 2 (#$ . 121452) nil]) #@29 Submit bug report on Viper. (defalias 'viper-submit-report #[nil "\306\203 \202 \307\310 !\311\211\211\211\211\211\211\211@A?>B\312 \203<\2033\313 \202=\314\310 !\315=\202=\316?\317 \203K\320C!\202L\316@\317 \203Z\320D!\202[\316\317 \203h\320E!\202i\316A\321\322!\205u\322\323 !\324\325\326\327\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\377\322\201@\305\201A\2570\201F\201G \201H\220\201I\201H!\210\201J \210\201K\201L!\210\201M\201N!?\205\350\201O\n!\210\201P\201Q!\221\210\201R\201S!\210\201O\n!\210\201T\201U\201V \f\311\201J &.\n\207" [viper-emacs-p window-system window-config salutation varlist minibuffer-insert-face t device-type selected-device nil viper-window-display-p x-display-color-p device-class color non-x viper-has-face-support-p viper-get-face fboundp frame-parameters selected-frame viper-vi-minibuffer-minor-mode viper-insert-minibuffer-minor-mode viper-vi-intercept-minor-mode viper-vi-local-user-minor-mode viper-vi-kbd-minor-mode viper-vi-global-user-minor-mode viper-vi-state-modifier-minor-mode viper-vi-diehard-minor-mode viper-vi-basic-minor-mode viper-replace-minor-mode viper-insert-intercept-minor-mode viper-insert-local-user-minor-mode viper-insert-kbd-minor-mode viper-insert-global-user-minor-mode viper-insert-state-modifier-minor-mode viper-insert-diehard-minor-mode viper-insert-basic-minor-mode viper-emacs-intercept-minor-mode viper-emacs-local-user-minor-mode viper-emacs-kbd-minor-mode viper-emacs-global-user-minor-mode viper-emacs-state-modifier-minor-mode viper-automatic-iso-accents viper-special-input-method viper-want-emacs-keys-in-insert viper-want-emacs-keys-in-vi viper-keep-point-on-undo viper-no-multiple-ESC viper-electric-mode viper-ESC-key viper-want-ctl-h-help viper-ex-style-editing viper-delete-backwards-in-replace viper-vi-style-in-minibuffer viper-vi-state-hook viper-insert-state-hook viper-replace-state-hook viper-emacs-state-hook ex-cycle-other-window ex-cycle-through-non-files viper-expert-level major-mode viper-device-type color-display-p minibuffer-vi-face minibuffer-emacs-face reporter-prompt-for-summary-p viper-minibuffer-vi-face viper-minibuffer-insert-face viper-minibuffer-emacs-face "\nCongratulations! You may have unearthed a bug in Viper!\nPlease mail a concise, accurate summary of the problem to the address above.\n\n-------------------------------------------------------------------" current-window-configuration " *viper-info*" switch-to-buffer delete-other-windows princ "\nPLEASE FOLLOW THESE PROCEDURES\n------------------------------\n\nBefore reporting a bug, please verify that it is related to Viper, and is\nnot cause by other packages you are using.\n\nDon't report compilation warnings, unless you are certain that there is a\nproblem. These warnings are normal and unavoidable.\n\nPlease note that users should not modify variables and keymaps other than\nthose advertised in the manual. Such `customization' is likely to crash\nViper, as it would any other improperly customized Emacs package.\n\nIf you are reporting an error message received while executing one of the\nViper commands, type:\n\n M-x set-variable debug-on-error t \n\nThen reproduce the error. The above command will cause Emacs to produce a\nback trace of the execution that leads to the error. Please include this\ntrace in your bug report.\n\nIf you believe that one of Viper's commands goes into an infinite loop\n(e.g., Emacs freezes), type:\n\n M-x set-variable debug-on-quit t \n\nThen reproduce the problem. Wait for a few seconds, then type C-g to abort\nthe current command. Include the resulting back trace in the bug report.\n\nMail anyway (y or n)? " y-or-n-p "Mail anyway? " set-window-configuration error "Bug report aborted" require reporter reporter-submit-bug-report "kifer@cs.sunysb.edu" viper-version] 48 (#$ . 121665) nil]) (defalias 'viper-set-unread-command-events #[(arg) "\203z \211\250\206%\n9\203\n\305N\206%\n:\205%\n@9\205%\n@\305N)\203. C\202G <\2037 \202G\306 !\203C\307 !\202G\310\311 \"\312\312\250\206i\n9\203Z\n\305N\206i\n:\205i\n@9\205i\n@\305N)\204r\313\312 \"\314 \f\")\211\207\314\315 !\203\210\316 !C\202\332 \211\250\206\251\n9\203\232\n\305N\206\251\n:\205\251\n@9\205\251\n@\305N)\203\262 C\202\332 ;\203\276\317\316 \"\202\332\320 !\203\313\314 \312\"\202\332 <\203\326\321 !\202\332\310\311 \"\f\"\211\207" [viper-emacs-p arg obj new-events unread-command-events event-symbol-elements sequencep listify-key-sequence error "viper-set-unread-command-events: Invalid argument, %S" nil delq append viper-characterp character-to-event mapcar vectorp viper-eventify-list-xemacs] 5]) (defalias 'viper-eventify-list-xemacs #[(lis) "\301\302\"\207" [lis mapcar #[(elt) "\302!\203\n\303!\207\211\250\206+ 9\203 \304N\206+ :\205+ @9\205+ @\304N)\2031\207\305\306\"\207" [elt obj viper-characterp character-to-event event-symbol-elements error "viper-eventify-list-xemacs: can't convert to event, %S"] 4]] 3])