Commits

Anonymous committed bdeee15

updated for version 7.0004

  • Participants
  • Parent commits 4424b47

Comments (0)

Files changed (57)

runtime/doc/autocmd.txt

-*autocmd.txt*   For Vim version 7.0aa.  Last change: 2004 Jun 30
+*autocmd.txt*   For Vim version 7.0aa.  Last change: 2004 Jul 01
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
 							*FileEncoding*
 FileEncoding			Obsolete.  It still works and is equivalent
 				to |EncodingChanged|.
+							*ColorScheme*
+ColorScheme			After loading a color scheme. |:colorscheme|
 							*RemoteReply*
 RemoteReply			When a reply from a Vim that functions as
 				server was received |server2client()|.

runtime/doc/cmdline.txt

-*cmdline.txt*   For Vim version 7.0aa.  Last change: 2004 Mar 31
+*cmdline.txt*   For Vim version 7.0aa.  Last change: 2004 Jul 01
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
 
 						*cmdline-history* *history*
 The command-lines that you enter are remembered in a history table.  You can
-recall them with the up and down cursor keys.  There are actually four
+recall them with the up and down cursor keys.  There are actually five
 history tables:
 - one for ':' commands
 - one for search strings
 - one for expressions
 - one for input lines, typed for the |input()| function.
+- one for debug mode commands
 These are completely separate.  Each history can only be accessed when
 entering the same type of line.
 Use the 'history' option to set the number of lines that are remembered
 		s[earch] or /	search string history
 		e[xpr]	 or =	expression register history
 		i[nput]	 or @	input line history
+		d[ebug]	 or >	debug command history
 		a[ll]		all of the above
 		{not in Vi}
 

runtime/doc/gui_x11.txt

-*gui_x11.txt*   For Vim version 7.0aa.  Last change: 2004 Mar 16
+*gui_x11.txt*   For Vim version 7.0aa.  Last change: 2004 Jul 02
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
 command line argument).
 
 ==============================================================================
-7. KDE version						*gui-kde* *KDE* *KVim*
+7. KDE version					*gui-kde* *kde* *KDE* *KVim*
 
 The KDE version of Vim works with KDE 2.x and KDE 3.x.
 KVim (name code for gui-kde) does not use traditional X settings for its

runtime/doc/hangulin.txt

 Send comments, patches and suggestions to:
 
 				    Chi-Deok Hwang <hwang@mizi.co.kr>
-				    Nam SungHyun <namsh@lge.com>
+				    Nam SungHyun <namsh@kldp.org>
 
  vim:tw=78:ts=8:ft=help:norl:

runtime/doc/index.txt

-*index.txt*     For Vim version 7.0aa.  Last change: 2004 Jun 16
+*index.txt*     For Vim version 7.0aa.  Last change: 2004 Jul 02
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
 |i_CTRL-V_digit| CTRL-V {number} insert three digit decimal number as a single
 				byte.
 |i_CTRL-W|	CTRL-W		delete word before the cursor
-|i_CTRL-X|	CTRL-X {mode}	enter CTRL-X sub mode, see below
+|i_CTRL-X|	CTRL-X {mode}	enter CTRL-X sub mode, see |i_CTRL-X_index|
 |i_CTRL-Y|	CTRL-Y		insert the character which is above the cursor
 |i_CTRL-Z|	CTRL-Z		when 'insertmode' set: suspend Vim
 |i_<Esc>|	<Esc>		end insert mode (unless 'insertmode' set)
 |i_<MouseUp>|	<MouseUp>	scroll three lines upwards
 |i_<S-MouseUp>|	<S-MouseUp>	scroll a full page upwards
 
-commands in CTRL-X submode
+commands in CTRL-X submode				*i_CTRL-X_index*
 
 |i_CTRL-X_CTRL-D|	CTRL-X CTRL-D	complete defined identifiers
 |i_CTRL-X_CTRL-E|	CTRL-X CTRL-E	scroll up
 |i_CTRL-X_CTRL-P|	CTRL-X CTRL-P	previous completion
 |i_CTRL-X_CTRL-T|	CTRL-X CTRL-T	complete identifiers from thesaurus
 |i_CTRL-X_CTRL-Y|	CTRL-X CTRL-Y	scroll down
+|i_CTRL-X_CTRL-U|	CTRL-X CTRL-U	complete with 'completefunc'
+|i_CTRL-X_CTRL-V|	CTRL-X CTRL-V	complete like in : command line
 |i_CTRL-X_CTRL-]|	CTRL-X CTRL-]	complete tags
 {not available when compiled without the +insert_expand feature}
 
 
 tag		command		   action in Normal mode	~
 ------------------------------------------------------------------------------
+|v_aquote|	a"		   double quoted string
+|v_a'|		a'		   single quoted string
 |v_a(|		a(		   same as ab
 |v_a)|		a)		   same as ab
 |v_a<|		a<		   "a <>" from '<' to the matching '>'
 |v_aW|		aW		   "a WORD" (with white space)
 |v_a[|		a[		   "a []" from '[' to the matching ']'
 |v_a]|		a]		   same as a[
+|v_a`|		a`		   string in backticks
 |v_ab|		ab		   "a block" from "[(" to "])" (with braces)
 |v_ap|		ap		   "a paragraph" (with white space)
 |v_as|		as		   "a sentence" (with white space)
 |v_aw|		aw		   "a word" (with white space)
 |v_a{|		a{		   same as aB
 |v_a}|		a}		   same as aB
+|v_iquote|	i"		   double quoted string without the quotes
+|v_i'|		i'		   single quoted string without the quotes
 |v_i(|		i(		   same as ib
 |v_i)|		i)		   same as ib
 |v_i<|		i<		   "inner <>" from '<' to the matching '>'
 |v_iW|		iW		   "inner WORD"
 |v_i[|		i[		   "inner []" from '[' to the matching ']'
 |v_i]|		i]		   same as i[
+|v_i`|		i`		   string in backticks without the backticks
 |v_ib|		ib		   "inner block" from "[(" to "])"
 |v_ip|		ip		   "inner paragraph"
 |v_is|		is		   "inner sentence"

runtime/doc/insert.txt

-*insert.txt*    For Vim version 7.0aa.  Last change: 2004 Jun 24
+*insert.txt*    For Vim version 7.0aa.  Last change: 2004 Jul 02
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
 			completion, for example: >
 				:imap <Tab> <C-X><C-V>
 
+User defined completing					*compl-function*
+
+Completion is done by a function that can be defined by the user with the
+'completefunc' option.  See the option for how the function is called and an
+example.
+
+							*i_CTRL-X_CTRL-U*
+CTRL-X CTRL-U		Guess what kind of item is in front of the cursor and
+			find the first match for it.
+	CTRL-U	or
+	CTRL-N		Use the next match.  This match replaces the previous
+			one.
+
+	CTRL-P		Use the previous match.  This match replaces the
+			previous one.
+
+
 Completing keywords from different sources		*compl-generic*
 
 							*i_CTRL-N*

runtime/doc/mbyte.txt

 
 Contributions specifically for the multi-byte features by:
 	Chi-Deok Hwang <hwang@mizi.co.kr>
-	Nam SungHyun <namsh@lge.com>
+	Nam SungHyun <namsh@kldp.org>
 	K.Nagano <nagano@atese.advantest.co.jp>
 	Taro Muraoka  <koron@tka.att.ne.jp>
 	Yasuhiro Matsumoto <mattn@mail.goo.ne.jp>

runtime/doc/motion.txt

-*motion.txt*    For Vim version 7.0aa.  Last change: 2004 Jun 17
+*motion.txt*    For Vim version 7.0aa.  Last change: 2004 Jul 02
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
 			|[{|).
 			When used in Visual mode it is made characterwise.
 
+a"							*v_aquote* *aquote*
+a'							*v_a'* *a'*
+a`							*v_a`* *a`*
+			"a quoted string".  Selects the text from the previous
+			quote until the next quote.  The 'quoteescape' is used
+			to skip escaped quotes.
+			When the cursor starts on a quote, Vim will figure out
+			which quote pairs form a string by searching from the
+			start of the line.
+			Any trailing or leading white space is included.
+			When used in Visual mode it is made characterwise.
+			Repeating this object in Visual mode another string is
+			included.  A count is currently not used.
+
+i"							*v_iquote* *iquote*
+i'							*v_i'* *i'*
+i`							*v_i`* *i`*
+			Like a", a' and a`, but exclude the quotes and
+			repeating won't extend the Visual selection.
+
 When used after an operator:
 For non-block objects:
 	For the "a" commands: The operator applies to the object and the white

runtime/doc/options.txt

-*options.txt*	For Vim version 7.0aa.  Last change: 2004 Jun 28
+*options.txt*	For Vim version 7.0aa.  Last change: 2004 Jul 02
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
 	based expansion (eg dictionary |i_CTRL-X_CTRL-K|, included patterns
 	|i_CTRL-X_CTRL-I|, tags |i_CTRL-X_CTRL-]| and normal expansions)
 
+						*'completefunc'* *'cfu'*
+'completefunc' 'cfu'	string	(default: empty)
+			local to buffer
+			{not in Vi}
+	This option specifies a completion function to be used for CTRL-X
+	CTRL-X.  The function will be invoked with four arguments:
+	   a:line	the text of the current line
+	   a:base	the text with which matches should match
+	   a:col        column in a:line where the cursor is, first column is
+	   		zero
+	   a:findstart  either 1 or 0
+	When the a:findstart argument is 1, the function must return the
+	column of where the completion starts.  It must be a number between
+	zero and "a:col".  This involves looking at the characters in a:line
+	before column a:col and include those characters that could be part of
+	the completed item.
+	When the a:findstart argument is 0 the function must return a string
+	with the matching words, separated by newlines.  When there are no
+	matches return an empty string.
+	An example that completes the names of the months: >
+		fun! CompleteMonths(line, base, col, findstart)
+		  if a:findstart
+		    " locate start column of word
+		    let start = a:col
+		    while start > 0 && a:line[start - 1] =~ '\a'
+		      let start = start - 1
+		    endwhile
+		    return start
+		  else
+		    " find months matching with "a:base"
+		    let res = "Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec"
+		    if a:base != ''
+		      let res = substitute(res, '\c\<\(\(' . a:base . '.\{-}\>\)\|.\{-}\>\)', '\2', 'g')
+		    endif
+		    let res = substitute(res, ' \+', "\n", 'g')
+		    return res
+		  endif
+		endfun
+		set completefunc=CompleteMonths
+<	Note that a substitute() function is used to reduce the list of
+	possible values and remove the ones that don't match the base.  The
+	part before the "\|" matches the base, the part after it is used
+	when there is no match.  The "\2" in the replacement is empty if the
+	part before the "\|" does not match.
+	
 				*'confirm'* *'cf'* *'noconfirm'* *'nocf'*
 'confirm' 'cf'		boolean (default off)
 			global
 	hidden although the 'hidden' option is off: When the buffer is
 	modified, 'autowrite' is off or writing is not possible, and the '!'
 	flag was used.  See also |windows.txt|.
+	To only make one buffer hidden use the 'bufhidden' option.
 	This option is set for one command with ":hide {command}" |:hide|.
 	WARNING: It's easy to forget that you have changes in hidden buffers.
 	Think twice when using ":q!" or ":qa!".
 	  precedes:c	Character to show in the first column, when 'wrap'
 			is off and there is text preceding the character
 			visible in the first column.
+	  nbsp:c	Character to show for non-breakable space. Left to
+			blank when omitted.
 
 	The characters ':' and ',' should not be used.  UTF-8 characters can
 	be used when 'encoding' is "utf-8", otherwise only printable
 
 	Examples: >
 	    :set lcs=tab:>-,trail:-
-	    :set lcs=tab:>-,eol:<
+	    :set lcs=tab:>-,eol:<,nbsp:%
 	    :set lcs=extends:>,precedes:<
 <	The "NonText" highlighting will be used for "eol", "extends" and
-	"precedes".  "SpecialKey" for "tab" and "trail".
+	"precedes".  "SpecialKey" for "nbsp", "tab" and "trail".
 
 			*'lpl'* *'nolpl'* *'loadplugins'* *'noloadplugins'*
 'loadplugins' 'lpl'	boolean	(default on)
 	Example: >
 		:set printoptions=paper:letter,duplex:off
 <
+						*'quoteescape''* *'qe'*
+'quoteescape' 'qe'	string	(default "\")
+			local to buffer
+			{not in Vi}
+	The characters that are used to escape quotes in a string.  Used for
+	objects like a', a" and a` |a'|.
+	When one of the characters in this option is found inside a string,
+	the following character will be skipped.  The default value makes the
+	text "foo\"bar\\" considered to be one string.
+
 				   *'readonly'* *'ro'* *'noreadonly'* *'noro'*
 'readonly' 'ro'		boolean	(default off)
 			local to buffer

runtime/doc/pi_netrw.txt

 5.  Ex Commands.........................................|netrw-ex|
 6.  Variables and Options...............................|netrw-var|
 7.  Remote Directory Browser............................|netrw-browse|
+     ?..........Help....................................|netrw-help|
+     <cr>.......Browsing................................|netrw-cr|
+     <c-l>......Refreshing the Listing..................|netrw-c-l|
+     <del>......Removing Files or Directories...........|netrw-delete|
+     D..........Removing Files or Directories...........|netrw-D|
+     R..........Renaming Files or Directories...........|netrw-R|
+     -..........Going Up................................|netrw--|
+     a..........Hiding Files or Directories.............|netrw-a|
+     h..........Edit File/Directory Hiding..............|netrw-h|
+     o..........Browsing with a Horizontal Split........|netrw-o|
+     r..........Reversing Sorting Order.................|netrw-r|
+     s..........Selecting Sorting Style.................|netrw-s|
+     v..........Browsing with a Vertical Split..........|netrw-v|
+     x..........Customizing Browsing....................|netrw-x|
 8.  Debugging...........................................|netrw-debug|
 9.  History.............................................|netrw-history|
 10. Credits.............................................|netrw-credits|
     g:netrw_sftp_cmd   variable   ="sftp" >
     -------------------------------------------------------------------------
 <
+								*netrw-ftp*
 The first two options both help with certain ftp's that give trouble otherwise.
 In order to best understand how to use these options if ftp is giving you
 troubles, a bit of discussion follows on how netrw does ftp reads.
 If your ftp doesn't accept the "user" command and immediately just demands
 a userid, then try putting "let netrw_ftp=1" in your <.vimrc>.
 
+								*netrw-cadaver*
+To handle the SSL certificate dialog for untrusted servers, one may pull
+down the certificate and place it into /usr/ssl/cert.pem.  This operation
+renders the server treatment as "trusted".
+
 							 	*netrw-fixup*
 If your ftp for whatever reason generates unwanted lines (such as AUTH
 messages) you may write a NetReadFixup(tmpfile) function:
 >
 
 ==============================================================================
-7. Remote Directory Browser		*netrw-browse* *netrw-dir* *netrw-list*
+7. Remote Directory Browser *netrw-browse* *netrw-dir* *netrw-list* *netrw-help*
 >
-        -------	-----------
 	Command	Explanation
         -------	-----------
+	   ?	Causes Netrw to issue help
 	 <cr>	Netrw will enter the directory or read the file
 	 <del>	Netrw will attempt to remove the file/directory
+	 <c-l>	Causes Netrw to refresh the directory listing
 	   D	Netrw will attempt to remove the file(s)/directory(ies)
 	   R	Netrw will attempt to rename the file(s)/directory(ies)
 	   -	Makes Netrw go up one directory
 	   a	Show all of a directory (temporarily ignore g:netrw_list_hide)
+	   h	Edit file hiding list
 	   o	Enter the file/directory under the cursor in a new browser
 	   	window.  A horizontal split is used.
+	   r	Reverse sorting order
+	   s	Select sorting style: by name, time, or file size
 	   v	Enter the file/directory under the cursor in a new browser
 	   	window.  A vertical split is used.
 	   x	Apply a function to a file.
-	 <c-l>	Causes Netrw to refresh the directory listing
-	   ?	Causes Netrw to issue help
 <
 							*netrw-browse-var*
 >
 	g:netrw_winsize		specify initial size of new o/v windows
 	g:netrw_list_hide	comma separated list of patterns for
 				hiding files
+	g:netrw_sort_by		sort by "name", "time", or "size"
+	g:netrw_sort_direction	sorting direction: "normal" or "reverse"
+	g:netrw_sort_sequence	when sorting by name, first sort by the
+				comma-separated pattern sequence
 <
+INTRODUCTION TO REMOTE DIRECTORY BROWSING
+
 Netrw supports the browsing of directories on remote hosts, including
-generating listing directories, entering directories, editing files
-therein, deleting files/directories, and moving (renaming) files and
-directories.
+generating listing directories, entering directories, editing files therein,
+deleting files/directories, and moving (renaming) files and directories.  The
+Netrw browser generally implements the file explorer methods but for remote
+directories, although details (such as pertinent global variable names)
+necessarily differ.
 
 To enter the netrw directory browser, simply attempt to read a "file" with a
 trailing slash and it will be interpreted as a request to list a directory:
 
 	vim [protocol]://[user@]hostname/path/
 
-Netrw will modify the command in g:netrw_list_cmd to perform the directory
+
+REFRESHING THE LISTING					*netrw-c-l*
+
+To refresh the directory listing, press ctrl-l (<c-l>) or hit the <cr>
+when atop the ./ directory entry in the listing.
+
+
+GOING UP						*netrw--*
+
+To go up a directory, press - or his the <cr> when atop the ../ directory
+entry in the listing.
+
+Netrw will modify the command in *g:netrw_list_cmd* to perform the directory
 listing operation.  By default the command is:
 
 	ssh HOSTNAME ls -FLa
 preferred.  The NetList function which implements remote directory
 browsing expects that directories will be flagged by a trailing slash.
 
+
+BROWSING 						*netrw-cr*
+
 Browsing is simple: move the cursor onto a file or directory of interest.
 Hitting the <cr> (the return key) will select the file or directory.
 Directories will themselves be listed, and files will be opened using the
 protocol given in the original read request.
 
-						*netrw-delete* *netrw-remove*
+
+REMOVING FILES OR DIRECTORIES	*netrw-delete* *netrw-remove* *netrw-D*
 
 Deleting/removing files and directories involves moving the cursor to the
-file/directory to be deleted and pressing "D".  Directories must be empty
-first before they can be successfully removed.  If the directory is a softlink
-to a directory, then netrw will make two requests to remove the directory
-before succeeding.  Netrw will ask for confirmation before doing the
-removal(s).  You may select a range of lines with the "V" command (visual
-selection), and then pressing "D".
+file/directory to be deleted and pressing "D".  Directories must be empty first
+before they can be successfully removed.  If the directory is a softlink to a
+directory, then netrw will make two requests to remove the directory before
+succeeding.  Netrw will ask for confirmation before doing the removal(s).
+You may select a range of lines with the "V" command (visual selection),
+and then pressing "D".
 
-The g:netrw_rm_cmd, g:netrw_rmf_cmd, and g:netrw_rmdir_cmd variables are
-used to control the attempts to remove files and directories.  The
-g:netrw_rm_cmd is used with files, and its default value is:
+							*g:netrw_rm_cmd*
+The g:netrw_rm_cmd, g:netrw_rmf_cmd, and g:netrw_rmdir_cmd variables are used
+to control the attempts to remove files and directories.  The g:netrw_rm_cmd
+is used with files, and its default value is:
 
 	g:netrw_rm_cmd: ssh HOSTNAME rm
 
-The g:netrw_rmdir_cmd is used with directories.  Its default value is:
+							*g:netrw_rmdir_cmd*
+The g:netrw_rmdir_cmd variable is used to support the removal of directories.
+Its default value is:
 
 	g:netrw_rmdir_cmd: ssh HOSTNAME rmdir
 
+							*g:netrw_rmf_cmd*
 If removing a directory fails with g:netrw_rmdir_cmd, netrw then will attempt
-to remove it again using the g:netrw_rmf_cmd.  Its default value is:
+to remove it again using the g:netrw_rmf_cmd variable.  Its default value is:
 
 	g:netrw_rmf_cmd: ssh HOSTNAME rm -f
 
-								*netrw-x*
 
-The Netrw executor applies a user-defined function to a file, based on its
-extension.  Of course, the handler function must exist for it to be called.
->
-	Ex. mypgm.html   x ->  NetrwFileHandler_html("scp://user@host/some/path/mypgm.html")
-<
-See the <NetrwFileHandlers.vim>
-
-						*netrw-move* *netrw-rename*
+RENAMING FILES OR DIRECTORIES			*netrw-move* *netrw-rename*
 
 Renaming/moving files and directories involves moving the cursor to the
 file/directory to be moved (renamed) and pressing "R".  You will then be
 queried for where you want the file/directory to be moved.  You may select a
 range of lines with the "V" command (visual selection), and then pressing "R".
 
-The g:netrw_rename_cmd is used to implement renaming.  By default its
+The g:netrw_rename_cmd variable is used to implement renaming.  By default its
 value is:
 
 	ssh HOSTNAME mv
 
-							*netrw-list-hack*
+
+HIDING FILES OR DIRECTORIES		*g:netrw_a* *g:netrw_list_hide*
+
+The "a" map lets the browser ignore the g:netrw_list_hide variable.  Normally
+the g:netrw_list_hide variable holds a comma separated list of patterns which
+will be hidden (removed) from the directory listing.
+
+
+EDIT FILE OR DIRECTORY HIDING					*netrw-h*
+
+The "h" map brings up a requestor allowing the user to change the
+file/directory hiding list.
+
+
+BROWSING WITH A HORIZONTALLY SPLIT WINDOW			*netrw-o*
+
+Normally one enters a file or directory using the <cr>.  However, the "o"
+map allows one to open a new window to hold the new directory listing or
+file.  A horizontal split is used.  (also see |netrw-v|)
+
+
+SELECTING SORTING STYLE						*netrw-s*
+
+One may select the sorting style by name, time, or (file) size.  The
+"s" map allows one to circulate among the three choices; the directory
+listing will automatically be refreshed to reflect the selected style.
+
+
+REVERSING SORTING ORDER						*netrw-r*
+
+One may toggle between normal and reverse sorting order by pressing the
+"r" key.
+
+
+BROWSING WITH A VERTICALLY SPLIT WINDOW				*netrw-v*
+
+Normally one enters a file or directory using the <cr>.  However, the "v"
+map allows one to open a new window to hold the new directory listing or
+file.  A vertical split is used.  (also see |netrw-o|)
+
+
+CUSTOMIZING BROWSING WITH A USER FUNCTION			*netrw-x*
+
+One may "enter" a file with a special handler, thereby firing up a browser or
+other application, for example, on a file by hitting the "x" key.  Presumably
+one could write handlers that would start OpenOffice programs (oowriter), etc,
+based on the file's extension coupled with the user's hitting the "x" key atop
+the file.
+
+The Netrw executor applies a user-defined function to a file, based on its
+extension.  Of course, the handler function must exist for it to be called!
+>
+ Ex. mypgm.html   x ->
+                  NetrwFileHandler_html("scp://user@host/some/path/mypgm.html")
+<
+See the <plugin/NetrwFileHandlers.vim> for an example of how to handle an html
+file with mozilla.
+
+
+IMPROVING DIRECTORY BROWSING				*netrw-list-hack*
+
+Especially with the remote directory browser, constantly entering the password
+is tedious.
+
 For Linux/Unix systems, I suggest looking into
 
 	http://hacks.oreilly.com/pub/h/66

runtime/doc/quickref.txt

-*quickref.txt*  For Vim version 7.0aa.  Last change: 2004 May 05
+*quickref.txt*  For Vim version 7.0aa.  Last change: 2004 Jul 02
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
 |'commentstring'| |'cms'|    template for comments; used for fold marker
 |'compatible'|	  |'cp'|     behave Vi-compatible as much as possible
 |'complete'|	  |'cpt'|    specify how Insert mode completion works
+|'completefunc'|  |'cfu'|    function to be used for Insert mode completion
 |'confirm'|	  |'cf'|     ask what to do about unsaved/read-only files
 |'conskey'|	  |'consk'|  get keys directly from console (MS-DOS only)
 |'copyindent'|    |'ci'|     make 'autoindent' use existing indent structure
 |'printfont'|	  |'pfn'|    name of the font to be used for :hardcopy
 |'printheader'|   |'pheader'| format of the header used for :hardcopy
 |'printoptions'|  |'popt'|   controls the format of :hardcopy output
+|'quoteescape'|   |'qe'|     escape characters used in a string
 |'readonly'|	  |'ro'|     disallow writing the buffer
 |'remap'|		     allow mappings to work recursively
 |'report'|		     threshold for reporting nr. of lines changed

runtime/doc/syntax.txt

-*syntax.txt*	For Vim version 7.0aa.  Last change: 2004 Jun 16
+*syntax.txt*	For Vim version 7.0aa.  Last change: 2004 Jul 01
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
 				:echo g:colors_name
 <			Doesn't work recursively, thus you can't use
 			":colorscheme" in a color scheme script.
+			After the color scheme has been loaded the
+			|ColorScheme| autocommand event is triggered.
 
 :hi[ghlight]		List all the current highlight groups that have
 			attributes set.
 'cdpath'	options.txt	/*'cdpath'*
 'cedit'	options.txt	/*'cedit'*
 'cf'	options.txt	/*'cf'*
+'cfu'	options.txt	/*'cfu'*
 'ch'	options.txt	/*'ch'*
 'character'	intro.txt	/*'character'*
 'charconvert'	options.txt	/*'charconvert'*
 'commentstring'	options.txt	/*'commentstring'*
 'compatible'	options.txt	/*'compatible'*
 'complete'	options.txt	/*'complete'*
+'completefunc'	options.txt	/*'completefunc'*
 'confirm'	options.txt	/*'confirm'*
 'consk'	options.txt	/*'consk'*
 'conskey'	options.txt	/*'conskey'*
 'pt'	options.txt	/*'pt'*
 'pvh'	options.txt	/*'pvh'*
 'pvw'	options.txt	/*'pvw'*
+'qe'	options.txt	/*'qe'*
 'quote	motion.txt	/*'quote*
+'quoteescape''	options.txt	/*'quoteescape''*
 'readonly'	options.txt	/*'readonly'*
 'redraw'	vi_diff.txt	/*'redraw'*
 'remap'	options.txt	/*'remap'*
 Cmdline-mode	cmdline.txt	/*Cmdline-mode*
 CmdwinEnter	autocmd.txt	/*CmdwinEnter*
 CmdwinLeave	autocmd.txt	/*CmdwinLeave*
+ColorScheme	autocmd.txt	/*ColorScheme*
 Command-line	cmdline.txt	/*Command-line*
 Command-line-mode	cmdline.txt	/*Command-line-mode*
 Contents	quickref.txt	/*Contents*
 `{	motion.txt	/*`{*
 `}	motion.txt	/*`}*
 a	insert.txt	/*a*
+a'	motion.txt	/*a'*
 a(	motion.txt	/*a(*
 a)	motion.txt	/*a)*
 a4	options.txt	/*a4*
 aW	motion.txt	/*aW*
 a[	motion.txt	/*a[*
 a]	motion.txt	/*a]*
+a`	motion.txt	/*a`*
 ab	motion.txt	/*ab*
 abandon	editing.txt	/*abandon*
 abbreviations	map.txt	/*abbreviations*
 apache-syntax	syntax.txt	/*apache-syntax*
 apache.vim	syntax.txt	/*apache.vim*
 append()	eval.txt	/*append()*
+aquote	motion.txt	/*aquote*
 arabic.txt	arabic.txt	/*arabic.txt*
 arabicfonts	arabic.txt	/*arabicfonts*
 arabickeymap	arabic.txt	/*arabickeymap*
 compl-define	insert.txt	/*compl-define*
 compl-dictionary	insert.txt	/*compl-dictionary*
 compl-filename	insert.txt	/*compl-filename*
+compl-function	insert.txt	/*compl-function*
 compl-generic	insert.txt	/*compl-generic*
 compl-keyword	insert.txt	/*compl-keyword*
 compl-tag	insert.txt	/*compl-tag*
 htmlos.vim	syntax.txt	/*htmlos.vim*
 http	pi_netrw.txt	/*http*
 i	insert.txt	/*i*
+i'	motion.txt	/*i'*
 i(	motion.txt	/*i(*
 i)	motion.txt	/*i)*
 i<	motion.txt	/*i<*
 i_CTRL-X_CTRL-N	insert.txt	/*i_CTRL-X_CTRL-N*
 i_CTRL-X_CTRL-P	insert.txt	/*i_CTRL-X_CTRL-P*
 i_CTRL-X_CTRL-T	insert.txt	/*i_CTRL-X_CTRL-T*
+i_CTRL-X_CTRL-U	insert.txt	/*i_CTRL-X_CTRL-U*
 i_CTRL-X_CTRL-V	insert.txt	/*i_CTRL-X_CTRL-V*
 i_CTRL-X_CTRL-Y	insert.txt	/*i_CTRL-X_CTRL-Y*
 i_CTRL-X_CTRL-]	insert.txt	/*i_CTRL-X_CTRL-]*
+i_CTRL-X_index	index.txt	/*i_CTRL-X_index*
 i_CTRL-Y	insert.txt	/*i_CTRL-Y*
 i_CTRL-Z	options.txt	/*i_CTRL-Z*
 i_CTRL-[	insert.txt	/*i_CTRL-[*
 i_backspacing	insert.txt	/*i_backspacing*
 i_digraph	digraph.txt	/*i_digraph*
 i_esc	intro.txt	/*i_esc*
+i`	motion.txt	/*i`*
 ia64-syntax	syntax.txt	/*ia64-syntax*
 ia64.vim	syntax.txt	/*ia64.vim*
 ib	motion.txt	/*ib*
 intro	intro.txt	/*intro*
 intro.txt	intro.txt	/*intro.txt*
 ip	motion.txt	/*ip*
+iquote	motion.txt	/*iquote*
 is	motion.txt	/*is*
 isdirectory()	eval.txt	/*isdirectory()*
 iw	motion.txt	/*iw*
 jumpto-diffs	diff.txt	/*jumpto-diffs*
 k	motion.txt	/*k*
 kcc	uganda.txt	/*kcc*
+kde	gui_x11.txt	/*kde*
 kde-toolbar	gui_x11.txt	/*kde-toolbar*
 key-codes	intro.txt	/*key-codes*
 key-codes-changed	version4.txt	/*key-codes-changed*
 new-indent-flex	version6.txt	/*new-indent-flex*
 new-items-6	version6.txt	/*new-items-6*
 new-items-7	version7.txt	/*new-items-7*
+new-kde	version7.txt	/*new-kde*
 new-line-continuation	version5.txt	/*new-line-continuation*
 new-multi-byte	version5.txt	/*new-multi-byte*
 new-multi-lang	version6.txt	/*new-multi-lang*
 v_X	change.txt	/*v_X*
 v_Y	change.txt	/*v_Y*
 v_a	motion.txt	/*v_a*
+v_a'	motion.txt	/*v_a'*
 v_a(	motion.txt	/*v_a(*
 v_a)	motion.txt	/*v_a)*
 v_a<	motion.txt	/*v_a<*
 v_aW	motion.txt	/*v_aW*
 v_a[	motion.txt	/*v_a[*
 v_a]	motion.txt	/*v_a]*
+v_a`	motion.txt	/*v_a`*
 v_ab	motion.txt	/*v_ab*
 v_ap	motion.txt	/*v_ap*
+v_aquote	motion.txt	/*v_aquote*
 v_as	motion.txt	/*v_as*
 v_aw	motion.txt	/*v_aw*
 v_a{	motion.txt	/*v_a{*
 v_gv	visual.txt	/*v_gv*
 v_gw	change.txt	/*v_gw*
 v_i	motion.txt	/*v_i*
+v_i'	motion.txt	/*v_i'*
 v_i(	motion.txt	/*v_i(*
 v_i)	motion.txt	/*v_i)*
 v_i<	motion.txt	/*v_i<*
 v_iW	motion.txt	/*v_iW*
 v_i[	motion.txt	/*v_i[*
 v_i]	motion.txt	/*v_i]*
+v_i`	motion.txt	/*v_i`*
 v_ib	motion.txt	/*v_ib*
 v_ip	motion.txt	/*v_ip*
+v_iquote	motion.txt	/*v_iquote*
 v_is	motion.txt	/*v_is*
 v_iw	motion.txt	/*v_iw*
 v_i{	motion.txt	/*v_i{*

runtime/doc/todo.txt

-*todo.txt*      For Vim version 7.0aa.  Last change: 2004 Jun 30
+*todo.txt*      For Vim version 7.0aa.  Last change: 2004 Jul 02
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
 
 For version 7.0:
 -   Include many PATCHES:
-    -   Include the kvim patch. http://freenux.org/vim/ (Mickael Marchand)
-	Do not add Qtopia yet, it doesn't work very well.
-	update from Mickael 2004 Jun 20.
-    8   Unix: When libcall() fails there is no clear error message.  Johannes
-	Zellner has a patch for this.
-	updated patch 2004 June 16.
-    7   Add the MzScheme interface.  Patch on http://iamphet.nm.ru/scheme/
-	(Sergey Khorev)
-	Alt URL: http://cyber.miem.edu.ru/~iamphet/scheme/mzvim-0.560.tar.gz
-    8   Add patch from Muraoka Taro (Mar 16) to support input method on Mac?
-	New patch 2004 Jun 16
-    8   Add expression-expansion, so that the user can define his own kind of
-	completion.  Patch from Taro Muraoka, 2003 Aug 26.
-	New patch 2004 Jun 16
-    8   Text objects: Add "a'" and 'a"': a single or double quoted string.
-	(Tim Chase) Patch from Taro Muraoka (2003 Dec 16).
-	New patch 2004 Jun 16
     7   Add "nbsp" in 'listchars'?  Patch from David Blanchet, 2003 Jul 28.
 	again 2004 Jun 16
     8   Add ":n" to fnamemodify(): normalize path, remove "../" when possible.
 				Matsumoto) How to get the messages into the
 				.po files?
 				Update 2004 Jun 17
-	---
 	realname()		Get user name (first, last, full)
 				user_fullname() patch by Nikolai Weibull, Nov
 				3 2002)
 	search()		Add optional offset argument.
 				Add 'n' flag.  (patch from Nikolai Weibull
 				2003 Jan 13)
+	---
 	confirm()		add "flags" argument, with 'v' for vertical
 				layout and 'c' for console dialog. (Haegg)
 				Flemming Madsen has a patch for the 'c' flag
 	incomplete patch Mar 18)
 
 
+-   In the kvim/KDE source files fix the formatting.
+-   KDE version is called "kvim".  Make it "gvim", like the others?
 -   Change ga_room into ga_maxlen, so that it doesn't need to be
     incremented/decremented each time.
 -   For string variables, use length instead of NUL termination.
     file.  Can be used to update statusline oslt.
 -   Displaying size of Visual area: use 24-33 column display.
 -   Mac: Unicode input and display (Eckehard Berns, June 27)
-
+8   Add patch from Muraoka Taro (Mar 16) to support input method on Mac?
+    New patch 2004 Jun 16
+7   Add the MzScheme interface?
+    NO: it changes too much of the code, while hardly anybody will use it.
+    Patch on http://iamphet.nm.ru/scheme/ (Sergey Khorev)
+    Alt URL: http://cyber.miem.edu.ru/~iamphet/scheme/mzvim-0.560.tar.gz
 
 Vi incompatibility:
 8   With undo/redo only marks in the changed lines should be changed.  Other
     It starts working after GTK gvim loses the selection and gains it again.
 7   DND doesn't work with KDE (also with GTK 1).
 
+KDE GUI known bugs:
+-   The default font is ugly.  bold text isn't displayed correctly.
+-   Error messages when starting up.  The "tip of the day" box is empty.
+-   Encoding of menu items needs to be converted. (Yasuhiro Matsumoto)
 
 Win32 GUI known bugs:
 8   On Windows 98 the unicows library is needed to support functions with UCS2

runtime/doc/version7.txt

-*version7.txt*  For Vim version 7.0aa.  Last change: 2004 Jun 30
+*version7.txt*  For Vim version 7.0aa.  Last change: 2004 Jul 02
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
 
 Normal mode commands: ~
 
+a", a' and a`		New text objects to select quoted strings. |a'|
+i", i' and i'		(Taro Muraoka)
 
 Options: ~
 
+'completefunc'		The name of a function used for user-specified Insert
+			mode completion.  CTRL-X CTRL-U can be used in Insert
+			mode to do any kind of completion.  (Taro Muraoka)
+'quoteescape'		Characters used to escape quotes inside a string.
+			Used for the a", a' and a` text objects. |a'|
 
 Ex commands: ~
 
 InsertChange		going from Insert to Replace mode or back
 InsertLeave		leaving Insert or Replace mode
 
+ColorScheme		after loading a color scheme
 
-New Syntax files: ~
+
+New Syntax/Indent/FTplugin files: ~
+
+MuPAD source syntax, indent and ftplugin. (Dave Silvia)
+
 
 Others: ~
 
 The tutor was updated to make it simpler to use and added text to explain a
 few more important commands.  Used ideas from Gabriel Zachmann.
 
+Unix: When libcall() fails obtain an error message with dlerror() and display
+it. (Johannes Zellner)
+
 ==============================================================================
 COMPILE TIME CHANGES					*compile-changes-7*
 

runtime/filetype.vim

 " Vim support file to detect file types
 "
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2004 Jun 27
+" Last Change:	2004 Jul 01
 
 " Listen very carefully, I will say this only once
 if exists("did_load_filetypes")
 " M$ Resource files
 au BufNewFile,BufRead *.rc			setf rc
 
+" MuPAD source
+au BufRead,BufNewFile *.mu			setf mupad
+
 " Mush
 au BufNewFile,BufRead *.mush			setf mush
 

runtime/ftplugin/AppendMatchGroup.vim

+" Vim filetype plugin file utility
+" Language:    * (various)
+" Maintainer:  Dave Silvia <dsilvia@mchsi.com>
+" Date:        6/30/2004
+
+" The start of match (b:SOM) default is:
+"       '\<'
+" The end of match (b:EOM) default is:
+"       '\>'
+"
+" If you want to use some other start/end of match, just assign the
+" value to the b:SOM|EOM variable in your filetype script.
+"
+" SEE: :h pattern.txt
+"      :h pattern-searches
+"      :h regular-expression
+"      :h matchit
+
+let s:myName=expand("<sfile>:t")
+
+" matchit.vim not loaded -- don't do anyting
+if !exists("loaded_matchit")
+	echomsg s:myName.": matchit.vim not loaded -- finishing without loading"
+	finish
+endif
+
+" already been here -- don't redefine
+if exists("*AppendMatchGroup")
+	finish
+endif
+
+" Function To Build b:match_words
+" The following function, 'AppendMatchGroup', helps to increase
+" readability of your filetype script if you choose to use matchit.
+" It also precludes many construction errors, reducing the
+" construction to simply invoking the function with the match words.
+" As an example, let's take the ubiquitous if/then/else/endif type
+" of construct.  This is how the entry in your filetype script would look.
+"
+"     " source the AppendMatchGroup function file
+"     runtime ftplugin/AppendMatchGroup.vim
+"
+"     " fill b:match_words
+"     call AppendMatchGroup('if,then,else,endif')
+"
+" And the b:match_words constructed would look like:
+"
+"     \<if\>:\<then\>:\<else\>:\<endif\>
+" 
+" Use of AppendMatchGroup makes your filetype script is a little
+" less busy and a lot more readable.  Additionally, it
+" checks three critical things:
+"
+"      1)  Do you have at least 2 entries in your match group.
+"
+"      2)  Does the buffer variable 'b:match_words' exist?  if not, create it.
+"
+"      3)  If the buffer variable 'b:match_words' does exist, is the last
+"          character a ','?  If not, add it before appending.
+" 
+" You should now be able to match 'if/then/else/endif' in succession
+" in your source file, in just about any construction you may have
+" chosen for them.
+"
+" To add another group, simply call 'AppendMatchGroup again.  E.G.:
+"
+"      call AppendMatchGroup('while,do,endwhile')
+
+function AppendMatchGroup(mwordList)
+	let List=a:mwordList
+	let Comma=match(List,',')
+	if Comma == -1 || Comma == strlen(List)-1
+		echoerr "Must supply a comma separated list of at least 2 entries."
+		echoerr "Supplied list: <".List.">"
+		return
+	endif
+	let listEntryBegin=0
+	let listEntryEnd=Comma
+	let listEntry=strpart(List,listEntryBegin,listEntryEnd-listEntryBegin)
+	let List=strpart(List,Comma+1)
+	let Comma=match(List,',')
+	" if listEntry is all spaces || List is empty || List is all spaces
+	if (match(listEntry,'\s\+') == 0 && match(listEntry,'\S\+') == -1)
+			\ || List == '' || (match(List,'\s\+') == 0 && match(List,'\S\+') == -1)
+		echoerr "Can't use all spaces for an entry <".listEntry.">"
+		echoerr "Remaining supplied list: <".List.">"
+		return
+	endif
+
+	if !exists("b:SOM")
+		let b:SOM='\<'
+	endif
+	if !exists("b:EOM")
+		let b:EOM='\>'
+	endif
+	if !exists("b:match_words")
+		let b:match_words=''
+	endif
+	if b:match_words != '' && match(b:match_words,',$') == -1
+		let b:match_words=b:match_words.','
+	endif
+	" okay, all set add first entry in this list
+	let b:match_words=b:match_words.b:SOM.listEntry.b:EOM.':'
+	while Comma != -1
+		let listEntryEnd=Comma
+		let listEntry=strpart(List,listEntryBegin,listEntryEnd-listEntryBegin)
+		let List=strpart(List,Comma+1)
+		let Comma=match(List,',')
+		" if listEntry is all spaces
+		if match(listEntry,'\s\+') == 0 && match(listEntry,'\S\+') == -1
+			echoerr "Can't use all spaces for an entry <".listEntry."> - skipping"
+			echoerr "Remaining supplied list: <".List.">"
+			continue
+		endif
+		let b:match_words=b:match_words.b:SOM.listEntry.b:EOM.':'
+	endwhile
+	let listEntry=List
+	let b:match_words=b:match_words.b:SOM.listEntry.b:EOM
+endfunction
+
+" TODO:  Write a wrapper to handle multiple groups in one function call.
+"        Don't see a lot of utility in this as it would undoubtedly warrant
+"        continuation lines in the filetype script and it would be a toss
+"        up as to which is more readable: individual calls one to a line or
+"        a single call with continuation lines.  I vote for the former.

runtime/ftplugin/mupad.vim

+" Vim filetype plugin file
+" Language:    MuPAD source files
+" Maintainer:  Dave Silvia <dsilvia@mchsi.com>
+" Filenames:   *.mu
+" Date:        6/30/2004
+
+if exists("b:did_ftplugin") | finish | endif
+let b:did_ftplugin = 1
+
+" Change the :browse e filter to primarily show MuPAD source files.
+if has("gui_win32")
+  let  b:browsefilter=
+		\ "MuPAD source (*.mu)\t*.mu\n" .
+		\	"All Files (*.*)\t*.*\n"
+endif
+
+" matchit.vim not loaded -- don't do anyting below
+if !exists("loaded_matchit")
+	" echomsg "matchit.vim not loaded -- finishing"
+	finish
+endif
+
+" source the AppendMatchGroup function file
+runtime ftplugin/AppendMatchGroup.vim
+
+" fill b:match_words for MuPAD
+call AppendMatchGroup('domain,end_domain')
+call AppendMatchGroup('proc,begin,end_proc')
+call AppendMatchGroup('if,then,elif,else,end_if')
+call AppendMatchGroup('\%(for\|while\|repeat\|case\),of,do,break,next,until,\%(end_for\|end_while\|end_repeat\|end_case\)')

runtime/indent/GenericIndent.vim

+" Vim indent file generic utility functions
+" Language:    * (various)
+" Maintainer:  Dave Silvia <dsilvia@mchsi.com>
+" Date:        6/30/2004
+
+" SUMMARY:  To use GenericIndent, indent/<your_filename>.vim would have the
+"           following general format:
+"
+"      if exists("b:did_indent") | finish | endif
+"      let b:did_indent = 1
+"      runtime indent/GenericIndent.vim
+"      let b:indentStmts=''
+"      let b:dedentStmts=''
+"      let b:allStmts=''
+"      setlocal indentexpr=GenericIndent()
+"      setlocal indentkeys=<your_keys>
+"      call GenericIndentStmts(<your_stmts>)
+"      call GenericDedentStmts(<your_stmts>)
+"      call GenericAllStmts()
+"
+" END SUMMARY:
+
+" NOTE:  b:indentStmts, b:dedentStmts, and b:allStmts need to be initialized
+"        to '' before callin the functions because 'indent.vim' explicitly
+"        'unlet's b:did_indent.  This means that the lists will compound if
+"        you change back and forth between buffers.  This is true as of
+"        version 6.3, 6/23/2004.
+"
+" NOTE:  By default, GenericIndent is case sensitive.
+"        let b:case_insensitive=1 if you want to ignore case, e.g. DOS batch files
+
+" The function 'GenericIndent' is data driven and handles most all cases of
+" indent checking if you first set up the data.  To use this function follow
+" the example below (taken from the file indent/MuPAD_source.vim)
+"
+" Before you start, source this file in indent/<your_script>.vim to have it
+" define functions for your use.
+"
+"runtime indent/GenericIndent.vim
+"
+" The data is in 5 sets:
+"
+" First, set the data set 'indentexpr' to GenericIndent().
+"
+"setlocal indentexpr=GenericIndent()
+"
+" Second, set the data set 'indentkeys' to the keywords/expressions that need
+" to be checked for 'indenting' _as_ they typed.
+"
+"setlocal indentkeys==end_proc,=else,=then,=elif,=end_if,=end_case,=until,=end_repeat,=end_domain,=end_for,=end_while,=end,o,O
+"
+" NOTE: 'o,O' at the end of the previous line says you wish to be called
+" whenever a newline is placed in the buffer.  This allows the previous line
+" to be checked for indentation parameters.
+"
+" Third, set the data set 'b:indentStmts' to the keywords/expressions that, when
+" they are on a line  _when_  you  _press_  the  _<Enter>_  key,
+" you wish to have the next line indented.
+"
+"call GenericIndentStmts('begin,if,then,else,elif,case,repeat,until,domain,do')
+"
+" Fourth, set the data set 'b:dedentStmts' to the keywords/expressions that, when
+" they are on a line you are currently typing, you wish to have that line
+" 'dedented' (having already been indented because of the previous line's
+" indentation).
+"
+"call GenericDedentStmts('end_proc,then,else,elif,end_if,end_case,until,end_repeat,end_domain,end_for,end_while,end')
+"
+" Fifth, set the data set 'b:allStmts' to the concatenation of the third and
+" fourth data sets, used for checking when more than one keyword/expression
+" is on a line.
+"
+"call GenericAllStmts()
+"
+" NOTE:  GenericIndentStmts uses two variables: 'b:indentStmtOpen' and
+" 'b:indentStmtClose' which default to '\<' and '\>' respectively.  You can
+" set (let) these to any value you wish before calling GenericIndentStmts with
+" your list.  Similarly, GenericDedentStmts uses 'b:dedentStmtOpen' and
+" 'b:dedentStmtClose'.
+"
+" NOTE:  Patterns may be used in the lists passed to Generic[In|De]dentStmts
+" since each element in the list is copied verbatim.
+"
+" Optionally, you can set the DEBUGGING flag within your script to have the
+" debugging messages output.  See below for description.  This can also be set
+" (let) from the command line within your editing buffer.
+"
+"let b:DEBUGGING=1
+"
+" See:
+"      :h runtime
+"      :set runtimepath ?
+" to familiarize yourself with how this works and where you should have this
+" file and your file(s) installed.
+"
+" For help with setting 'indentkeys' see:
+"      :h indentkeys
+" Also, for some good examples see 'indent/sh.vim' and 'indent/vim.vim' as
+" well as files for other languages you may be familiar with.
+"
+"
+" Alternatively, if you'd rather specify yourself, you can enter
+" 'b:indentStmts', 'b:dedentStmts', and 'b:allStmts' 'literally':
+"
+"let b:indentStmts='\<begin\>\|\<if\>\|\<then\>\|\<else\>\|\<elif\>\|\<case\>\|\<repeat\>\|\<until\>\|\<domain\>\|\<do\>'
+"let b:dedentStmts='\<end_proc\>\|\<else\>\|\<elif\>\|\<end_if\>\|\<end_case\>\|\<until\>\|\<end_repeat\>\|\<end_domain\>\|\<end_for\>\|\<end_while\>\|\<end\>'
+"let b:allStmts=b:indentStmts.'\|'.b:dedentStmts
+"
+" This is only useful if you have particularly different parameters for
+" matching each statement.
+
+" RECAP:  From indent/MuPAD_source.vim
+"
+"if exists("b:did_indent") | finish | endif
+"
+"let b:did_indent = 1
+"
+"runtime indent/GenericIndent.vim
+"
+"setlocal indentexpr=GenericIndent()
+"setlocal indentkeys==end_proc,=then,=else,=elif,=end_if,=end_case,=until,=end_repeat,=end_domain,=end_for,=end_while,=end,o,O
+"call GenericIndentStmts('begin,if,then,else,elif,case,repeat,until,domain,do')
+"call GenericDedentStmts('end_proc,then,else,elif,end_if,end_case,until,end_repeat,end_domain,end_for,end_while,end')
+"call GenericAllStmts()
+"
+" END RECAP:
+
+let s:hit=0
+let s:lastVlnum=0
+let s:myScriptName=expand("<sfile>:t")
+
+if exists("*GenericIndent")
+	finish
+endif
+
+function GenericAllStmts()
+	let b:allStmts=b:indentStmts.'\|'.b:dedentStmts
+	call DebugGenericIndent(expand("<sfile>").": "."b:indentStmts: ".b:indentStmts.", b:dedentStmts: ".b:dedentStmts.", b:allStmts: ".b:allStmts)
+endfunction
+
+function GenericIndentStmts(stmts)
+	let Stmts=a:stmts
+	let Comma=match(Stmts,',')
+	if Comma == -1 || Comma == strlen(Stmts)-1
+		echoerr "Must supply a comma separated list of at least 2 entries."
+		echoerr "Supplied list: <".Stmts.">"
+		return
+	endif
+
+	if !exists("b:indentStmtOpen")
+		let b:indentStmtOpen='\<'
+	endif
+	if !exists("b:indentStmtClose")
+		let b:indentStmtClose='\>'
+	endif
+	if !exists("b:indentStmts")
+		let b:indentStmts=''
+	endif
+	if b:indentStmts != ''
+		let b:indentStmts=b:indentStmts.'\|'
+	endif
+	call DebugGenericIndent(expand("<sfile>").": "."b:indentStmtOpen: ".b:indentStmtOpen.", b:indentStmtClose: ".b:indentStmtClose.", b:indentStmts: ".b:indentStmts.", Stmts: ".Stmts)
+	let stmtEntryBegin=0
+	let stmtEntryEnd=Comma
+	let stmtEntry=strpart(Stmts,stmtEntryBegin,stmtEntryEnd-stmtEntryBegin)
+	let Stmts=strpart(Stmts,Comma+1)
+	let Comma=match(Stmts,',')
+	let b:indentStmts=b:indentStmts.b:indentStmtOpen.stmtEntry.b:indentStmtClose
+	while Comma != -1
+		let stmtEntryEnd=Comma
+		let stmtEntry=strpart(Stmts,stmtEntryBegin,stmtEntryEnd-stmtEntryBegin)
+		let Stmts=strpart(Stmts,Comma+1)
+		let Comma=match(Stmts,',')
+		let b:indentStmts=b:indentStmts.'\|'.b:indentStmtOpen.stmtEntry.b:indentStmtClose
+	endwhile
+	let stmtEntry=Stmts
+	let b:indentStmts=b:indentStmts.'\|'.b:indentStmtOpen.stmtEntry.b:indentStmtClose
+endfunction
+
+function GenericDedentStmts(stmts)
+	let Stmts=a:stmts
+	let Comma=match(Stmts,',')
+	if Comma == -1 || Comma == strlen(Stmts)-1
+		echoerr "Must supply a comma separated list of at least 2 entries."
+		echoerr "Supplied list: <".Stmts.">"
+		return
+	endif
+
+	if !exists("b:dedentStmtOpen")
+		let b:dedentStmtOpen='\<'
+	endif
+	if !exists("b:dedentStmtClose")
+		let b:dedentStmtClose='\>'
+	endif
+	if !exists("b:dedentStmts")
+		let b:dedentStmts=''
+	endif
+	if b:dedentStmts != ''
+		let b:dedentStmts=b:dedentStmts.'\|'
+	endif
+	call DebugGenericIndent(expand("<sfile>").": "."b:dedentStmtOpen: ".b:dedentStmtOpen.", b:dedentStmtClose: ".b:dedentStmtClose.", b:dedentStmts: ".b:dedentStmts.", Stmts: ".Stmts)
+	let stmtEntryBegin=0
+	let stmtEntryEnd=Comma
+	let stmtEntry=strpart(Stmts,stmtEntryBegin,stmtEntryEnd-stmtEntryBegin)
+	let Stmts=strpart(Stmts,Comma+1)
+	let Comma=match(Stmts,',')
+	let b:dedentStmts=b:dedentStmts.b:dedentStmtOpen.stmtEntry.b:dedentStmtClose
+	while Comma != -1
+		let stmtEntryEnd=Comma
+		let stmtEntry=strpart(Stmts,stmtEntryBegin,stmtEntryEnd-stmtEntryBegin)
+		let Stmts=strpart(Stmts,Comma+1)
+		let Comma=match(Stmts,',')
+		let b:dedentStmts=b:dedentStmts.'\|'.b:dedentStmtOpen.stmtEntry.b:dedentStmtClose
+	endwhile
+	let stmtEntry=Stmts
+	let b:dedentStmts=b:dedentStmts.'\|'.b:dedentStmtOpen.stmtEntry.b:dedentStmtClose
+endfunction
+
+" Debugging function.  Displays messages in the command area which can be
+" reviewed using ':messages'.  To turn it on use ':let b:DEBUGGING=1'.  Once
+" on, turn off by using ':let b:DEBUGGING=0.  If you don't want it at all and
+" feel it's slowing down your editing (you must have an _awfully_ slow
+" machine!;-> ), you can just comment out the calls to it from 'GenericIndent'
+" below.  No need to remove the function or the calls, tho', as you never can
+" tell when they might come in handy!;-)
+function DebugGenericIndent(msg)
+  if exists("b:DEBUGGING") && b:DEBUGGING
+		echomsg '['.s:hit.']'.s:myScriptName."::".a:msg
+	endif
+endfunction
+
+function GenericIndent()
+	" save ignore case option.  Have to set noignorecase for the match
+	" functions to do their job the way we want them to!
+	" NOTE: if you add a return to this function be sure you do
+	"           if IgnoreCase | set ignorecase | endif
+	"       before returning.  You can just cut and paste from here.
+	let IgnoreCase=&ignorecase
+	" let b:case_insensitive=1 if you want to ignore case, e.g. DOS batch files
+	if !exists("b:case_insensitive")
+		set noignorecase
+	endif
+	" this is used to let DebugGenericIndent display which invocation of the
+	" function goes with which messages.
+	let s:hit=s:hit+1
+  let lnum=v:lnum
+	let cline=getline(lnum)
+	let lnum=prevnonblank(lnum)
+	if lnum==0 | if IgnoreCase | set ignorecase | endif | return 0 | endif
+	let pline=getline(lnum)
+  let ndnt=indent(lnum)
+	if !exists("b:allStmts")
+		call GenericAllStmts()
+	endif
+
+	call DebugGenericIndent(expand("<sfile>").": "."cline=<".cline.">, pline=<".pline.">, lnum=".lnum.", v:lnum=".v:lnum.", ndnt=".ndnt)
+	if lnum==v:lnum
+		" current line, only check dedent
+		"
+		" just dedented this line, don't need to do it again.
+		" another dedentStmts was added or an end%[_*] was completed.
+		if s:lastVlnum==v:lnum
+ 			if IgnoreCase | set ignorecase | endif
+			return ndnt
+		endif
+		let s:lastVlnum=v:lnum
+		call DebugGenericIndent(expand("<sfile>").": "."Checking dedent")
+		let srcStr=cline
+		let dedentKeyBegin=match(srcStr,b:dedentStmts)
+		if dedentKeyBegin != -1
+			let dedentKeyEnd=matchend(srcStr,b:dedentStmts)
+			let dedentKeyStr=strpart(srcStr,dedentKeyBegin,dedentKeyEnd-dedentKeyBegin)
+			"only dedent if it's the beginning of the line
+			if match(srcStr,'^\s*\<'.dedentKeyStr.'\>') != -1
+				call DebugGenericIndent(expand("<sfile>").": "."It's the beginning of the line, dedent")
+				let ndnt=ndnt-&shiftwidth
+			endif
+		endif
+		call DebugGenericIndent(expand("<sfile>").": "."dedent - returning ndnt=".ndnt)
+	else
+		" previous line, only check indent
+		call DebugGenericIndent(expand("<sfile>").": "."Checking indent")
+		let srcStr=pline
+		let indentKeyBegin=match(srcStr,b:indentStmts)
+		if indentKeyBegin != -1
+			" only indent if it's the last indentStmts in the line
+			let allKeyBegin=match(srcStr,b:allStmts)
+			let allKeyEnd=matchend(srcStr,b:allStmts)
+			let allKeyStr=strpart(srcStr,allKeyBegin,allKeyEnd-allKeyBegin)
+			let srcStr=strpart(srcStr,allKeyEnd)
+			let allKeyBegin=match(srcStr,b:allStmts)
+			if allKeyBegin != -1
+				" not the end of the line, check what is and only indent if
+				" it's an indentStmts
+				call DebugGenericIndent(expand("<sfile>").": "."Multiple words in line, checking if last is indent")
+				while allKeyBegin != -1
+					let allKeyEnd=matchend(srcStr,b:allStmts)
+					let allKeyStr=strpart(srcStr,allKeyBegin,allKeyEnd-allKeyBegin)
+					let srcStr=strpart(srcStr,allKeyEnd)
+					let allKeyBegin=match(srcStr,b:allStmts)
+				endwhile
+				if match(b:indentStmts,allKeyStr) != -1
+					call DebugGenericIndent(expand("<sfile>").": "."Last word in line is indent")
+					let ndnt=ndnt+&shiftwidth
+				endif
+			else
+				" it's the last indentStmts in the line, go ahead and indent
+				let ndnt=ndnt+&shiftwidth
+			endif
+		endif
+		call DebugGenericIndent(expand("<sfile>").": "."indent - returning ndnt=".ndnt)
+	endif
+	if IgnoreCase | set ignorecase | endif
+	return ndnt
+endfunction
+
+
+" TODO:  I'm open!
+"
+" BUGS:  You tell me!  Probably.  I just haven't found one yet or haven't been
+"        told about one.
+"        

runtime/indent/mupad.vim

+" Vim indent file
+" Language:    MuPAD source files
+" Maintainer:  Dave Silvia <dsilvia@mchsi.com>
+" Filenames:   *.mu
+" Date:        6/30/2004
+
+if exists("b:did_indent")
+	finish
+endif
+
+let b:did_indent = 1
+
+runtime indent/GenericIndent.vim
+
+let b:indentStmts=''
+let b:dedentStmts=''
+let b:allStmts=''
+" NOTE:  b:indentStmts, b:dedentStmts, and b:allStmts need to be initialized
+"        to '' before callin the functions because 'indent.vim' explicitly
+"        'unlet's b:did_indent.  This means that the lists will compound if
+"        you change back and forth between buffers.  This is true as of
+"        version 6.3, 6/23/2004.
+setlocal indentexpr=GenericIndent()
+setlocal indentkeys==end_proc,=then,=else,=elif,=end_if,=end_case,=until,=end_repeat,=end_domain,=end_for,=end_while,=end,o,O
+
+call GenericIndentStmts('begin,if,then,else,elif,case,repeat,until,domain,do')
+call GenericDedentStmts('end_proc,then,else,elif,end_if,end_case,until,end_repeat,end_domain,end_for,end_while,end')
+call GenericAllStmts()
+
+
+" TODO:  More comprehensive indentstmt, dedentstmt, and indentkeys values.
+"
+" BUGS:  You tell me!  Probably.  I just haven't found one yet or haven't been
+"        told about one.
+"        

runtime/optwin.vim

 " These commands create the option window.
 "
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2004 May 04
+" Last Change:	2004 Jul 02
 
 " If there already is an option window, jump to that one.
 if bufwinnr("option-window") > 0
   call append("$", "complete\tspecifies how Insert mode completion works")
   call append("$", "\t(local to buffer)")
   call <SID>OptionL("cpt")
+  call append("$", "completefunc\tuser defined function for Insert mode completion")
+  call append("$", "\t(local to buffer)")
+  call <SID>OptionL("cfu")
   call append("$", "dictionary\tlist of dictionary files for keyword completion")
   call append("$", "\t(global or local to buffer)")
   call <SID>OptionG("dict", &dict)
 call <SID>OptionL("isk")
 call append("$", "isprint\tspecifies printable characters")
 call <SID>OptionG("isp", &isp)
+if has("textobjects")
+  call append("$", "quoteescape\tspecifies escape characters in a string")
+  call append("$", "\t(local to buffer)")
+  call <SID>OptionL("qe")
+endif
 if has("rightleft")
   call append("$", "rightleft\tdisplay the buffer right-to-left")
   call append("$", "\t(local to window)")

runtime/plugin/NetrwFileHandlers.vim

 " NetrwFileHandlers: contains various extension-based file handlers for
 "               netrw's browser
 " Author:	Charles E. Campbell, Jr.
-" Date:		Jun 25, 2004
-" Version:	1
+" Date:		Jul 02, 2004
+" Version:	2
 " ---------------------------------------------------------------------
 
-" NetrwFileHandler_html: handles html
+" NetrwFileHandler_html: handles html when the user hits "x" when the
+"                        cursor is atop a *.html file
 fun! NetrwFileHandler_html(webpage)
 "  call Dfunc("NetrwFileHandler_html(".a:webpage.")")
 
   else
    let page= substitute(a:webpage,'^\w\+://\%(\w*@\)\=\(\w\+\)/','http://\1/','e')
   endif
+
+  if executable("mozilla")
 "  call Decho("executing !mozilla ".page)
-  exe "!mozilla ".page
+   exe "!mozilla ".page
+  elseif executable("netscape")
+"  call Decho("executing !netscape ".page)
+   exe "!netscape ".page
+  endif
 
 "  call Dret("NetrwFileHandler_html")
 endfun

runtime/plugin/netrw.vim

 " netrw.vim: Handles file transfer and remote directory listing across a network
-" Last Change:	Jun 24, 2004
+" Last Change:	Jun 30, 2004
 " Maintainer:	Charles E. Campbell, Jr. PhD   <drchipNOSPAM at campbellfamily.biz>
-" Version:	47f	NOT RELEASED
+" Version:	47g	ASTRO-ONLY
 " License:	Vim License  (see vim's :help license)
 "
 "  But be doers of the word, and not only hearers, deluding your own selves
 if exists("loaded_netrw") || &cp
   finish
 endif
-let loaded_netrw = "v47f	NOT RELEASED"
+let loaded_netrw = "v47g	ASTRO-ONLY"
 let s:save_cpo   = &cpo
 set cpo&vim
 
   " provide a default listing command
   let g:netrw_list_cmd= "ssh HOSTNAME ls -FLa"
  else
-  call Decho("ssh is not executable, can't do remote directory exploring")
+"  call Decho("ssh is not executable, can't do remote directory exploring")
   let g:netrw_list_cmd= ""
  endif
 endif
 if !exists("g:netrw_list_hide")
  let g:netrw_list_hide= ""
 endif
+if !exists("g:netrw_sort_by")
+ " alternatives: date size
+ let g:netrw_sort_by= "name"
+endif
+if !exists("g:netrw_sort_sequence")
+ let g:netrw_sort_sequence= '/$,*,\.bak$,\.o$,\.h$,\.info$,\.swp$,\.obj$'
+endif
+if !exists("g:netrw_sort_direction")
+ " alternative: reverse  (z y x ...)
+ let g:netrw_sort_direction= "normal"
+endif
 
 " ---------------------------------------------------------------------
 " Default values for global protocol variables {{{1
 " ------------------------------------------------------------------------
 " NetSavePosn: saves position of cursor on screen {{{1
 fun! s:NetSavePosn()
-  call Dfunc("NetSavePosn()")
+"  call Dfunc("NetSavePosn()")
   " Save current line and column
   let s:netrw_winnr= winnr()
   let s:netrw_line = line(".")
   let s:netrw_hline= line(".")
 
   call s:NetRestorePosn()
-  call Dret("NetSavePosn : winnr=".s:netrw_winnr." line=".s:netrw_line." col=".s:netrw_col." hline=".s:netrw_hline)
+"  call Dret("NetSavePosn : winnr=".s:netrw_winnr." line=".s:netrw_line." col=".s:netrw_col." hline=".s:netrw_hline)
 endfun
 
 " ------------------------------------------------------------------------
 " NetRestorePosn: restores the cursor and file position as saved by NetSavePosn() {{{1
 fun! <SID>NetRestorePosn()
-  call Dfunc("NetRestorePosn() winnr=".s:netrw_winnr." line=".s:netrw_line." col=".s:netrw_col." hline=".s:netrw_hline)
+"  call Dfunc("NetRestorePosn() winnr=".s:netrw_winnr." line=".s:netrw_line." col=".s:netrw_col." hline=".s:netrw_hline)
 
   exe "silent! ".s:netrw_winnr."wincmd w"
   if v:shell_error == 0
   " restore position
   exe "norm! ".s:netrw_line."G0".s:netrw_col."\<bar>"
 
-  call Dret("NetRestorePosn")
+"  call Dret("NetRestorePosn")
 endfun
 
 " ------------------------------------------------------------------------
 " NetRead: responsible for reading a file over the net {{{1
 fun! s:NetRead(...)
-  call Dfunc("NetRead(a:1<".a:1.">)")
+"  call Dfunc("NetRead(a:1<".a:1.">)")
  
   " save options
   call s:NetOptionSave()
   " get name of a temporary file
   let tmpfile= tempname()
  
-  call Decho("ichoice=".ichoice." readcmd<".readcmd.">")
+"  call Decho("ichoice=".ichoice." readcmd<".readcmd.">")
   while ichoice <= a:0
  
    " attempt to repeat with previous host-file-etc
    if exists("b:netrw_lastfile") && a:0 == 0
-    call Decho("using b:netrw_lastfile<" . b:netrw_lastfile . ">")
+"    call Decho("using b:netrw_lastfile<" . b:netrw_lastfile . ">")
     let choice = b:netrw_lastfile
     let ichoice= ichoice + 1
  
    else
     exe "let choice= a:" . ichoice
-    call Decho("no lastfile: choice<" . choice . ">")
+"    call Decho("no lastfile: choice<" . choice . ">")
  
     " Reconstruct Choice if choice starts with '"'
     if match(choice,"?") == 0
      echo ':Nread sftp://[user@]machine[[:#]port]/path uses sftp'
      break
     elseif match(choice,"^\"") != -1
-     call Decho("reconstructing choice")
+"     call Decho("reconstructing choice")
      if match(choice,"\"$") != -1
       " case "..."
       let choice=strpart(choice,1,strlen(choice)-2)
        let ichoice     = ichoice + 1
        if ichoice > a:0
         echoerr "Unbalanced string in filename '". wholechoice ."'"
-        call Dret("NetRead")
+"        call Dret("NetRead")
         return
        endif
        let choice= a:{ichoice}
     endif
    endif
 
-   call Decho("choice<" . choice . ">")
+"   call Decho("choice<" . choice . ">")
    let ichoice= ichoice + 1
  
    " fix up windows urls
    if has("win32")
     let choice = substitute(choice,'\\','/','ge')
-    call Decho("fixing up windows url to <".choice."> tmpfile<".tmpfile)
+"    call Decho("fixing up windows url to <".choice."> tmpfile<".tmpfile)
 
     exe 'lcd ' . fnamemodify(tmpfile,':h')
     let tmpfile = fnamemodify(tmpfile,':t')
    call s:NetMethod(choice)
  
    " Check if NetBrowse() should be handling this request
-   call Decho("checking if netlist: choice<".choice."> netrw_list_cmd<".g:netrw_list_cmd.">")
+"   call Decho("checking if netlist: choice<".choice."> netrw_list_cmd<".g:netrw_list_cmd.">")
    if choice =~ "^.*/$"
     if strlen(g:netrw_list_cmd) > 0
      keepjumps call s:NetBrowse(choice)
-     call Dret("NetRead")
+"     call Dret("NetRead")
     else
      echoerr "sorry, can't do a remote listing; ssh isn't executable"
     endif
    ".........................................
    " rcp:  NetRead Method #1
    if  b:netrw_method == 1 " read with rcp
-    call Decho("read via rcp (method #1)")
+"    call Decho("read via rcp (method #1)")
    " ER: noting done with g:netrw_uid yet?
    " ER: on Win2K" rcp machine[.user]:file tmpfile
    " ER: if machine contains '.' adding .user is required (use $USERNAME)
      let uid_machine = g:netrw_machine
     endif
    endif
-   call Decho("executing: !".g:netrw_rcp_cmd." ".s:netrw_rcpmode." ".uid_machine.":".escape(b:netrw_fname,' ?&')." ".tmpfile)
+"   call Decho("executing: !".g:netrw_rcp_cmd." ".s:netrw_rcpmode." ".uid_machine.":".escape(b:netrw_fname,' ?&')." ".tmpfile)
    exe g:netrw_silentxfer."!".g:netrw_rcp_cmd." ".s:netrw_rcpmode." ".uid_machine.":".escape(b:netrw_fname,' ?&')." ".tmpfile
    let result           = s:NetGetFile(readcmd, tmpfile, b:netrw_method)
    let b:netrw_lastfile = choice
    ".........................................
    " ftp + <.netrc>:  NetRead Method #2
    elseif b:netrw_method  == 2		" read with ftp + <.netrc>
-    call Decho("read via ftp+.netrc (method #2)")
+"    call Decho("read via ftp+.netrc (method #2)")
      let netrw_fname= b:netrw_fname
      new
      set ff=unix
      exe "put ='".g:netrw_ftpmode."'"
      exe "put ='get ".netrw_fname." ".tmpfile."'"
      if exists("g:netrw_port") && g:netrw_port != ""
-      call Decho("executing: %!".g:netrw_ftp_cmd." -i ".g:netrw_machine." ".g:netrw_port)
+"      call Decho("executing: %!".g:netrw_ftp_cmd." -i ".g:netrw_machine." ".g:netrw_port)
       exe g:netrw_silentxfer."%!".g:netrw_ftp_cmd." -i ".g:netrw_machine." ".g:netrw_port
      else
-      call Decho("executing: %!".g:netrw_ftp_cmd." -i ".g:netrw_machine)
+"      call Decho("executing: %!".g:netrw_ftp_cmd." -i ".g:netrw_machine)
       exe g:netrw_silentxfer."%!".g:netrw_ftp_cmd." -i ".g:netrw_machine
      endif
      " If the result of the ftp operation isn't blank, show an error message (tnx to Doug Claar)
    " ftp + machine,id,passwd,filename:  NetRead Method #3
    elseif b:netrw_method == 3		" read with ftp + machine, id, passwd, and fname
     " Construct execution string (four lines) which will be passed through filter
-    call Decho("read via ftp+mipf (method #3)")
+"    call Decho("read via ftp+mipf (method #3)")
     let netrw_fname= b:netrw_fname
     new
     set ff=unix
     " -i       : turns off interactive prompting from ftp
     " -n  unix : DON'T use <.netrc>, even though it exists
     " -n  win32: quit being obnoxious about password
-    call Decho('performing ftp -i -n')
+"    call Decho('performing ftp -i -n')
     norm 1Gdd
-    call Decho("executing: %!".g:netrw_ftp_cmd." -i -n")
+"    call Decho("executing: %!".g:netrw_ftp_cmd." -i -n")
     exe g:netrw_silentxfer."%!".g:netrw_ftp_cmd." -i -n"
     " If the result of the ftp operation isn't blank, show an error message (tnx to Doug Claar)
     if getline(1) !~ "^$"
    ".........................................
    " scp: NetRead Method #4
    elseif     b:netrw_method  == 4	" read with scp
-    call Decho("read via scp (method #4)")
+"    call Decho("read via scp (method #4)")
     if exists("g:netrw_port") && g:netrw_port != ""
      let useport= " -P ".g:netrw_port
     else
     endif
     if g:netrw_cygwin == 1
      let cygtmpfile=substitute(tmpfile,'^\(\a\):','/cygdrive/\1/','e')
-     call Decho("executing: !".g:netrw_scp_cmd.useport." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".cygtmpfile)
+"     call Decho("executing: !".g:netrw_scp_cmd.useport." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".cygtmpfile)
      exe g:netrw_silentxfer."!".g:netrw_scp_cmd.useport." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".cygtmpfile
     else
-     call Decho("executing: !".g:netrw_scp_cmd.useport." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".tmpfile)
+"     call Decho("executing: !".g:netrw_scp_cmd.useport." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".tmpfile)
      exe g:netrw_silentxfer."!".g:netrw_scp_cmd.useport." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".tmpfile
     endif
     let result		= s:NetGetFile(readcmd, tmpfile, b:netrw_method)
  
    ".........................................
    elseif     b:netrw_method  == 5	" read with http (wget)
-    call Decho("read via http (method #5)")
+"    call Decho("read via http (method #5)")
     if g:netrw_http_cmd == ""
      echoerr "neither wget nor fetch command is available"
      exit
  
     if match(b:netrw_fname,"#") == -1
      " simple wget
-     call Decho("executing: !".g:netrw_http_cmd." ".tmpfile." http://".g:netrw_machine.escape(b:netrw_fname,' ?&'))
+"     call Decho("executing: !".g:netrw_http_cmd." ".tmpfile." http://".g:netrw_machine.escape(b:netrw_fname,' ?&'))
      exe g:netrw_silentxfer."!".g:netrw_http_cmd." ".tmpfile." http://".g:netrw_machine.escape(b:netrw_fname,' ?&')
      let result = s:NetGetFile(readcmd, tmpfile, b:netrw_method)
  
      " wget plus a jump to an in-page marker (ie. http://abc/def.html#aMarker)
      let netrw_html= substitute(b:netrw_fname,"#.*$","","")
      let netrw_tag = substitute(b:netrw_fname,"^.*#","","")
-     call Decho("netrw_html<".netrw_html.">")
-     call Decho("netrw_tag <".netrw_tag.">")
-     call Decho("executing: !".g:netrw_http_cmd." ".tmpfile." http://".g:netrw_machine.netrw_html)
+"     call Decho("netrw_html<".netrw_html.">")
+"     call Decho("netrw_tag <".netrw_tag.">")
+"     call Decho("executing: !".g:netrw_http_cmd." ".tmpfile." http://".g:netrw_machine.netrw_html)
      exe g:netrw_silentxfer."!".g:netrw_http_cmd." ".tmpfile." http://".g:netrw_machine.netrw_html
      let result = s:NetGetFile(readcmd, tmpfile, b:netrw_method)
-     call Decho('<\s*a\s*name=\s*"'.netrw_tag.'"/')
+"     call Decho('<\s*a\s*name=\s*"'.netrw_tag.'"/')
      exe 'norm! 1G/<\s*a\s*name=\s*"'.netrw_tag.'"/'."\<CR>"
     endif
     let b:netrw_lastfile = choice
    ".........................................
    " cadaver: NetRead Method #6
    elseif     b:netrw_method  == 6	" read with cadaver
-    call Decho("read via cadaver (method #6)")
+"    call Decho("read via cadaver (method #6)")
  
     " Construct execution string (four lines) which will be passed through filter
     let netrw_fname= b:netrw_fname
  
     " perform cadaver operation:
     norm 1Gdd
-    call Decho("executing: %!".g:netrw_dav_cmd)
+"    call Decho("executing: %!".g:netrw_dav_cmd)
     exe g:netrw_silentxfer."%!".g:netrw_dav_cmd
     bd!
-    let result		= s:NetGetFile(readcmd, tmpfile, b:netrw_method)
+    let result           = s:NetGetFile(readcmd, tmpfile, b:netrw_method)
     let b:netrw_lastfile = choice
  
    ".........................................
    " rsync: NetRead Method #7
    elseif     b:netrw_method  == 7	" read with rsync
-    call Decho("read via rsync (method #7)")
+"    call Decho("read via rsync (method #7)")
     if g:netrw_cygwin == 1
      let cygtmpfile=substitute(tmpfile,'^\(\a\):','/cygdrive/\1/','e')
-     call Decho("executing: !".g:netrw_rsync_cmd." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".cygtmpfile)
+"     call Decho("executing: !".g:netrw_rsync_cmd." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".cygtmpfile)
      exe g:netrw_silentxfer."!".g:netrw_rsync_cmd." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".cygtmpfile
     else
-     call Decho("executing: !".g:netrw_rsync_cmd." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".tmpfile)
+"     call Decho("executing: !".g:netrw_rsync_cmd." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".tmpfile)
      exe g:netrw_silentxfer."!".g:netrw_rsync_cmd." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".tmpfile
     endif
     let result		= s:NetGetFile(readcmd,tmpfile, b:netrw_method)
     else
      let netrw_option= "ftp"
     endif
-    call Decho("read via fetch for ".netrw_option)
+"    call Decho("read via fetch for ".netrw_option)
  
     if exists("g:netrw_uid") && g:netrw_uid != "" && exists("g:netrw_passwd") && g:netrw_passwd != ""
-     call Decho("executing: !".g:netrw_fetch_cmd." ".tmpfile." ".netrw_option."://".g:netrw_uid.':'.g:netrw_passwd.'@'.g:netrw_machine."/".escape(b:netrw_fname,' ?&'))
+"     call Decho("executing: !".g:netrw_fetch_cmd." ".tmpfile." ".netrw_option."://".g:netrw_uid.':'.g:netrw_passwd.'@'.g:netrw_machine."/".escape(b:netrw_fname,' ?&'))
      exe g:netrw_silentxfer."!".g:netrw_fetch_cmd." ".tmpfile." ".netrw_option."://".g:netrw_uid.':'.g:netrw_passwd.'@'.g:netrw_machine."/".escape(b:netrw_fname,' ?&')
     else
-     call Decho("executing: !".g:netrw_fetch_cmd." ".tmpfile." ".netrw_option."://".g:netrw_machine."/".escape(b:netrw_fname,' ?&'))
+"     call Decho("executing: !".g:netrw_fetch_cmd." ".tmpfile." ".netrw_option."://".g:netrw_machine."/".escape(b:netrw_fname,' ?&'))
      exe g:netrw_silentxfer."!".g:netrw_fetch_cmd." ".tmpfile." ".netrw_option."://".g:netrw_machine."/".escape(b:netrw_fname,' ?&')
     endif
  
    ".........................................
    " sftp: NetRead Method #9
    elseif     b:netrw_method  == 9	" read with sftp
-    call Decho("read via sftp (method #4)")
+"    call Decho("read via sftp (method #4)")
     if g:netrw_cygwin == 1
      let cygtmpfile=substitute(tmpfile,'^\(\a\):','/cygdrive/\1/','e')
-     call Decho("!".g:netrw_sftp_cmd." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".cygtmpfile)
-     call Decho("executing: !".g:netrw_sftp_cmd." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".cygtmpfile)
+"     call Decho("!".g:netrw_sftp_cmd." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".cygtmpfile)
+"     call Decho("executing: !".g:netrw_sftp_cmd." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".cygtmpfile)
      exe "!".g:netrw_sftp_cmd." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".cygtmpfile
     else
-     call Decho("executing: !".g:netrw_sftp_cmd." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".tmpfile)
+"     call Decho("executing: !".g:netrw_sftp_cmd." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".tmpfile)
      exe g:netrw_silentxfer."!".g:netrw_sftp_cmd." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".tmpfile
     endif
     let result		= s:NetGetFile(readcmd, tmpfile, b:netrw_method)
   endwhile
  
   " cleanup
-  call Decho("cleanup")
+"  call Decho("cleanup")
   if exists("b:netrw_method")
    unlet b:netrw_method
    unlet g:netrw_machine
   endif
   call s:NetOptionRestore()
  
-  call Dret("NetRead")
+"  call Dret("NetRead")
 endfun
 " end of NetRead
 
 " ------------------------------------------------------------------------
 " NetGetFile: Function to read file "fname" with command "readcmd". {{{1
 fun! s:NetGetFile(readcmd, fname, method)
-   call Dfunc("NetGetFile(readcmd<".a:readcmd.">,fname<".a:fname."> method<".a:method.">)")
+"   call Dfunc("NetGetFile(readcmd<".a:readcmd.">,fname<".a:fname."> method<".a:method.">)")
  
   if exists("*NetReadFixup")
    " for the use of NetReadFixup (not otherwise used internally)
   if &term == "win32"
    if &shell == "bash"
     let fname=a:fname
-    call Decho("(win32 && bash) fname<".fname.">")
+"    call Decho("(win32 && bash) fname<".fname.">")
    else
     let fname=substitute(a:fname,'/','\\\\','ge')
-    call Decho("(win32 && !bash) fname<".fname.">")
+"    call Decho("(win32 && !bash) fname<".fname.">")
    endif
   else
    let fname= a:fname
-   call Decho("(copied) fname<".fname.">")
+"   call Decho("(copied) fname<".fname.">")
   endif
  
   " get the file, but disable undo when reading a new buffer
     let &ul= oldul
    endif
   elseif filereadable(fname)
-   call Decho("exe<".a:readcmd." ".v:cmdarg." ".fname.">")
+"   call Decho("exe<".a:readcmd." ".v:cmdarg." ".fname.">")
    exe a:readcmd." ".v:cmdarg." ".fname
   else
-   call Dret("NetGetFile")
+"   call Dret("NetGetFile")
    return
   endif
  
    else
     let line2= line("$") - line2
    endif
-   call Decho("calling NetReadFixup(method<".a:method."> line1=".line1." line2=".line2.")")
+"   call Decho("calling NetReadFixup(method<".a:method."> line1=".line1." line2=".line2.")")
    call NetReadFixup(a:method, line1, line2)
   endif
  
-  call Decho("readcmd<".a:readcmd."> cmdarg<".v:cmdarg."> fname<".a:fname."> readable=".filereadable(a:fname))
+"  call Decho("readcmd<".a:readcmd."> cmdarg<".v:cmdarg."> fname<".a:fname."> readable=".filereadable(a:fname))
  
  " insure that we have the right filetype and that its being displayed
   filetype detect
   redraw!
-  call Dret("NetGetFile")
+"  call Dret("NetGetFile")
 endfun
 
 " ------------------------------------------------------------------------
 " NetWrite: responsible for writing a file over the net {{{1
 fun! s:NetWrite(...) range
-  call Dfunc("NetWrite(a:0=".a:0.")")
+"  call Dfunc("NetWrite(a:0=".a:0.")")
  
   " option handling
   let mod= 0
  
    " attempt to repeat with previous host-file-etc
    if exists("b:netrw_lastfile") && a:0 == 0
-    call Decho("using b:netrw_lastfile<" . b:netrw_lastfile . ">")
+"    call Decho("using b:netrw_lastfile<" . b:netrw_lastfile . ">")
     let choice = b:netrw_lastfile
     let ichoice= ichoice + 1
    else
        let ichoice    = ichoice + 1
        if choice > a:0
         echoerr "Unbalanced string in filename '". wholechoice ."'"
-        call Dret("NetWrite")
+"        call Dret("NetWrite")
         return
        endif