;;; compiled by eric@geech.gnu.ai.mit.edu on Fri Mar 26 21:09:39 1993
;;; from file /gd/gnu/emacs/19.0/lisp/vip.el
;;; emacs version 19.0.509.
;;; bytecomp version FSF 2.08
;;; optimization is on.

(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-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-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 (quote vip-current-major-mode))
(defvar vip-last-shell-com nil "\
last shell command executed by ! command")
(defvar vip-use-register nil "\
name of register to store deleted or yanked strings.")
(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")
(defconst vip-shift-width 8 "\
*The number of colums shifted by > and < command.")
(defconst vip-re-replace nil "\
*If t then do regexp replace, if nil then do string replace.")
(defvar vip-d-char nil "\
The character remenbered by the vi \"r\" command")
(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")
(defconst vip-search-wrap-around t "\
*if t, search wraps around")
(defconst vip-re-search nil "\
*if t, search is reg-exp search, otherwise vanilla search.")
(defvar vip-s-string nil "\
last search string")
(defvar vip-s-forward nil "\
if t, search is forward.")
(defconst vip-case-fold-search nil "\
*if t, search ignores cases.")
(defconst vip-re-query-replace nil "\
*If t then do regexp replace, if nil then do string replace.")
(defconst vip-open-with-indent nil "\
*if t, indent when open a new line.")
(defconst 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-quote-string "> " "\
string inserted at the beginning of region")
(byte-code "! ! \"" [boundp vip-tags-file-name "TAGS" vip-inhibit-startup-message nil global-set-key "" vip-change-mode-to-vi] 3)
(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) " %  !BGV% \"@\"S\"\"\n, `!" [mark copy-marker mark-marker mark-ring mark-ring-max move-marker nthcdr nil setcdr set-mark location] 5 "\
Set mark at LOCATION (point, by default) and push old mark on mark ring.
No message."])
(fset 'vip-goto-col #[(arg) "	!	! iTV !)\" 	`\"!S!4 #*" [vip-p-val arg vip-getcom com val end-of-line error "" move-marker vip-com-point forward-line 0 forward-char 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 (quote vip-copy-keymap) #[(map) "  !" [map make-sparse-keymap copy-keymap] 2])
(fset 'vip-change-mode #[(new-mode) "	= =7 	= `\" +  	\n !!! = `\"	=Y  	\n !_ !!!## ۂ ## = !! " [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 move-marker 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:" vip-refresh-mode-line] 4 "\
Change mode to NEW-MODE.  NEW-MODE is either emacs-mode, vi-mode,
or insert-mode."])
(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) "	\"  	PC" [string= string "Emacs:" vip-emacs-mode-line-buffer-identification " %17b" mode-line-buffer-identification] 3 "\
Assuming that the mode line format contains the string \"Emacs:\", this
function replaces the string by \"Vi:   \" etc."])
(fset '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 "\
Turn on VIP emulation of VI." 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) " \"   !	\"Q \"?? 	!C 	!# 	=M  	 \n! \"k \n!# 	!{ \n	!# \n!# \n=  \n+" [nil g-bind l-bind char str string= "" 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) "< \n\"A \nH ĂC !- 9) KC C K< !A B ))" [map assq char val nil keymapp fun] 4 "\
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 C\n Q \n\"!H !VD !cS1 ) \" +" [nil t first buff com char unread-command-events arg prefix-arg vip-get-editor-command vip-emacs-local-map global-map numberp 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-escape-to-emacs arg 27] 3 "\
Emulate ESC key in Emacs mode." "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-prefix-arg-value #[(char value com) "Y& X& !  \"Z\\  	\n5 	\nB	UG 	! 6 C" [char 48 57 * numberp value 0 10 read-char prefix-arg com 85 vip-describe-arg unread-command-events] 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) "	 \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\"z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 equal (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 "\
Vi operator as prefix argument."])
(fset (quote vip-describe-arg) #[(arg) "!!\n! 	 !1 	\"1 	, \n\"1 \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) "	:\n 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) Â@ \n:3 \nA@ \n!= Â@ !#" [vip-prefix-arg-com last-command-char arg nil numberp 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\"% ɂ& \n)" [vip-getcom arg com equal 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 "" buffer-substring start end] 6 "\
Append region to text in register REG.
START and END are buffer positions indicating what to append."])
(fset '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 \\`# != `\" \nUR! `\"1XX `$/X)X)\\ `#/!=9 `\"#=K ) \nUXrXr`$XX\\`#!`\"b\nU! `\"XX `$XX\\ `#! `\")b\nU\nU.! `\" `\nU%!.'.$)\nUT! `\" `VI  `#)\nUu! `\" `5[#)b\nU! `\" `5#)b\nY\nZ!#9\nU\nU\nU\n[\n	F:)" [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 "" delete-region 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 "\
(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@	\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 "\
(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+ ! 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 "\
This command is invoked interactively by the key sequence #<char>"])
(fset 'vip-undo #[nil "! !ŉ" [message "undo!" undo-start undo-more 2 vip-undo this-command] 2 "\
Undo previous change." nil])
(fset 'vip-undo-more #[nil "!!ĉ" [message "undo more!" undo-more 1 vip-undo this-command] 2 "\
Continue undoing previous changes."])
(byte-code "MM" [vip-string-tail #[(str) "?	 \"? O" [str string= "" 1 nil] 3] vip-yank-defun #[nil " ` \"" [mark-defun copy-region-as-kill mark] 3]] 2)
(fset 'vip-enlarge-region #[(beg end) "	W b	! 	b!! m& n* !!	V6  " [beg end set-mark forward-line 0 exchange-point-and-mark next-line 1] 2 "\
Enlarge region between BEG and END."])
(fset 'vip-global-execute #[nil "` V\n  ! ` W& !!  " [mark exchange-point-and-mark forward-line 0 call-last-kbd-macro 1] 2 "\
Call last keyboad macro for each line in the region."])
(fset 'vip-quote-region #[nil "\"!\"  )` \"` V%  c!!` WI nI c!!0 " [vip-read-string format "quote string (default \"%s\"): " vip-quote-string str string= "" vip-enlarge-region mark exchange-point-and-mark forward-line 0 1] 4 "\
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= text "" string 10] 3 "\
Check if the string ends with a newline."])
(fset (quote 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])
(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'  S )-  *" [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) "	!	!El  \"5 \nV1  \nS\n  )7  *" [vip-p-val arg vip-getcom com val vip-append 114 vip-d-com forward-char equal count 0 yank vip-change-mode-to-insert] 4 "\
Append after point." "P"])
(fset 'vip-Append #[(arg) "	!	!E \"1 \nV-  \nS\n )3  *" [vip-p-val arg vip-getcom com val vip-Append 114 vip-d-com end-of-line equal count 0 yank vip-change-mode-to-insert] 4 "\
Append at end of line." "P"])
(fset 'vip-Insert #[(arg) "	!	!E \"1 \nV-  \nS\n )3  *" [vip-p-val arg vip-getcom com val vip-Insert 114 vip-d-com back-to-indentation equal count 0 yank vip-change-mode-to-insert] 4 "\
Insert before first non-white." "P"])
(fset 'vip-open-line #[(arg) "	!	!E 	\"B V>  !2 	j S )T  !R 	j +" [vip-p-val arg vip-getcom com val vip-open-line 114 vip-d-com current-indentation col equal count 0 end-of-line newline 1 vip-open-with-indent yank vip-change-mode-to-insert] 4 "\
Open line below." "P"])
(fset 'vip-Open-line #[(arg) "	!	!E 	\"C V? !!3 	j S )V !!T 	j +" [vip-p-val arg vip-getcom com val vip-Open-line 114 vip-d-com current-indentation col equal count 0 forward-line open-line 1 vip-open-with-indent yank vip-change-mode-to-insert] 4 "\
Open line above." "P"])
(fset 'vip-open-line-at-point #[(arg) "	!	!E\"2 	V. ! 	S	 )8 ! *" [vip-p-val arg vip-getcom com val vip-open-line-at-point 114 vip-d-com equal count 0 open-line 1 yank vip-change-mode-to-insert] 4 "\
Open line at point." "P"])
(fset 'vip-substitute #[(arg) "	!	!`!!\"!  `\"'  `\")E*" [vip-p-val arg vip-getcom com val set-mark forward-char equal 114 vip-change-subr mark 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 (quote vip-line) #[(arg) "@A`\"\nS!\n	#*" [arg com val move-marker vip-com-point 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 move-marker vip-com-point exchange-point-and-mark vip-execute-com vip-region] 4 nil "P"] vip-Region #[(arg) "	!	!`\" #*" [vip-P-val arg vip-getCom com val move-marker vip-com-point exchange-point-and-mark vip-execute-com vip-Region] 4 nil "P"]] 2)
(fset 'vip-replace-char #[(arg) "	!	!E\" \n  \"*" [vip-p-val arg vip-getcom com val vip-replace-char 114 vip-d-com vip-replace-char-subr equal vip-d-char read-char] 4 "\
Replace the following ARG chars by the character read." "P"])
(fset (quote vip-replace-char-subr) #[(char arg) "	\"	V 	 	[V' cS )	!" [delete-char arg t char vip-d-char 0 count backward-char] 4])
(fset 'vip-replace-string #[nil " Ă !	\") ?# ˂$ \"!B 9 		\"!\"B 		\"!\")" [nil str vip-read-string vip-re-replace "Replace regexp: " "Replace string: " string= "" message format "Replace mode changed to %s." "regexp replace" "string replace" replace-regexp "Replace regexp \"%s\" with: " replace-string "Replace \"%s\" with: "] 6 "\
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) "	!	! `\"! #*" [vip-p-val arg vip-getcom com val move-marker vip-com-point forward-char vip-execute-com vip-forward-char] 4 "\
Move point right ARG characters (left if ARG negative).On reaching end
of buffer, stop and signal error." "P"])
(fset 'vip-backward-char #[(arg) "	!	! `\"! #*" [vip-p-val arg vip-getcom com val move-marker vip-com-point backward-char vip-execute-com vip-backward-char] 4 "\
Move point left ARG characters (right if ARG negative).  On reaching
beginning of buffer, stop and signal error." "P"])
(fset 'vip-forward-word #[(arg) "	!	! `\"!!O U* U2 !!U> UJ !!!#*" [vip-p-val arg vip-getcom com val move-marker vip-com-point forward-word skip-chars-forward " 	\n" 99 -99 backward-word 1 100 121 " 	" vip-execute-com vip-forward-word] 4 "\
Forward word." "P"])
(fset 'vip-end-of-word #[(arg) "	!	! `\" ! (  #*" [vip-p-val arg vip-getcom com val move-marker vip-com-point forward-char forward-word backward-char vip-execute-com vip-end-of-word] 4 "\
Move point to end of current word." "P"])
(fset 'vip-backward-word #[(arg) "	!	! `\"! #*" [vip-p-val arg vip-getcom com val move-marker vip-com-point backward-word vip-execute-com vip-backward-word] 4 "\
Backward word." "P"])
(fset 'vip-forward-Word #[(arg) "	!	! `\"$N U) U1 !!U= UI !!!#*" [vip-p-val arg vip-getcom com val move-marker vip-com-point re-search-forward "[^ 	\n]*[ 	\n]+" nil t 99 -99 backward-word 1 forward-word 100 121 skip-chars-forward " 	" vip-execute-com vip-forward-Word] 5 "\
Forward word delimited by white character." "P"])
(fset 'vip-end-of-Word #[(arg) "	!	! `\" $!  -  #*" [vip-p-val arg vip-getcom com val move-marker vip-com-point forward-char re-search-forward "[^ 	\n]+" nil t backward-char vip-execute-com vip-end-of-Word] 5 "\
Move forward to end of word delimited by white character." "P"])
(fset 'vip-backward-Word #[(arg) "	!	! `\"$!  $ eb- #*" [vip-p-val arg vip-getcom com val move-marker vip-com-point re-search-backward "[ 	\n]+[^ 	\n]+" nil t forward-char 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 move-marker vip-com-point beginning-of-line vip-execute-com vip-beginning-of-line] 4 "\
Go to beginning of line." "P"])
(fset 'vip-bol-and-skip-white #[(arg) "	!	! `\"  #*" [vip-p-val arg vip-getcom com val move-marker vip-com-point back-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) "	!	! `\"! #*" [vip-p-val arg vip-getcom com val move-marker vip-com-point end-of-line vip-execute-com vip-goto-eol] 4 "\
Go to end of line." "P"])
(fset 'vip-next-line #[(arg) "	!	! `\"!	\" #*" [vip-p-val arg vip-getCom com val move-marker vip-com-point line-move next-line this-command vip-execute-com vip-next-line] 4 "\
Go to next line." "P"])
(fset 'vip-next-line-at-bol #[(arg) "	!	! `\"! \" #*" [vip-p-val arg vip-getCom com val move-marker 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) "	!	! `\"[!	# #*" [vip-p-val arg vip-getCom com val move-marker vip-com-point next-line previous-line this-command vip-execute-com vip-previous-line] 4 "\
Go to previous line." "P"])
(fset 'vip-previous-line-at-bol #[(arg) "	!	! `\"[! # #*" [vip-p-val arg vip-getCom com val move-marker vip-com-point 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) "	B!" [vip-goto-eol arg 100] 3 "\
Delete line." "P"])
(fset 'vip-goto-line #[(arg) "	!	!`\"`! db$ ebS! 0 #*" [vip-P-val arg vip-getCom com val move-marker vip-com-point set-mark forward-line 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) " 	\n 	[	V/ l  !! `!!`\"B n: !; `!`\"	VO eTbR db!	$)`	Vn dUz 	W~ eU~ !*	V  Ђ т  ɂ \\b*" [forward arg nil point 0 narrow-to-region error "" next-line 1 forward-line 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  	 [( `\"	!V7 9 $[P  #*" [vip-p-val arg vip-getcom com val 0 read-char vip-f-char t vip-f-forward nil vip-f-offset move-marker vip-com-point vip-find-char vip-F-char forward-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 [( `\"	!V7 9 ȉ$[P  #*" [vip-p-val arg vip-getcom com val 0 read-char vip-f-char t vip-f-forward vip-f-offset move-marker vip-com-point vip-find-char vip-F-char forward-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 [( `\"	!V7 9 ȉ$[M #*" [vip-p-val arg vip-getcom com val 0 read-char vip-f-char nil vip-f-forward vip-f-offset move-marker 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  	 [( `\"	!V7 9 $[M #*" [vip-p-val arg vip-getcom com val 0 read-char vip-f-char nil vip-f-forward t vip-f-offset move-marker 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$- 	(  #*" [vip-p-val arg vip-getcom com val move-marker vip-com-point vip-find-char vip-f-char vip-f-forward vip-f-offset forward-char vip-execute-com vip-repeat-find] 5 "\
Repeat previous find command." "P"])
(fset 'vip-repeat-find-opposite #[(arg) "	!	! `\"	?\n$. 	)  #*" [vip-p-val arg vip-getcom com val move-marker vip-com-point vip-find-char vip-f-char vip-f-forward vip-f-offset forward-char 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 string= buffer-name " *Minibuf-1*" vip-change-mode-to-vi] 3 "\
Switch to other window." "p"])
(fset 'vip-window-top #[(arg) "	!	! `\"S!  #*" [vip-p-val arg vip-getCom com val move-marker vip-com-point move-to-window-line 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 move-marker vip-com-point move-to-window-line / window-height 2 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 move-marker vip-com-point move-to-window-line 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] 5 "\
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 ! dV, d\"	\"3 d	\"\"b  !_ \nJ `\"!\nZ \n#   !  \nr `\"!\n \n# !)" [vip-getcom arg com numberp 99 1 error "Prefix must be between 1 and 99." 80000 * / 100 back-to-indentation looking-at "[([{]" move-marker vip-com-point forward-sexp vip-execute-com vip-paren-match nil backward-char "[])}]" forward-char backward-sexp ""] 4 "\
Go to the matching parenthesis." "P"])
(fset 'vip-forward-sentence #[(arg) "	!	! `\"! #*" [vip-p-val arg vip-getcom com val move-marker vip-com-point forward-sentence vip-execute-com vip-forward-sentence nil] 4 "\
Forward sentence." "P"])
(fset 'vip-backward-sentence #[(arg) "	!	! `\"! #*" [vip-p-val arg vip-getcom com val move-marker vip-com-point backward-sentence vip-execute-com vip-backward-sentence nil] 4 "\
Backward sentence." "P"])
(fset 'vip-forward-paragraph #[(arg) "	!	! `\"! #*" [vip-p-val arg vip-getCom com val move-marker vip-com-point forward-paragraph vip-execute-com vip-forward-paragraph nil] 4 "\
Forward paragraph." "P"])
(fset 'vip-backward-paragraph #[(arg) "	!	! `\"! #*" [vip-p-val arg vip-getCom com val move-marker vip-com-point backward-paragraph vip-execute-com vip-backward-paragraph nil] 4 "\
Backward paragraph." "P"])
(fset 'vip-scroll #[(arg) "V V%  S V%  T " [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] 4 "\
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] 4 "\
Scroll down half screen." "P"])
(fset 'vip-scroll-up-one #[(arg) "	!" [scroll-up arg] 2 "\
Scroll down one line." "p"])
(fset 'vip-buffer-in-two-windows #[nil " !" [delete-other-windows split-window-vertically nil] 2 "\
Show current buffer in two windows." nil])
(fset 'vip-search-forward #[(arg) "	!	! ɂ !\"8 ?2 т3 \"!O #O  \"#*" [vip-P-val arg vip-getcom com val t vip-s-forward vip-read-string vip-re-search "RE-/" "/" vip-s-string string= "" message format "Search mode changed to %s search." "regular expression" "vanilla" vip-search move-marker vip-com-point mark vip-execute-com vip-search-next] 4 "\
Search a string forward.  ARG is used to find the ARG's occurence
of the string.  Default is vanilla search.  Search mode can be toggled by
giving null search string." "P"])
(fset 'vip-search-backward #[(arg) "	!	! ɂ !\"8 ?2 т3 \"!O #O  \"#*" [vip-P-val arg vip-getcom com val nil vip-s-forward vip-read-string vip-re-search "RE-?" "?" vip-s-string string= "" message format "Search mode changed to %s search." "regular expression" "vanilla" vip-search move-marker vip-com-point mark vip-execute-com vip-search-next] 4 "\
Search a string backward.  ARG is used to find the ARG's occurence
of the string.  Default is vanilla search.  Search mode can be toggled by
giving null search string." "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 " m  \n ŉ$!* ŉ$!!" [offset forward-char vip-re-search re-search-forward string nil 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 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 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) "	!	! !		#  #*" [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 "\
Repeat previous search." "P"])
(fset 'vip-search-Next #[(arg) "	!	! !	?	#! #*" [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 "\
Repeat previous search in the reverse direction." "P"])
(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!. !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 "\
Kill a buffer." nil])
(fset 'vip-find-file #[nil "!	!! )" [nil file read-file-name "visit file: " switch-to-buffer find-file-noselect 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 vip-change-mode-to-vi] 3 "\
Visit file in another window." nil])
(fset 'vip-info-on-file #[nil "    e`\"Ted\"T$" [message "\"%s\" line %d of %d" buffer-file-name "" count-lines] 7 "\
Give information of the file associated to the current buffer." nil])
(fset 'vip-yank #[(text) "`!	c )!" [vip-push-mark-silent text exchange-point-and-mark skip-chars-forward " 	"] 2 "\
yank TEXT silently."])
(fset 'vip-put-back #[(arg) "	!\n\" \nX \nX \nZ\"% \n!% !	\n	E \nA \n\")E !	!Y !!d ld md  \n\nF\nV 	!Sq +" [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 forward-line forward-char vip-put-back vip-d-com count vip-yank] 5 "\
Put back after point/below line." "P"])
(fset 'vip-Put-back #[(arg) "	!\n\" \nX \nX \nZ\"% \n!% !	\n	E \nA \n\")E !	!R !\n\nF\nVr 	!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 forward-line vip-Put-back vip-d-com count vip-yank] 5 "\
Put back at point/above line." "P"])
(fset '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 "\
Delete character." "P"])
(fset '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 "\
Delete previous character." "P"])
(fset 'vip-join-lines #[(arg) "	!\nE\n Ƃ \nSV8  m/ !``S\" S *" [vip-P-val arg val vip-join-lines nil vip-d-com 1 count 0 end-of-line forward-line delete-region fixup-whitespace] 4 "\
Join this line to next, if ARG is nil.  Otherwise, join ARG lines" "*P"])
(byte-code "MM" [vip-change #[(beg end) "\"\"!\"" [vip-read-string format "%s => " buffer-substring beg end c-string vip-change-subr] 6] 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]] 2)
(fset 'vip-query-replace #[nil " Ă !	\"' ?\" ʂ# \"@ 7 		\"!\"@ 		\"!\")" [nil str vip-read-string vip-re-query-replace "Query replace regexp: " "Query replace: " string= "" 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: "] 6 "\
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.  	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"]] 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) "	XV 	XV p `\"	Z!b	'   T p\"F 	? ΂@ #T !b !)	x 	Ux k `\"  #	 	U  `\"   #!" [97 char 122 buff com move-marker vip-com-point register-to-point 96 skip-white back-to-indentation vip-change-mode-to-vi equal vip-execute-com vip-goto-mark-and-skip-white vip-goto-mark nil 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-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 (quote 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 delete-region mark] 3 "\
Delete previous word." "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)
(fset (quote vip-version) #[nil "!" [message "VIP version 3.5 of September 15, 1987"] 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 commnads for mapped keys")
(defvar ex-tag nil "\
save ex tag")
(byte-code "! ! ! !  M" [boundp ex-file nil ex-variant ex-offset ex-append vip-nil #[nil "!" [error ""] 2 nil nil]] 2)
(fset 'vip-looking-back #[(str) "	#) `!U" [re-search-backward str nil t match-end 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 string= 0 "non-command" ex-token-type] 6 "\
check if ex-token is an initial segment of STR"])
(fset 'vip-get-ex-com-subr #[nil "`!!` \" !; !' !!4 !!!F !` !Y !!!m !! ! !!! !! !! !! !! !! ! !! !!!	!!!!!!=!)!!6!!!J!!q!]!!j!!!Ɂ@ !́A !ɁB !́C !ɁD !́E !ɁF !́G !́H !ɁI !ɁJ !́K !́I !ɁL !ɁM !́N !ɁO !́P !́Q !ɁR !LɁS !2́T !ɁU !C́V !́R !ɁW !nɁX !e́X !́Y !ɁZ !́[ !Ɂ\\ !́] !Ɂ^ !́^ ! " [set-mark re-search-forward "[a-z][a-z]*" "command" ex-token-type buffer-substring 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"] 3 "\
get a complete ex command"])
(fset 'vip-get-ex-token #[nil "" [((byte-code "q!! g!!!\"  !1 !Ή!e `!!\"K ՂX \"W ׂX ` \"!!t !݉! !߉! ! ! !c!ԉ! !ԉ!! ! ! !c!։! !։!!2!`!.l.!! . )!` \"!-!!x!`!.lj.j!!Y.!!C!C)`S \"!!!!!g!!!!!!g@ !!!A B C !" [" *ex-working-space*" skip-chars-forward " 	" looking-at "[k#]" "command" ex-token-type char-to-string ex-token forward-char 1 "[a-z]" vip-get-ex-com-subr "\\." "dot" "[0-9]" set-mark re-search-forward "[0-9]*" string= "plus" "add-number" "minus" "sub-number" "abs-number" string-to-int buffer-substring mark "\\$" "end" "%" "whole" "+" "+[-+]" "+[\n|]" "1" backward-char "+[0-9]" error "Badly formed address" "-" "-[-+]" "-[\n|]" "-[0-9]" "/" t cont "[^/]*\\(/\\|\n\\)" vip-looking-back "[^\\\\]\\(\\\\\\\\\\)*\\\\/" nil "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ˋ  \"; \"v 	G 	B\"Z !% \"m !%  ؋# \" \"!# \" deBB# \" 	 ` 	B# \" 	 		 ` 	B# 	\"! !	)# ," [string nil ex-g-flag ex-g-variant vip-read-string ":" t dot cont address com-str ((byte-code "!qed\"cceb" [get-buffer-create " *ex-working-space*" delete-region com-str "\n"] 3)) "" ex-token-type ex-addresses vip-get-ex-token string= "command" "end-mark" ex-token "global" ex-global "v" vip-execute-ex-command ((byte-code "q!! !$ !  	$ !ȇ" [" *ex-working-space*" skip-chars-forward " 	" looking-at "|" forward-char 1 "\n" nil 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 "\
ex commands within VIP." nil])
(fset 'vip-get-ex-pat #[nil "" [((byte-code "q!! ??!!!_ !`!lG G !!. . ) `US ӂY `S \"!щ" [" *ex-working-space*" skip-chars-forward " 	" looking-at "!" ex-g-variant ex-g-flag forward-char 1 "/" set-mark t cont re-search-forward "[^/]*\\(/\\|\n\\)" vip-looking-back "[^\\\\]\\(\\\\\\\\\\)*\\\\/" nil mark "" buffer-substring ex-token backward-char] 3))] 1 "\
get a regular expression and set ex-variant if found"])
(fset 'vip-get-ex-command #[nil "" [((byte-code "q! !!!(  \n\": \"!7 g!!!" [" *ex-working-space*" looking-at "/" forward-char 1 skip-chars-forward " 	" "[a-z]" vip-get-ex-com-subr string= 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 #[nil "" [((byte-code "q! !!!  !ɇ!/ !ɇˇ" [" *ex-working-space*" looking-at "/" forward-char 1 skip-chars-forward " 	" "g" ex-token t "c" nil] 2))] 1 "\
get an ex option g or c"])
(fset 'vip-default-ex-addresses #[(&optional whole-flag) " 	 deBB ``BBA?$ @B" [ex-addresses whole-flag nil] 3 "\
compute default addresses.  whole-flag means whole buffer."])
(fset 'vip-get-ex-address #[nil " \n|  \n\"> \". \". \"7 Ɖ !\n \n\"L Ɖ \n\"[ !\n \n\"j !\n  \"x )\n *" [point-marker t cont address "" ex-token nil ex-flag vip-get-ex-token string= 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 \"  \"7 \nb\nU, \nS. \n! ) \"O \nb\n[! ) \"s eb\nUf o \nS! ) \"   \" \" \" ! ) \" ! ) \" \n   \nZ!b )	)" [nil address old-address dot string= ex-token-type "dot" "add-number" forward-line 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) "	\"  !  	& !	!!	!" [string= ex-token "" vip-s-string error "No previous search string" forward forward-line 1 re-search-forward -1 re-search-backward] 3 "\
search pattern and set address"])
(fset 'vip-get-ex-buffer #[nil "ċ" [nil ex-buffer ex-count ex-flag ((byte-code "q!! g!!!2 `!!` \"!!!? !!?I !" [" *ex-working-space*" skip-chars-forward " 	" looking-at "[a-zA-Z]" ex-buffer forward-char 1 "[0-9]" set-mark re-search-forward "[0-9][0-9]*" string-to-int buffer-substring mark ex-count "[pl#]" t ex-flag "[\n|]" error "Illegal extra characters"] 4))] 1 "\
get a buffer name and set ex-count and ex-flag if found"])
(fset (quote vip-get-ex-count) #[nil "ċ" [nil ex-variant ex-count ex-flag ((byte-code "q!! !!!3 `!!` \"!!!@ !!?J !" [" *ex-working-space*" skip-chars-forward " 	" looking-at "!" t ex-variant forward-char 1 "[0-9]" set-mark re-search-forward "[0-9][0-9]*" string-to-int buffer-substring mark ex-count "[pl#]" ex-flag "[\n|]" error "Illegal extra characters"] 4))] 1])
(fset 'vip-get-ex-file #[nil "ŋ" [nil ex-file ex-variant ex-append ex-offset ((byte-code "q!! !!!, \n!!!Q !`!!!` \"!!`!!!` \"" [" *ex-working-space*" skip-chars-forward " 	" looking-at "!" t ex-variant forward-char 1 ">>" ex-append 2 "+" set-mark re-search-forward "[ 	\n]" backward-char buffer-substring mark ex-offset ex-file] 3))] 1 "\
get a file name and set ex-variant, ex-append and ex-offset if found"])
(fset 'vip-execute-ex-command #[nil "	\"\n  	\" !	\"  	\")  	\"3  	\"> !	\"H  	\"R  	\"\\  	\"g !	\"q  	\"{  	\"  	\"  	\"  	\"  	\"  	\" !	\"  	\"  	\"  	\"  	\"  	\" !	\" !	\"\n 	\" 	\" 	\")!	\"4!	\"?!	\"KՉ\"	\"r	\"r	\"r	@ \"r	A \"B C D 	\"!	E \"	F \"	G \"	H \"	I \"	J \"	K \"	L \"	M \"	N \"	O \"B C P 	\"!B C Q 	\"!" [string= 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 "\
execute ex command using the value of addresses."])
(fset 'ex-goto #[nil " `B`!@b!" [ex-addresses nil push-mark forward-line 0] 2 "\
ex goto command"])
(fset 'ex-copy #[(del-flag) "  \n@\nA@b! `\"	) ` \"/ ` \"Y ͐	F F L !Q ` \"!֏)Uf ebm b!!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 buffer-substring 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))) forward-line 1] 5 "\
ex copy and move command.  DEL-FLAG means delete."])
(fset 'ex-delete #[nil "  \n@\nA@V !\" 	2 `!	S!6 !` \"Y ΐ` \"!ӏ!)  Xy Xy \\` # ` $` \"+" [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 forward-line mark ex-flag " *delete text*" princ buffer-substring 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 delete-region] 5 "\
ex delete"])
(fset 'ex-edit #[nil " 	    ! 	P!q eb7 ̋ b!Ї" [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\"\ncceb" [" *ex-working-space*" delete-region ex-offset "\n"] 3)) vip-get-ex-address forward-line 0 nil] 3 "\
ex-edit"])
(fset 'ex-global #[(variant) " 	 !    * !\"E > !M M W deD@A@Vw !\"   !m o ! o `Y !`!  ## # 	 #  T B)!o ŉ !  +勈@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" string= "" 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 forward-line backward-char 1 set-mark end-of-line re-search-backward mark found -1 ((byte-code "q`TdS\"" [" *ex-working-space*" buffer-substring com-str] 3)) vip-ex] 6 "\
ex global command"])
(fset 'ex-line #[(com) "  \n@\nA@V !\" 3 `!!Q ϐ` \"!Տ!)Y ` #`)Sb!+Ç" [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 forward-line ex-flag " *text*" princ buffer-substring 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] 5 "\
ex line commands.  COM is join, shift-right or shift-left."])
(fset (quote ex-line-subr) #[(com beg end) "	\"> ^bm?= `]Wo  `]X m !``S\"	   	\"L 	\"o ^]	\"_ b [#]b !" [string= com "join" beg end end-of-line forward-line 1 delete-region ex-variant fixup-whitespace "right" "left" indent-rigidly vip-shift-width forward-char] 6])
(fset 'ex-mark #[nil "\n\n `BË\n@b	Z\"*" [nil char ex-addresses ((byte-code "q!!$ g!!!5 !5 !1 !5 !" [" *ex-working-space*" skip-chars-forward " 	" looking-at "[a-z]" char forward-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 "Ë\n\" \n\n\" #\n	EEBD!#*" [nil string char ((byte-code "q!g!!!! !`! ! `\"" [" *ex-working-space*" skip-chars-forward " 	" char-to-string char forward-char 1 looking-at "[\n|]" error "Missing rhs" set-mark end-of-buffer backward-char buffer-substring mark string] 3)) lookup-key ex-map define-key vip-mode-map vip-nil eval quote lambda (count) (interactive "p") execute-kbd-macro count] 11 "\
ex map"])
(fset 'ex-unmap #[nil "	\" !		\"#	#)" [nil char ((byte-code "q!g!!!! !" [" *ex-working-space*" skip-chars-forward " 	" char-to-string char forward-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 "\
ex unmap"])
(fset '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 "\
ex put"])
(fset 'ex-quit #[nil "	U !  )" [nil char ((byte-code "q!g" [" *ex-working-space*" skip-chars-forward " 	" char] 2)) 33 kill-emacs t save-buffers-kill-emacs] 2 "\
ex quit"])
(fset 'ex-read #[nil " `\n @bU !!ʋ0 \"3 \n!," [ex-addresses nil file command variant point 0 next-line 1 forward-line ((byte-code "q!!) !!`!  `\"< `!!!` \"" [" *ex-working-space*" skip-chars-forward " 	" looking-at "!" t variant forward-char 1 set-mark end-of-line buffer-substring mark command re-search-forward "[ 	\n]" backward-char file] 3)) shell-command t insert-file] 5 "\
ex read"])
(fset (quote ex-set) #[nil "!!!E!" [eval setq read-variable "Variable: " read-minibuffer "Value: "] 6])
(fset 'ex-shell #[nil "  " [vip-change-mode-to-emacs shell] 1 "\
ex shell"])
(fset 'ex-substitute #[(&optional repeat r-flag) "   0 	' \n) ^ \"= \n? \n W ^  u \"p ^ ^    @b`!S!` BB)  ``BB A @B@A@\"` ]b )` ^b`WG  !%l#\n! `!    #>\n8!>`!   .	P	b!\n[!-" [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 string= "" vip-get-ex-opt-gc "g" t vip-get-ex-count ex-count ex-addresses set-mark forward-line mark eol-mark cont end beg vip-enlarge-region point-marker limit end-of-line 0 re-search-forward y-or-n-p "Replace? " replace-match forward-char message "done"] 6 "\
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 "q!`!! `\"" [" *ex-working-space*" skip-chars-forward " 	" set-mark "^ |	\n" buffer-substring mark tag] 3)) string= "" ex-tag vip-change-mode-to-emacs conditions (byte-code "	\" \" ! " [string= 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@VR !\"` %+m t  " [vip-default-ex-addresses t vip-get-ex-file string= 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 "\
ex write"])
(fset 'ex-yank #[nil "  \n@\nA@V !\" 	* \n. !@ `!S!D !` \"S !a ` $` \"+" [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 forward-line mark 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 " 	!9 @A@ b!` \"` 	$)b*)" [nil command ((byte-code "q!`!  `\"" [" *ex-working-space*" skip-chars-forward " 	" set-mark end-of-line buffer-substring mark command] 3)) ex-addresses shell-command beg end set-mark vip-enlarge-region mark shell-command-on-region t] 5 "\
execute shell command"])
(fset 'ex-line-no #[nil "e d @\"T\"" [message "%d" count-lines ex-addresses] 5 "\
print line number"])
(byte-code "!\n !" [file-exists-p "~/.vip" load] 2)
