;ELC   
;;; compiled by kwzh@hal.gnu.ai.mit.edu on Tue Apr 25 18:09:32 1995
;;; from file /gd/gnu/emacs/19.0/lisp/vip.el
;;; emacs version 19.28.90.40.
;;; bytecomp version FSF 2.10
;;; 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 "`/gd/gnu/emacs/19.0/lisp/vip.el' was compiled for Emacs 19"))


#@49 Local map used in emacs mode. (buffer specific)
(defvar vip-emacs-local-map nil (#$ . 475))
#@58 Local map used in insert command mode. (buffer specific)
(defvar vip-insert-local-map nil (#$ . 573))
(byte-code "!!" [make-variable-buffer-local vip-emacs-local-map vip-insert-local-map] 2)
#@54 Remember insert point as a marker. (buffer specific)
(defvar vip-insert-point nil (#$ . 776))
(byte-code " \"!" [set-default vip-insert-point make-marker make-variable-buffer-local] 3)
#@51 Remember com point as a marker. (buffer specific)
(defvar vip-com-point nil (#$ . 974))
(byte-code " \"!" [set-default vip-com-point make-marker make-variable-buffer-local] 3)
#@57 Current mode.  One of emacs-mode, vi-mode, insert-mode.
(defvar vip-current-mode nil (#$ . 1163))
(byte-code "!\"" [make-variable-buffer-local vip-current-mode set-default emacs-mode] 3)
#@57 value of mode-line-buffer-identification in emacs-mode.
(defvar vip-emacs-mode-line-buffer-identification nil (#$ . 1363))
(byte-code "!\"" [make-variable-buffer-local vip-emacs-mode-line-buffer-identification set-default ("Emacs: %17b")] 3)
#@84 vip-current-major-mode is the major-mode vi considers it is now.
(buffer specific)
(defvar vip-current-major-mode nil (#$ . 1618))
(make-variable-buffer-local (quote vip-current-major-mode))
#@42 last shell command executed by ! command
(defvar vip-last-shell-com nil (#$ . 1815))
#@54 name of register to store deleted or yanked strings.
(defvar vip-use-register nil (#$ . 1906))
#@102 If non-nil, it's value is a list (M-COM VAL COM), and is used to
re-execute last destructive command
(defvar vip-d-com nil (#$ . 2008))
#@51 *The number of colums shifted by > and < command.
(defconst vip-shift-width 8 (#$ . -2150))
#@62 *If t then do regexp replace, if nil then do string replace.
(defconst vip-re-replace nil (#$ . -2248))
#@48 The character remembered by the vi "r" command
(defvar vip-d-char nil (#$ . 2358))
#@24 for use by ";" command
(defvar vip-f-char nil (#$ . 2447))
#@24 for use by "." command
(defvar vip-F-char nil (#$ . 2512))
#@24 for use by ";" command
(defvar vip-f-forward nil (#$ . 2577))
#@24 for use by ";" command
(defvar vip-f-offset nil (#$ . 2645))
#@28 *if t, search wraps around
(defconst vip-search-wrap-around t (#$ . -2712))
#@60 *if t, search is reg-exp search, otherwise vanilla search.
(defconst vip-re-search nil (#$ . -2794))
#@20 last search string
(defvar vip-s-string nil (#$ . 2901))
#@26 if t, search is forward.
(defvar vip-s-forward nil (#$ . 2964))
#@30 *if t, search ignores cases.
(defconst vip-case-fold-search nil (#$ . -3034))
#@62 *If t then do regexp replace, if nil then do string replace.
(defconst vip-re-query-replace nil (#$ . -3118))
#@37 *if t, indent when open a new line.
(defconst vip-open-with-indent nil (#$ . -3234))
#@106 *if t then C-h is bound to help-command in insert mode, if nil then it is
bound to delete-backward-char.
(defconst vip-help-in-insert-mode nil (#$ . -3326))
#@44 string inserted at the beginning of region
(defvar vip-quote-string "> " (#$ . 3489))
(byte-code "! B! B\"" [boundp vip-tags-file-name "TAGS" current-load-list vip-inhibit-startup-message nil global-set-key "" vip-change-mode-to-vi] 3)
#@40 (COUNT BODY) Execute BODY COUNT times.
(defalias 'vip-loop '(macro . #[(count body) "	DCEDEFE" [let count while > 0 body setq 1-] 9 (#$ . 3754)]))
#@86 Set mark at LOCATION (point, by default) and push old mark on mark ring.
No message.
(defalias 'vip-push-mark-silent #[(&optional location) " \"  !BG\fV\" \f@ŉ\fSš) `!" [mark copy-marker mark-marker mark-ring mark-ring-max nil set-mark location] 4 (#$ . 3919)])
#@21 Go to ARG's column.
(defalias 'vip-goto-col #[(arg) "	!	!\fiTV !)\" `œy\fSu2 \f#*" [vip-p-val arg vip-getcom com val nil error "" vip-com-point 0 vip-execute-com vip-goto-col] 4 (#$ . 4209) "P"])
(defalias 'vip-copy-keymap #[(map) "  !" [map make-sparse-keymap copy-keymap] 2])
#@71 Change mode to NEW-MODE---either emacs-mode, vi-mode, or insert-mode.
(defalias 'vip-change-mode #[(new-mode) "	= =7 	= `\" +  	\n !\f!! = `ѓ	=Y  	\n !\f_ !\f!\f!\f#\f#\f ۂ #\f# = !! " [new-mode vip-current-mode vi-mode insert-mode vip-copy-region-as-kill vip-insert-point vip-repeat-insert-command current-local-map vip-emacs-local-map mode-line-buffer-identification vip-emacs-mode-line-buffer-identification vip-copy-keymap vip-insert-local-map vip-change-mode-line "Vi:   " use-local-map vip-mode-map nil emacs-mode "Insert" define-key "" vip-change-mode-to-vi "" vip-ESC "" vip-help-in-insert-mode help-command delete-backward-char "" vip-delete-backward-word "Emacs:" force-mode-line-update] 4 (#$ . 4529)])
#@74 If BEG and END do not belong to the same buffer, it copies empty region.
(defalias 'vip-copy-region-as-kill #[(beg end) "" [nil (copy-region-as-kill beg end) ((error (byte-code "	\"" [copy-region-as-kill beg] 3)))] 3 (#$ . 5356)])
#@117 Assuming that the mode line format contains the string "Emacs:", this
function replaces the string by "Vi:   " etc.
(defalias 'vip-change-mode-line #[(string) "\n \n PC" [string "Emacs:" vip-emacs-mode-line-buffer-identification " %17b" mode-line-buffer-identification] 2 (#$ . 5602)])
#@30 Turn on VIP emulation of VI.
(defalias 'vip-mode #[nil "? ! ceb!5 !!qdbc p!)!!p!! " [vip-inhibit-startup-message switch-to-buffer "VIP Startup Message" erase-buffer "VIP is a Vi emulation package for GNU Emacs.  VIP provides most Vi commands\nincluding Ex commands.  VIP is however different from Vi in several points.\nYou can get more information on VIP by:\n    1.  Typing `M-x info' and selecting menu item \"vip\".\n    2.  Typing `C-h k' followed by a key whose description you want.\n    3.  Printing VIP manual which can be found as GNU/man/vip.texinfo\n    4.  Printing VIP Reference Card which can be found as GNU/etc/vipcard.tex\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 "~/.vip" "\n(setq vip-inhibit-startup-message t)\n" save-buffer kill-buffer message "VIP startup message inhibited." sit-for 2 "" t vip-change-mode-to-vi] 3 (#$ . 5905) nil])
#@25 Change mode to vi mode.
(defalias 'vip-change-mode-to-vi #[nil "!" [vip-change-mode vi-mode] 2 (#$ . 6971) nil])
#@29 Change mode to insert mode.
(defalias 'vip-change-mode-to-insert #[nil "!" [vip-change-mode insert-mode] 2 (#$ . 7093) nil])
#@28 Change mode to emacs mode.
(defalias 'vip-change-mode-to-emacs #[nil "!" [vip-change-mode emacs-mode] 2 (#$ . 7227) nil])
#@178 Escape to Emacs mode 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 'vip-escape-to-emacs #[(arg &optional events) "  \n!ˎ!!)\f\"+" [nil current-local-map old-map key com events unread-command-events arg prefix-arg use-local-map vip-emacs-local-map ((use-local-map old-map)) key-binding read-key-sequence command-execute] 3 (#$ . 7359) "P"])
#@32 Print CONDITIONS as a message.
(defalias 'vip-message-conditions #[(conditions) "@A	 \n\" \n	!# *" [conditions msg case message "%s" "%s %s" prin1-to-string ding] 5 (#$ . 7860)])
#@32 Emulate ESC key in Emacs mode.
(defalias 'vip-ESC #[(arg) "	\"" [vip-escape-to-emacs arg (27)] 3 (#$ . 8062) "P"])
#@32 Emulate C-c key in Emacs mode.
(defalias 'vip-ctl-c #[(arg) "	\"" [vip-escape-to-emacs arg (3)] 3 (#$ . 8186) "P"])
#@32 Emulate C-x key in Emacs mode.
(defalias 'vip-ctl-x #[(arg) "	\"" [vip-escape-to-emacs arg (24)] 3 (#$ . 8311) "P"])
#@32 Emulate C-h key in Emacs mode.
(defalias 'vip-ctl-h #[(arg) "	\"" [vip-escape-to-emacs arg (8)] 3 (#$ . 8437) "P"])
#@135 Compute numeric prefix arg value.  Invoked by CHAR.  VALUE is the value
obtained so far, and COM is the command part obtained so far.
(defalias 'vip-prefix-arg-value #[(char value com) "Y$ X$   _Z\\  3 BUE ! 4 C" [char 48 57 value 0 10 read-char prefix-arg com 85 vip-describe-arg unread-command-events] 4 (#$ . 8563)])
#@33 Vi operator as prefix argument.
(defalias 'vip-prefix-arg-com #[(char value com) "	 \nUH \nUH \nUH \nUH \nUH \nUH \nUH \nUH \nUH \nUH \nU i \nUY \nU] !\nBщ \nUu \nU \n щ \nU  \\ щ \nU \nU \n \nU \nBщ \nU  X X X X  ! ) \n  ):\"B\nU! \nC@U2@U[@AB\nUP!U!щ*df⚃yB!嚃B!皃 隃B!뚃B!욃B!횃B!B!!" [t cont char 99 100 121 33 60 62 61 35 114 82 34 com error "" nil read-char 128 reg 65 122 49 57 vip-use-register value prefix-arg 85 vip-describe-arg unread-command-events vip-region vip-Region 1 (99 . 99) vip-line 67 (100 . 100) 68 (100 . 121) vip-yank-defun (121 . 121) 89 (60 . 60) (62 . 62) (33 . 33) (61 . 61)] 4 (#$ . 8940)])
(defalias 'vip-describe-arg #[(arg) "\f!\f!\n! 	 !1 	\"1 	, \n\"1 \n	#*" [nil com val vip-P-val arg vip-getcom 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."] 4])
#@46 Begin numeric argument for the next command.
(defalias 'vip-digit-argument #[(arg) "	:\n A#" [vip-prefix-arg-value last-command-char nil arg] 4 (#$ . 10156) "P"])
#@41 Accept a motion command as an argument.
(defalias 'vip-command-argument #[(arg) "" [conditions (byte-code "	\n\n Â  \n: \n@  \n \n  !\n( Â> \n:2 \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 (#$ . 10331) "P"])
#@40 Get value part of prefix-argument ARG.
(defalias 'vip-p-val #[(arg) " : @ @" [arg 1] 1 (#$ . 10686)])
#@40 Get value part of prefix-argument ARG.
(defalias 'vip-P-val #[(arg) ": @" [arg] 1 (#$ . 10811)])
#@38 Get com part of prefix-argument ARG.
(defalias 'vip-getcom #[(arg) " : A" [arg nil] 1 (#$ . 10921)])
#@52 Get com part of prefix-argument ARG and modify it.
(defalias 'vip-getCom #[(arg) "	!Ú Ă# \nŚ Ƃ# \nǚ\" Ȃ# \n)" [vip-getcom arg com 99 67 100 68 121 89] 3 (#$ . 11040)])
#@102 Append region to text in register REG.
START and END are buffer positions indicating what to append.
(defalias 'vip-append-to-register #[(reg start end) "		!	 \f{P\"" [set-register reg get-register "" start end] 5 (#$ . 11230)])
#@112 (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
(defalias 'vip-execute-com #[(m-com val com) "\n\nU `\"\nU\" `\"\nU. \nU ! `\"t XT XT  `$r Xl Xl \\ `#r ! `|)!\nU   \nU  X X `$ X X \\`# != `\"\nUQ! `\"0XX `$.X(X(\\ `#.!=8 `\"\"=J) \nUXqXq`$XX\\`#!`\"b\nU! `\"XX `$XX\\ `#! `\")b\nU\nU-! `\" `\nU$!-&-$)\nUS! `\" `VH  `#)\nUt! `\" `4[#)b\nU! `\" `4#)b\nY\nZ!\"8\nU\nU\nU\n[\n	F9)" [vip-use-register reg com 99 vip-change vip-com-point -99 vip-change-subr 67 -67 set-mark vip-enlarge-region mark 97 122 copy-to-register nil 65 90 vip-append-to-register 32 error "" open-line 1 vip-change-mode-to-insert yank 100 last-command d-command kill-region this-command 68 D-command m-com vip-line back-to-indentation 121 copy-region-as-kill 89 33 -33 shell-command-on-region vip-read-string "!" vip-last-shell-com t 61 exchange-point-and-mark indent-region 60 indent-rigidly vip-shift-width 62 128 vip-special-prefix-com val vip-d-com] 5 (#$ . 11472)])
#@256 (ARG)  Re-execute 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.
(defalias 'vip-repeat #[(arg) "=	  @!AA@8	\n	' A@	\n0 !\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 (#$ . 12951) "P"])
#@67 This command is invoked interactively by the key sequence #<char>
(defalias 'vip-special-prefix-com #[(char) "U `^`]\"U `^`]\"U+ ! U8 ! UB `\"" [char 99 downcase-region vip-com-point 67 upcase-region 103 set-mark vip-global-execute 113 vip-quote-region 115 spell-region] 4 (#$ . 13469)])
#@23 Undo previous change.
(defalias 'vip-undo #[nil "! !ŉ" [message "undo!" undo-start undo-more 2 vip-undo this-command] 2 (#$ . 13801) nil])
#@36 Continue undoing previous changes.
(defalias 'vip-undo-more #[nil "!!ĉ" [message "undo more!" undo-more 1 vip-undo this-command] 2 (#$ . 13958)])
(defalias 'vip-string-tail #[(str) "? ? O" [str "" 1 nil] 3])
(defalias 'vip-yank-defun #[nil " ` \"" [mark-defun copy-region-as-kill mark] 3])
#@37 Enlarge region between BEG and END.
(defalias 'vip-enlarge-region #[(beg end) "	W b	! 	b!y m% n) !y	V4  " [beg end set-mark 0 exchange-point-and-mark next-line 1] 2 (#$ . 14280)])
#@54 Call last keyboad macro for each line in the region.
(defalias 'vip-global-execute #[nil "` V\n  y ` W# yy  " [mark exchange-point-and-mark 0 call-last-kbd-macro 1] 2 (#$ . 14494)])
#@97 Quote region by inserting the user supplied string at the beginning of
each line in the region.
(defalias 'vip-quote-region #[nil "\"!Ř  \f)` \"` V$  cyy` WD nD cyy- " [vip-read-string format "quote string (default \"%s\"): " vip-quote-string str "" vip-enlarge-region mark exchange-point-and-mark 0 1] 5 (#$ . 14701)])
#@42 Check if the string ends with a newline.
(defalias 'vip-end-with-a-newline-p #[(string) " \nGSHU" [text "" string 10] 2 (#$ . 15064)])
(defalias 'vip-read-string #[(prompt &optional init) "	!	#	#	#Ώ\n)" [copy-keymap minibuffer-local-map save-minibuffer-local-map define-key "" backward-char "" backward-word "" exit-minibuffer nil str conditions (byte-code "	\n\"" [read-string prompt init str] 3) ((quit (byte-code "\"" [save-minibuffer-local-map minibuffer-local-map signal quit nil] 3)))] 4])
#@182 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.
(defalias 'vip-repeat-insert-command #[nil "@A@	! 	V! \n	SE!\n	E*" [vip-d-com val i-com 1 114 vip-repeat nil] 3 (#$ . 15613)])
#@2 
(defalias 'vip-insert #[(arg) "	!	!\fE+ \fV'  S )-  *" [vip-p-val arg vip-getcom com val vip-insert 114 vip-d-com count 0 yank vip-change-mode-to-insert] 4 (#$ . 15942) "P"])
#@21 Append after point.
(defalias 'vip-append #[(arg) "	!	!\fEl uƚ4 \f	V0  	S	 )6  *" [vip-p-val arg vip-getcom com val vip-append 114 vip-d-com nil count 0 yank vip-change-mode-to-insert] 4 (#$ . 16151) "P"])
#@24 Append at end of line.
(defalias 'vip-Append #[(arg) "	!	!\fEƚ0 \f	V,  	S	 )2  *" [vip-p-val arg vip-getcom com val vip-Append 114 vip-d-com nil count 0 yank vip-change-mode-to-insert] 4 (#$ . 16392) "P"])
#@32 Insert before first non-white.
(defalias 'vip-Insert #[(arg) "	!	!\fE ƚ0 \f	V,  	S	 )2  *" [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 (#$ . 16632) "P"])
#@18 Open line below.
(defalias 'vip-open-line #[(arg) "	!	!\fE 	ƚA \f\nV= !1 	j \nS\n )S !Q 	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-open-with-indent yank vip-change-mode-to-insert] 4 (#$ . 16896) "P"])
#@18 Open line above.
(defalias 'vip-Open-line #[(arg) "	!	!\fE 	ƚA \f\nV= y!1 	j \nS\n )S y!Q 	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-open-with-indent yank vip-change-mode-to-insert] 4 (#$ . 17227) "P"])
#@21 Open line at point.
(defalias 'vip-open-line-at-point #[(arg) "	!	!\fEƚ1 \fV- ! S )7 ! *" [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 (#$ . 17556) "P"])
#@24 Substitute characters.
(defalias 'vip-substitute #[(arg) "	!	!`!\fuƚ  `\"%  `\")\fE*" [vip-p-val arg vip-getcom com val set-mark 114 vip-change-subr mark vip-change vip-substitute vip-d-com] 3 (#$ . 17830) "P"])
#@19 Substitute lines.
(defalias 'vip-substitute-line #[(arg) "	B!" [vip-line arg 67] 3 (#$ . 18073) "p"])
(defalias 'vip-line #[(arg) "@A`ē\nS!\n	#*" [arg com val vip-com-point nil next-line vip-execute-com vip-line] 4])
#@32 Yank ARG lines (in vi's sense)
(defalias 'vip-yank-line #[(arg) "	!\nB!)" [vip-p-val arg val vip-line 89] 3 (#$ . 18311) "P"])
(defalias 'vip-region #[(arg) "	!	!`Ɠ \f#*" [vip-P-val arg vip-getcom com val vip-com-point nil exchange-point-and-mark vip-execute-com vip-region] 4 nil "P"])
(defalias 'vip-Region #[(arg) "	!	!`Ɠ \f#*" [vip-P-val arg vip-getCom com val vip-com-point nil exchange-point-and-mark vip-execute-com vip-Region] 4 nil "P"])
#@56 Replace the following ARG chars by the character read.
(defalias 'vip-replace-char #[(arg) "	!	!\fEƚ 	  \f\"*" [vip-p-val arg vip-getcom com val vip-replace-char 114 vip-d-com vip-replace-char-subr vip-d-char read-char] 3 (#$ . 18795) "P"])
(defalias 'vip-replace-char-subr #[(char arg) "	\"	V 	 	[V' cS )	!" [delete-char arg t char vip-d-char 0 count backward-char] 4])
#@152 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.
(defalias 'vip-replace-string #[nil " Ă\f !Ƙ( ?\" ʂ# \"!K B 	#K 	\"!#, 		\"!\")" [nil str vip-read-string vip-re-replace "Replace regexp: " "Replace string: " "" message format "Replace mode changed to %s." "regexp replace" "string replace" re-search-forward t replace-match "Replace regexp \"%s\" with: " replace-string "Replace \"%s\" with: "] 7 (#$ . 19217) nil])
#@106 Move point right ARG characters (left if ARG negative).On reaching end
of buffer, stop and signal error.
(defalias 'vip-forward-char #[(arg) "	!	! `Ɠ\fu \f#*" [vip-p-val arg vip-getcom com val vip-com-point nil vip-execute-com vip-forward-char] 4 (#$ . 19783) "P"])
#@114 Move point left ARG characters (right if ARG negative).  On reaching
beginning of buffer, stop and signal error.
(defalias 'vip-backward-char #[(arg) "	!	! `Ɠ\f! \f#*" [vip-p-val arg vip-getcom com val vip-com-point nil backward-char vip-execute-com vip-backward-char] 4 (#$ . 20074) "P"])
#@15 Forward word.
(defalias 'vip-forward-word #[(arg) "	!	! `Ɠ\fvwK U( U/ !vU; UF !vw\f#*" [vip-p-val arg vip-getcom com val vip-com-point nil " 	\n" 99 -99 backward-word 1 100 121 " 	" vip-execute-com vip-forward-word] 4 (#$ . 20389) "P"])
#@36 Move point to end of current word.
(defalias 'vip-end-of-word #[(arg) "	!	! `Ɠu\fv & u\f#*" [vip-p-val arg vip-getcom com val vip-com-point nil backward-char vip-execute-com vip-end-of-word] 4 (#$ . 20677) "P"])
#@16 Backward word.
(defalias 'vip-backward-word #[(arg) "	!	! `Ɠ\f! \f#*" [vip-p-val arg vip-getcom com val vip-com-point nil backward-word vip-execute-com vip-backward-word] 4 (#$ . 20918) "P"])
#@44 Forward word delimited by white character.
(defalias 'vip-forward-Word #[(arg) "	!	! `Ɠ\f$K U( U/ !vU; UF !vw\f#*" [vip-p-val arg vip-getcom com val vip-com-point nil re-search-forward "[^ 	\n]*[ 	\n]+" t 99 -99 backward-word 1 100 121 " 	" vip-execute-com vip-forward-Word] 5 (#$ . 21135) "P"])
#@59 Move forward to end of word delimited by white character.
(defalias 'vip-end-of-Word #[(arg) "	!	! `Ɠu\f$   , u\f#*" [vip-p-val arg vip-getcom com val vip-com-point nil re-search-forward "[^ 	\n]+" t backward-char vip-execute-com vip-end-of-Word] 5 (#$ . 21483) "P"])
#@45 Backward word delimited by white character.
(defalias 'vip-backward-Word #[(arg) "	!	! `Ɠ\f$  u# eb, \f#*" [vip-p-val arg vip-getcom com val vip-com-point nil re-search-backward "[ 	\n]+[^ 	\n]+" t vip-execute-com vip-backward-Word] 5 (#$ . 21784) "P"])
#@26 Go to beginning of line.
(defalias 'vip-beginning-of-line #[(arg) "	!	! `Ɠ\f! \f#*" [vip-p-val arg vip-getcom com val vip-com-point nil beginning-of-line vip-execute-com vip-beginning-of-line] 4 (#$ . 22069) "P"])
#@49 Beginning of line at first non-white character.
(defalias 'vip-bol-and-skip-white #[(arg) "	!	! `Ɠ  \f#*" [vip-p-val arg vip-getcom com val vip-com-point nil back-to-indentation vip-execute-com vip-bol-and-skip-white] 4 (#$ . 22308) "P"])
#@20 Go to end of line.
(defalias 'vip-goto-eol #[(arg) "	!	! `Ɠ\f \f#*" [vip-p-val arg vip-getcom com val vip-com-point nil vip-execute-com vip-goto-eol] 4 (#$ . 22572) "P"])
#@18 Go to next line.
(defalias 'vip-next-line #[(arg) "	!	! `Ɠ\f!	! \f#*" [vip-p-val arg vip-getCom com val vip-com-point nil line-move next-line this-command vip-execute-com vip-next-line] 4 (#$ . 22768) "P"])
#@33 Next line at beginning of line.
(defalias 'vip-next-line-at-bol #[(arg) "	!	! `Ɠ\f! ! \f#*" [vip-p-val arg vip-getCom com val vip-com-point nil next-line back-to-indentation vip-execute-com vip-next-line-at-bol] 4 (#$ . 23001) "P"])
#@22 Go to previous line.
(defalias 'vip-previous-line #[(arg) "	!	! `Ɠ\f[!	\" \f#*" [vip-p-val arg vip-getCom com val vip-com-point nil next-line previous-line this-command vip-execute-com vip-previous-line] 4 (#$ . 23260) "P"])
#@37 Previous line at beginning of line.
(defalias 'vip-previous-line-at-bol #[(arg) "	!	! `Ɠ\f[! \" \f#*" [vip-p-val arg vip-getCom com val vip-com-point nil next-line back-to-indentation vip-execute-com vip-previous-line] 4 (#$ . 23511) "P"])
#@24 Change to end of line.
(defalias 'vip-change-to-eol #[(arg) "	B!" [vip-goto-eol arg 99] 3 (#$ . 23777) "P"])
#@14 Delete line.
(defalias 'vip-kill-line #[(arg) "	B!" [vip-goto-eol arg 100] 3 (#$ . 23895) "P"])
#@53 Go to ARG's line.  Without ARG go to end of buffer.
(defalias 'vip-goto-line #[(arg) "	!	!`Ɠ`!\f db\" eb\fSy . \f#*" [vip-P-val arg vip-getCom com val vip-com-point nil set-mark back-to-indentation vip-execute-com vip-goto-line] 4 (#$ . 24000) "P"])
#@154 Find ARG's occurrence of CHAR on the current line.  If FORWARD then
search is forward, otherwise backward.  OFFSET is used to adjust point
after search.
(defalias 'vip-find-char #[(arg char forward offset) " 	\n 	[	V- l !  `!y`}> n7 !8 `y`}	VK eTbN db	\f!	$)`	Vj dUv 	Wz eUz !*	V  ΂ ς  Ȃ \\b*" [forward arg nil point 0 error "" next-line 1 case-fold-search search-forward char-to-string char offset -2 -1] 5 (#$ . 24280)])
#@216 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.
(defalias 'vip-find-char-forward #[(arg) "	!	!V  	 \f[( \f`ʓ\f	!V7 9 $\f[P u\f#*" [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 (#$ . 24785) "P"])
#@36 Go up to char ARG forward on line.
(defalias 'vip-goto-char-forward #[(arg) "	!	!V  	\n \f[( `̓\f	!V7 9 ȉ$\f[P u\f#*" [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 (#$ . 25326) "P"])
#@33 Find char ARG on line backward.
(defalias 'vip-find-char-backward #[(arg) "	!	!V  	\n \f[( `ȓ\f	!V7 9 ȉ$\f[M \f#*" [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 (#$ . 25687) "P"])
#@37 Go up to char ARG backward on line.
(defalias 'vip-goto-char-backward #[(arg) "	!	!V  	 \f[( \f`ȓ\f	!V7 9 $\f[M \f#*" [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 (#$ . 26042) "P"])
#@31 Repeat previous find command.
(defalias 'vip-repeat-find #[(arg) "	!	! `Ɠ\f	\n$, 	' u\f#*" [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 (#$ . 26403) "P"])
#@57 Repeat previous find command in the opposite direction.
(defalias 'vip-repeat-find-opposite #[(arg) "	!	! `Ɠ\f	?\n$- 	( u\f#*" [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 (#$ . 26684) "P"])
#@25 Switch to other window.
(defalias 'vip-other-window #[(arg) "	!\n=? p!Ř  " [other-window arg vip-current-mode emacs-mode buffer-name " *Minibuf-1*" vip-change-mode-to-vi] 2 (#$ . 27010) "p"])
#@25 Go to home window line.
(defalias 'vip-window-top #[(arg) "	!	! `Ɠ\fS! \f#*" [vip-p-val arg vip-getCom com val vip-com-point nil move-to-window-line vip-execute-com vip-window-top] 4 (#$ . 27219) "P"])
#@27 Go to middle window line.
(defalias 'vip-window-middle #[(arg) "	!	! `Ɠ Sɥ\fS\\!% \f#*" [vip-p-val arg vip-getCom com val vip-com-point nil move-to-window-line window-height 2 vip-execute-com vip-window-middle] 4 (#$ . 27446) "P"])
#@25 Go to last window line.
(defalias 'vip-window-bottom #[(arg) "	!	! `Ɠ\f[! \f#*" [vip-p-val arg vip-getCom com val vip-com-point nil move-to-window-line vip-execute-com vip-window-bottom] 4 (#$ . 27704) "P"])
#@36 Put current line on the home line.
(defalias 'vip-line-to-top #[(arg) "	S!" [recenter arg] 2 (#$ . 27937) "p"])
#@38 Put current line on the middle line.
(defalias 'vip-line-to-middle #[(arg) "	S Så\\!" [recenter arg window-height 2] 4 (#$ . 28057) "p"])
#@36 Put current line on the last line.
(defalias 'vip-line-to-bottom #[(arg) " \nTZ!" [recenter window-height arg] 3 (#$ . 28205) "p"])
#@33 Go to the matching parenthesis.
(defalias 'vip-paren-match #[(arg) "	!	5 	V 	W ! dV) dȥ	_. d	_ȥb  !Z \nE \f`͓!\nU \n#   !} u\nm \f`͓!\n \n# !)" [vip-getcom arg com 99 1 error "Prefix must be between 1 and 99." 80000 100 back-to-indentation looking-at "[([{]" vip-com-point nil forward-sexp vip-execute-com vip-paren-match backward-char "[])}]" backward-sexp ""] 4 (#$ . 28346) "P"])
#@19 Forward sentence.
(defalias 'vip-forward-sentence #[(arg) "	!	! `Ɠ\f! #*" [vip-p-val arg vip-getcom com val vip-com-point nil forward-sentence vip-execute-com vip-forward-sentence] 4 (#$ . 28799) "P"])
#@20 Backward sentence.
(defalias 'vip-backward-sentence #[(arg) "	!	! `Ɠ\f! #*" [vip-p-val arg vip-getcom com val vip-com-point nil backward-sentence vip-execute-com vip-backward-sentence] 4 (#$ . 29027) "P"])
#@20 Forward paragraph.
(defalias 'vip-forward-paragraph #[(arg) "	!	! `Ɠ\f! #*" [vip-p-val arg vip-getCom com val vip-com-point nil forward-paragraph vip-execute-com vip-forward-paragraph] 4 (#$ . 29259) "P"])
#@21 Backward paragraph.
(defalias 'vip-backward-paragraph #[(arg) "	!	! `Ɠ\f! #*" [vip-p-val arg vip-getCom com val vip-com-point nil backward-paragraph vip-execute-com vip-backward-paragraph] 4 (#$ . 29491) "P"])
#@24 Scroll to next screen.
(defalias 'vip-scroll #[(arg) "V V%  S V%  T " [arg 0 scroll-up scroll-down] 3 (#$ . 29727) "p"])
#@28 Scroll to previous screen.
(defalias 'vip-scroll-back #[(arg) "	[!" [vip-scroll arg] 2 (#$ . 29878) "p"])
#@24 Scroll up half screen.
(defalias 'vip-scroll-down #[(arg) "  å!!" [arg scroll-down window-height 2] 3 (#$ . 29992) "P"])
#@21 Scroll up one line.
(defalias 'vip-scroll-down-one #[(arg) "	!" [scroll-down arg] 2 (#$ . 30129) "p"])
#@26 Scroll down half screen.
(defalias 'vip-scroll-up #[(arg) "  å!!" [arg scroll-up window-height 2] 3 (#$ . 30240) "P"])
#@23 Scroll down one line.
(defalias 'vip-scroll-up-one #[(arg) "	!" [scroll-up arg] 2 (#$ . 30375) "p"])
#@37 Show current buffer in two windows.
(defalias 'vip-buffer-in-two-windows #[nil " !" [delete-other-windows split-window-vertically nil] 2 (#$ . 30484) nil])
#@169 Search a string forward.  ARG is used to find the ARG's occurrence
of the string.  Default is vanilla search.  Search mode can be toggled by
giving null search string.
(defalias 'vip-search-forward #[(arg) "	!	! ɂ !̘6 ?0 Ђ1 \"!M \f#M  Փ\f#*" [vip-P-val arg vip-getcom com val t vip-s-forward vip-read-string vip-re-search "RE-/" "/" vip-s-string "" message format "Search mode changed to %s search." "regular expression" "vanilla" vip-search vip-com-point mark nil vip-execute-com vip-search-next] 5 (#$ . 30652) "P"])
#@170 Search a string backward.  ARG is used to find the ARG's occurrence
of the string.  Default is vanilla search.  Search mode can be toggled by
giving null search string.
(defalias 'vip-search-backward #[(arg) "	!	! ɂ !̘6 ?0 Ђ1 \"!M \f#M  œ\f#*" [vip-P-val arg vip-getcom com val nil vip-s-forward vip-read-string vip-re-search "RE-?" "?" vip-s-string "" message format "Search mode changed to %s search." "regular expression" "vanilla" vip-search vip-com-point mark vip-execute-com vip-search-next] 5 (#$ . 31227) "P"])
#@137 (STRING FORWARD COUNT &optional NO-OFFSET) Search COUNT's occurrence of
STRING.  Search will be forward if FORWARD, otherwise backward.
(defalias 'vip-search #[(string forward arg &optional no-offset init-point) "	!	!	!?\f? `	\n\f+ Џ/ ҏ." [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 " m u\n \f$\f!( \f$\f!\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\fB%bA\"" [null-arg vip-search-wrap-around vip-search string forward 1 com t start-point signal search-failed conditions] 6))) (byte-code " \nÉ\f$ \nÉ\f$!" [vip-re-search re-search-backward string nil val search-backward push-mark start-point] 5) ((search-failed (byte-code " 	 db\fB%bA\"" [null-arg vip-search-wrap-around vip-search string forward 1 com t start-point signal search-failed conditions] 6)))] 6 (#$ . 31802)])
#@25 Repeat previous search.
(defalias 'vip-search-next #[(arg) "	!	! !		#  \f#*" [vip-p-val arg vip-getcom com val vip-s-string error "No previous search string." vip-search vip-s-forward vip-execute-com vip-search-next] 4 (#$ . 32941) "P"])
#@50 Repeat previous search in the reverse direction.
(defalias 'vip-search-Next #[(arg) "	!	! !	?	#! \f#*" [vip-p-val arg vip-getcom com val vip-s-string error "No previous search string." vip-search vip-s-forward vip-execute-com vip-search-Next] 4 (#$ . 33205) "P"])
#@41 Switch to buffer in the current window.
(defalias '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 (#$ . 33495) nil])
#@37 Switch to buffer in another window.
(defalias '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 (#$ . 33747) nil])
#@16 Kill a buffer.
(defalias 'vip-kill-buffer #[nil "p!\"! p 	!\" 	\"\n!. !4 \n!7 !*" [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 (#$ . 34021) nil])
#@35 Visit file in the current window.
(defalias 'vip-find-file #[nil "!	!! )" [nil file read-file-name "visit file: " switch-to-buffer find-file-noselect vip-change-mode-to-vi] 3 (#$ . 34365) nil])
#@31 Visit file in another window.
(defalias 'vip-find-file-other-window #[nil "!	!! )" [nil file read-file-name "Visit file: " switch-to-buffer-other-window find-file-noselect vip-change-mode-to-vi] 3 (#$ . 34575) nil])
#@64 Give information of the file associated to the current buffer.
(defalias 'vip-info-on-file #[nil " \f   e`\"Ted\"T$" [message "\"%s\" line %d of %d" buffer-file-name "" count-lines] 7 (#$ . 34807) nil])
#@21 yank TEXT silently.
(defalias 'vip-yank #[(text) "`!	c )w" [vip-push-mark-silent text exchange-point-and-mark " 	" nil] 2 (#$ . 35027)])
#@34 Put back after point/below line.
(defalias 'vip-put-back #[(arg) "	!\n\" \nX \nX \nZ\"% \n!% !	\n	E \nA \n\")E !	!X !yc lc mc u\n\nF\nV 	!Sp +" [vip-p-val arg vip-use-register 49 57 current-kill do-not-rotate get-register 0 text val reg nil error "Nothing in register %c" "" vip-end-with-a-newline-p next-line 1 vip-put-back vip-d-com count vip-yank] 5 (#$ . 35179) "P"])
#@31 Put back at point/above line.
(defalias 'vip-Put-back #[(arg) "	!\n\" \nX \nX \nZ\"% \n!% !	\n	E \nA \n\")E !	!Q y\n\nF\nVq 	!S^ +" [vip-p-val arg vip-use-register 49 57 current-kill do-not-rotate get-register 0 text val reg nil error "Nothing in register %c" "" vip-end-with-a-newline-p vip-Put-back vip-d-com count vip-yank] 5 (#$ . 35628) "P"])
#@19 Delete character.
(defalias 'vip-delete-char #[(arg) "	!\nE7 X* X* \\``\nZ#4 ``\nZ$\n\")" [vip-p-val arg val vip-delete-char nil vip-d-com vip-use-register 65 90 vip-append-to-register 32 copy-to-register delete-char t] 5 (#$ . 36044) "P"])
#@28 Delete previous character.
(defalias 'vip-delete-backward-char #[(arg) "	!\nE7 X* X* \\``\n\\#4 ``\n\\$\n\")" [vip-p-val arg val vip-delete-backward-char nil vip-d-com vip-use-register 65 90 vip-append-to-register 32 copy-to-register delete-backward-char t] 5 (#$ . 36324) "P"])
#@67 Join this line to next, if ARG is nil.  Otherwise, join ARG lines
(defalias 'vip-join-lines #[(arg) "	!\nE\n Ƃ \nSV6 m- y``S| S *" [vip-P-val arg val vip-join-lines nil vip-d-com 1 count 0 fixup-whitespace] 4 (#$ . 36642) "*P"])
(defalias 'vip-change #[(beg end) "\f{\"!\f\"" [vip-read-string format "%s => " beg end c-string vip-change-subr] 5])
(defalias 'vip-change-subr #[(beg end) " \n$\n\"c" [vip-use-register copy-to-register beg end nil kill-region vip-change this-command c-string] 5])
#@151 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.
(defalias 'vip-query-replace #[nil " Ă\f !Ƙ& ?! ɂ\" \"? 6 		\"!\"? 		\"!\")" [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 (#$ . 37202) nil])
(defalias 'vip-mark-beginning-of-buffer #[nil "`!eb !" [set-mark exchange-point-and-mark message "mark set at the beginning of buffer"] 2 nil nil])
(defalias 'vip-mark-end-of-buffer #[nil "`!db !" [set-mark exchange-point-and-mark message "mark set at the end of buffer"] 2 nil nil])
(defalias 'vip-mark-point #[(char) "	X 	X 	Z\"	U  	U%  	U.  	U8 !	UA  !" [97 char 122 point-to-register 96 nil 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"])
#@13 Go to mark.
(defalias 'vip-goto-mark #[(arg) " \n!\f#*" [read-char vip-getcom arg com char vip-goto-mark-subr nil] 4 (#$ . 38344) "P"])
#@49 Go to mark and skip to first non-white on line.
(defalias 'vip-goto-mark-and-skip-white #[(arg) " \n!\f#*" [read-char vip-getCom arg com char vip-goto-mark-subr t] 4 (#$ . 38494) "P"])
(defalias 'vip-goto-mark-subr #[(char com skip-white) "	XS 	XS p\f `Ɠ	Z!b	&   \fQ pD 	= ͂> \f#Q !b !)	t 	Ut \fg `Ɠ \f \f#	 	U \f `Ɠ  \f \f#!" [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])
(defalias 'vip-exchange-point-and-mark #[nil "  " [exchange-point-and-mark back-to-indentation] 1 nil nil])
#@44 Abort partially formed or running command.
(defalias 'vip-keyboard-quit #[nil " " [nil vip-use-register keyboard-quit] 1 (#$ . 39258) nil])
#@28 Emulate C-c in Emacs mode.
(defalias 'vip-ctl-c-equivalent #[(arg) "\n\"" [vip-ctl-key-equivalent "" arg] 3 (#$ . 39408) "P"])
#@28 Emulate C-x in Emacs mode.
(defalias 'vip-ctl-x-equivalent #[(arg) "\n\"" [vip-ctl-key-equivalent "" arg] 3 (#$ . 39545) "P"])
(defalias 'vip-ctl-key-equivalent #[(key arg) " 	X 	X 	ZH	D\")" [read-char char 65 90 64 vip-escape-to-emacs arg key 0] 4])
#@23 Delete previous word.
(defalias 'vip-delete-backward-word #[(arg) "`!\n!` |)" [set-mark backward-word arg mark] 2 (#$ . 39823) "p"])
(byte-code " L################################@ #A B #C B #D B #E B #F B #G B #H B #I B #J B #K L #M N #O #P #Q #R S #T #U V #W X #Y Z #[ \\ #] ^ #_ ` #a b #c d #e f #g h #i j #k l #m n #o p #q r #s t #u v #w x #y z #{ | #} #~  #  #  #  #  # #  # #  # #  #  #  # # #  #  #  #  #  #  #  #  #  #  #  #  # #  #  #  #  #  #  #  # #  #  #  #  #  #  #  #  #  # #  #сD  #с  #" [vip-mode-map make-keymap define-key "" beginning-of-line "" vip-scroll-back "" vip-ctl-c "" vip-scroll-up "" vip-scroll-up-one "" vip-scroll "" vip-keyboard-quit "" help-command "" "" vip-other-window "" vip-open-line-at-point "" vip-scroll-down "" vip-ctl-x "" vip-scroll-down-one "" vip-change-mode-to-emacs "" vip-ESC " " "!" vip-command-argument "\"" "#" "$" vip-goto-eol "%" vip-paren-match "&" vip-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 "@" "A" vip-Append "B" vip-backward-Word "C" vip-ctl-c-equivalent "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-kill-buffer "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-replace-string "S" vip-switch-to-buffer-other-window "T" vip-goto-char-backward "U" "V" vip-find-file-other-window "W" vip-forward-Word "X" vip-ctl-x-equivalent "Y" vip-yank-line "ZZ" save-buffers-kill-emacs "[" "\\" vip-escape-to-emacs "]" "^" 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" vip-info-on-file "h" vip-backward-char "i" vip-insert "j" vip-next-line "k" vip-previous-line "l" vip-forward-char "m" vip-mark-point "n" vip-search-next "o" vip-open-line "p" vip-put-back "q" "r" vip-replace-char "s" vip-switch-to-buffer "t" vip-goto-char-forward "u" vip-undo "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-delete-backward-char ctl-x-map vip-buffer-in-two-windows "	" insert-file] 4)
(defalias 'vip-version #[nil "!" [message "VIP version 3.5 of September 15, 1987"] 2 nil nil])
#@78 type of token.  if non-nil, gives type of address.  if nil, it
is a command.
(defvar ex-token-type nil (#$ . 43245))
#@17 value of token.
(defvar ex-token nil (#$ . 43368))
#@22 list of ex addresses
(defvar ex-addresses nil (#$ . 43425))
#@18 flag for ex flag
(defvar ex-flag nil (#$ . 43491))
#@19 name of ex buffer
(defvar ex-buffer nil (#$ . 43548))
#@19 value of ex count
(defvar ex-count nil (#$ . 43608))
#@25 flag for global command
(defvar ex-g-flag nil (#$ . 43667))
#@64 if t global command is executed on lines not matching ex-g-pat
(defvar ex-g-variant nil (#$ . 43733))
#@33 save reg-exp used in substitute
(defvar ex-reg-exp nil (#$ . 43841))
#@32 replace pattern for substitute
(defvar ex-repl nil (#$ . 43916))
#@28 pattern for global command
(defvar ex-g-pat nil (#$ . 43987))
#@31 save commands for mapped keys
(defvar ex-map (make-sparse-keymap) (#$ . 44055))
#@13 save ex tag
(defvar ex-tag nil (#$ . 44141))
(byte-code "! B! B!  B!- B" [boundp ex-file nil current-load-list ex-variant ex-offset ex-append] 2)
(defalias 'vip-nil #[nil "!" [error ""] 2 nil nil])
#@53 returns t if looking back reg-exp STR before point.
(defalias 'vip-looking-back #[(str) "	#) `ĕU" [re-search-backward str nil t 0] 4 (#$ . 44385)])
#@48 check if ex-token is an initial segment of STR
(defalias 'vip-check-sub #[(str) "G\nGX \n	O \n ĉ)" [ex-token length str 0 "non-command" ex-token-type] 5 (#$ . 44547)])
#@27 get a complete ex command
(defalias 'vip-get-ex-com-subr #[nil "`!!` { !: !& !!3 !!!E !_ !X !!!l !! ! !!! !! !! !! !! !! ! !! !!!!!!!!!<!(!!5!!!I!!p!\\!!i!!!!ˁ@ !ȁA !ˁB !ȁC !ˁD !ȁE !ˁF !ˁG !ȁH !ȁI !ˁJ !ˁH !ȁK !ȁL !ˁM !ȁN !ˁO !ˁP !ȁQ !IȁR !/ˁS !ȁT !@ˁU !ˁQ !ȁV !kȁW !bˁW !ˁX !ȁY !|ˁZ !ȁ[ !ˁ\\ !ȁ] !ˁ] ! " [set-mark re-search-forward "[a-z][a-z]*" "command" ex-token-type mark ex-token exchange-point-and-mark looking-at "a" "ab" vip-check-sub "abbreviate" "ar" "args" "append" "[bh]" "non-command" "c" "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" "print" "q" "quit" "r" "rec" "recover" "rew" "rewind" "read" "s" "se" "set" "sh" "shell" "so" "source" "st" "stop" "substitute" "t" "ta" "tag" "u" "una" "unabbreviate" "unm" "unmap" "undo" "v" "ve" "version" "vi" "visual" "w" "wq" "write" "x" "xit" "y" "yank" "z"] 2 (#$ . 44738)])
#@115 get an ex-token which is either an address or a command.
a token has type (command, address, end-mark) and value.
(defalias 'vip-get-ex-token #[nil "" [((byte-code "qw! g!u!!  !/ u͉!` `!!ҘH ӂT ԘS ՂT ` {!!n uډ!| u܉! ! ! uc!҉! u҉!! ! ! uc!ԉ! uԉ!!$u`!+l+!! + )!` {!u!gu`!+lZ+Z!!J+!!4u4)`S {!u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 "\\$" "end" "%" "whole" "+" "+[-+]" "+[\n|]" "1" backward-char "+[0-9]" error "Badly formed address" "-" "-[-+]" "-[\n|]" "-[0-9]" "/" t 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"] 3))] 1 (#$ . 46169)])
#@25 ex commands within VIP.
(defalias 'vip-ex #[(&optional string) "  !`	\nˋ  И9 јr 	E 	BӘW !% ՘i !%  ׋# ؘ \"!# ܘ deBB# ݘ 	 ` 	B# ޘ 	 		 ` 	B# 	\"   	)# ," [string nil ex-g-flag ex-g-variant vip-read-string ":" 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 at end of a command"] 2)) "non-command" error format "%s: Not an editor command" "whole" "comma" "semi-colon" vip-get-ex-address-subr ans] 5 (#$ . 47513) nil])
#@54 get a regular expression and set ex-variant if found
(defalias 'vip-get-ex-pat #[nil "" [((byte-code "qw! ??uw!\\ u`!lE E !!, , ) `UQ тV `S {!" [" *ex-working-space*" " 	" nil looking-at "!" ex-g-variant ex-g-flag 1 "/" set-mark t cont re-search-forward "[^/]*\\(/\\|\n\\)" vip-looking-back "[^\\\\]\\(\\\\\\\\\\)*\\\\/" mark "" ex-token backward-char] 2))] 1 (#$ . 48412)])
#@19 get an ex command
(defalias 'vip-get-ex-command #[nil "" [((byte-code "q!\f uw!&  ɘ7 \f\"!4 g!\fu!" [" *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 (#$ . 48854)])
#@25 get an ex option g or c
(defalias 'vip-get-ex-opt-gc #[nil "" [((byte-code "q!\f uw! uȇ!, uȇŇ" [" *ex-working-space*" looking-at "/" 1 " 	" nil "g" ex-token t "c"] 2))] 1 (#$ . 49224)])
#@60 compute default addresses.  whole-flag means whole buffer.
(defalias 'vip-default-ex-addresses #[(&optional whole-flag) " 	 deBB ``BBA?$ @B" [ex-addresses whole-flag nil] 3 (#$ . 49449)])
#@66 get an ex-address as a marker and set ex-flag if a flag is found
(defalias 'vip-get-ex-address #[nil " \nu  	ʘ: ˘* ̘* ͘3 Ɖ !\n 	ИG Ɖ 	јU !\n 	Әc !\n  \"q )\n *" [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 (#$ . 49662)])
#@31 returns an address as a point
(defalias 'vip-get-ex-address-subr #[(old-address dot) "\n \fŘ  \fƘ4 \nb\nU) S+ y ) \fʘJ \nb[y ) \f˘l ebU` h Sy ) \f̘x   \fΘ \fϘ \fИ ! ) \fӘ ! ) \fԘ    Z!b )	)" [nil address old-address dot 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 (#$ . 50178)])
#@32 search pattern and set address
(defalias '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 (#$ . 50767)])
#@57 get a buffer name and set ex-count and ex-flag if found
(defalias 'vip-get-ex-buffer #[nil "ċ" [nil ex-buffer ex-count ex-flag ((byte-code "qw! guw!0 `!!` {!w!< u!?F !" [" *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 ex-count "[pl#]" t ex-flag "[\n|]" error "Illegal extra characters"] 3))] 1 (#$ . 51020)])
(defalias 'vip-get-ex-count #[nil "ċ" [nil ex-variant ex-count ex-flag ((byte-code "qw! uw!1 `!!` {!w!= u!?G !" [" *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"] 3))] 1])
#@70 get a file name and set ex-variant, ex-append and ex-offset if found
(defalias 'vip-get-ex-file #[nil "ŋ" [nil ex-file ex-variant ex-append ex-offset ((byte-code "qw! uw!* 	uw!L u`!!!` {uw`!!!` {" [" *ex-working-space*" " 	" nil looking-at "!" t ex-variant 1 ">>" ex-append 2 "+" set-mark re-search-forward "[ 	\n]" backward-char mark ex-offset ex-file] 2))] 1 (#$ . 51844)])
#@50 execute ex command using the value of addresses.
(defalias 'vip-execute-ex-command #[nil "	  Ø !Ƙ  Ș%  ʘ.  ̘8 !ΘA  ИJ  јS  Ә] !՘f  טo  ٘x  ۘ  ݘ  ߘ  ᘃ  㘃 !䘃  昃  蘃  ꘃ  옃  혃 ! !     \f!! !+ԉ\"KKKK@ XA B C \"!D E F G H I J K L M N A B O \"!A B P \"!" [ex-token "goto" ex-goto "copy" ex-copy nil "delete" ex-delete "edit" ex-edit "file" vip-info-on-file "join" ex-line "k" ex-mark "mark" "map" ex-map "move" t "put" ex-put "quit" ex-quit "read" ex-read "set" ex-set "shell" ex-shell "substitute" ex-substitute "stop" suspend-emacs "t" "tag" ex-tag "undo" vip-undo "unmap" ex-unmap "version" vip-version "visual" "write" ex-write "wq" "yank" ex-yank "!" ex-command "=" ex-line-no ">" "right" "<" "left" "&" "~" "append" "args" "change" "insert" "open" error format "%s: no such command from VIP" "abbreviate" "list" "next" "print" "preserve" "recover" "rewind" "source" "unabbreviate" "xit" "z" "%s: not implemented in VIP" "%s: Not an editor command"] 4 (#$ . 52300)])
#@17 ex goto command
(defalias 'ex-goto #[nil " `B`!@by" [ex-addresses nil push-mark 0] 2 (#$ . 53578)])
#@51 ex copy and move command.  DEL-FLAG means delete.
(defalias 'ex-copy #[(del-flag) "  \n@\nA@\fb! `\"	) ` \"/ ` \"\fX ͐	F F L !P ` {!Տ)Ue ebk by!c+" [vip-default-ex-addresses vip-get-ex-address ex-addresses beg end address set-mark vip-enlarge-region mark del-flag kill-region copy-region-as-kill ex-flag "*copy text*" princ ex-g-flag ex-g-variant current-kill 0 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))) 1] 4 (#$ . 53697)])
#@11 ex delete
(defalias 'ex-delete #[nil "  \n@\nA@\fV !\f\" 	1 `!	Sy5 \f!` \"\fW ͐` {!я!)  Xw Xw \\` # ` $` |+" [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 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 (#$ . 54329)])
#@9 ex-edit
(defalias 'ex-edit #[nil " 	    ! 	P!q eb6 ̋ byχ" [vip-get-ex-file ex-variant buffer-modified-p buffer-file-name error "No write since last change (:e! overrides)" vip-change-mode-to-emacs find-file-noselect default-directory ex-file vip-change-mode-to-vi ex-offset ((byte-code "qed|	±eb" [" *ex-working-space*" ex-offset "\n"] 2)) vip-get-ex-address 0 nil] 3 (#$ . 54942)])
#@19 ex global command
(defalias 'ex-global #[(variant) " 	 ! \f   * !ʘD = !L L V deD@A@Vv !\"   ym o ! o `Y y`! #    	   T B)yo ŉ y +⋈@b!SA -" [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 (#$ . 55371)])
#@60 ex line commands.  COM is join, shift-right or shift-left.
(defalias 'ex-line #[(com) "  \n@\nA@V !\" 2 `!yO ΐ` {!ӏ!)W ` #`)\fSby+Ç" [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 conditions (byte-code "!` #" [vip-read-string "[Hit return to continue] " ex-line-subr com mark] 4) ((quit (ding))) kill-buffer ex-line-subr com 0] 4 (#$ . 56214)])
(defalias 'ex-line-subr #[(com beg end) "; \n^bm?: `\n]Wh `\n]X m y``S|   ȘG ɘh \n^\n]ȘY \\ [#\n]bu" [com "join" beg end nil 1 ex-variant fixup-whitespace "right" "left" indent-rigidly vip-shift-width] 5])
#@9 ex mark
(defalias 'ex-mark #[nil "\n\n `BË\n@b	Z\"*" [nil char ex-addresses ((byte-code "qw!# guw!4 !4 !0 !4 !" [" *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 (#$ . 57045)])
#@8 ex map
(defalias 'ex-map #[nil "Ë\n\" \n\n\" #\n	EEBD!#*" [nil string char ((byte-code "qwg!uw! !`! ! `{" [" *ex-working-space*" " 	" nil char-to-string char 1 looking-at "[\n|]" error "Missing rhs" set-mark end-of-buffer backward-char mark string] 2)) lookup-key ex-map define-key vip-mode-map vip-nil eval quote lambda (count) (interactive "p") execute-kbd-macro count] 11 (#$ . 57432)])
#@10 ex unmap
(defalias 'ex-unmap #[nil "\f	\" !	\f	\"#\f	#)" [nil char ((byte-code "qwg!uw! !" [" *ex-working-space*" " 	" nil char-to-string char 1 looking-at "[\n|]" error "Macro must be a character"] 2)) lookup-key ex-map error "That macro wasn't mapped" define-key vip-mode-map] 6 (#$ . 57889)])
#@8 ex put
(defalias 'ex-put #[nil " `\n @ 	b	U !\" !)" [ex-addresses point vip-get-ex-buffer ex-buffer vip-use-register 0 vip-Put-back 1 vip-put-back] 2 (#$ . 58230)])
#@9 ex quit
(defalias 'ex-quit #[nil "	U !  )" [nil char ((byte-code "qwg" [" *ex-working-space*" " 	" nil char] 2)) 33 kill-emacs t save-buffers-kill-emacs] 2 (#$ . 58420)])
#@9 ex read
(defalias 'ex-read #[nil " `\n @bU !yɋ\f/ \"2 \n!," [ex-addresses nil file command variant point 0 next-line 1 ((byte-code "qw!' uw`! `{\n9 `!!!` {" [" *ex-working-space*" " 	" nil looking-at "!" t variant 1 set-mark mark command re-search-forward "[ 	\n]" backward-char file] 2)) shell-command t insert-file] 5 (#$ . 58618)])
(defalias 'ex-set #[nil "!!!E!" [eval setq read-variable "Variable: " read-minibuffer "Value: "] 6])
#@10 ex shell
(defalias 'ex-shell #[nil "  " [vip-change-mode-to-emacs shell] 1 (#$ . 59137)])
#@83 ex substitute.
If REPEAT use previous reg-exp which is ex-reg-exp or
vip-s-string
(defalias 'ex-substitute #[(&optional repeat r-flag) "   0 	' \n) \f] ͘< \n> \n V \f] \f s Ϙn ] ]    @b`!Sy` BB)  ``BB A @B@A@\"` ]b )` ^b`WC y!l#\n! `\f! u #:\n4!:`\f!u .	L	by\nV!-" [nil matched-pos opt-c opt-g repl pat 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"] 6 (#$ . 59237)])
#@8 ex tag
(defalias 'ex-tag #[nil "	Ø 	 ȏ)" [nil tag ((byte-code "qw`!w `{" [" *ex-working-space*" " 	" nil set-mark "^ |	\n" mark 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 (#$ . 60072)])
#@10 ex write
(defalias 'ex-write #[(q-flag) "! Ę  ! ! 7 !7 \n7 \"!@A@VN !\"` %+g n  " [vip-default-ex-addresses t vip-get-ex-file ex-file "" buffer-file-name error "No file associated with this buffer" expand-file-name file-exists-p ex-variant format "\"%s\" File exists - use w! to override" ex-addresses beg end "First address exceeds second" vip-enlarge-region write-region mark ex-append q-flag save-buffers-kill-emacs] 6 (#$ . 60512)])
#@9 ex yank
(defalias 'ex-yank #[nil "  \n@\nA@\fV !\f\" 	* \n. !\f? `!\fSyC \f!` \"R !` ` $` \"+" [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 ex-flag "Extra characters at end of command" ex-buffer copy-to-register nil copy-region-as-kill] 5 (#$ . 61029)])
#@23 execute shell command
(defalias 'ex-command #[nil " 	!9 @A@ b!` \"` 	$)b*)" [nil command ((byte-code "qw`! `{" [" *ex-working-space*" " 	" nil set-mark mark command] 2)) ex-addresses shell-command beg end set-mark vip-enlarge-region mark shell-command-on-region t] 5 (#$ . 61517)])
#@19 print line number
(defalias 'ex-line-no #[nil "e\f d @\"T\"" [message "%d" count-lines ex-addresses] 5 (#$ . 61856)])
(byte-code "!\n !" [file-exists-p "~/.vip" load] 2)
