;ELC ;;; compiled by jwz@thalidomide on Fri Dec 31 01:54:53 1993 ;;; from file /th/jwz/emacs19/lisp/emulators/vip.el ;;; emacs version 19.9 Lucid (beta9). ;;; bytecomp version 2.22; 22-dec-93. ;;; optimization is on. ;;; this file uses opcodes which do not exist in Emacs 18. (if (and (boundp 'emacs-version) (or (and (boundp 'epoch::version) epoch::version) (string-lessp emacs-version "19"))) (error "This file was compiled for Emacs 19.")) (byte-code "!!\n!!!\n \"M!M!M!MM" [boundp epoch::version vip-epoch drag-button vip-epoch-3 drag-zone vip-epoch-4 terminal-frame vip-emacs-19 temp-buffer-show-hook vip-emacs-18 string-match "Lucid" emacs-version vip-lucid vip-errdefun (macro . #[(name) " DDD DDFFE" [if not fboundp quote name defun (&rest args) error "VIP: %s invalid in emacs version %s" symbol-name emacs-version] 10]) fboundp find-buffer-other-screen #[(&rest args) "! #" [error "VIP: %s invalid in emacs version %s" symbol-name find-buffer-other-screen emacs-version] 4] epoch::delete-screen #[(&rest args) "! #" [error "VIP: %s invalid in emacs version %s" symbol-name epoch::delete-screen emacs-version] 4] epoch::screens-of-buffer #[(&rest args) "! #" [error "VIP: %s invalid in emacs version %s" symbol-name epoch::screens-of-buffer emacs-version] 4] vip-ex-find-buf #[(buf) "\n! \n!\n!" [vip-epoch find-buffer-other-screen buf vip-lucid switch-to-buffer-new-screen switch-to-buffer] 2]] 4) (defvar vip-ex-quit-can-exit-emacs nil "\ Non-nil value will cause ex quit to exit emacs if only one screen is left") (byte-code "!MMMM" [boundp win nil vip-ex-kill-buf #[(buf) " !!\" = ̍ !" [vip-epoch mapcar epoch::delete-screen epoch::screens-of-buffer get-buffer buf vip-lucid vip-ex-quit-can-exit-emacs selected-screen next-screen save-buffers-kill-emacs dontquit (byte-code " !!\" !Ɖ# ʚ ! !Ɖ# k q! !# !" [buffer-modified-p buf y-or-n-p "Buffer modified, kill anyway? " throw dontquit t get-buffer-window get-buffer win nil delete-window set-buffer-modified-p message "%s%s" buffer-name " killed" kill-buffer] 5) kill-buffer] 5] vip-null-mark #[nil " ?!?" [vip-emacs-18 mark t] 2] vip-unread #[(c) "  !" [vip-emacs-18 c unread-command-char character-to-event unread-command-event] 2] vip-unreadp #[nil " Y !" [vip-emacs-18 unread-command-char 0 eventp unread-command-event] 2]] 2) (defvar vip-mode-map nil "\ Map for Vi mode bindings") (defvar vip-insert-mode-map nil "\ Map for Insert mode bindings") (defvar vip-emacs-local-map nil "\ Local map used in emacs mode. (buffer specific)") (defvar vip-insert-local-map nil "\ Local map used in insert command mode. (buffer specific)") (byte-code "!!" [make-variable-buffer-local vip-emacs-local-map vip-insert-local-map] 2) (defvar vip-insert-mode-vi-map t "\ * Whether you want the vi map in insert mode or want to use emacs mode maps. Buffer specific so that that you can choose depending on the mode") (make-variable-buffer-local 'vip-insert-mode-vi-map) (defvar vip-minibuf-map nil "\ Map for minibuffer editing") (defvar vip-current-mode nil "\ Current mode. One of emacs-mode, vi-mode, insert-mode.") (byte-code "!\"" [make-variable-buffer-local vip-current-mode set-default emacs-mode] 3) (defvar vip-emacs-mode-line-buffer-identification nil "\ value of mode-line-buffer-identification in emacs-mode.") (byte-code "!\"" [make-variable-buffer-local vip-emacs-mode-line-buffer-identification set-default ("Emacs: %17b")] 3) (defvar vip-current-major-mode nil "\ vip-current-major-mode is the major-mode vi considers it is now. (buffer specific)") (make-variable-buffer-local 'vip-current-major-mode) (defvar vip-toggle-key "" "\ *The key which will be used to change modes from emacs to vi and back. In insert mode, this will also function as Meta") (defvar vip-ESC-key "" "\ * key used to ESC") (defvar vip-no-multiple-ESC t "\ *If true, multiple ESC in vi mode will cause bell to ring. _ is then mapped to Meta") (defvar vip-help-in-insert-mode nil "\ *if t then C-h is bound to help-command in insert mode, if nil then it is bound to delete-backward-char.") (defvar vip-c-string "" "\ Change string") (defvar vip-need-to-finish-change nil "\ Change command still need to be finished. (buffer specific)") (make-variable-buffer-local 'vip-need-to-finish-change) (defvar vip-need-to-exit-overwrite nil "\ Overwrite mode needs to aborted.(buffer specific)") (make-variable-buffer-local 'vip-need-to-exit-overwrite) (defvar vip-change-beg-point nil "\ Remember point where change is to start.(buffer specific)") (byte-code " \"!" [set-default vip-change-beg-point make-marker make-variable-buffer-local] 3) (defvar vip-change-end-point nil "\ Remember point where change is to end.(buffer specific)") (byte-code " \"!" [set-default vip-change-end-point make-marker make-variable-buffer-local] 3) (defvar vip-cted nil "\ cted - Control T'ed - keep track of whether C-t has been pressed. (buffer specific)") (make-variable-buffer-local 'vip-cted) (defvar vip-current-indent 0 "\ Preserve the indent value, used during ^^D.(buffer specific)") (make-variable-buffer-local 'vip-current-indent) (defvar vip-preserve-indent nil "\ Whether to preserve the indent, used by ^^D.(buffer specific)") (make-variable-buffer-local 'vip-preserve-indent) (defvar vip-auto-indent nil "\ * Autoindent if t.") (defvar vip-shift-width 8 "\ * the shiftwidth variable") (byte-code "M" ["No such command from VIP" vip-ENOCMD "Unknown Object in Keymap: %s" vip-ENOKEY "Keymap changed: execute M-x vip-keymap-error for more info" vip-EMJRMODE "Insert mode to insert mode: this is a bug if repeatable :-)" vip-EINSERTMODE vip-keymap-error #[nil "! c" [switch-to-buffer "VIP Keymap Error Message" erase-buffer "The Keymap error happens when you have set the default\nmajor mode to vip and the actual major mode of the\nbuffer does not call kill-all-local-variables. Then vip-mode is\ncalled when the buffer is created and the major mode afterward\nhappily munges vip local keymaps. If you encounter this error,\na quick fix is to call vip-mode again afterward using the\nvip-toggle-key (C-z by default). The real fix is to get the\noffending major mode fixed. Known modes that have\nthis problem are texinfo and finder. Complain to the authors\nor to gnu.emacs.help so that the mode is fixed.\n\nKill this buffer after you are done.\n"] 2 nil nil]] 2) (defvar vip-insert-point nil "\ Remember insert point as a marker. (buffer specific)") (byte-code " \"!" [set-default vip-insert-point make-marker make-variable-buffer-local] 3) (defvar vip-com-point nil "\ Remember com point as a marker. (buffer specific)") (byte-code " \"!" [set-default vip-com-point make-marker make-variable-buffer-local] 3) (defvar vip-d-com nil "\ If non-nil, it's value is a list (M-COM VAL COM), and is used to re-execute last destrcutive command") (defvar vip-d-char nil "\ The character remembered by the vi \"r\" command") (defvar vip-use-register nil "\ name of register to store deleted or yanked strings.") (defvar vip-f-char nil "\ for use by \";\" command") (defvar vip-F-char nil "\ for use by \".\" command") (defvar vip-f-forward nil "\ for use by \";\" command") (defvar vip-f-offset nil "\ for use by \";\" command") (defvar vip-s-string nil "\ last search string") (defvar vip-s-forward nil "\ if t, search is forward.") (defvar vip-case-fold-search nil "\ *if t, search ignores cases.") (defvar vip-re-search t "\ *if t, search is reg-exp search, otherwise vanilla search.") (defvar vip-re-query-replace t "\ *If t then do regexp replace, if nil then do string replace.") (defvar vip-re-replace t "\ *If t then do regexp replace, if nil then do string replace.") (defvar vip-ex-style-motion t "\ *l,h do not cross lines, ESC backs up etc.") (defvar vip-buffer-search-char 103 "\ *Key bound for buffer-searching") (defvar vip-search-wrap-around-t t "\ *if t, search wraps around") (defvar vip-heading-start (concat "^\\s-*(\\s-*defun\\s-\\|" "^{\\s-*$\\|^[_a-zA-Z][^()]*[()].*{\\s-*$\\|" "^\\s-*class.*{\\|^\\s-*struct.*{\\|^\\s-*enum.*{\\|" "^\\\\[sb][a-z]*{.*}\\s-*$\\|" "^@node\\|@table\\|^@m?enu\\|^@itemize\\|^@if\\|" "^.+:-") "\ * Regexps for Headings. Used by [[, ]].") (defvar vip-heading-end (concat "^}\\|" "^\\\\end{\\|" "^@end \\|" ")\n\n[ \n]*\\|" "\\.\\s-*$") "\ * Regexps to end Headings/Sections. Used by []") (byte-code "!!!!! !\nȇ" [boundp vip-word-chars-alpha "a-zA-Z0-9_" vip-word-chars-nonalpha "^a-zA-Z0-9_ \n" vip-word-chars-separator " \n" vip-history nil vip-search-history vip-ex-history] 2) (defvar vip-want-history nil "\ * History for vi searches and ex commands") (defvar vip-make-cc-quit nil "\ * If set, will call set-input-mode to make ^C the quit character. However, there is no quit-char option for older emacsen. Moreover, the first two options may need to change from system to system") (defvar vip-last-macro-reg nil "\ Remember the last register used for keyboard macro") (defvar vip-filename-complete nil "\ Tell the rest of VIP that completion in on") (defvar vip-ex-last-shell-com nil "\ last shell command executed by :! command") (defvar vip-last-shell-com nil "\ last shell command executed by ! command") (byte-code "!‡" [boundp vip-inhibit-startup-message nil] 2) (defvar vip-always nil "\ * Default vip-mode for files and buffers") (defvar vip-custom-file-name "~/.vip" "\ * Customisation file") (defvar vip-is-vi nil "\ Ultimate compatibility test") (defvar vip-quote-string "> " "\ string inserted at the beginning of region") (byte-code "! \"" [boundp vip-tags-file-name "TAGS" global-set-key vip-toggle-key vip-change-mode-to-vi] 3) (fset 'vip-redefine-toggle-key #[(key) " ! #  \" #" [global-unset-key key define-key vip-mode-map nil vip-toggle-key global-set-key vip-change-mode-to-vi vip-change-mode-to-emacs] 4 "\ Redefine the toggle key to be the ARG"]) (fset 'vip-loop '(macro . #[(count body) " DCE DEFE" [let count while > 0 body setq 1-] 9 "\ (COUNT BODY) Execute BODY COUNT times."])) (fset 'vip-push-mark-silent #[(&optional location) " !! BG V @Ɖ S ơ`!" [vip-null-mark copy-marker mark-marker t mark-ring mark-ring-max nil set-mark location] 4 "\ Set mark at LOCATION (point, by default) and push old mark on mark ring. No message."]) (fset 'vip-goto-col #[(arg) " ! ! iTV!) `œy Su #*" [vip-p-val arg vip-getcom com val nil error "" vip-com-point 0 vip-execute-com vip-goto-col] 4 "\ Go to ARG's column." "P"]) (fset 'vip-refresh-mode-line #[nil " !" [set-buffer-modified-p buffer-modified-p] 2 "\ Redraw mode line."]) (fset 'vip-copy-keymap #[(map) " !" [map make-sparse-keymap copy-keymap] 2]) (fset 'vip-change-mode #[(new-mode) "=\n== ` \"  n!\n= =!  !  !!!=\n= `ۓ  !\n= =! !! `ۓ!!!!# =!! " [new-mode vi-mode vip-current-mode insert-mode t vip-need-to-exit-overwrite vip-need-to-finish-change vip-finish-change vip-copy-region-as-kill vip-insert-point vip-repeat-insert-command vip-ex-style-motion backward-char 1 vip-mode-map current-local-map message vip-EMJRMODE vip-emacs-local-map vip-copy-keymap vip-insert-local-map mode-line-buffer-identification vip-emacs-mode-line-buffer-identification vip-change-mode-line "Vi: " use-local-map emacs-mode nil vip-EINSERTMODE "Insert" 28 meta-prefix-char define-key vip-ESC-key vip-exit-insert-mode vip-insert-mode-bindings "Emacs:" vip-refresh-mode-line] 4 "\ Change mode to NEW-MODE. NEW-MODE is either emacs-mode, vi-mode, or insert-mode."]) (byte-code "  # # # \n˪# # # # # # #!M" [make-sparse-keymap vip-insert-mode-map define-key "" vip-insert-quit "" self-insert-command "" quoted-insert "" vip-help-in-insert-mode help-command delete-backward-char " " "" vip-delete-backward-word "" vip-erase-line "" vip-forward-indent "" vip-backward-indent "" fboundp vip-insert-mode-bindings #[nil "\n\"\n\"\n\"\n#\n#" [vip-insert-mode-vi-map vip-rebind-emacs-keys vip-insert-local-map self-insert-command vip-rebind-other-keys vip-add-keymap vip-insert-mode-map vip-auto-indent define-key " " vip-autoindent "\n"] 4]] 4) (fset 'vip-add-keymap #[(mapsrc mapdst) "\n\"" [mapcar #[(p) " @! A#" [define-key mapdst char-to-string p] 4] mapsrc] 3 "\ Add contents of mapsrc to mapdst. It is assumed that mapsrc is sparse"]) (fset 'vip-copy-region-as-kill #[(beg end) "" [nil (copy-region-as-kill beg end) ((error (byte-code " \"" [copy-region-as-kill beg] 3)))] 3 "\ If BEG and END do not belong to the same buffer, it copies empty region."]) (fset 'vip-change-mode-line #[(string) "\nPC" [string "Emacs:" vip-emacs-mode-line-buffer-identification " %17b" mode-line-buffer-identification] 2 "\ Assuming that the mode line format contains the string \"Emacs:\", this function replaces the string by \"Vi: \" etc."]) (defvar vip-initialized nil "\ Set after initial mode start to prevent multiple .vip loads") (fset 'vip-mode #[nil "\n!\n! ! !ceb!\n!!qdbc )!!!)p!! " [vip-initialized file-exists-p vip-custom-file-name load t vip-inhibit-startup-message switch-to-buffer "VIP Startup Message" erase-buffer substitute-command-keys "VIP is a VI emulation package for GNU Emacs.VIP provides most \nVI and EX commands.The important differences from VI are:\n 1. VI EXIT functions (e.g. :wq) work on INDIVIDUAL files.\n 2. \"ZZ\" and ^X^C EXITS EMACS.\n 3. \"u\" will undo. Repeat undo by \".\". Another u changes direction.\n 5. ^X will invoke emacs functions; ^Z will toggle vi/emacs modes.\n 6. Emacs Meta functions are invoked by \"_\" instead of ESC.\n 7. Try ^C,^G repeatedly and \\[abort-recursive-edit] if something strange happens. \nYou can get more information on VIP by:\n 1. Typing `M-x info' and selecting menu item \"vip\".\n 2. Printing VIP manual which can be found as GNU/man/vip.texinfo\n 3. Printing VIP Reference Card which can be found as GNU/etc/vipcard.tex\nUltimate compatibilty: Execute vip-become-vi. Emacs is suppressed.\n \nThis startup message appears whenever you load VIP unless you type `y' now.\nType `n' to quit this window for now.\n" y-or-n-p "Inhibit VIP startup message? " find-file-noselect substitute-in-file-name buf "\n(setq vip-inhibit-startup-message t)\n" save-buffer kill-buffer message "VIP startup message inhibited." sit-for 2 "" vip-change-mode-to-vi] 3 "\ Turn on VIP emulation of VI." nil]) (fset 'vip-exit-insert-mode #[nil "!" [27 meta-prefix-char vip-change-mode vi-mode] 2 "\ Exit from insert mode to vi mode." nil]) (fset 'vip-insert-quit #[nil " " [vip-exit-insert-mode vip-keyboard-quit] 1 "\ Exit from insert mode to vi mode and do a keyboard quit." nil]) (fset 'vip-change-mode-to-vi #[nil "!" [vip-change-mode vi-mode] 2 "\ Change mode to vi mode." nil]) (fset 'vip-change-mode-to-insert #[nil "!" [vip-change-mode insert-mode] 2 "\ Change mode to insert mode." nil]) (fset 'vip-change-mode-to-emacs #[nil "!" [vip-change-mode emacs-mode] 2 "\ Change mode to emacs mode." nil]) (fset 'vip-get-editor-command #[(l-map g-map &optional str) " Ř ! \n\"  \"?? ! !# = \n!  \"\n !# !\n !#\n !#\n= \n+" [nil g-bind l-bind char str "" read-char string-to-char last-command-char vip-binding-of l-map g-map keymapp vip-get-editor-command vip-string-tail self-insert-command] 6 "\ Read characters from keyboard until an editor command is formed, using local keymap L-MAP and global keymap G-MAP. If the command is a self-insert-command, the character just read is returned instead. Optional string STR is used as initial input string."]) (fset 'vip-binding-of #[(char map) "?? !\"Ū ! ! : @=! @=! @! @ A\" @; @; Av  \" 9 K9Ku) ;  \")" [map lookup-key char-to-string char val nil keymapp commandp keymap error "keymapp failed!\n" lambda "commandp failed!\n" vip-binding-of vip-lucid vip-emacs-19 vip-ENOKEY fun] 5 "\ Return key-binding of CHAR under keymap MAP. It is nil if the binding is void, or a command, or a keymap"]) (fset 'vip-escape-to-emacs #[(arg &optional char) "p !\n   \"!V !cSo)Q \"I+" [nil t first buff com char vip-unread arg prefix-arg vip-unreadp vip-get-editor-command vip-emacs-local-map global-map vip-p-val count 0 char-to-string command-execute] 4 "\ Escape to emacs mode and execute one emacs command and then return to vi mode. ARG is used as the prefix value for the executed command. If CHAR is given it becomes the first character of the command." "P"]) (fset 'vip-message-conditions #[(conditions) "@A \n\"\n !# *" [conditions msg case message "%s" "%s %s" prin1-to-string ding] 5 "\ Print CONDITIONS as a message."]) (fset 'vip-ESC #[(arg) " = \" " [vip-no-multiple-ESC vip-current-mode insert-mode vip-escape-to-emacs arg 27 ding] 3 "\ Emulate ESC key in Emacs mode. Prevent multiple escape keystrokes if vip-no-multiple-ESC is true. In that case @ will be bound to ESC" "P"]) (fset 'vip-alternate-ESC #[(arg) " \"" [vip-escape-to-emacs arg 27] 3 "\ ESC key without checking for multiple keystrokes" "P"]) (fset 'vip-ctl-c #[(arg) " \"" [vip-escape-to-emacs arg 3] 3 "\ Emulate C-c key in Emacs mode." "P"]) (fset 'vip-ctl-x #[(arg) " \"" [vip-escape-to-emacs arg 24] 3 "\ Emulate C-x key in Emacs mode." "P"]) (fset 'vip-ctl-h #[(arg) " \"" [vip-escape-to-emacs arg 8] 3 "\ Emulate C-h key in Emacs mode." "P"]) (fset 'vip-test-com-defun '(macro . #[(name) "! !!\nP!!\n\nP!\n\nEDF." [make-symbol "s1" snm symbol-name name "s2" nm-p intern "-p" "s3" nms "s" defun (com) consp memq (if (< com 0) (- com) com)] 7])) (defconst vip-prefix-commands '(99 100 121 33 61 35 60 62 34) "\ Modifying commands that can be prefixes to movement commands") (fset 'vip-prefix-command-p #[(com) "W[\n>:" [com 0 vip-prefix-commands] 2]) (defconst vip-charpair-commands '(99 100 121 33 61 60 62 114 82) "\ Commands that are pairs eg. dd. r and R here are a hack") (fset 'vip-charpair-command-p #[(com) "W[\n>:" [com 0 vip-charpair-commands] 2]) (defconst vip-movement-commands '(98 66 101 69 102 70 71 104 72 106 107 108 72 77 110 116 84 119 87 36 37 94 40 41 45 43 124 123 125 91 93 39 96 59 44 48 63 47) "\ Movement commands") (fset 'vip-movement-command-p #[(com) "W[\n>:" [com 0 vip-movement-commands] 2]) (defconst vip-dotable-commands '(99 100 121 67 89 68) "\ Commands that can be repeated by .(dotted)") (fset 'vip-dotable-command-p #[(com) "W[\n>:" [com 0 vip-dotable-commands] 2]) (defconst vip-hash-cmds '(99 67 103 113 83) "\ Commands that can follow a #") (fset 'vip-hash-cmd-p #[(com) "W[\n>:" [com 0 vip-hash-cmds] 2]) (defconst vip-regsuffix-commands '(100 121 89 68 112 80 120 88) "\ Commands that may have registers as prefix") (fset 'vip-regsuffix-command-p #[(com) "W[\n>:" [com 0 vip-regsuffix-commands] 2]) (fset 'vip-prefix-arg-value #[(char value com) "YX _Z\\ b BU! q!" [char 48 57 value 0 10 read-char prefix-arg com 85 vip-describe-arg vip-unread] 4 "\ Compute numeric prefix arg value. Invoked by CHAR. VALUE is the value obtained so far, and COM is the command part obtained so far."]) (fset 'vip-prefix-arg-com #[(char value com) "\nU \\Z!Z\n# U\nU\n!\nY\nXZ\n\n$\nU XXXX\" \n!\nY\nX\n\n$)\n \n!\n!\nY\nX\n\n$B \nU!\nU!᪂\nB!\n!)" [nil charpair char 35 read-char 128 com vip-hash-cmd-p error "#%c: %s" vip-ENOCMD 114 82 t vip-movement-command-p 49 57 "#%c%c: %s" 34 reg 65 122 vip-use-register "%c: Not a register" vip-regsuffix-command-p "\"%c%c: %s" vip-charpair-command-p "%c%c: %s" value prefix-arg vip-region vip-Region vip-line 1 vip-unread] 6 "\ Vi operator as prefix argument."]) (fset 'vip-describe-arg #[(arg) " ! !\n ! \" \n\"\n #*" [nil com val vip-P-val arg vip-getcom message "Value is nil, and commmand is nil." "Value is nil, and command is %c." "Value is %d, and command is nil." "Value is %d, and command is %c."] 4]) (fset 'vip-digit-argument #[(arg) " : A#" [vip-prefix-arg-value last-command-char nil arg] 4 "\ Begin numeric argument for the next command." "P"]) (fset 'vip-command-argument #[(arg) "" [conditions (byte-code " \nê\n:\n@\n\n!\nê\n:\nA\nê!#" [vip-prefix-arg-com last-command-char arg nil error "strange arg"] 5) ((quit (byte-code "\"" [nil vip-use-register signal quit] 3)))] 3 "\ Accept a motion command as an argument." "P"]) (fset 'vip-p-val #[(arg) ":@@" [arg 1] 1 "\ Get value part of prefix-argument ARG."]) (fset 'vip-P-val #[(arg) ":@" [arg] 1 "\ Get value part of prefix-argument ARG."]) (fset 'vip-getcom #[(arg) ":A" [arg nil] 1 "\ Get com part of prefix-argument ARG."]) (fset 'vip-getCom #[(arg) " !ÚĪ\nŚƪ\nǚȪ\n)" [vip-getcom arg com 99 67 100 68 121 89] 3 "\ Get com part of prefix-argument ARG and modify it."]) (fset 'vip-append-to-register #[(reg start end) " ! {P\"" [set-register reg get-register "" start end] 5 "\ Append region to text in register REG. START and END are buffer positions indicating what to append."]) (byte-code "MMMMMMMMMM!\"IIIIIIIIII" [vip-exec-change #[(com) "U `\" `\"" [com 99 vip-change vip-com-point vip-change-subr] 3] vip-exec-Change #[(com) " !!`\" X X !`$ X X \\!`#!!`|)!U " [set-mark vip-com-point vip-enlarge-region mark t vip-use-register 97 122 copy-to-register nil 65 90 vip-append-to-register 32 error "" open-line 1 com 67 vip-change-mode-to-insert yank] 5] vip-exec-delete #[(com) "XX `$XX\\ `#! = `\"ln?!" [vip-use-register 97 122 copy-to-register vip-com-point nil 65 90 vip-append-to-register 32 error "" last-command d-command kill-region this-command vip-ex-style-motion backward-char 1] 5] vip-exec-Delete #[(com) " !!`\" X X !`$ X X \\!`#!=!`\"=) " [set-mark vip-com-point vip-enlarge-region mark t vip-use-register 97 122 copy-to-register nil 65 90 vip-append-to-register 32 error "" last-command D-command kill-region m-com vip-line this-command back-to-indentation] 5] vip-exec-yank #[(com) "XX `$XX\\ `#! `\" b" [vip-use-register 97 122 copy-to-register vip-com-point nil 65 90 vip-append-to-register 32 error "" last-command copy-region-as-kill] 5] vip-exec-Yank #[(com) " !!`\" X X !`$ X X \\!`#!!`\") b" [set-mark vip-com-point vip-enlarge-region mark t vip-use-register 97 122 copy-to-register nil 65 90 vip-append-to-register 32 error "" last-command copy-region-as-kill] 5] vip-exec-bang #[(com) " !!`\"!`U!\n\n$)" [set-mark vip-com-point vip-enlarge-region mark t shell-command-on-region com 33 vip-read-string "!" vip-last-shell-com] 5] vip-exec-equals #[(com) " !!`\"!`V !`#)" [set-mark vip-com-point vip-enlarge-region mark t exchange-point-and-mark indent-region nil] 4] vip-exec-shift #[(com) " !!`\"!`V !`U  [#)" [set-mark vip-com-point vip-enlarge-region mark t exchange-point-and-mark indent-rigidly com 62 vip-shift-width] 5] vip-exec-buffer-search #[(com) "`{ # B #" [vip-com-point vip-s-string t vip-s-forward vip-want-history put vip-search-history default vip-search 1] 4] boundp vip-exec-array make-vector 128 nil 99 67 100 68 121 89 33 60 62 61] 3) (fset 'vip-execute-com #[(m-com val com) "\nV\nZ! \nW\n[\nH\n\n#\n!)\n!  \nU\nU\nU\n[\n F)" [vip-use-register reg com 128 vip-special-prefix-com vip-exec-array 0 fn error "%c: %s" vip-ENOCMD vip-dotable-command-p m-com val 99 67 33 vip-d-com] 5 "\ (M-COM VAL COM) Execute command COM. The list (M-COM VAL COM) is set to vip-d-com for later use by vip-repeat"]) (fset 'vip-repeat #[(arg) "= @ ! AA@ 8 \n A@ \n! \n B!," [last-command vip-undo vip-undo-more vip-d-com vip-P-val arg 3 reg com val m-com error "No previous command to repeat." vip-use-register] 5 "\ (ARG) Re-excute last destructive command. vip-d-com has the form (COM ARG CH REG), where COM is the command to be re-executed, ARG is the argument for COM, CH is a flag for repeat, and REG is optional and if exists is the name of the register for COM." "P"]) (fset 'vip-special-prefix-com #[(char) "U `^ `]\"U `^ `]\"U ! U ! U `\"#" [char 99 downcase-region vip-com-point 67 upcase-region 103 set-mark vip-global-execute 113 vip-quote-region 115 spell-region error "#%c: %s" vip-ENOCMD] 4 "\ This command is invoked interactively by the key sequence #"]) (fset 'vip-undo #[nil "!  !ln! !)ˉ " [message "undo!" buffer-modified-p modified undo-start undo-more 2 backward-char 1 set-buffer-modified-p t vip-undo this-command] 2 "\ Undo previous change." nil]) (fset 'vip-undo-more #[nil "!!ln!ʼn" [message "undo more!" undo-more 1 backward-char vip-undo this-command] 2 "\ Continue undoing previous changes."]) (byte-code "MM" [vip-string-tail #[(str) "??O" [str "" 1 nil] 3] vip-yank-defun #[nil " `!\"" [mark-defun copy-region-as-kill mark t] 4]] 2) (fset 'vip-enlarge-region #[(beg end) "\n W\nb ! b\n!y mn!y\n V ɉ" [nil zmacs-regions beg end set-mark 0 exchange-point-and-mark next-line 1 t] 2 "\ Enlarge region between BEG and END."]) (fset 'vip-global-execute #[nil "`!V y `!Wyy n" [mark t exchange-point-and-mark 0 call-last-kbd-macro 1] 3 "\ Call last keyboad macro for each line in the region."]) (fset 'vip-quote-region #[nil "\n\"Ę\n )`!\"`!V \ncyy`!Wn\ncyyk" [vip-read-string "quote-string:" vip-quote-string str "" vip-enlarge-region mark t exchange-point-and-mark 0 1] 5 "\ Quote region by inserting the user supplied string at the beginning of each line in the region."]) (fset 'vip-end-with-a-newline-p #[(string) "GSHU" [string "" 10] 2 "\ Check if the string ends with a newline."]) (byte-code "  # # # # # # # # #MMM" [make-sparse-keymap vip-minibuf-map define-key " " exit-minibuffer "\n" "" abort-recursive-edit "" "" delete-backward-char "" vip-delete-backward-word "" vip-erase-line "" quoted-insert vip-ESC-key vip-read-string #[(prompt &optional init history-var) "\n\n # #" [vip-want-history read-with-history-in history-var vip-history prompt init read-from-minibuffer vip-minibuf-map] 4] vip-read-string-complete #[nil "\n $" [completer-complete-goto "^ \n\"" completer-words read-file-name-internal default-directory] 5 nil nil] vip-read-string-help #[nil " " [completer-help] 1 nil nil]] 4) (fset 'vip-do-completion #[nil "! # #ȉ " [require completer define-key vip-minibuf-map " " vip-read-string-complete "?" vip-read-string-help t vip-filename-complete] 4 "\ Do filename completion for :e commands"]) (fset 'vip-get-history #[nil "!!M!lj" [fboundp gmhist-define-keys message "WARNING: gmhist already loaded - cannot change mappings" #[(map) " # # # # # # # # # # # # # # #" [define-key map "" gmhist-previous "" gmhist-next "" gmhist-search-backward "" gmhist-search-forward "" gmhist-beginning " " gmhist-end "" gmhist-show "" abort-recursive-edit "" delete-backward-char "" vip-delete-backward-word "" vip-erase-line "" quoted-insert vip-filename-complete " " vip-read-string-complete "?" vip-read-string-help vip-ESC-key exit-minibuffer] 4 "Bind the standard history commands in MAP, a key map."] require gmhist t vip-want-history] 2]) (fset 'vip-repeat-insert-command #[nil "@A@ V\n SE!\n E*" [vip-d-com val i-com 1 114 vip-repeat nil] 3 "\ This function is called when mode changes from insertion mode to vi command mode. It will repeat the insertion command if original insertion command was invoked with argument > 1."]) (fset 'vip-insert #[(arg) " ! ! E V Sq) *" [vip-p-val arg vip-getcom com val vip-insert 114 vip-d-com count 0 yank vip-change-mode-to-insert] 4 "\ " "P"]) (fset 'vip-append #[(arg) " ! ! Elu ƚ  V  S q) *" [vip-p-val arg vip-getcom com val vip-append 114 vip-d-com nil count 0 yank vip-change-mode-to-insert] 4 "\ Append after point." "P"]) (fset 'vip-Append #[(arg) " ! ! E ƚ  V  S q) *" [vip-p-val arg vip-getcom com val vip-Append 114 vip-d-com nil count 0 yank vip-change-mode-to-insert] 4 "\ Append at end of line." "P"]) (fset 'vip-Insert #[(arg) " ! ! E ƚ  V  S q) *" [vip-p-val arg vip-getcom com val vip-Insert 114 vip-d-com back-to-indentation count 0 yank vip-change-mode-to-insert] 4 "\ Insert before first non-white." "P"]) (fset 'vip-open-line #[(arg) " ! ! E  ƚ \nV! j \nS\n_)! j +" [vip-p-val arg vip-getcom com val vip-open-line 114 vip-d-com current-indentation col count 0 nil newline 1 vip-auto-indent t vip-cted yank vip-change-mode-to-insert] 4 "\ Open line below." "P"]) (fset 'vip-Open-line #[(arg) " ! ! E  ƚ \nVy! j \nS\n_)y! j +" [vip-p-val arg vip-getcom com val vip-Open-line 114 vip-d-com current-indentation col count 0 open-line 1 vip-auto-indent t vip-cted yank vip-change-mode-to-insert] 4 "\ Open line above." "P"]) (fset 'vip-open-line-at-point #[(arg) " ! ! E ƚ V! Sm)! *" [vip-p-val arg vip-getcom com val vip-open-line-at-point 114 vip-d-com count 0 open-line 1 yank vip-change-mode-to-insert] 4 "\ Open line at point." "P"]) (fset 'vip-substitute #[(arg) " ! !`! u ƚ!`\"!`\" E *" [vip-p-val arg vip-getcom com val set-mark 114 vip-change-subr mark t vip-change vip-substitute vip-d-com] 3 "\ Substitute characters." "P"]) (fset 'vip-substitute-line #[(arg) " B!" [vip-line arg 67] 3 "\ Substitute lines." "p"]) (fset 'vip-overwrite-execute #[(&optional arg exclusive limit) " `V !?\n \n\" lu !c! !c l! B`!U;! 0 \"(+" [nil t cont overrun com limit set-mark vip-need-to-exit-overwrite vip-get-editor-command vip-insert-local-map global-map exclusive 1 char-to-string delete-char mark vip-change-mode-line "Insert" vip-refresh-mode-line command-execute arg] 4 nil nil]) (fset 'vip-change-mode-to-overwrite #[(&optional arg exclusive limit) " ! \n  #)" [nil vip-need-to-exit-overwrite vip-change-mode-to-insert vip-change-mode-line "Replac" vip-refresh-mode-line echo-keystrokes echo 0 vip-overwrite-execute arg exclusive limit] 4 "\ Change mode to overwrite mode until optional limit is reached. Also implement actual overwrite mode, eventually overwriting multiple lines if exclusive is set to true." nil]) (fset 'vip-overwrite #[(arg) " ! ! E V Sq) !*" [vip-p-val arg vip-getcom com val vip-overwrite 114 vip-d-com count 0 yank last-command vip-change-mode-to-overwrite] 4 "\ " "P"]) (fset 'vip-line #[(arg) "@A `ē\nS!\n #*" [arg com val vip-com-point nil next-line vip-execute-com vip-line] 4]) (fset 'vip-yank-line #[(arg) " !\nB!)" [vip-p-val arg val vip-line 89] 3 "\ Yank ARG lines (in vi's sense)" "P"]) (byte-code "MM" [vip-region #[(arg) " ! ! `Ɠ #*" [vip-P-val arg vip-getcom com val vip-com-point nil exchange-point-and-mark vip-execute-com vip-region] 4 nil "P"] vip-Region #[(arg) " ! ! `Ɠ #*" [vip-P-val arg vip-getCom com val vip-com-point nil exchange-point-and-mark vip-execute-com vip-Region] 4 nil "P"]] 2) (fset 'vip-replace-char #[(arg) "ln! ! !l!E ̚ \"+" [error "No character to replace" vip-p-val arg vip-getcom nil at-end com val backward-char 1 vip-replace-char 114 vip-d-com vip-replace-char-subr vip-d-char read-char] 3 "\ Replace the following ARG chars by the character read." "P"]) (fset 'vip-replace-char-subr #[(char arg) " \"  V [V =c cSg) !" [delete-char arg t char vip-d-char 0 count 13 "\n" backward-char] 4]) (fset 'vip-replace-string #[nil " Ī!Ƙ ? ʪ\"! \"!\" \"!\")" [nil str vip-read-string vip-re-replace "Replace regexp: " "Replace string: " "" message format "Replace mode changed to %s." "regexp replace" "string replace" replace-regexp "Replace regexp \"%s\" with: " replace-string "Replace \"%s\" with: "] 7 "\ Replace string. If you supply null string as the string to be replaced, the query replace mode will toggle between string replace and regexp replace." nil]) (fset 'vip-forward-char #[(arg) " ! ! `Ɠln! u #l!! u #*" [vip-p-val arg vip-getcom com val vip-com-point nil vip-ex-style-motion error "" vip-execute-com vip-forward-char backward-char 1] 4 "\ Move point right ARG characters (left if ARG negative).On reaching end of line, stop and signal error." "P"]) (fset 'vip-backward-char #[(arg) " ! ! `Ɠn! ! # ! #*" [vip-p-val arg vip-getcom com val vip-com-point nil vip-ex-style-motion error "" backward-char vip-execute-com vip-backward-char] 4 "\ Move point left ARG characters (right if ARG negative). On reaching beginning of line, stop and signal error." "P"]) (byte-code "M Q PQ   P  Q  PQPQM" [vip-skip-separators #[(forward) "w!uwx !xu" [forward " " nil looking-at "\n" backward-char] 2] "a-zA-Z0-9_" vip-ALPHA "[" "]" vip-ALPHA-B "^" vip-NONALPHA vip-NONALPHA-B " \n" vip-SEP vip-NONSEP vip-SEP-B vip-ALPHASEP vip-ALPHASEP-B vip-NONALPHASEP vip-NONALPHASEP-B vip-forward-word-kernel #[(val) "V ! w!!! !\nw!SL" [val 0 looking-at vip-ALPHA-B vip-ALPHA nil vip-skip-separators t vip-SEP-B vip-NONALPHASEP-B vip-NONALPHASEP] 3]] 3) (fset 'vip-forward-word #[(arg) " ! ! `Ɠ ! U Ux U Ux U Ux #*" [vip-p-val arg vip-getcom com val vip-com-point nil vip-forward-word-kernel 99 -99 " \n" 121 -121 "\n" 100 -100 vip-execute-com vip-forward-word] 4 "\ Forward word." "P"]) (fset 'vip-forward-Word #[(arg) " ! ! `Ɠ Vw!Sl) U Ux U Ux U Ux #*" [vip-p-val arg vip-getcom com val vip-com-point nil count 0 "^ \n" vip-skip-separators t 99 -99 " \n" 121 -121 "\n" 100 -100 vip-execute-com vip-forward-Word] 5 "\ Forward word delimited by white character." "P"]) (byte-code "MMM" [vip-end-of-word-kernel #[(val) " !u !) u!w ?!  =!! *" [looking-at vip-SEP-B nil next-sep was-sep vip-end-of-word-p "[ ]*\n" vip-SEP vip-one-char-word-p vip-forward-word-kernel 1 val vip-skip-separators backward-char] 3] vip-end-of-word-p #[nil "m\n!u ! !u!)" [t looking-at vip-ALPHA-B nil vip-NONALPHA-B vip-NONALPHASEP-B vip-ALPHASEP-B] 2] vip-one-char-word-p #[nil " !o o! u!!o o! u!*" [2 step looking-at vip-ALPHA-B 1 backward-char vip-NONALPHA-B vip-NONALPHASEP-B vip-ALPHASEP-B] 2]] 2) (fset 'vip-end-of-word #[(arg) " ! ! `Ɠ V!Sp) u #*" [vip-p-val arg vip-getcom com val vip-com-point nil count 0 vip-end-of-word-kernel 1 vip-execute-com vip-end-of-word] 5 "\ Move point to end of current word." "P"]) (fset 'vip-end-of-Word #[(arg) " ! ! `Ɠ V! $dbx S\\) u #*" [vip-p-val arg vip-getcom com val vip-com-point nil count 0 vip-end-of-word-kernel 1 re-search-forward vip-SEP-B t vip-SEP backward-char vip-execute-com vip-end-of-Word] 6 "\ Forward to end of word delimited by white character." "P"]) (fset 'vip-backward-word-kernel #[(val) "V ! x!u! ! x !\nxu !\nxS0" [val 0 backward-char looking-at vip-ALPHA-B vip-ALPHA nil vip-SEP-B vip-skip-separators vip-NONALPHASEP-B vip-NONALPHASEP] 3]) (fset 'vip-backward-word #[(arg) " ! !  !) \n`œu) ! #*" [vip-p-val arg vip-getcom com val nil i backward-char looking-at "\n" vip-com-point vip-backward-word-kernel vip-execute-com vip-backward-word] 4 "\ Backward word." "P"]) (fset 'vip-backward-Word #[(arg) " ! !  !) \n`œu)  V!x S k) #*" [vip-p-val arg vip-getcom com val nil i backward-char looking-at "\n" vip-com-point count 0 vip-skip-separators vip-NONSEP vip-execute-com vip-backward-Word] 5 "\ Backward word delimited by white character." "P"]) (fset 'vip-beginning-of-line #[(arg) " ! ! `Ɠ ! #*" [vip-p-val arg vip-getcom com val vip-com-point nil beginning-of-line vip-execute-com vip-beginning-of-line] 4 "\ Go to beginning of line." "P"]) (fset 'vip-bol-and-skip-white #[(arg) " ! ! `Ɠ S! #*" [vip-p-val arg vip-getcom com val vip-com-point nil forward-to-indentation vip-execute-com vip-bol-and-skip-white] 4 "\ Beginning of line at first non-white character." "P"]) (fset 'vip-goto-eol #[(arg) " ! ! `Ɠ  # ln?!*" [vip-p-val arg vip-getcom com val vip-com-point nil vip-execute-com vip-goto-eol vip-ex-style-motion backward-char 1] 4 "\ Go to end of line." "P"]) (fset 'vip-next-line #[(arg) "m!) ! !`!\nln! #*" [nil error "Last line in buffer" vip-p-val arg vip-getCom com val vip-com-point next-line vip-ex-style-motion backward-char 1 this-command vip-execute-com vip-next-line] 4 "\ Go to next line." "P"]) (fset 'vip-next-line-at-bol #[(arg) "m!) ! !`! #*" [nil error "Last line in buffer" vip-p-val arg vip-getCom com val vip-com-point next-line back-to-indentation vip-execute-com vip-next-line-at-bol] 4 "\ Next line at beginning of line." "P"]) (fset 'vip-previous-line #[(arg) "yo!) ! !`ɓ[! ln!#*" [0 error "First line in buffer" vip-p-val arg vip-getCom com val vip-com-point nil next-line vip-ex-style-motion backward-char 1 previous-line this-command vip-execute-com vip-previous-line] 4 "\ Go to previous line." "P"]) (fset 'vip-previous-line-at-bol #[(arg) "yo!) ! !`ɓ[! #*" [0 error "First line in buffer" vip-p-val arg vip-getCom com val vip-com-point nil next-line back-to-indentation vip-execute-com vip-previous-line] 4 "\ Previous line at beginning of line." "P"]) (fset 'vip-change-to-eol #[(arg) " B!" [vip-goto-eol arg 99] 3 "\ Change to end of line." "P"]) (fset 'vip-kill-line #[(arg) " !\nB!)" [vip-p-val arg val vip-goto-eol 100] 3 "\ Delete line." "P"]) (fset 'vip-erase-line #[(arg) " B!" [vip-beginning-of-line arg 100] 3 "\ Erase line." "P"]) (fset 'vip-goto-line #[(arg) " ! ! `Ɠ`! dbeb Sy #*" [vip-P-val arg vip-getCom com val vip-com-point nil set-mark back-to-indentation vip-execute-com vip-goto-line] 4 "\ Go to ARG's line. Without ARG go to end of buffer." "P"]) (fset 'vip-find-char #[(arg char forward offset) " [ Vl!`!y`}n!`y`} VeTbdb  ! $ Vm Wo!)`* V ΪϪ Ȫ\\b*" [forward arg nil point 0 error "" next-line 1 case-fold-search search-forward char-to-string char offset -2 -1] 5 "\ Find ARG's occurence of CHAR on the current line. If FORWARD then search is forward, otherwise backward. OFFSET is used to adjust point after search."]) (fset 'vip-find-char-forward #[(arg) " ! !V   [  `ʓ !V$ [ u #*" [vip-p-val arg vip-getcom com val 0 read-char vip-f-char t vip-f-forward nil vip-f-offset vip-com-point vip-find-char vip-F-char vip-execute-com vip-find-char-forward] 6 "\ Find char on the line. If called interactively read the char to find from the terminal, and if called from vip-repeat, the char last used is used. This behaviour is controlled by the sign of prefix numeric value." "P"]) (fset 'vip-goto-char-forward #[(arg) " ! !V  \n [  `̓ !Vȉ$ [ u #*" [vip-p-val arg vip-getcom com val 0 read-char vip-f-char t vip-f-forward vip-f-offset vip-com-point nil vip-find-char vip-F-char vip-execute-com vip-goto-char-forward] 6 "\ Go up to char ARG forward on line." "P"]) (fset 'vip-find-char-backward #[(arg) " ! !V  \n [  `ȓ !V ȉ$ [  #*" [vip-p-val arg vip-getcom com val 0 read-char vip-f-char nil vip-f-forward vip-f-offset vip-com-point vip-find-char vip-F-char vip-execute-com vip-find-char-backward] 6 "\ Find char ARG on line backward." "P"]) (fset 'vip-goto-char-backward #[(arg) " ! !V   [  `ȓ !V$ [  #*" [vip-p-val arg vip-getcom com val 0 read-char vip-f-char nil vip-f-forward t vip-f-offset vip-com-point vip-find-char vip-F-char vip-execute-com vip-goto-char-backward] 6 "\ Go up to char ARG backward on line." "P"]) (fset 'vip-repeat-find #[(arg) " ! ! `Ɠ  \n$  u #*" [vip-p-val arg vip-getcom com val vip-com-point nil vip-find-char vip-f-char vip-f-forward vip-f-offset vip-execute-com vip-repeat-find] 5 "\ Repeat previous find command." "P"]) (fset 'vip-repeat-find-opposite #[(arg) " ! ! `Ɠ  ?\n$  u #*" [vip-p-val arg vip-getcom com val vip-com-point nil vip-find-char vip-f-char vip-f-forward vip-f-offset vip-execute-com vip-repeat-find-opposite] 5 "\ Repeat previous find command in the opposite direction." "P"]) (fset 'vip-other-window #[(arg) " !\n=?p!Ř " [other-window arg vip-current-mode emacs-mode buffer-name " *Minibuf-1*" vip-change-mode-to-vi] 2 "\ Switch to other window." "p"]) (fset 'vip-window-top #[(arg) " ! ! `Ɠ S! #*" [vip-p-val arg vip-getCom com val vip-com-point nil move-to-window-line back-to-indentation vip-execute-com vip-window-top] 4 "\ Go to home window line." "P"]) (fset 'vip-window-middle #[(arg) " ! ! `Ɠ Sɥ S\\! #*" [vip-p-val arg vip-getCom com val vip-com-point nil move-to-window-line window-height 2 back-to-indentation vip-execute-com vip-window-middle] 4 "\ Go to middle window line." "P"]) (fset 'vip-window-bottom #[(arg) " ! ! `Ɠ [! #*" [vip-p-val arg vip-getCom com val vip-com-point nil move-to-window-line back-to-indentation vip-execute-com vip-window-bottom] 4 "\ Go to last window line." "P"]) (fset 'vip-line-to-top #[(arg) " S!" [recenter arg] 2 "\ Put current line on the home line." "p"]) (fset 'vip-line-to-middle #[(arg) " S Så\\!" [recenter arg window-height 2] 4 "\ Put current line on the middle line." "p"]) (fset 'vip-line-to-bottom #[(arg) " \nTZ!" [recenter window-height arg] 3 "\ Put current line on the last line." "p"]) (fset 'vip-paren-match #[(arg) " ! V W!dVdȥ _d _ȥb  lnu` ) # !)!\n`ʓ!\n\n# !u\n`ʓ!\n\n#!)" [vip-getcom arg com 99 1 error "Prefix must be between 1 and 99." 80000 100 back-to-indentation nil lim -1 re-search-forward "[][(){}]" t backward-char "No matchable character on line" looking-at "[([{]" vip-com-point forward-sexp vip-execute-com vip-paren-match "[])}]" backward-sexp ""] 4 "\ Go to the matching parenthesis." "P"]) (fset 'vip-forward-sentence #[(arg) " ! ! `Ɠ ! #*" [vip-p-val arg vip-getcom com val vip-com-point nil forward-sentence vip-execute-com vip-forward-sentence] 4 "\ Forward sentence." "P"]) (fset 'vip-backward-sentence #[(arg) " ! ! `Ɠ ! #*" [vip-p-val arg vip-getcom com val vip-com-point nil backward-sentence vip-execute-com vip-backward-sentence] 4 "\ Backward sentence." "P"]) (fset 'vip-forward-paragraph #[(arg) " ! ! `Ɠ ! #*" [vip-p-val arg vip-getcom com val vip-com-point nil forward-paragraph vip-execute-com vip-forward-paragraph] 4 "\ Forward paragraph." "P"]) (fset 'vip-backward-paragraph #[(arg) " ! ! `Ɠ ! #*" [vip-p-val arg vip-getcom com val vip-com-point nil backward-paragraph vip-execute-com vip-backward-paragraph] 4 "\ Backward paragraph." "P"]) (byte-code "MMM" [vip-prev-heading #[(arg) " ! ! `Ɠ $ʔb #*" [vip-p-val arg vip-getcom com val vip-com-point nil re-search-backward vip-heading-start t 0 vip-execute-com vip-prev-heading] 5 nil "P"] vip-heading-end #[(arg) " ! ! `Ɠ $ʔb #*" [vip-p-val arg vip-getCom com val vip-com-point nil re-search-forward vip-heading-end t 0 vip-execute-com] 5 nil "P"] vip-next-heading #[(arg) " ! ! =`ȓ\n $ # $ϔb*" [vip-p-val arg vip-getcom com val 100 68 vip-com-point nil re-search-forward vip-heading-end t vip-execute-com vip-next-heading vip-heading-start 0] 5 nil "P"]] 2) (fset 'vip-scroll #[(arg) "VV SsV Ts" [arg 0 scroll-up scroll-down] 3 "\ Scroll to next screen." "p"]) (fset 'vip-scroll-back #[(arg) " [!" [vip-scroll arg] 2 "\ Scroll to previous screen." "p"]) (fset 'vip-scroll-down #[(arg) " å!!" [arg scroll-down window-height 2] 3 "\ Scroll up half screen." "P"]) (fset 'vip-scroll-down-one #[(arg) " !" [scroll-down arg] 2 "\ Scroll up one line." "p"]) (fset 'vip-scroll-up #[(arg) " å!!" [arg scroll-up window-height 2] 3 "\ Scroll down half screen." "P"]) (fset 'vip-scroll-up-one #[(arg) " !" [scroll-up arg] 2 "\ Scroll down one line." "p"]) (byte-code "" [1 scroll-step] 1) (fset 'vip-buffer-in-two-windows #[nil " !" [delete-other-windows split-window-vertically nil] 2 "\ Show current buffer in two windows." nil]) (fset 'vip-if-string #[(prompt) " #˜? )" [vip-read-string prompt "" vip-search-history s vip-s-string] 5]) (fset 'vip-search-forward #[(arg) " ! !!\n #  !͓ #*" [vip-P-val arg vip-getcom com val t vip-s-forward vip-if-string "/" vip-search vip-s-string vip-com-point mark nil vip-execute-com vip-search-next] 4 "\ Search a string forward. ARG is used to find the ARG's occurence of the string. Null string will repeat previous search" "P"]) (fset 'vip-search-backward #[(arg) " ! !!\n #  !œ #*" [vip-P-val arg vip-getcom com val nil vip-s-forward vip-if-string "?" vip-search vip-s-string vip-com-point mark t vip-execute-com vip-search-next] 4 "\ Search a string backward. ARG is used to find the ARG's occurence of the string. Null string will repeat previous search" "P"]) (fset 'vip-search #[(string forward arg &optional no-offset init-point) " ! ! !? ? ` \n   Џҏ." [vip-p-val arg vip-getcom vip-P-val no-offset vip-case-fold-search init-point start-point case-fold-search offset null-arg com val forward conditions (byte-code "mu\n $ ! $ !\n!" [offset nil vip-re-search re-search-forward string val re-search-backward search-forward search-backward push-mark start-point] 5) ((search-failed (byte-code " eb B%b A\"" [null-arg vip-search-wrap-around-t vip-search string forward 1 com t start-point signal search-failed conditions] 6))) (byte-code "\nÉ $\nÉ $!" [vip-re-search re-search-backward string nil val search-backward push-mark start-point] 5) ((search-failed (byte-code " db B%b A\"" [null-arg vip-search-wrap-around-t vip-search string forward 1 com t start-point signal search-failed conditions] 6)))] 6 "\ (STRING FORWARD COUNT &optional NO-OFFSET) Search COUNT's occurrence of STRING. Search will be forward if FORWARD, otherwise backward."]) (fset 'vip-search-next #[(arg) " ! ! !  # \n!͓ #*" [vip-p-val arg vip-getcom com val vip-s-string error "No previous search string." vip-search vip-s-forward vip-com-point mark t nil vip-execute-com vip-search-next] 4 "\ Repeat previous search." "P"]) (fset 'vip-search-Next #[(arg) " ! ! !  ? # \n!͓ #*" [vip-p-val arg vip-getcom com val vip-s-string error "No previous search string." vip-search vip-s-forward vip-com-point mark t nil vip-execute-com vip-search-Next] 4 "\ Repeat previous search in the reverse direction." "P"]) (byte-code "M" [nil vip-buffer-search-char vip-buffer-search-enable #[(&optional c) "?   !# I  B " [vip-buffer-search-char c 103 define-key vip-mode-map char-to-string vip-command-argument vip-exec-array vip-exec-buffer-search vip-prefix-commands] 4]] 2) (fset 'vip-switch-to-buffer #[nil "p!!\"! ! )" [nil buffer read-buffer format "switch to buffer (%s): " buffer-name other-buffer switch-to-buffer vip-change-mode-to-vi] 6 "\ Switch to buffer in the current window." nil]) (fset 'vip-switch-to-buffer-other-window #[nil "p!!\"! ! )" [nil buffer read-buffer format "Switch to buffer (%s): " buffer-name other-buffer switch-to-buffer-other-window vip-change-mode-to-vi] 6 "\ Switch to buffer in another window." nil]) (fset 'vip-kill-buffer #[nil "p!\"!p ! \"\n!!\n!!*" [nil buffer-name buffer read-buffer format "Kill buffer (%s): " get-buffer error "Buffer %s nonexistent." buffer-modified-p y-or-n-p "Buffer is modified, are you sure? " kill-buffer "Buffer not killed."] 6 "\ Kill a buffer." nil]) (fset 'vip-find-file #[nil "! !!ǚ? )" [nil file read-file-name "visit file: " switch-to-buffer find-file-noselect major-mode dired-mode vip-change-mode-to-vi] 3 "\ Visit file in the current window." nil]) (fset 'vip-find-file-other-window #[nil "! !!ǚ? )" [nil file read-file-name "Visit file: " switch-to-buffer-other-window find-file-noselect major-mode dired-mode vip-change-mode-to-vi] 3 "\ Visit file in another window." nil]) (fset 'vip-find-file-other-screen #[nil "! !!ǚ? )" [nil file read-file-name "Visit file other screen: " switch-to-buffer-new-screen find-file-noselect major-mode dired-mode vip-change-mode-to-vi] 3 "\ Visit file in another screen." nil]) (fset 'vip-info-on-file #[nil " Ūe`\"nT)ed\"T%" [message "\"%s\"%s line %d of %d" buffer-file-name "" buffer-modified-p " [Modified]" count-lines l] 8 "\ Give information of the file associated to the current buffer." nil]) (fset 'vip-yank #[(text) "`! c )w" [vip-push-mark-silent text exchange-point-and-mark " " nil] 2 "\ yank TEXT silently."]) (fset 'vip-put-back #[(arg) " ! X X Z8 !@ \n   \")! !!ylmu\n F\nV !So+׉" [nil zmacs-regions vip-p-val arg vip-use-register 49 57 kill-ring-yank-pointer get-register text val reg error "Nothing in register %c" "" vip-end-with-a-newline-p next-line 1 0 vip-put-back vip-d-com count vip-yank t] 5 "\ Put back after point/below line." "P"]) (fset 'vip-Put-back #[(arg) " ! X X Z8 !@ \n   \")! !y\n F\nV !So+Չ" [nil zmacs-regions vip-p-val arg vip-use-register 49 57 kill-ring-yank-pointer get-register text val reg error "Nothing in register %c" "" vip-end-with-a-newline-p 0 vip-Put-back vip-d-com count vip-yank t] 5 "\ Put back at point/above line." "P"]) (fset 'vip-delete-char #[(arg) " !\nE`\n`ZV`Z*lXX\\``\n\\#``\n\\$\n\"ln?!\n\")" [vip-p-val arg val vip-delete-char nil vip-d-com here -1 vip-use-register 65 90 vip-append-to-register 32 copy-to-register vip-ex-style-motion delete-char t backward-char 1] 5 "\ Delete character." "P"]) (fset 'vip-delete-backward-char #[(arg) " !\nEn Ê`y\n`ZV`Z*  X X \\`\nZ`# `\nZ`$ \n\")" [vip-p-val arg val vip-delete-backward-char nil vip-d-com ding here 0 vip-use-register 65 90 vip-append-to-register 32 copy-to-register delete-backward-char t] 5 "\ Delete previous character." "P"]) (fset 'vip-join-lines #[(arg) " !\nE\nƪ\nSVmy``S| Sc*" [vip-P-val arg val vip-join-lines nil vip-d-com 1 count 0 fixup-whitespace] 4 "\ Join this line to next, if ARG is nil. Otherwise, join ARG lines" "*P"]) (byte-code "MMM" [vip-finish-change #[nil "`{ \"U`Y` W` \"Ɖ" [vip-change-beg-point vip-c-string count-lines vip-change-end-point 1 kill-region nil vip-need-to-finish-change] 3] vip-change #[(beg end) "\n $\n X \nē ē ē\nē \"Ub!c  bĉ# \" " [vip-use-register copy-to-register beg end nil vip-change-beg-point vip-change-end-point t vip-need-to-finish-change count-lines 1 delete-backward-char "$" point-marker vip-change-mode-to-overwrite kill-region vip-change-mode-to-insert] 5] vip-change-subr #[(beg end) "\n $\n \"c" [vip-use-register copy-to-register beg end nil kill-region vip-change this-command vip-c-string] 5]] 2) (fset 'vip-toggle-case #[(arg) " ! E Vg\" = \" \" S[*" [vip-p-val arg nil c val vip-toggle-case vip-d-com 0 delete-char 1 insert-char] 4 "\ toggle character case." "P"]) (fset 'vip-query-replace #[nil " Ī!Ƙ ? ɪ\" \"!\" \"!\")" [nil str vip-read-string vip-re-query-replace "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: "] 7 "\ Query replace. If you supply null string as the string to be replaced, the query replace mode will toggle between string replace and regexp replace." nil]) (byte-code "MMM" [vip-mark-beginning-of-buffer #[nil "`!eb !" [set-mark exchange-point-and-mark message "mark set at the beginning of buffer"] 2 nil nil] vip-mark-end-of-buffer #[nil "`!db !" [set-mark exchange-point-and-mark message "mark set at the end of buffer"] 2 nil nil] vip-mark-point #[(char) " X X Z! U U U U! U !" [97 char 122 point-to-register 96 60 vip-mark-beginning-of-buffer 62 vip-mark-end-of-buffer 46 push-mark 44 set-mark-command 1 68 mark-defun error ""] 3 nil "c"]] 2) (fset 'vip-goto-mark #[(arg) " \n! #*" [read-char vip-getcom arg com char vip-goto-mark-subr nil] 4 "\ Go to mark." "P"]) (fset 'vip-goto-mark-and-skip-white #[(arg) " \n! #*" [read-char vip-getCom arg com char vip-goto-mark-subr t] 4 "\ Go to mark and skip to first non-white on line." "P"]) (byte-code "MM" [vip-goto-mark-subr #[(char com skip-white) " X Xp `Ɠ Z!b p ͪ # ! b !) U `Ɠ # U `Ɠ #!" [97 char 122 buff com vip-com-point nil register-to-point 96 skip-white back-to-indentation vip-change-mode-to-vi vip-execute-com vip-goto-mark-and-skip-white vip-goto-mark switch-to-buffer error "" exchange-point-and-mark 39] 4] vip-exchange-point-and-mark #[nil " " [exchange-point-and-mark back-to-indentation] 1 nil nil]] 2) (fset 'vip-forward-indent #[nil "i\n\\j" [t vip-cted vip-shift-width] 2 "\ Indent forward - C-d in VI" nil]) (fset 'vip-backward-indent #[nil "`i!hU\n!`y`) #u`| Zjn!," [vip-cted nil t indent bol c p vip-looking-back "[0^]" 94 vip-preserve-indent delete-backward-char 1 0 re-search-backward "[^ ]" vip-shift-width] 4 "\ Backtab, C-t in VI" nil]) (fset 'vip-autoindent #[nil " \n ! j)" [current-indentation col vip-preserve-indent vip-current-indent nil newline 1 vip-auto-indent t vip-cted] 2 "\ Auto Indentation, VI style" nil]) (fset 'vip-register-macro #[(count) "  X X  !!!  \" !\" U U U !\" U! U  X X  !!!  \" \"!)" [read-char reg 97 122 vip-last-macro-reg defining-kbd-macro end-kbd-macro get-register y-or-n-p "Register contains data. Overwrite?" error "Keyboard macro defined but not written" set-register last-kbd-macro execute-kbd-macro count 64 10 13 35 start-kbd-macro 33 format "Unknown register %c"] 4 "\ Keyboard macros in registers - a modified @ command" "P"]) (fset 'vip-ket-function #[(arg) "  X X ! X X Z8 \"!qed| \"cceb)!) U! #)" [read-char reg 97 122 view-register 49 57 kill-ring-yank-pointer text message "Register %c is Empty" get-buffer-create "*Output*" format "Register %c contains the string:\n" display-buffer 93 vip-next-heading arg error "Invalid Command %c%c" last-command-char] 5 "\ Function called by ], the ket. View registers and call ]]" "P"]) (fset 'vip-brac-function #[(arg) " U ! U ! X X Z! \"! ! !!qed|qe \"Tby#y`by#`{ZO ZO$) !$c #c \"ceb)!.( #!)" [read-char reg 91 vip-prev-heading arg 93 vip-heading-end 97 122 get-register 96 val error format "Textmarker %c does not point anywhere" marker-buffer buf marker-position pos nil line-no text s e get-buffer-create "*Output*" count-lines 0 re-search-backward "[^ ]" t 1 re-search-forward "%s<%c>%s" "Textmarker %c is in buffer %s at line %d.\n" buffer-name "Here is some text around %c:\n\n %s" "Textmarker %c not set anywhere" display-buffer "Invalid Command %c%c" last-command-char] 8 "\ Function called by [, the brac. View textmarkers and call [[" "P"]) (fset 'vip-keyboard-quit #[nil " " [nil vip-use-register keyboard-quit] 1 "\ Abort partially formed or running command." nil]) (fset 'vip-ctl-c-equivalent #[(arg) "\n\"" [vip-ctl-key-equivalent "" arg] 3 "\ Emulate C-c in Emacs mode." "P"]) (fset 'vip-ctl-x-equivalent #[(arg) "\n\"" [vip-ctl-key-equivalent "" arg] 3 "\ Emulate C-x in Emacs mode." "P"]) (fset 'vip-ctl-key-equivalent #[(key arg) "  X X Z  \n !##!)" [read-char char 65 90 64 arg prefix-arg command-execute vip-get-editor-command vip-emacs-local-map global-map format "%s%s" key char-to-string] 9]) (fset 'vip-delete-backward-word #[(arg) "`!\n!`!|)" [set-mark backward-word arg mark t] 3 "\ Delete previous word." "p"]) (byte-code "  # # # # # # # # # # # #M " [make-keymap vip-mode-map define-key "" #[nil "!" [vip-ex "e#"] 2 nil nil] "" vip-scroll-back "" vip-scroll-up "" vip-scroll-up-one "" vip-scroll "" help-command " " vip-next-line-at-bol "" vip-scroll-down "" vip-ctl-x "" vip-scroll-down-one vip-toggle-key vip-change-mode-to-emacs vip-ESC-key vip-ESC vip-make-emacs-keys-invisible #[(&optional map) " ###############" [map vip-mode-map define-key "" vip-nil "" vip-keyboard-quit "" vip-info-on-file " " " " " " redraw-display "" vip-next-line "" "" vip-previous-line "" "" "" "" "" ""] 4]] 4) (fset 'vip-rebind-emacs-keys #[(&optional map fun) "  # # # # # # # # # # # # # # #" [map vip-mode-map define-key "" fun "" "" " " " " " " "" "" "" "" "" "" "" "" ""] 4 "\ Unsuppress emacs key bindings that were hidden for strict vi compatitibilty"]) (fset 'vip-rebind-other-keys #[(&optional map fun) "  # # # # # # # # #" [map vip-mode-map define-key "" fun "" "" "" "" "" "" "" ""] 4 "\ Rebind"]) (byte-code "MM # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # @# AB# CD# EF# GH# IJ# KL# MN# OP# QR# ST# UV# WX# YZ# [\\# ]^# _`# ab# cd# ef# gh# ij# kl# mn# oP# pq# rs# tu# vw# xy# z{# |}# ~# # # # P# # # # # # # # # # P# # # # d# # # # # # # # # # # # # # # j#" [vip-make-emacs-keys-visible #[nil "\" # #" [set-default vip-insert-mode-vi-map nil vip-rebind-emacs-keys define-key vip-mode-map "" vip-ctl-c "" vip-keyboard-quit] 4] vip-become-vi #[nil " # # # # # # # # #\"" [define-key vip-mode-map "@" vip-nil "*" "#" "" "" suspend-emacs "" vip-backward-char "" "" vip-insert-mode-map self-insert-command t vip-is-vi global-set-key "" keyboard-quit] 4] define-key vip-mode-map " " vip-forward-char "!" vip-command-argument "\"" "#" "$" vip-goto-eol "%" vip-paren-match "&" #[nil "!" [vip-ex "&"] 2 nil nil] "'" vip-goto-mark-and-skip-white "(" vip-backward-sentence ")" vip-forward-sentence "*" call-last-kbd-macro "+" vip-next-line-at-bol "," vip-repeat-find-opposite "-" vip-previous-line-at-bol "." vip-repeat "/" vip-search-forward "0" vip-beginning-of-line "1" vip-digit-argument "2" "3" "4" "5" "6" "7" "8" "9" ":" vip-ex ";" vip-repeat-find "<" "=" ">" "?" vip-search-backward "@" vip-register-macro "A" vip-Append "B" vip-backward-Word "C" vip-change-to-eol "D" vip-kill-line "E" vip-end-of-Word "F" vip-find-char-backward "G" vip-goto-line "H" vip-window-top "I" vip-Insert "J" vip-join-lines "K" vip-nil "L" vip-window-bottom "M" vip-window-middle "N" vip-search-Next "O" vip-Open-line "P" vip-Put-back "Q" vip-query-replace "R" vip-overwrite "S" vip-substitute-line "T" vip-goto-char-backward "U" vip-undo "V" vip-find-file-other-screen "W" vip-forward-Word "X" vip-delete-backward-char "Y" vip-yank-line "ZZ" save-buffers-kill-emacs "\\" "[" vip-brac-function "]" vip-ket-function "_" vip-alternate-ESC "^" vip-bol-and-skip-white "`" vip-goto-mark "a" vip-append "b" vip-backward-word "c" "d" "e" vip-end-of-word "f" vip-find-char-forward "g" "h" vip-backward-char "i" vip-insert "j" vip-next-line "k" vip-previous-line "l" "m" vip-mark-point "n" vip-search-next "o" vip-open-line "p" vip-put-back "q" "r" vip-replace-char "s" vip-substitute "t" vip-goto-char-forward "u" "v" vip-find-file "w" vip-forward-word "x" vip-delete-char "y" "zH" vip-line-to-top "zM" vip-line-to-middle "zL" vip-line-to-bottom "z " "z." "z-" "{" vip-backward-paragraph "|" vip-goto-col "}" vip-forward-paragraph "~" vip-toggle-case ""] 4) (fset 'vip-version #[nil "!" [message "VIP version 4.4.2 of September 5, 1993"] 2 nil nil]) (defvar ex-token-type nil "\ type of token. if non-nil, gives type of address. if nil, it is a command.") (defvar ex-token nil "\ value of token.") (defvar ex-addresses nil "\ list of ex addresses") (defvar ex-flag nil "\ flag for ex flag") (defvar ex-buffer nil "\ name of ex buffer") (defvar ex-count nil "\ value of ex count") (defvar ex-g-flag nil "\ flag for global command") (defvar ex-g-variant nil "\ if t global command is executed on lines not matching ex-g-pat") (defvar ex-reg-exp nil "\ save reg-exp used in substitute") (defvar ex-repl nil "\ replace pattern for substitute") (defvar ex-g-pat nil "\ pattern for global command") (defvar ex-map (make-sparse-keymap) "\ save commands for mapped keys") (defvar ex-ins-map (make-sparse-keymap) "\ save commands for map!ped keys") (defconst ex-find-file-shell "csh" "\ Shell in which to interpret wildcards") (defvar ex-tag nil "\ save ex tag") (byte-code "!!!!!‡" [boundp ex-file nil ex-variant ex-offset ex-append ex-cmdfile] 2) (defvar ex-cycle-other-window t "\ * :n cycles through files in other window") (defvar ex-cycle-through-non-files nil "\ * cycle through *scratch* etc.") (fset 'vip-nil #[nil "!" [error ""] 2 nil nil]) (fset 'vip-looking-back #[(str) " #)`ĕU" [re-search-backward str nil t 0] 4 "\ returns t if looking back reg-exp STR before point."]) (fset 'vip-check-sub #[(str) "G\nGX\n O\nĉ)" [ex-token length str 0 "non-command" ex-token-type] 5 "\ check if ex-token is an initial segment of STR"]) (fset 'vip-get-ex-com-subr #[nil "`!!`!{ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!́@!ɁA!́B!́C!ɁD!ɁE!́F!ɁG!́H!ɁI!́J!ɁK!́K!ɁL!́M!ɁN!́O!́P!ɁQ!ɁR!́S!́Q!ɁT!ɁU!́V!ɁW!́X!́Y!ɁZ!Ɂ[!́\\!Ɂ]!́^!́Z!Ɂ_!Ɂ`!́`!́a!Ɂb!́c!Ɂd!́e!Ɂf!́f! " [set-mark re-search-forward "[a-z][a-z]*" "command" ex-token-type mark t ex-token exchange-point-and-mark looking-at "a" "ab" vip-check-sub "abbreviate" "ar" "args" "append" "[bh]" "non-command" "c" "cd" "ch" "chdir" "co" "copy" "change" "d" "delete" "e" "ex" "edit" "f" "file" "g" "global" "i" "insert" "j" "join" "l" "list" "m" "map" "mar" "mark" "move" "n" "nu" "number" "next" "o" "open" "p" "pre" "preserve" "pu" "put" "pw" "pwd" "print" "q" "quit" "r" "rec" "recover" "rew" "rewind" "read" "s" "se" "set" "sh" "shell" "so" "source" "sr" "st" "stop" "sus" "suspend" "substitute" "t" "ta" "tag" "u" "una" "unabbreviate" "unm" "unmap" "undo" "v" "ve" "version" "vi" "visual" "w" "wq" "write" "x" "xit" "y" "yank" "z"] 3 "\ get a complete ex command"]) (fset 'vip-get-ex-token #[nil "" [((byte-code "qw!g!u! !u͉!`!!ҘӪԘժ`!{!!uۉ!u݉!!!uc!҉!u҉!!!!uc!ԉ!uԉ!!u`!+l+!!p+k)!`!{!u!u`!+l+!!+!!du_)`S!{!u!u!g!u!u!!g!u!!" [" *ex-working-space*" " |" nil looking-at "[k#]" "command" ex-token-type char-to-string ex-token 1 "[a-z]" vip-get-ex-com-subr "\\." "dot" "[0-9]" set-mark re-search-forward "[0-9]*" "plus" "add-number" "minus" "sub-number" "abs-number" string-to-int mark t "\\$" "end" "%" "whole" "+" "+[-+]" "+[\n|]" "1" backward-char "+[0-9]" error "Badly formed address" "-" "-[-+]" "-[\n|]" "-[0-9]" "/" cont "[^/]*\\(/\\|\n\\)" vip-looking-back "[^\\\\]\\(\\\\\\\\\\)*\\\\/" "search-forward" "\\?" "[^\\?]*\\(\\?\\|\n\\)" "[^\\\\]\\(\\\\\\\\\\)*\\\\\\?" "\n" "search-backward" "," "comma" ";" "semi-colon" "[!=><&~]" "'" "goto-mark" "Marks are ' and a-z" "end-mark" "goto" "illegal token"] 4))] 1 "\ get an ex-token which is either an address or a command. a token has type (command, address, end-mark) and value."]) (fset 'vip-ex #[(&optional string) "\n\n#`\n   ΋ ҘӘ  B՘! Sט! C ً9ژ#)ޘdeBBߘ ` B  \n ` B% \n\"\"\" )%,ɉ" [nil zmacs-regions string ex-g-flag ex-g-variant vip-read-string ":" "" vip-ex-history t dot cont address com-str ((byte-code "!qed|\nñeb" [get-buffer-create " *ex-working-space*" com-str "\n"] 2)) ex-token-type ex-addresses vip-get-ex-token "command" "end-mark" ex-token "global" ex-global "v" vip-execute-ex-command ((byte-code "qw!u!!‡" [" *ex-working-space*" " " nil looking-at "|" 1 "\n" cont error "Extra character end of command"] 2)) "non-command" error "%s: %s" vip-ENOCMD "whole" "comma" "semi-colon" vip-get-ex-address-subr ans] 5 "\ ex commands within VIP." nil]) (fset 'vip-get-ex-pat #[nil "" [((byte-code "qw! ??uwg!u`! l #!\"!g b)!`UӪ`S!{!)" [" *ex-working-space*" " " nil looking-at "!" ex-g-variant ex-g-flag 1 c "[^\\\\\n]" set-mark t cont re-search-forward format "[^%c]*\\(%c\\|\n\\)" vip-looking-back "[^\\\\]\\(\\\\\\\\\\)*\\\\%c" mark "" ex-token backward-char] 5))] 1 "\ get a regular expression and set ex-variant if found"]) (fset 'vip-get-ex-command #[nil "" [((byte-code "q!uw! ɘ \"!g! u!" [" *ex-working-space*" looking-at "/" 1 " " nil "[a-z]" vip-get-ex-com-subr ex-token-type "non-command" error "%s: not an editor command" ex-token "[!=><&~]" char-to-string "Could not find an ex command"] 3))] 1 "\ get an ex command"]) (fset 'vip-get-ex-opt-gc #[(c) "" [((byte-code "q \"!uw! uʇ! uʇLJ" [" *ex-working-space*" looking-at format "%c" c 1 " " nil "g" ex-token t "c"] 4))] 1 "\ get an ex option g or c"]) (fset 'vip-default-ex-addresses #[(&optional whole-flag) " deBB``BBA?@B" [ex-addresses whole-flag nil] 3 "\ compute default addresses. whole-flag means whole buffer."]) (fset 'vip-get-ex-address #[nil " \n  ʘ ˘ ̘ ͘Ɖ^!W ИƉM ј!@ Ә!4 \")$ *" [point-marker t cont address "" ex-token nil ex-flag vip-get-ex-token ex-token-type "command" "print" "list" "#" error "address expected" "end-mark" "whole" "a trailing address is expected" "comma" "Extra characters after an address" vip-get-ex-address-subr ans] 4 "\ get an ex-address as a marker and set ex-flag if a flag is found"]) (fset 'vip-get-ex-address-subr #[(old-address dot) " \n= \n Ƙ\n ǘ b U S y ) ˘ b [y ) ̘eb U Sy ) ͘  Ϙ И ј \nb! ) Ԙ \nb! ) ՘  Z!b Z!b ) *" [nil old-address dot relative address ex-token-type "dot" "add-number" 0 ex-token point-marker "sub-number" "abs-number" "end" point-max-marker "plus" "minus" "search-forward" ex-search-address t "search-backward" "goto-mark" exchange-point-and-mark register-to-point 96] 3 "\ returns an address as a point"]) (fset 'ex-search-address #[(forward) "\n!\n y!y!" [ex-token "" vip-s-string error "No previous search string" forward 1 re-search-forward -1 re-search-backward] 2 "\ search pattern and set address"]) (fset 'vip-get-ex-buffer #[nil "ċ" [nil ex-buffer ex-count ex-flag ((byte-code "qw!guw!`!!`!{!w!u!?!" [" *ex-working-space*" " " nil looking-at "[a-zA-Z]" ex-buffer 1 "[0-9]" set-mark re-search-forward "[0-9][0-9]*" string-to-int mark t ex-count "[pl#]" ex-flag "[\n|]" error "Illegal extra characters"] 4))] 1 "\ get a buffer name and set ex-count and ex-flag if found"]) (fset 'vip-get-ex-count #[nil "ċ" [nil ex-variant ex-count ex-flag ((byte-code "qw!uw!`!!`!{!w!u!?!" [" *ex-working-space*" " " nil looking-at "!" t ex-variant 1 "[0-9]" set-mark re-search-forward "[0-9][0-9]*" string-to-int mark ex-count "[pl#]" ex-flag "[\n|]" error "Illegal extra characters"] 4))] 1]) (fset 'ex-expand-filsyms #[(cmd buf) " q !) \n\"!\n\n\"!!q\nceb# Ԕԕ{P!!!ۘ !\n!*Ge`{p! \") +" [nil ret pf cf buf buffer-file-name ex-next t string-match "[^\\]%\\|\\`%" cmd error "No current file to substitute for %" "[^\\]#\\|\\`#" "No alternate file to substitute for #" get-buffer-create " ex-tmp" re-search-forward "%\\|#" match-data 0 char data vip-looking-back "\\\\" replace-match store-match-data "%" kill-buffer message "%s"] 4 "\ expand % and # in ex command"]) (fset 'vip-get-ex-file #[nil "pNj)" [file-buf nil ex-file ex-variant ex-append ex-offset ex-cmdfile ((byte-code "qw!! uw!  uw!u`!!!`!{uw`!db!u!!`!{\"" [" *ex-working-space*" " " nil looking-at "!" vip-looking-back "[ ]" t ex-cmdfile ex-variant 1 ">>" ex-append 2 "+" set-mark re-search-forward "[ \n]" backward-char mark ex-offset re-search-backward "[^ \n]" "[ \n|]" ex-expand-filsyms file-buf ex-file] 4))] 1 "\ get a file name and set ex-variant, ex-append and ex-offset if found"]) (fset 'vip-execute-ex-command #[nil " Ø!Ƙ Ș ɘ ˘ ͘ Ϙ ј!Ә ՘ ט ٘!ۘ ݘ ߘ ᘫ 㘫 嘫 瘫 阫 똫 혫  񘫅ډ\"󘫃   !    @ AB!CB!DB!EF GH IJ KҁL!MҁN!O!Pډ\"QRSTUVW#XYZ[\\UVW#UVW#" [ex-token "args" ex-args "copy" ex-copy nil "cd" ex-cd "chdir" "delete" ex-delete "edit" ex-edit "file" vip-info-on-file "goto" ex-goto "join" ex-line "k" kill-this-buffer "mark" ex-mark "map" ex-map "move" t "next" ex-next "put" ex-put "pwd" ex-pwd "preserve" ex-preserve "quit" ex-quit "read" ex-read "recover" ex-recover "rewind" ex-rewind "set" ex-set "shell" ex-shell "source" ex-source "sr" ex-substitute "substitute" "suspend" suspend-emacs "stop" "t" "tag" ex-tag "undo" vip-undo "unmap" ex-unmap "version" vip-version "visual" "write" ex-write "wq" "xit" "yank" ex-yank "!" ex-command "=" ex-line-no ">" "right" "<" "left" "&" "~" "append" "change" "insert" "open" error "%s: %s" vip-ENOCMD "abbreviate" "list" "print" "unabbreviate" "z"] 4 "\ execute ex command using the value of addresses."]) (byte-code "MM" [vip-undisplayed-files #[nil " \"" [mapcar #[(b) " !? ! !Oɘ?))" [get-buffer-window b buffer-file-name f ex-cycle-through-non-files buffer-name s 0 1 " "] 4] buffer-list] 3] ex-args #[nil " `  \n\n@ \n@$ T\nA\nb !ώc ѱcc!` *." [vip-undisplayed-files "" nil 1 buffer-modified-p modified file-count end-point insert-point args l format "%s %d) %s" message "All files are displayed" ((byte-code " | !" [insert-point end-point set-buffer-modified-p modified] 2)) "\n\nThese files are not displayed in any window." "\n=============\n" "The numbers can be given as counts to :next. " "Press any key to continue.\n\n" "Undisplayed files. Press any key to continue" read-char] 7]] 2) (fset 'ex-cd #[nil " ˜ !!" [vip-get-ex-file ex-file "" "~" file-name-as-directory expand-file-name default-directory] 3 "\ ex cd. Default directory of this buffer changes"]) (fset 'ex-copy #[(del-flag) " \n@\nA@ b !!`\"\n`!\"`!\" ΐ\n@`!{!Տ) Ueb by@c+" [vip-default-ex-addresses vip-get-ex-address ex-addresses beg end address set-mark vip-enlarge-region mark t del-flag kill-region copy-region-as-kill ex-flag "*copy text*" princ ex-g-flag ex-g-variant kill-ring-yank-pointer nil (byte-code "!!)" [vip-read-string "[Hit return to continue] " kill-buffer "*copy text*"] 2) ((quit (byte-code "!)\"" [kill-buffer "*copy text*" signal quit nil] 3))) 0 1] 5 "\ ex copy and move command. DEL-FLAG means delete."]) (fset 'ex-delete #[nil " \n@\nA@ V! \"  `! Sy !`!\" ΐ`!{!ҏ!)XX\\`!#`!$`!|+" [vip-default-ex-addresses vip-get-ex-buffer ex-addresses beg end error "First address exceeds second" vip-enlarge-region exchange-point-and-mark ex-count set-mark mark t ex-flag " *delete text*" princ conditions (vip-read-string "[Hit return to continue] ") ((quit (byte-code "!)!" [kill-buffer " *delete text*" error ""] 2))) kill-buffer ex-buffer 65 90 vip-append-to-register 32 copy-to-register nil] 5 "\ ex delete"]) (fset 'ex-edit #[(&optional file) " \n !Ș\n !p!\"!!!!! ebՋ byʇ" [file vip-get-ex-file ex-variant buffer-modified-p buffer-file-name error "No write since last change (:e! overrides)" ex-file "" set-buffer-modified-p nil vip-ex-kill-buf y-or-n-p format "No file specified. Dired %s ?" default-directory get-file-buffer ex-find-file vip-ex-find-buf vip-change-mode-to-vi ex-offset ((byte-code "qed| ±eb" [" *ex-working-space*" ex-offset "\n"] 2)) vip-get-ex-address 0] 4 "\ ex-edit"]) (fset 'ex-find-file #[(filespec) " \"!q \"&ebm`\n`{ !!jp!) ! !!*" [nil f s string-match "[^a-zA-Z0-9_.-/]" filespec get-buffer-create " ex-tmp" call-process ex-find-file-shell t "-c" format "echo %s | tr ' ' '\\012'" find-file-noselect forward-to-indentation 1 kill-buffer vip-ex-find-buf get-file-buffer] 9]) (fset 'ex-global #[(variant) " !  !ʘ !    deD@A@V!\"  ymo!o`Yy`! !#   T B)yoʼn7y-+⋈@b!SAi-" [ex-g-flag ex-g-variant error "Global within global not allowed" variant nil t vip-get-ex-pat ex-token "Missing regular expression for global command" "" vip-s-string "No previous search string" ex-g-pat ex-addresses 0 beg end com-str mark-count marks "First address exceeds second" vip-enlarge-region exchange-point-and-mark point-marker limit cont backward-char 1 set-mark re-search-backward mark found -1 ((byte-code "q`TdS{‡" [" *ex-working-space*" com-str nil] 2)) vip-ex] 6 "\ ex global command"]) (fset 'ex-goto #[nil "`B`!@by" [ex-addresses nil push-mark 0] 2 "\ ex goto command"]) (fset 'ex-line #[(com) " \n@\nA@ V! \"  `! y ΐ`!{!ԏ!)`!#`) Sby+Ç" [vip-default-ex-addresses vip-get-ex-count ex-addresses nil point beg end error "First address exceeds second" vip-enlarge-region exchange-point-and-mark ex-count set-mark ex-flag " *text*" princ mark t conditions (byte-code "! `!#" [vip-read-string "[Hit return to continue] " ex-line-subr com mark t] 5) ((quit (ding))) kill-buffer ex-line-subr com 0] 5 "\ ex line commands. COM is join, shift-right or shift-left."]) (fset 'ex-line-subr #[(com beg end) "\n ^bm?`\n ]W`\n ]Xkmhy``S|\\ WȘɘ\n ^\n ]Ș  [#\n ]bu" [com "join" beg end nil 1 ex-variant fixup-whitespace "right" "left" indent-rigidly vip-shift-width] 5]) (fset 'ex-mark #[nil "\n`BË\n@b Z!*" [nil char ex-addresses ((byte-code "qw!guw!!!!!‡" [" *ex-working-space*" " " nil looking-at "[a-z]" char 1 "[\n|]" error "Extra characters at end of \"k\" command" "\"k\" requires a following letter" "Mark must specify a letter"] 2)) point-to-register 96] 3 "\ ex mark"]) (fset 'ex-map #[nil "ċ  \"  \"# \nEF# \"  \"# \nEF#+" [nil ins string char ((byte-code "q!uwg! u!!w!!`! !!`{LJ" [" *ex-working-space*" looking-at "!" t ins 1 " " nil char-to-string char "[ ]" error "Usage: :map char string" "[\n|]" "Missing rhs" set-mark end-of-buffer backward-char mark string] 2)) lookup-key ex-ins-map define-key vip-insert-mode-map vip-nil lambda (count) (interactive "p") execute-kbd-macro count ex-map vip-mode-map (count) (interactive "p")] 9 "\ ex map"]) (fset 'ex-unmap #[nil "Ë \n\"! \n\n\n\"# \n#\n\n\"! \n\n\n\"#\n\n#*" [nil ins char ((byte-code "q!uwg! uw!!LJ" [" *ex-working-space*" looking-at "!" t ins 1 " " nil char-to-string char "[\n|]" error "Only single character macros"] 2)) lookup-key ex-ins-map error "That macro wasn't mapped" define-key vip-insert-mode-map ex-map vip-mode-map] 6 "\ ex unmap"]) (fset 'ex-next #[(&optional previous) "" [ex-edit (byte-code " !Ș\"!\"!U\nW! \nV @ Av\nSVf Aa @ @ ! @!\"!+!*" [nil l count previous vip-get-ex-file char-or-string-p ex-offset ex-file "" string-match "[0-9]+" ex-edit t throw string-to-int 0 1 error "Usage: next (count >= 0)" vip-undisplayed-files ex-cycle-other-window get-lru-window selected-window w k window-buffer b set-window-buffer get-file-buffer bury-buffer "Not that many undisplayed files"] 5)] 2]) (fset 'ex-preserve #[nil "!!" [message "Autosaving all buffers that need to be saved..." do-auto-save t] 2 "\ Force auto save"]) (fset 'ex-put #[nil "`@  b U!!)" [ex-addresses point vip-get-ex-buffer ex-buffer vip-use-register 0 vip-Put-back 1 vip-put-back] 2 "\ ex put"]) (fset 'ex-pwd #[nil " !" [message default-directory] 2 "\ ex print working directory"]) (fset 'ex-quit #[nil "‹ U! p!)" [nil char ((byte-code "qwg‡" [" *ex-working-space*" " " nil char] 2)) 33 set-buffer-modified-p vip-is-vi save-buffers-kill-emacs vip-ex-kill-buf] 2 "\ ex quit"]) (fset 'ex-read #[nil " ` @b\nU!yȘ !  \"!)" [vip-get-ex-file ex-addresses point 0 next-line 1 ex-variant ex-file "" buffer-file-name error "No file specified" ex-cmdfile shell-command t insert-file] 4 "\ ex read"]) (fset 'ex-recover #[nil " \n! Ƙ! !  ! !" [vip-get-ex-file ex-append ex-offset error "Illegal extra characters" ex-file "" buffer-file-name "No file associated with this buffer" expand-file-name buffer-modified-p ex-variant "No write since last change (:rec! overrides)" recover-file] 2 "\ ex recover from emacs #file#"]) (fset 'ex-rewind #[nil "!" [message ":n can count the :args list now. :rewind is obsolete"] 2 "\ No rewind really. Instead tell about :next count"]) (fset 'ex-set #[nil "p!ȋ," [nil 0 buffer-name "setq" s b val var ((byte-code "qw!!`!w!`{ ̘ ͘  ј Ҙ  Ԙ ՘  ט ؘ  ٘ ژ  ܘ ݘ  ޘ ߘ  ᘬ ☫  㘬 䘫  昬 瘫  蘬 阫  똬 옫 =!!uw!!`! !!`{ 򘬆 󘫅    9   \"9  @A B\"CD9 $!EFG9 $!@!" [" *ex-working-space*" " " nil looking-at "[\n|]" error "Usage: set variable[= ]value" set-mark "^ =\n|" mark t var "ai" "autoindent" "vip-auto-indent" "t" val "noai" "noautoindent" "nil" "ic" "ignorecase" "vip-case-fold-search" "noic" "noignorecase" "ma" "magic" "vip-re-search" "noma" "nomagic" "ro" "readonly" "buffer-read-only" "noro" "noreadonly" "sm" "showmatch" "blink-matching-paren" "nosm" "noshowmatch" "ws" "wrapscan" "vip-search-wrap-around-t" "nows" "nowrapscan" 0 1 "Missing rhs" end-of-buffer backward-char "sw" "shiftwidth" "vip-shift-width" "ts" "tabstop" "tab-width" "setq-default" s "wm" "wrapmargin" "fill-column" format "(- (window-width) %s)" "sh" "shell" "explicit-shell-file-name" "\"%s\"" message "%s %s %s" eval read-from-string "(%s %s %s)"] 8))] 4]) (fset 'ex-shell #[nil " " [shell] 1 "\ ex shell"]) (fset 'ex-source #[nil " ˜ ! !" [vip-get-ex-file ex-file "" load vip-custom-file-name] 2 "\ ex-source - just load the file or ~/.vip"]) (fset 'ex-substitute #[(&optional repeat r-flag) " \n   Θ     !Иpl @b`!Sy`!BB)``BBA@B@A@\"`!]b )`!^b`W y l #\n!m` !euJ #\n!` !u,. by\n!." [nil matched-pos opt-c opt-g repl pat delim repeat ex-token vip-get-ex-pat r-flag vip-s-string ex-reg-exp ex-repl "" vip-get-ex-opt-gc "g" t vip-get-ex-count ex-count ex-addresses set-mark mark eol-mark cont end beg vip-enlarge-region point-marker limit 0 re-search-forward y-or-n-p "Replace? " replace-match message "done"] 7 "\ ex substitute. if REPEAT use previous reg-exp which is ex-reg-exp or vip-s-string"]) (fset 'ex-tag #[nil "‹ Ø  ȏ)" [nil tag ((byte-code "qw`!w!`{‡" [" *ex-working-space*" " " nil set-mark "^ | \n" mark t tag] 2)) "" ex-tag vip-change-mode-to-emacs conditions (byte-code " \" ! " [tag "" find-tag ex-tag t find-tag-other-window vip-change-mode-to-vi] 3) ((error (byte-code " \n!" [vip-change-mode-to-vi vip-message-conditions conditions] 2)))] 3 "\ ex tag"]) (fset 'ex-write #[(q-flag) "! @ A@ĉ \n \nV!  \n\"`!#Ҙ!! !\"! \n\"`!%`!Z! )!Ҫ \n\"%$% p!." [vip-default-ex-addresses t vip-get-ex-file ex-addresses nil ex-write-cmd ret old-point size beg end error "First address exceeds second" ex-cmdfile vip-enlarge-region shell-command-on-region mark ex-file "" buffer-file-name "No file associated with this buffer" expand-file-name file-exists-p ex-variant format "\"%s\" File exists - use w! to override" write-region ex-append 1 set-buffer-modified-p clear-visited-file-modtime delete-auto-save-file-if-necessary message "\"%s\"%s %d lines, %d characters" " [New file]" count-lines q-flag vip-is-vi save-buffers-kill-emacs vip-ex-kill-buf] 7 "\ ex write"]) (fset 'ex-yank #[nil " \n@\nA@ V! \"  \n! `! Sy !`!\"!`!$`!\"+" [vip-default-ex-addresses vip-get-ex-buffer ex-addresses beg end error "First address exceeds second" vip-enlarge-region exchange-point-and-mark ex-g-flag ex-g-variant "Can't yank within global" ex-count set-mark mark t ex-flag "Extra chacters at end of command" ex-buffer copy-to-register nil copy-region-as-kill] 5 "\ ex yank"]) (fset 'ex-command #[nil "‹ p\"OƘ OP! \n !\n@\nA@      b !`!\"`! $) b*)" [nil command ((byte-code "qw`d{" [" *ex-working-space*" " " nil command] 2)) ex-expand-filsyms 0 1 "!" vip-ex-last-shell-com error "No previous shell command" ex-addresses shell-command beg end set-mark vip-enlarge-region mark t shell-command-on-region] 6 "\ execute shell command"]) (fset 'ex-line-no #[nil "ye`\"T)\"" [message "%d" 0 count-lines] 5 "\ print line number"]) (byte-code " ! ! MM!!!!!!!!!!!!χ" [file-exists-p vip-custom-file-name load vip-want-history vip-get-history vip-always vip-mode term-setup-hook default-major-mode vip-tmp-hook #[nil " " [vip-mode] 1] vip-set-hook #[(h) "<@C>B" [h lambda vip-tmp-hook] 2] boundp emacs-lisp-mode-hook nil TeX-mode-hook c-mode-hook c++-mode-hook lisp-interaction-mode-hook text-mode-hook] 2)