usr/src/cmd/vim/runtime.patch
author Cyril Plisko <cyril.plisko@grigale.com>
Tue, 06 Apr 2010 16:00:14 +0300
changeset 11 87960ed158f9
parent 10 612517e396e0
child 12 12fc69ddc5a5
permissions -rw-r--r--
Import sfw build 137 Bugs Fixed ---------- 6926835 Wireshark cannot open files typed into the location bar 6930214 CVE-2010-0624: Heap-based buffer overflow in GNU Tar 6933424 Various sfw manual pages need to be adjusted to use the new OpenSolaris package names. 6937764 upgrade OpenSSL to 0.9.8n (and fix CVE-2010-0740)

diff -Nur runtime.patched/autoload/netrw.vim runtime/autoload/netrw.vim
--- runtime.patched/autoload/netrw.vim	2008-08-09 05:14:28.000000000 -0700
+++ runtime/autoload/netrw.vim	2009-01-14 12:15:27.000000000 -0800
@@ -1,7 +1,7 @@
 " netrw.vim: Handles file transfer and remote directory listing across
 "            AUTOLOAD SECTION
-" Date:		Aug 08, 2008
-" Version:	132
+" Date:		Jan 14, 2009
+" Version:	135
 " Maintainer:	Charles E Campbell, Jr <[email protected]>
 " GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim
 " Copyright:    Copyright (C) 1999-2008 Charles E. Campbell, Jr. {{{1
@@ -22,12 +22,18 @@
 if &cp || exists("g:loaded_netrw")
   finish
 endif
+let g:loaded_netrw = "v135"
+if v:version < 702
+ echohl WarningMsg
+ echo "***warning*** this version of netrw needs vim 7.2"
+ echohl Normal
+ finish
+endif
 if !exists("s:NOTE")
  let s:NOTE    = 0
  let s:WARNING = 1
  let s:ERROR   = 2
 endif
-let g:loaded_netrw = "v132"
 
 " sanity checks
 if v:version < 700
@@ -45,25 +51,40 @@
 " ======================
 
 " ---------------------------------------------------------------------
+" NetrwInit: function to initialize variables {{{2
+fun s:NetrwInit(varname,value)
+  if !exists(a:varname)
+   if type(a:value) == 0
+    exe "let ".a:varname."=".a:value
+   elseif type(a:value) == 1
+    exe "let ".a:varname."="."'".a:value."'"
+   else
+    exe "let ".a:varname."=".a:value
+  endif
+ endif
+endfun
+
+" ---------------------------------------------------------------------
 "  Netrw Constants: {{{2
-if !exists("g:NETRW_BOOKMARKMAX")
- let g:NETRW_BOOKMARKMAX= 0
-endif
-if !exists("g:NETRW_DIRHIST_CNT")
- let g:NETRW_DIRHIST_CNT= 0
-endif
+call s:NetrwInit("g:netrw_dirhist_cnt",0)
 if !exists("s:LONGLIST")
- let s:THINLIST = 0
- let s:LONGLIST = 1
- let s:WIDELIST = 2
- let s:TREELIST = 3
- let s:MAXLIST  = 4
+ call s:NetrwInit("s:THINLIST",0)
+ call s:NetrwInit("s:LONGLIST",1)
+ call s:NetrwInit("s:WIDELIST",2)
+ call s:NetrwInit("s:TREELIST",3)
+ call s:NetrwInit("s:MAXLIST" ,4)
 endif
 
 " ---------------------------------------------------------------------
 " Default values for netrw's global protocol variables {{{2
 if !exists("g:netrw_dav_cmd")
+ if executable("cadaver")
   let g:netrw_dav_cmd	= "cadaver"
+ elseif executable("curl")
+  let g:netrw_dav_cmd	= "curl"
+ else
+  let g:netrw_dav_cmd   = ""
+ endif
 endif
 if !exists("g:netrw_fetch_cmd")
  if executable("fetch")
@@ -78,35 +99,34 @@
 if !exists("g:netrw_http_cmd")
  if executable("elinks")
   let g:netrw_http_cmd = "elinks"
-  let g:netrw_http_xcmd= "-dump >"
+  if !exists("g:netrw_http_xcmd")
+   let g:netrw_http_xcmd= "-dump >"
+  endif
  elseif executable("links")
   let g:netrw_http_cmd = "links"
-  let g:netrw_http_xcmd= "-dump >"
+  if !exists("g:netrw_http_xcmd")
+   let g:netrw_http_xcmd= "-dump >"
+  endif
  elseif executable("curl")
-  let g:netrw_http_cmd	= "curl -o"
+  let g:netrw_http_cmd	= "curl"
+  if !exists("g:netrw_http_xcmd")
+   let g:netrw_http_xcmd= "-o"
+  endif
  elseif executable("wget")
-  let g:netrw_http_cmd	= "wget -q -O"
+  let g:netrw_http_cmd	= "wget"
+  call s:NetrwInit("g:netrw_http_xcmd","-q -O")
  elseif executable("fetch")
-  let g:netrw_http_cmd	= "fetch -o"
+  let g:netrw_http_cmd	= "fetch"
+  call s:NetrwInit("g:netrw_http_xcmd","-o")
  else
   let g:netrw_http_cmd	= ""
  endif
 endif
-if !exists("g:netrw_rcp_cmd")
-  let g:netrw_rcp_cmd	= "rcp"
-endif
-if !exists("g:netrw_rsync_cmd")
-  let g:netrw_rsync_cmd	= "rsync"
-endif
-if !exists("g:netrw_scp_cmd")
-  let g:netrw_scp_cmd	= "scp -q"
-endif
-if !exists("g:netrw_sftp_cmd")
-  let g:netrw_sftp_cmd	= "sftp"
-endif
-if !exists("g:netrw_ssh_cmd")
- let g:netrw_ssh_cmd= "ssh"
-endif
+call s:NetrwInit("g:netrw_rcp_cmd"  , "rcp")
+call s:NetrwInit("g:netrw_rsync_cmd", "rsync")
+call s:NetrwInit("g:netrw_scp_cmd"  , "scp -q")
+call s:NetrwInit("g:netrw_sftp_cmd" , "sftp")
+call s:NetrwInit("g:netrw_ssh_cmd"  , "ssh")
 
 if (has("win32") || has("win95") || has("win64") || has("win16"))
   \ && exists("g:netrw_use_nt_rcp")
@@ -134,40 +154,23 @@
  endif
 endif
 " Default values - a-c ---------- {{{3
-if !exists("g:netrw_alto")
- let g:netrw_alto= &sb
-endif
-if !exists("g:netrw_altv")
- let g:netrw_altv= &spr
-endif
-if !exists("g:netrw_browse_split")
- let g:netrw_browse_split= 0
-endif
-if !exists("g:netrw_chgwin")
- let g:netrw_chgwin    = -1
-endif
-if !exists("g:netrw_compress")
- let g:netrw_compress= "gzip"
-endif
-if !exists("g:netrw_ctags")
- let g:netrw_ctags= "ctags"
+call s:NetrwInit("g:netrw_alto"        , &sb)
+call s:NetrwInit("g:netrw_altv"        , &spr)
+call s:NetrwInit("g:netrw_browse_split", 0)
+call s:NetrwInit("g:netrw_chgwin"      , -1)
+call s:NetrwInit("g:netrw_compress"    , "gzip")
+call s:NetrwInit("g:netrw_ctags"       , "ctags")
+if !exists("g:netrw_cursorline")
+ let g:netrw_cursorline= 1
+ let s:netrw_usercul   = &cursorline
+ let s:netrw_usercuc   = &cursorcolumn
 endif
 " Default values - d-g ---------- {{{3
-if !exists("g:NETRW_DIRHIST_CNT")
- let g:NETRW_DIRHIST_CNT= 0
-endif
-if !exists("g:netrw_decompress")
- let g:netrw_decompress= { ".gz" : "gunzip" , ".bz2" : "bunzip2" , ".zip" : "unzip" , ".tar" : "tar -xf"}
-endif
-if !exists("g:netrw_dirhistmax")
- let g:netrw_dirhistmax= 10
-endif
-if !exists("g:netrw_fastbrowse")
- let g:netrw_fastbrowse= 1
-endif
-if !exists("g:netrw_ftp_browse_reject")
- let g:netrw_ftp_browse_reject='^total\s\+\d\+$\|^Trying\s\+\d\+.*$\|^KERBEROS_V\d rejected\|^Security extensions not\|No such file\|: connect to address [0-9a-fA-F:]*: No route to host$'
-endif
+call s:NetrwInit("g:netrw_dirhist_cnt"      , 0)
+call s:NetrwInit("g:netrw_decompress"       , '{ ".gz" : "gunzip", ".bz2" : "bunzip2", ".zip" : "unzip", ".tar" : "tar -xf"}')
+call s:NetrwInit("g:netrw_dirhistmax"       , 10)
+call s:NetrwInit("g:netrw_fastbrowse"       , 1)
+call s:NetrwInit("g:netrw_ftp_browse_reject", '^total\s\+\d\+$\|^Trying\s\+\d\+.*$\|^KERBEROS_V\d rejected\|^Security extensions not\|No such file\|: connect to address [0-9a-fA-F:]*: No route to host$')
 if !exists("g:netrw_ftp_list_cmd")
  if has("unix") || (exists("g:netrw_cygwin") && g:netrw_cygwin)
   let g:netrw_ftp_list_cmd     = "ls -lF"
@@ -179,13 +182,9 @@
   let g:netrw_ftp_sizelist_cmd = "dir"
  endif
 endif
-if !exists("g:netrw_ftpmode")
- let g:netrw_ftpmode= "binary"
-endif
+call s:NetrwInit("g:netrw_ftpmode",'binary')
 " Default values - h-lh ---------- {{{3
-if !exists("g:netrw_hide")
- let g:netrw_hide= 1
-endif
+call s:NetrwInit("g:netrw_hide",1)
 if !exists("g:netrw_ignorenetrc")
  if &shell =~ '\c\<\%(cmd\|4nt\)\.exe$'
   let g:netrw_ignorenetrc= 1
@@ -193,9 +192,7 @@
   let g:netrw_ignorenetrc= 0
  endif
 endif
-if !exists("g:netrw_keepdir")
- let g:netrw_keepdir= 1
-endif
+call s:NetrwInit("g:netrw_keepdir",1)
 if !exists("g:netrw_list_cmd")
  if g:netrw_scp_cmd =~ '^pscp' && executable("pscp")
   " provide a 'pscp' listing command
@@ -211,9 +208,7 @@
   let g:netrw_list_cmd= ""
  endif
 endif
-if !exists("g:netrw_list_hide")
- let g:netrw_list_hide= ""
-endif
+call s:NetrwInit("g:netrw_list_hide","")
 " Default values - lh-lz ---------- {{{3
 if !exists("g:netrw_localcopycmd")
  if has("win32") || has("win95") || has("win64") || has("win16")
@@ -228,9 +223,7 @@
   let g:netrw_localcopycmd= ""
  endif
 endif
-if !exists("g:netrw_local_mkdir")
- let g:netrw_local_mkdir= "mkdir"
-endif
+call s:NetrwInit("g:netrw_local_mkdir","mkdir")
 if !exists("g:netrw_localmovecmd")
  if has("win32") || has("win95") || has("win64") || has("win16")
   if g:netrw_cygwin
@@ -244,128 +237,59 @@
   let g:netrw_localmovecmd= ""
  endif
 endif
-if !exists("g:netrw_local_rmdir")
- let g:netrw_local_rmdir= "rmdir"
-endif
-if !exists("g:netrw_liststyle")
- let g:netrw_liststyle= s:THINLIST
-endif
+call s:NetrwInit("g:netrw_local_rmdir", "rmdir")
+call s:NetrwInit("g:netrw_liststyle"  , s:THINLIST)
+" sanity checks
 if g:netrw_liststyle < 0 || g:netrw_liststyle >= s:MAXLIST
- " sanity check
  let g:netrw_liststyle= s:THINLIST
 endif
 if g:netrw_liststyle == s:LONGLIST && g:netrw_scp_cmd !~ '^pscp'
  let g:netrw_list_cmd= g:netrw_list_cmd." -l"
 endif
 " Default values - m-r ---------- {{{3
-if !exists("g:netrw_markfileesc")
- let g:netrw_markfileesc= '*./[\~'
-endif
-if !exists("g:netrw_maxfilenamelen")
- let g:netrw_maxfilenamelen= 32
-endif
-if !exists("g:netrw_menu")
- let g:netrw_menu= 1
-endif
-if !exists("g:netrw_mkdir_cmd")
- let g:netrw_mkdir_cmd= g:netrw_ssh_cmd." USEPORT HOSTNAME mkdir"
-endif
-if !exists("g:netrw_mousemaps")
- if exists("&mouse") && &mouse =~ '[anh]'
-  let g:netrw_mousemaps= 1
- else
-  let g:netrw_mousemaps= 0
- endif
-endif
-if !exists("g:netrw_retmap")
- let g:netrw_retmap= 0
-endif
-if !exists("g:netrw_preview")
- let g:netrw_preview= 0
-endif
-if !exists("g:netrw_scpport")
- let g:netrw_scpport= "-P"
-endif
-if !exists("g:netrw_sshport")
- let g:netrw_sshport= "-p"
-endif
-if !exists("g:netrw_rename_cmd")
- let g:netrw_rename_cmd= g:netrw_ssh_cmd." USEPORT HOSTNAME mv"
-endif
-if !exists("g:netrw_rm_cmd")
- let g:netrw_rm_cmd    = g:netrw_ssh_cmd." USEPORT HOSTNAME rm"
-endif
-if !exists("g:netrw_rmdir_cmd")
- let g:netrw_rmdir_cmd = g:netrw_ssh_cmd." USEPORT HOSTNAME rmdir"
-endif
-if !exists("g:netrw_rmf_cmd")
- let g:netrw_rmf_cmd    = g:netrw_ssh_cmd." USEPORT HOSTNAME rm -f"
-endif
+call s:NetrwInit("g:netrw_markfileesc"   , '*./[\~')
+call s:NetrwInit("g:netrw_maxfilenamelen", 32)
+call s:NetrwInit("g:netrw_menu"          , 1)
+call s:NetrwInit("g:netrw_mkdir_cmd"     , g:netrw_ssh_cmd." USEPORT HOSTNAME mkdir")
+call s:NetrwInit("g:netrw_mousemaps"     , (exists("&mouse") && &mouse =~ '[anh]'))
+call s:NetrwInit("g:netrw_retmap"        , 0)
+call s:NetrwInit("g:netrw_preview"       , 0)
+call s:NetrwInit("g:netrw_scpport"       , "-P")
+call s:NetrwInit("g:netrw_sshport"       , "-p")
+call s:NetrwInit("g:netrw_rename_cmd"    , g:netrw_ssh_cmd." USEPORT HOSTNAME mv")
+call s:NetrwInit("g:netrw_rm_cmd"        , g:netrw_ssh_cmd." USEPORT HOSTNAME rm")
+call s:NetrwInit("g:netrw_rmdir_cmd"     , g:netrw_ssh_cmd." USEPORT HOSTNAME rmdir")
+call s:NetrwInit("g:netrw_rmf_cmd"       , g:netrw_ssh_cmd." USEPORT HOSTNAME rm -f")
 " Default values - s ---------- {{{3
- " set up shell quoting character
-if exists("g:netrw_silent") && g:netrw_silent != 0
- let s:netrw_silentxfer= "silent "
-else
- let s:netrw_silentxfer= ""
-endif
-if !exists("g:netrw_sort_by")
- " alternatives: date size
- let g:netrw_sort_by= "name"
-endif
-if !exists("g:netrw_sort_options")
- let g:netrw_sort_options= ""
-endif
-if !exists("g:netrw_sort_direction")
- " alternative: reverse  (z y x ...)
- let g:netrw_sort_direction= "normal"
-endif
+" g:netrw_sepchr: picking a character that doesn't appear in filenames that can be used to separate priority from filename
+call s:NetrwInit("g:netrw_sepchr"        , (&enc == "euc-jp")? "\<Char-0x01>" : "\<Char-0xff>")
+call s:NetrwInit("s:netrw_silentxfer"    , (exists("g:netrw_silent") && g:netrw_silent != 0)? "silent " : "")
+call s:NetrwInit("g:netrw_sort_by"       , "name") " alternatives: date                                      , size
+call s:NetrwInit("g:netrw_sort_options"  , "")
+call s:NetrwInit("g:netrw_sort_direction", "normal") " alternative: reverse  (z y x ...)
 if !exists("g:netrw_sort_sequence")
- let g:netrw_sort_sequence= '[\/]$,\.h$,\.c$,\.cpp$,*,\.o$,\.obj$,\.info$,\.swp$,\.bak$,\~$'
-endif
-if !exists("g:netrw_special_syntax")
- let g:netrw_special_syntax= 0
-endif
-if !exists("g:netrw_ssh_browse_reject")
-  let g:netrw_ssh_browse_reject='^total\s\+\d\+$'
-endif
-if !has("patch192")
- if !exists("g:netrw_use_noswf")
-  let g:netrw_use_noswf= 1
+ if has("unix")
+  let g:netrw_sort_sequence= '[\/]$,\<core\%(\.\d\+\)\=\>,\.h$,\.c$,\.cpp$,*,\.o$,\.obj$,\.info$,\.swp$,\.bak$,\~$'
+ else
+  let g:netrw_sort_sequence= '[\/]$,\.h$,\.c$,\.cpp$,*,\.o$,\.obj$,\.info$,\.swp$,\.bak$,\~$'
  endif
-else
-  let g:netrw_use_noswf= 0
 endif
+call s:NetrwInit("g:netrw_special_syntax"   , 0)
+call s:NetrwInit("g:netrw_ssh_browse_reject", '^total\s\+\d\+$')
+call s:NetrwInit("g:netrw_use_noswf"        , 0)
 " Default values - t-w ---------- {{{3
-if !exists("g:netrw_timefmt")
- let g:netrw_timefmt= "%c"
-endif
-if !exists("g:netrw_xstrlen")
- let g:netrw_xstrlen= 1
-endif
-if !exists("g:NetrwTopLvlMenu")
- let g:NetrwTopLvlMenu= "Netrw."
-endif
-if !exists("g:netrw_use_errorwindow")
- let g:netrw_use_errorwindow= 1
-endif
-if !exists("g:netrw_win95ftp")
- let g:netrw_win95ftp= 1
-endif
-if !exists("g:netrw_winsize")
- let g:netrw_winsize= ""
-endif
+call s:NetrwInit("g:netrw_timefmt","%c")
+call s:NetrwInit("g:netrw_xstrlen",0)
+call s:NetrwInit("g:NetrwTopLvlMenu","Netrw.")
+call s:NetrwInit("g:netrw_use_errorwindow",1)
+call s:NetrwInit("g:netrw_win95ftp",1)
+call s:NetrwInit("g:netrw_winsize","")
 " ---------------------------------------------------------------------
 " Default values for netrw's script variables: {{{2
-if !exists("g:netrw_fname_escape")
- let g:netrw_fname_escape= ' ?&;%'
-endif
-if !exists("g:netrw_glob_escape")
-  let g:netrw_glob_escape= '[]*?`{~$'
-endif
-if !exists("g:netrw_tmpfile_escape")
- let g:netrw_tmpfile_escape= ' &;'
-endif
-let s:netrw_map_escape = "<|\n\r\\\<C-V>\""
+call s:NetrwInit("g:netrw_fname_escape",' ?&;%')
+call s:NetrwInit("g:netrw_glob_escape",'[]*?`{~$')
+call s:NetrwInit("g:netrw_tmpfile_escape",' &;')
+call s:NetrwInit("s:netrw_map_escape","<|\n\r\\\<C-V>\"")
 
 " BufEnter event ignored by decho when following variable is true
 "  Has a side effect that doau BufReadPost doesn't work, so
@@ -384,7 +308,7 @@
 "             NetrwBrowse.
 "             vt: normally its "w:" or "s:" (a variable type)
 fun! s:NetrwOptionSave(vt)
-"  call Dfunc("s:NetrwOptionSave(vt<".a:vt.">) win#".winnr()." buf#".bufnr("%")."<".bufname(bufnr("%")).">")
+"  call Dfunc("s:NetrwOptionSave(vt<".a:vt.">) win#".winnr()." buf#".bufnr("%")."<".bufname(bufnr("%")).">"." winnr($)=".winnr("$"))
 
 "  call Decho(a:vt."netrw_optionsave".(exists("{a:vt}netrw_optionsave")? ("=".{a:vt}netrw_optionsave) : " doesn't exist"))
   if !exists("{a:vt}netrw_optionsave")
@@ -430,7 +354,7 @@
 " ------------------------------------------------------------------------
 " s:NetrwOptionRestore: restore options {{{2
 fun! s:NetrwOptionRestore(vt)
-"  call Dfunc("s:NetrwOptionRestore(vt<".a:vt.">) win#".winnr()." buf#".bufnr("%"))
+"  call Dfunc("s:NetrwOptionRestore(vt<".a:vt.">) win#".winnr()." buf#".bufnr("%")." winnr($)=".winnr("$"))
   if !exists("{a:vt}netrw_optionsave")
 "   call Decho("ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap)
 "   call Dret("s:NetrwOptionRestore : ".a:vt."netrw_optionsave doesn't exist")
@@ -503,8 +427,8 @@
 " ---------------------------------------------------------------------
 " s:NetrwSafeOptions: sets options to help netrw do its job {{{2
 fun! s:NetrwSafeOptions()
-"  call Dfunc("s:NetrwSafeOptions() win#".winnr()." buf#".bufnr("%")."<".bufname(bufnr("%")).">")
-"  call Decho("window's ft=".&ft)
+"  call Dfunc("s:NetrwSafeOptions() win#".winnr()." buf#".bufnr("%")."<".bufname(bufnr("%"))."> winnr($)=".winnr("$"))
+"  call Decho("win#".winnr()."'s ft=".&ft)
   setlocal cino=
   setlocal com=
   setlocal cpo-=aA
@@ -513,9 +437,14 @@
   setlocal fo=nroql2
   setlocal tw=0
   setlocal report=10000
+  setlocal isk+=@ isk+=* isk+=/
   if g:netrw_use_noswf && has("win32") && !has("win95")
    setlocal noswf
   endif
+
+  " allow the user to override safe options
+  silent keepalt keepjumps doau FileType netrw
+
 "  call Decho("fo=".&fo.(exists("&acd")? " acd=".&acd : " acd doesn't exist"))
 "  call Dret("s:NetrwSafeOptions")
 endfun
@@ -566,6 +495,16 @@
 "  call Dret("netrw#NetrwClean")
 endfun
 
+" ---------------------------------------------------------------------
+" netrw#Nread: {{{2
+fun! netrw#Nread(mode,fname)
+"  call Dfunc("netrw#Nread(mode=".a:mode." fname<".a:fname.">)")
+  call netrw#NetrwSavePosn()
+  call netrw#NetRead(a:mode,a:fname)
+  call netrw#NetrwRestorePosn()
+"  call Dret("netrw#Nread")
+endfun
+
 " ------------------------------------------------------------------------
 "  Netrw Transfer Functions: {{{1
 " ===============================
@@ -579,11 +518,11 @@
 fun! netrw#NetRead(mode,...)
 "  call Dfunc("netrw#NetRead(mode=".a:mode.",...) a:0=".a:0." ".g:loaded_netrw)
 
-  " save options {{{3
+  " NetRead: save options {{{3
   call s:NetrwOptionSave("w:")
   call s:NetrwSafeOptions()
 
-  " interpret mode into a readcmd {{{3
+  " NetRead: interpret mode into a readcmd {{{3
   if     a:mode == 0 " read remote file before current line
    let readcmd = "0r"
   elseif a:mode == 1 " read file after current line
@@ -599,7 +538,7 @@
   let ichoice = (a:0 == 0)? 0 : 1
 "  call Decho("readcmd<".readcmd."> ichoice=".ichoice)
 
-  " Get Temporary Filename {{{3
+  " NetRead: get temporary filename {{{3
   let tmpfile= s:GetTempfile("")
   if tmpfile == ""
 "   call Dret("netrw#NetRead : unable to get a tempfile!")
@@ -666,8 +605,12 @@
 "   call Decho("choice<" . choice . ">")
    let ichoice= ichoice + 1
 
-   " Determine method of read (ftp, rcp, etc) {{{3
+   " NetRead: Determine method of read (ftp, rcp, etc) {{{3
    call s:NetrwMethod(choice)
+   if !exists("b:netrw_method") || b:netrw_method < 0
+"    call Dfunc("netrw#NetRead : unsupported method")
+    return
+   endif
    let tmpfile= s:GetTempfile(b:netrw_fname) " apply correct suffix
 
    " Check if NetrwBrowse() should be handling this request
@@ -680,14 +623,14 @@
    endif
 
    " ============
-   " Perform Protocol-Based Read {{{3
+   " NetRead: Perform Protocol-Based Read {{{3
    " ===========================
    if exists("g:netrw_silent") && g:netrw_silent == 0 && &ch >= 1
     echo "(netrw) Processing your read request..."
    endif
 
    ".........................................
-   " rcp:  NetRead Method #1 {{{3
+   " NetRead: (rcp)  NetRead Method #1 {{{3
    if  b:netrw_method == 1 " read with rcp
 "    call Decho("read via rcp (method #1)")
    " ER: nothing done with g:netrw_uid yet?
@@ -709,12 +652,12 @@
     endif
    endif
 "   call Decho("executing: !".g:netrw_rcp_cmd." ".s:netrw_rcpmode." ".shellescape(uid_machine.":".b:netrw_fname,1)." ".shellescape(tmpfile,1))
-   exe s:netrw_silentxfer."!".g:netrw_rcp_cmd." ".s:netrw_rcpmode." ".shellescape(uid_machine.":".b:netrw_fname,1)." ".shellescape(tmpfile,1))
+   exe s:netrw_silentxfer."!".g:netrw_rcp_cmd." ".s:netrw_rcpmode." ".shellescape(uid_machine.":".b:netrw_fname,1)." ".shellescape(tmpfile,1)
    let result           = s:NetrwGetFile(readcmd, tmpfile, b:netrw_method)
    let b:netrw_lastfile = choice
 
    ".........................................
-   " ftp + <.netrc>:  NetRead Method #2 {{{3
+   " NetRead: (ftp + <.netrc>)  NetRead Method #2 {{{3
    elseif b:netrw_method  == 2		" read with ftp + <.netrc>
 "     call Decho("read via ftp+.netrc (method #2)")
      let netrw_fname= b:netrw_fname
@@ -745,7 +688,8 @@
      endif
      call s:SaveBufVars()
      bd!
-     if bufname("%") == "" && line("$") == 1 && getline("$") == ""
+     if bufname("%") == "" && getline("$") == "" && line('$') == 1
+      " needed when one sources a file in a nolbl setting window via ftp
       q!
      endif
      call s:RestoreBufVars()
@@ -753,7 +697,7 @@
      let b:netrw_lastfile = choice
 
    ".........................................
-   " ftp + machine,id,passwd,filename:  NetRead Method #3 {{{3
+   " NetRead: (ftp + machine,id,passwd,filename)  NetRead Method #3 {{{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)")
@@ -809,7 +753,7 @@
     let b:netrw_lastfile = choice
 
    ".........................................
-   " scp: NetRead Method #4 {{{3
+   " NetRead: (scp) NetRead Method #4 {{{3
    elseif     b:netrw_method  == 4	" read with scp
 "    call Decho("read via scp (method #4)")
     if exists("g:netrw_port") && g:netrw_port != ""
@@ -823,7 +767,7 @@
     let b:netrw_lastfile = choice
 
    ".........................................
-   " http: NetRead Method #5 (wget) {{{3
+   " NetRead: (http) NetRead Method #5 (wget) {{{3
    elseif     b:netrw_method  == 5
 "    call Decho("read via http (method #5)")
     if g:netrw_http_cmd == ""
@@ -863,33 +807,43 @@
     setlocal ro
 
    ".........................................
-   " cadaver: NetRead Method #6 {{{3
+   " NetRead: (dav) NetRead Method #6 {{{3
    elseif     b:netrw_method  == 6
 "    call Decho("read via cadaver (method #6)")
 
-    " Construct execution string (four lines) which will be passed through filter
-    let netrw_fname= escape(b:netrw_fname,g:netrw_fname_escape)
-    new
-    setlocal ff=unix
-    if exists("g:netrw_port") && g:netrw_port != ""
-     put ='open '.g:netrw_machine.' '.g:netrw_port
-    else
-     put ='open '.g:netrw_machine
+    if !executable(g:netrw_dav_cmd)
+     call netrw#ErrorMsg(s:ERROR,g:netrw_dav_cmd." is not executable",73)
+"     call Dret("netrw#NetRead : ".g:netrw_dav_cmd." not executable")
+     return
     endif
-    put ='user '.g:netrw_uid.' '.s:netrw_passwd
-    put ='get '.netrw_fname.' '.tmpfile
-    put ='quit'
+    if g:netrw_dav_cmd =~ "curl"
+"     call Decho("exe ".s:netrw_silentxfer."!".g:netrw_dav_cmd." ".shellescape("dav://".g:netrw_machine.b:netrw_fname,1)." ".shellescape(tmpfile,1))
+     exe s:netrw_silentxfer."!".g:netrw_dav_cmd." ".shellescape("dav://".g:netrw_machine.b:netrw_fname,1)." ".shellescape(tmpfile,1)
+    else
+     " Construct execution string (four lines) which will be passed through filter
+     let netrw_fname= escape(b:netrw_fname,g:netrw_fname_escape)
+     new
+     setlocal ff=unix
+     if exists("g:netrw_port") && g:netrw_port != ""
+      put ='open '.g:netrw_machine.' '.g:netrw_port
+     else
+      put ='open '.g:netrw_machine
+     endif
+     put ='user '.g:netrw_uid.' '.s:netrw_passwd
+     put ='get '.netrw_fname.' '.tmpfile
+     put ='quit'
 
-    " perform cadaver operation:
-    norm! 1Gdd
+     " perform cadaver operation:
+     norm! 1Gdd
 "    call Decho("executing: %!".g:netrw_dav_cmd)
-    exe s:netrw_silentxfer."%!".g:netrw_dav_cmd
-    bd!
+     exe s:netrw_silentxfer."%!".g:netrw_dav_cmd
+     bd!
+    endif
     let result           = s:NetrwGetFile(readcmd, tmpfile, b:netrw_method)
     let b:netrw_lastfile = choice
 
    ".........................................
-   " rsync: NetRead Method #7 {{{3
+   " NetRead: (rsync) NetRead Method #7 {{{3
    elseif     b:netrw_method  == 7
 "    call Decho("read via rsync (method #7)")
 "    call Decho("exe ".s:netrw_silentxfer."!".g:netrw_rsync_cmd." ".shellescape(g:netrw_machine.":".b:netrw_fname,1)." ".shellescape(tmpfile,1))
@@ -898,7 +852,7 @@
     let b:netrw_lastfile = choice
 
    ".........................................
-   " fetch: NetRead Method #8 {{{3
+   " NetRead: (fetch) NetRead Method #8 {{{3
    "    fetch://[user@]host[:http]/path
    elseif     b:netrw_method  == 8
 "    call Decho("read via fetch (method #8)")
@@ -928,7 +882,7 @@
     setlocal ro
 
    ".........................................
-   " sftp: NetRead Method #9 {{{3
+   " NetRead: (sftp) NetRead Method #9 {{{3
    elseif     b:netrw_method  == 9
 "    call Decho("read via sftp (method #9)")
 "    call Decho("exe ".s:netrw_silentxfer."!".g:netrw_sftp_cmd." ".shellescape(g:netrw_machine.":".b:netrw_fname,1)." ".tmpfile)
@@ -937,13 +891,13 @@
     let b:netrw_lastfile = choice
 
    ".........................................
-   " Complain {{{3
+   " NetRead: Complain {{{3
    else
     call netrw#ErrorMsg(s:WARNING,"unable to comply with your request<" . choice . ">",8)
    endif
   endwhile
 
-  " cleanup {{{3
+  " NetRead: cleanup {{{3
   if exists("b:netrw_method")
 "   call Decho("cleanup b:netrw_method and b:netrw_fname")
    unlet b:netrw_method
@@ -951,7 +905,7 @@
   endif
   if s:FileReadable(tmpfile) && tmpfile !~ '.tar.bz2$' && tmpfile !~ '.tar.gz$' && tmpfile !~ '.zip' && tmpfile !~ '.tar' && readcmd != 't'
 "   call Decho("cleanup by deleting tmpfile<".tmpfile.">")
-   call s:NetrwDelete(fnameescape(tmpfile))
+   call s:NetrwDelete(tmpfile)
   endif
   call s:NetrwOptionRestore("w:")
 
@@ -963,12 +917,12 @@
 fun! netrw#NetWrite(...) range
 "  call Dfunc("netrw#NetWrite(a:0=".a:0.") ".g:loaded_netrw)
 
-  " option handling
+  " NetWrite: option handling {{{3
   let mod= 0
   call s:NetrwOptionSave("w:")
   call s:NetrwSafeOptions()
 
-  " Get Temporary Filename {{{3
+  " NetWrite: Get Temporary Filename {{{3
   let tmpfile= s:GetTempfile("")
   if tmpfile == ""
 "   call Dret("netrw#NetWrite : unable to get a tempfile!")
@@ -1007,7 +961,7 @@
    0file!
   endif
 
-  " While choice loop: {{{3
+  " NetWrite: while choice loop: {{{3
   while ichoice <= a:0
 
    " Process arguments: {{{4
@@ -1065,9 +1019,13 @@
 
    " Determine method of write (ftp, rcp, etc) {{{4
    call s:NetrwMethod(choice)
+   if !exists("b:netrw_method") || b:netrw_method < 0
+"    call Dfunc("netrw#NetWrite : unsupported method")
+    return
+   endif
 
    " =============
-   " Perform Protocol-Based Write {{{4
+   " NetWrite: Perform Protocol-Based Write {{{3
    " ============================
    if exists("g:netrw_silent") && g:netrw_silent == 0 && &ch >= 1
     echo "(netrw) Processing your write request..."
@@ -1075,7 +1033,7 @@
    endif
 
    ".........................................
-   " rcp: NetWrite Method #1 {{{4
+   " NetWrite: (rcp) NetWrite Method #1 {{{3
    if  b:netrw_method == 1
 "    call Decho("write via rcp (method #1)")
     if s:netrw_has_nt_rcp == 1
@@ -1096,7 +1054,7 @@
     let b:netrw_lastfile = choice
 
    ".........................................
-   " ftp + <.netrc>: NetWrite Method #2 {{{4
+   " NetWrite: (ftp + <.netrc>) NetWrite Method #2 {{{3
    elseif b:netrw_method == 2
 "    call Decho("write via ftp+.netrc (method #2)")
     let netrw_fname= b:netrw_fname
@@ -1130,7 +1088,7 @@
     let b:netrw_lastfile = choice
 
    ".........................................
-   " ftp + machine, id, passwd, filename: NetWrite Method #3 {{{4
+   " NetWrite: (ftp + machine, id, passwd, filename) NetWrite Method #3 {{{3
    elseif b:netrw_method == 3
     " Construct execution string (four lines) which will be passed through filter
 "    call Decho("read via ftp+mipf (method #3)")
@@ -1175,7 +1133,7 @@
     bd!
 
    ".........................................
-   " scp: NetWrite Method #4 {{{4
+   " NetWrite: (scp) NetWrite Method #4 {{{3
    elseif     b:netrw_method == 4
 "    call Decho("write via scp (method #4)")
     if exists("g:netrw_port") && g:netrw_port != ""
@@ -1188,7 +1146,7 @@
     let b:netrw_lastfile = choice
 
    ".........................................
-   " http: NetWrite Method #5 {{{4
+   " NetWrite: (http) NetWrite Method #5 {{{3
    elseif     b:netrw_method == 5
 "    call Decho("write via http (method #5)")
     if !exists("g:netrw_quiet")
@@ -1196,7 +1154,7 @@
     endif
 
    ".........................................
-   " dav: NetWrite Method #6 (cadaver) {{{4
+   " NetWrite: (dav) NetWrite Method #6 (cadaver) {{{3
    elseif     b:netrw_method == 6
 "    call Decho("write via cadaver (method #6)")
 
@@ -1222,7 +1180,7 @@
     let b:netrw_lastfile = choice
 
    ".........................................
-   " rsync: NetWrite Method #7 {{{4
+   " NetWrite: (rsync) NetWrite Method #7 {{{3
    elseif     b:netrw_method == 7
 "    call Decho("write via rsync (method #7)")
 "    call Decho("executing: !".g:netrw_rsync_cmd." ".shellescape(tmpfile,1)." ".shellescape(g:netrw_machine.":".b:netrw_fname,1))
@@ -1230,7 +1188,7 @@
     let b:netrw_lastfile = choice
 
    ".........................................
-   " sftp: NetWrite Method #9 {{{4
+   " NetWrite: (sftp) NetWrite Method #9 {{{3
    elseif     b:netrw_method == 9
 "    call Decho("read via sftp (method #9)")
     let netrw_fname= escape(b:netrw_fname,g:netrw_fname_escape)
@@ -1250,13 +1208,13 @@
     let b:netrw_lastfile= choice
 
    ".........................................
-   " Complain {{{4
+   " NetWrite: Complain {{{3
    else
     call netrw#ErrorMsg(s:WARNING,"unable to comply with your request<" . choice . ">",17)
    endif
   endwhile
 
-  " Cleanup: {{{3
+  " NetWrite: Cleanup: {{{3
 "  call Decho("cleanup")
   if s:FileReadable(tmpfile)
 "   call Decho("tmpfile<".tmpfile."> readable, will now delete it")
@@ -1422,18 +1380,34 @@
 
 " ------------------------------------------------------------------------
 " s:NetrwMethod:  determine method of transfer {{{2
-"  method == 1: rcp
-"	     2: ftp + <.netrc>
-"	     3: ftp + machine, id, password, and [path]filename
-"	     4: scp
-"	     5: http (wget)
-"	     6: cadaver
-"	     7: rsync
-"	     8: fetch
-"	     9: sftp
-fun! s:NetrwMethod(choice)  " globals: method machine id passwd fname
+" Input:
+"   choice = url   [protocol:]//[userid@]hostname[:port]/[path-to-file]
+" Output:
+"  b:netrw_method= 1: rcp                                             
+"                  2: ftp + <.netrc>                                  
+"	           3: ftp + machine, id, password, and [path]filename 
+"	           4: scp                                             
+"	           5: http (wget)                                     
+"	           6: dav
+"	           7: rsync                                           
+"	           8: fetch                                           
+"	           9: sftp                                            
+"  g:netrw_machine= hostname
+"  b:netrw_fname  = filename
+"  g:netrw_port   = optional port number (for ftp)
+"  g:netrw_choice = copy of input url (choice)
+fun! s:NetrwMethod(choice)
 "   call Dfunc("NetrwMethod(a:choice<".a:choice.">)")
 
+   " record current g:netrw_machine, if any
+   " curmachine used if protocol == ftp and no .netrc
+   if exists("g:netrw_machine")
+    let curmachine= g:netrw_machine
+"    call Decho("curmachine<".curmachine.">")
+   else
+    let curmachine= "N O T A HOST"
+   endif
+
   " initialization
   let b:netrw_method  = 0
   let g:netrw_machine = ""
@@ -1449,7 +1423,7 @@
   " rcphf    : [user@]host:filename		     Use rcp
   " scpurm   : scp://[user@]host[[#:]port]/filename  Use scp
   " httpurm  : http://[user@]host/filename	     Use wget
-  " davurm   : dav[s]://host[:port]/path             Use cadaver
+  " davurm   : dav[s]://host[:port]/path             Use cadaver/curl
   " rsyncurm : rsync://host[:port]/path              Use rsync
   " fetchurm : fetch://[user@]host[:http]/filename   Use fetch (defaults to ftp, override for http)
   " sftpurm  : sftp://[user@]host/filename  Use scp
@@ -1518,9 +1492,14 @@
    let g:netrw_machine= substitute(a:choice,ftpurm,'\3',"")
    let g:netrw_port   = substitute(a:choice,ftpurm,'\4',"")
    let b:netrw_fname  = substitute(a:choice,ftpurm,'\5',"")
+"   call Decho("g:netrw_machine<".g:netrw_machine.">")
    if userid != ""
     let g:netrw_uid= userid
    endif
+   if exists("s:netrw_passwd") && curmachine != g:netrw_machine
+    " if there's a change in hostname, require password re-entry
+    unlet s:netrw_passwd
+   endif
    if exists("g:netrw_uid") && exists("s:netrw_passwd")
     let b:netrw_method = 3
    else
@@ -1592,7 +1571,7 @@
 
   else
    if !exists("g:netrw_quiet")
-    call netrw#ErrorMsg(s:WARNING,"cannot determine method",45)
+    call netrw#ErrorMsg(s:WARNING,"cannot determine method (format: protocol://[user@]hostname[:port]/[path])",45)
    endif
    let b:netrw_method  = -1
   endif
@@ -1626,10 +1605,24 @@
 if has("win95") && exists("g:netrw_win95ftp") && g:netrw_win95ftp
  fun! NetReadFixup(method, line1, line2)
 "   call Dfunc("NetReadFixup(method<".a:method."> line1=".a:line1." line2=".a:line2.")")
+
+   " sanity checks -- attempt to convert inputs to integers
+   let method = a:method + 0
+   let line1  = a:line1 + 0
+   let line2  = a:line2 + 0
+   if type(method) != 0 || type(line1) != 0 || type(line2) != 0 || method < 0 || line1 <= 0 || line2 <= 0
+"    call Dret("NetReadFixup")
+    return
+   endif
+
    if method == 3   " ftp (no <.netrc>)
     let fourblanklines= line2 - 3
-    silent fourblanklines.",".line2."g/^\s*/d"
+    if fourblanklines >= line1
+     exe "silent ".fourblanklines.",".line2."g/^\s*$/d"
+     call histdel("/",-1)
+    endif
    endif
+
 "   call Dret("NetReadFixup")
  endfun
 endif
@@ -1678,7 +1671,7 @@
    nnoremap <buffer> <silent> <cr>	:call netrw#LocalBrowseCheck(<SID>NetrwBrowseChgDir(1,<SID>NetrwGetWord()))<cr>
    nnoremap <buffer> <silent> -		:exe "norm! 0"<bar>call netrw#LocalBrowseCheck(<SID>NetrwBrowseChgDir(1,'../'))<cr>
    nnoremap <buffer> <silent> a		:call <SID>NetrwHide(1)<cr>
-   nnoremap <buffer> <silent> mb	:<c-u>call <SID>NetrwBookmarkDir(0,b:netrw_curdir)<cr>
+   nnoremap <buffer> <silent> mb	:<c-u>call <SID>NetrwBookHistHandler(0,b:netrw_curdir)<cr>
    nnoremap <buffer> <silent> mc	:<c-u>call <SID>NetrwMarkFileCopy(1)<cr>
    nnoremap <buffer> <silent> md	:<c-u>call <SID>NetrwMarkFileDiff(1)<cr>
    nnoremap <buffer> <silent> me	:<c-u>call <SID>NetrwMarkFileEdit(1)<cr>
@@ -1694,7 +1687,7 @@
    nnoremap <buffer> <silent> mu	:<c-u>call <SID>NetrwUnMarkFile(1)<cr>
    nnoremap <buffer> <silent> mx	:<c-u>call <SID>NetrwMarkFileExe(1)<cr>
    nnoremap <buffer> <silent> mz	:<c-u>call <SID>NetrwMarkFileCompress(1)<cr>
-   nnoremap <buffer> <silent> gb	:<c-u>call <SID>NetrwBookmarkDir(1,b:netrw_curdir)<cr>
+   nnoremap <buffer> <silent> gb	:<c-u>call <SID>NetrwBookHistHandler(1,b:netrw_curdir)<cr>
    nnoremap <buffer> <silent> gh	:<c-u>call <SID>NetrwHidden(1)<cr>
    nnoremap <buffer> <silent> c		:exe "keepjumps lcd ".fnameescape(b:netrw_curdir)<cr>
    nnoremap <buffer> <silent> C		:let g:netrw_chgwin= winnr()<cr>
@@ -1704,15 +1697,15 @@
    nnoremap <buffer> <silent> O		:call <SID>NetrwObtain(1)<cr>
    nnoremap <buffer> <silent> p		:call <SID>NetrwPreview(<SID>NetrwBrowseChgDir(1,<SID>NetrwGetWord(),1))<cr>
    nnoremap <buffer> <silent> P		:call <SID>NetrwPrevWinOpen(1)<cr>
-   nnoremap <buffer> <silent> qb	:<c-u>call <SID>NetrwBookmarkDir(2,b:netrw_curdir)<cr>
-   nnoremap <buffer> <silent> mB	:<c-u>call <SID>NetrwBookmarkDir(6,b:netrw_curdir)<cr>
+   nnoremap <buffer> <silent> qb	:<c-u>call <SID>NetrwBookHistHandler(2,b:netrw_curdir)<cr>
+   nnoremap <buffer> <silent> mB	:<c-u>call <SID>NetrwBookHistHandler(6,b:netrw_curdir)<cr>
    nnoremap <buffer> <silent> qf	:<c-u>call <SID>NetrwFileInfo(1,<SID>NetrwGetWord())<cr>
    nnoremap <buffer> <silent> r		:let g:netrw_sort_direction= (g:netrw_sort_direction =~ 'n')? 'r' : 'n'<bar>exe "norm! 0"<bar>call <SID>NetrwRefresh(1,<SID>NetrwBrowseChgDir(1,'./'))<cr>
    nnoremap <buffer> <silent> s		:call <SID>NetrwSortStyle(1)<cr>
    nnoremap <buffer> <silent> S		:call <SID>NetSortSequence(1)<cr>
    nnoremap <buffer> <silent> t		:call <SID>NetrwSplit(4)<cr>
-   nnoremap <buffer> <silent> u		:<c-u>call <SID>NetrwBookmarkDir(4,expand("%"))<cr>
-   nnoremap <buffer> <silent> U		:<c-u>call <SID>NetrwBookmarkDir(5,expand("%"))<cr>
+   nnoremap <buffer> <silent> u		:<c-u>call <SID>NetrwBookHistHandler(4,expand("%"))<cr>
+   nnoremap <buffer> <silent> U		:<c-u>call <SID>NetrwBookHistHandler(5,expand("%"))<cr>
    nnoremap <buffer> <silent> v		:call <SID>NetrwSplit(5)<cr>
    nnoremap <buffer> <silent> x		:call netrw#NetrwBrowseX(<SID>NetrwBrowseChgDir(1,<SID>NetrwGetWord(),0),0)"<cr>
    nnoremap <buffer> <silent> %		:call <SID>NetrwOpenFile(1)<cr>
@@ -1754,7 +1747,7 @@
    nnoremap <buffer> <silent> <c-l>	:call <SID>NetrwRefresh(0,<SID>NetrwBrowseChgDir(0,'./'))<cr>
    nnoremap <buffer> <silent> -		:exe "norm! 0"<bar>call <SID>NetrwBrowse(0,<SID>NetrwBrowseChgDir(0,'../'))<cr>
    nnoremap <buffer> <silent> a		:call <SID>NetrwHide(0)<cr>
-   nnoremap <buffer> <silent> mb	:<c-u>call <SID>NetrwBookmarkDir(0,b:netrw_curdir)<cr>
+   nnoremap <buffer> <silent> mb	:<c-u>call <SID>NetrwBookHistHandler(0,b:netrw_curdir)<cr>
    nnoremap <buffer> <silent> mc	:<c-u>call <SID>NetrwMarkFileCopy(0)<cr>
    nnoremap <buffer> <silent> md	:<c-u>call <SID>NetrwMarkFileDiff(0)<cr>
    nnoremap <buffer> <silent> me	:<c-u>call <SID>NetrwMarkFileEdit(0)<cr>
@@ -1770,7 +1763,7 @@
    nnoremap <buffer> <silent> mu	:<c-u>call <SID>NetrwUnMarkFile(0)<cr>
    nnoremap <buffer> <silent> mx	:<c-u>call <SID>NetrwMarkFileExe(0)<cr>
    nnoremap <buffer> <silent> mz	:<c-u>call <SID>NetrwMarkFileCompress(0)<cr>
-   nnoremap <buffer> <silent> gb	:<c-u>call <SID>NetrwBookmarkDir(1,b:netrw_cur)<cr>
+   nnoremap <buffer> <silent> gb	:<c-u>call <SID>NetrwBookHistHandler(1,b:netrw_cur)<cr>
    nnoremap <buffer> <silent> gh	:<c-u>call <SID>NetrwHidden(0)<cr>
    nnoremap <buffer> <silent> C		:let g:netrw_chgwin= winnr()<cr>
    nnoremap <buffer> <silent> i		:call <SID>NetrwListStyle(0)<cr>
@@ -1778,15 +1771,15 @@
    nnoremap <buffer> <silent> O		:call <SID>NetrwObtain(0)<cr>
    nnoremap <buffer> <silent> p		:call <SID>NetrwPreview(<SID>NetrwBrowseChgDir(1,<SID>NetrwGetWord(),1))<cr>
    nnoremap <buffer> <silent> P		:call <SID>NetrwPrevWinOpen(0)<cr>
-   nnoremap <buffer> <silent> qb	:<c-u>call <SID>NetrwBookmarkDir(2,b:netrw_curdir)<cr>
-   nnoremap <buffer> <silent> mB	:<c-u>call <SID>NetrwBookmarkDir(6,b:netrw_curdir)<cr>
+   nnoremap <buffer> <silent> qb	:<c-u>call <SID>NetrwBookHistHandler(2,b:netrw_curdir)<cr>
+   nnoremap <buffer> <silent> mB	:<c-u>call <SID>NetrwBookHistHandler(6,b:netrw_curdir)<cr>
    nnoremap <buffer> <silent> qf	:<c-u>call <SID>NetrwFileInfo(0,<SID>NetrwGetWord())<cr>
    nnoremap <buffer> <silent> r		:let g:netrw_sort_direction= (g:netrw_sort_direction =~ 'n')? 'r' : 'n'<bar>exe "norm! 0"<bar>call <SID>NetrwBrowse(0,<SID>NetrwBrowseChgDir(0,'./'))<cr>
    nnoremap <buffer> <silent> s		:call <SID>NetrwSortStyle(0)<cr>
    nnoremap <buffer> <silent> S		:call <SID>NetSortSequence(0)<cr>
    nnoremap <buffer> <silent> t		:call <SID>NetrwSplit(1)<cr>
-   nnoremap <buffer> <silent> u		:<c-u>call <SID>NetrwBookmarkDir(4,b:netrw_curdir)<cr>
-   nnoremap <buffer> <silent> U		:<c-u>call <SID>NetrwBookmarkDir(5,b:netrw_curdir)<cr>
+   nnoremap <buffer> <silent> u		:<c-u>call <SID>NetrwBookHistHandler(4,b:netrw_curdir)<cr>
+   nnoremap <buffer> <silent> U		:<c-u>call <SID>NetrwBookHistHandler(5,b:netrw_curdir)<cr>
    nnoremap <buffer> <silent> v		:call <SID>NetrwSplit(2)<cr>
    nnoremap <buffer> <silent> x		:call netrw#NetrwBrowseX(<SID>NetrwBrowseChgDir(0,<SID>NetrwGetWord()),1)<cr>
    nnoremap <buffer> <silent> %		:call <SID>NetrwOpenFile(0)<cr>
@@ -1836,7 +1829,7 @@
 endfun
 
 " ---------------------------------------------------------------------
-"  s:NetrwBookmarkDir: {{{2
+"  s:NetrwBookHistHandler: {{{2
 "    0: (user: <mb>)   bookmark current directory
 "    1: (user: <gb>)   change to the bookmarked directory
 "    2: (user: <qb>)   list bookmarks
@@ -1844,32 +1837,27 @@
 "    4: (user: <u>)    go up   (previous) bookmark
 "    5: (user: <U>)    go down (next)     bookmark
 "    6: (user: <mB>)   delete bookmark
-fun! s:NetrwBookmarkDir(chg,curdir)
-"  call Dfunc("NetrwBookmarkDir(chg=".a:chg." curdir<".a:curdir.">) cnt=".v:count." bookmarkcnt=".g:NETRW_BOOKMARKMAX." histcnt=".g:NETRW_DIRHIST_CNT." bookmax=".g:NETRW_BOOKMARKMAX." histmax=".g:netrw_dirhistmax)
+fun! s:NetrwBookHistHandler(chg,curdir)
+"  call Dfunc("NetrwBookHistHandler(chg=".a:chg." curdir<".a:curdir.">) cnt=".v:count." histcnt=".g:netrw_dirhist_cnt." histmax=".g:netrw_dirhistmax)
 
   if a:chg == 0
    " bookmark the current directory
 "   call Decho("(user: <b>) bookmark the current directory")
-   if v:count > 0
-    " handle bookmark# specified via the count
-    let g:NETRW_BOOKMARKDIR_{v:count}= a:curdir
-    if !exists("g:NETRW_BOOKMARKMAX")
-     let g:NETRW_BOOKMARKMAX= v:count
-    elseif v:count > g:NETRW_BOOKMARKMAX
-     let g:NETRW_BOOKMARKMAX= v:count
-    endif
-   else
-    " handle no count specified
-    let g:NETRW_BOOKMARKMAX                       = g:NETRW_BOOKMARKMAX + 1
-    let g:NETRW_BOOKMARKDIR_{g:NETRW_BOOKMARKMAX} = a:curdir
+   if !exists("g:netrw_bookmarklist")
+    let g:netrw_bookmarklist= []
+   endif
+   if index(g:netrw_bookmarklist,a:curdir) == -1
+    " curdir not currently in g:netrw_bookmarklist, so include it
+    call add(g:netrw_bookmarklist,a:curdir)
+    call sort(g:netrw_bookmarklist)
    endif
    echo "bookmarked the current directory"
 
   elseif a:chg == 1
    " change to the bookmarked directory
-"   call Decho("(user: <B>) change to the bookmarked directory")
-   if exists("g:NETRW_BOOKMARKDIR_{v:count}")
-    exe "e ".fnameescape(g:NETRW_BOOKMARKDIR_{v:count})
+"   call Decho("(user: <".v:count."mb>) change to the bookmarked directory")
+   if exists("g:netrw_bookmarklist[v:count-1]")
+    exe "e ".fnameescape(g:netrw_bookmarklist[v:count-1])
    else
     echomsg "Sorry, bookmark#".v:count." doesn't exist!"
    endif
@@ -1879,29 +1867,27 @@
    let didwork= 0
    " list user's bookmarks
 "   call Decho("(user: <q>) list user's bookmarks")
-   if exists("g:NETRW_BOOKMARKMAX")
-"    call Decho("list bookmarks [0,".g:NETRW_BOOKMARKMAX."]")
-    let cnt= 0
-    while cnt <= g:NETRW_BOOKMARKMAX
-     if exists("g:NETRW_BOOKMARKDIR_{cnt}")
-"      call Decho("Netrw Bookmark#".cnt.": ".g:NETRW_BOOKMARKDIR_{cnt})
-      echo "Netrw Bookmark#".cnt.": ".g:NETRW_BOOKMARKDIR_{cnt}
-      let didwork= 1
-     endif
-     let cnt= cnt + 1
-    endwhile
+   if exists("g:netrw_bookmarklist")
+"    call Decho('list '.len(g:netrw_bookmarklist).' bookmarks')
+    let cnt= 1
+    for bmd in g:netrw_bookmarklist
+"     call Decho("Netrw Bookmark#".cnt.": ".g:netrw_bookmarklist[cnt-1])
+     echo "Netrw Bookmark#".cnt.": ".g:netrw_bookmarklist[cnt-1]
+     let didwork = 1
+     let cnt     = cnt + 1
+    endfor
    endif
 
    " list directory history
-   let cnt     = g:NETRW_DIRHIST_CNT
+   let cnt     = g:netrw_dirhist_cnt
    let first   = 1
    let histcnt = 0
-   while ( first || cnt != g:NETRW_DIRHIST_CNT )
-"    call Decho("first=".first." cnt=".cnt." dirhist_cnt=".g:NETRW_DIRHIST_CNT)
+   while ( first || cnt != g:netrw_dirhist_cnt )
+"    call Decho("first=".first." cnt=".cnt." dirhist_cnt=".g:netrw_dirhist_cnt)
     let histcnt= histcnt + 1
-    if exists("g:NETRW_DIRHIST_{cnt}")
-"     call Decho("Netrw  History#".histcnt.": ".g:NETRW_DIRHIST_{cnt})
-     echo "Netrw  History#".histcnt.": ".g:NETRW_DIRHIST_{cnt}
+    if exists("g:netrw_dirhist_{cnt}")
+"     call Decho("Netrw  History#".histcnt.": ".g:netrw_dirhist_{cnt})
+     echo "Netrw  History#".histcnt.": ".g:netrw_dirhist_{cnt}
      let didwork= 1
     endif
     let first = 0
@@ -1917,22 +1903,21 @@
   elseif a:chg == 3
    " saves most recently visited directories (when they differ)
 "   call Decho("(browsing) record curdir history")
-   if !exists("g:NETRW_DIRHIST_0") || g:NETRW_DIRHIST_{g:NETRW_DIRHIST_CNT} != a:curdir
-    let g:NETRW_DIRHIST_CNT= ( g:NETRW_DIRHIST_CNT + 1 ) % g:netrw_dirhistmax
-"    let g:NETRW_DIRHIST_{g:NETRW_DIRHIST_CNT}= substitute(a:curdir,'[/\\]$','','e')
-    let g:NETRW_DIRHIST_{g:NETRW_DIRHIST_CNT}= a:curdir
-"    call Decho("save dirhist#".g:NETRW_DIRHIST_CNT."<".g:NETRW_DIRHIST_{g:NETRW_DIRHIST_CNT}.">")
+   if !exists("g:netrw_dirhist_cnt") || !exists("g:netrw_dirhist_{g:netrw_dirhist_cnt}") || g:netrw_dirhist_{g:netrw_dirhist_cnt} != a:curdir
+    let g:netrw_dirhist_cnt                   = ( g:netrw_dirhist_cnt + 1 ) % g:netrw_dirhistmax
+    let g:netrw_dirhist_{g:netrw_dirhist_cnt} = a:curdir
+"    call Decho("save dirhist#".g:netrw_dirhist_cnt."<".g:netrw_dirhist_{g:netrw_dirhist_cnt}.">")
    endif
 
   elseif a:chg == 4
    " u: change to the previous directory stored on the history list
 "   call Decho("(user: <u>) chg to prev dir from history")
-   let g:NETRW_DIRHIST_CNT= ( g:NETRW_DIRHIST_CNT - 1 ) % g:netrw_dirhistmax
-   if g:NETRW_DIRHIST_CNT < 0
-    let g:NETRW_DIRHIST_CNT= g:NETRW_DIRHIST_CNT + g:netrw_dirhistmax
+   let g:netrw_dirhist_cnt= ( g:netrw_dirhist_cnt - 1 ) % g:netrw_dirhistmax
+   if g:netrw_dirhist_cnt < 0
+    let g:netrw_dirhist_cnt= g:netrw_dirhist_cnt + g:netrw_dirhistmax
    endif
-   if exists("g:NETRW_DIRHIST_{g:NETRW_DIRHIST_CNT}")
-"    call Decho("changedir u#".g:NETRW_DIRHIST_CNT."<".g:NETRW_DIRHIST_{g:NETRW_DIRHIST_CNT}.">")
+   if exists("g:netrw_dirhist_{g:netrw_dirhist_cnt}")
+"    call Decho("changedir u#".g:netrw_dirhist_cnt."<".g:netrw_dirhist_{g:netrw_dirhist_cnt}.">")
     if exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST && exists("b:netrw_curdir")
      setlocal ma noro
 "     call Decho("setlocal ma noro")
@@ -1940,19 +1925,19 @@
      setlocal nomod
 "     call Decho("setlocal nomod")
     endif
-"    "    call Decho("exe e! ".fnameescape(g:NETRW_DIRHIST_{g:NETRW_DIRHIST_CNT}))
-    exe "e! ".fnameescape(g:NETRW_DIRHIST_{g:NETRW_DIRHIST_CNT})
+"    "    call Decho("exe e! ".fnameescape(g:netrw_dirhist_{g:netrw_dirhist_cnt}))
+    exe "e! ".fnameescape(g:netrw_dirhist_{g:netrw_dirhist_cnt})
    else
-    let g:NETRW_DIRHIST_CNT= ( g:NETRW_DIRHIST_CNT + 1 ) % g:netrw_dirhistmax
+    let g:netrw_dirhist_cnt= ( g:netrw_dirhist_cnt + 1 ) % g:netrw_dirhistmax
     echo "Sorry, no predecessor directory exists yet"
    endif
 
   elseif a:chg == 5
    " U: change to the subsequent directory stored on the history list
 "   call Decho("(user: <U>) chg to next dir from history")
-   let g:NETRW_DIRHIST_CNT= ( g:NETRW_DIRHIST_CNT + 1 ) % g:netrw_dirhistmax
-   if exists("g:NETRW_DIRHIST_{g:NETRW_DIRHIST_CNT}")
-"    call Decho("changedir U#".g:NETRW_DIRHIST_CNT."<".g:NETRW_DIRHIST_{g:NETRW_DIRHIST_CNT}.">")
+   let g:netrw_dirhist_cnt= ( g:netrw_dirhist_cnt + 1 ) % g:netrw_dirhistmax
+   if exists("g:netrw_dirhist_{g:netrw_dirhist_cnt}")
+"    call Decho("changedir U#".g:netrw_dirhist_cnt."<".g:netrw_dirhist_{g:netrw_dirhist_cnt}.">")
     if exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST && exists("b:netrw_curdir")
      setlocal ma noro
 "     call Decho("setlocal ma noro")
@@ -1961,57 +1946,108 @@
      setlocal nomod
 "     call Decho("setlocal nomod")
     endif
-"    call Decho("exe e! ".fnameescape(g:NETRW_DIRHIST_{g:NETRW_DIRHIST_CNT}))
-    exe "e! ".fnameescape(g:NETRW_DIRHIST_{g:NETRW_DIRHIST_CNT})
+"    call Decho("exe e! ".fnameescape(g:netrw_dirhist_{g:netrw_dirhist_cnt}))
+    exe "e! ".fnameescape(g:netrw_dirhist_{g:netrw_dirhist_cnt})
    else
-    let g:NETRW_DIRHIST_CNT= ( g:NETRW_DIRHIST_CNT - 1 ) % g:netrw_dirhistmax
-    if g:NETRW_DIRHIST_CNT < 0
-     let g:NETRW_DIRHIST_CNT= g:NETRW_DIRHIST_CNT + g:netrw_dirhistmax
+    let g:netrw_dirhist_cnt= ( g:netrw_dirhist_cnt - 1 ) % g:netrw_dirhistmax
+    if g:netrw_dirhist_cnt < 0
+     let g:netrw_dirhist_cnt= g:netrw_dirhist_cnt + g:netrw_dirhistmax
     endif
     echo "Sorry, no successor directory exists yet"
    endif
 
   elseif a:chg == 6
-   if v:count > 0 && v:count == g:NETRW_BOOKMARKMAX
-    " delete the v:count'th bookmark
-"    call Decho("delete bookmark#".v:count."<".g:NETRW_BOOKMARKDIR_{g:NETRW_BOOKMARKMAX}.">")
-    unlet g:NETRW_BOOKMARKDIR_{g:NETRW_BOOKMARKMAX}
-    let g:NETRW_BOOKMARKMAX= g:NETRW_BOOKMARKMAX - 1
-
-   elseif v:count > 0
-"    call Decho("delete by shifting bookmark#".v:count."<".g:NETRW_BOOKMARKDIR_{v:count}.">")
-    let cnt= v:count
-    while cnt < g:NETRW_BOOKMARKMAX
-     let g:NETRW_BOOKMARKDIR_{cnt} = g:NETRW_BOOKMARKDIR_{(cnt+1)}
-     let cnt                       = cnt + 1
-    endwhile
-    unlet g:NETRW_BOOKMARKDIR_{g:NETRW_BOOKMARKMAX}
-    let g:NETRW_BOOKMARKMAX= g:NETRW_BOOKMARKMAX - 1
+   " delete the v:count'th bookmark
+"   call Decho("delete bookmark#".v:count."<".g:netrw_bookmarklist[v:count-1].">")
+   let savefile= s:NetrwHome()."/.netrwbook"
+   if filereadable(savefile)
+    call s:NetrwBookHistSave() " done here to merge bookmarks first
+    call delete(savefile)
+   endif
+   call remove(g:netrw_bookmarklist,v:count-1)
+  endif
+  call s:NetrwBookmarkMenu()
+"  call Dret("NetrwBookHistHandler")
+endfun
 
-   elseif exists("b:netrw_curdir")
-    " look for current directory amongst the bookmarks and remove that bookmark
-"    call Decho("search for bookmark<".b:netrw_curdir.">")
-    let cnt= 1
-    while cnt <= g:NETRW_BOOKMARKMAX
-"     call Decho("checking: g:NETRW_BOOKMARKDIR_".cnt."<".g:NETRW_BOOKMARKDIR_{cnt}.">")
-     if g:NETRW_BOOKMARKDIR_{cnt} == b:netrw_curdir
-      if cnt < g:NETRW_BOOKMARKMAX
-"       call Decho("delete bookmark#".cnt."<".b:netrw_curdir.">")
-       while cnt < g:NETRW_BOOKMARMAX
-        let g:NETRW_BOOKMARKDIR_{cnt} = g:NETRW_BOOKMARKDIR_{(cnt+1)}
-        let cnt                       = cnt + 1
-       endwhile
-      endif
-      unlet g:NETRW_BOOKMARKDIR_{g:NETRW_BOOKMARKMAX}
-      let g:NETRW_BOOKMARKMAX= g:NETRW_BOOKMARKMAX - 1
+" ---------------------------------------------------------------------
+" s:NetrwBookHistRead: this function reads bookmarks and history {{{2
+"                      Sister function: s:NetrwBookHistSave()
+fun! s:NetrwBookHistRead()
+"  call Dfunc("s:NetrwBookHistRead()")
+  if !exists("s:netrw_initbookhist")
+   let home    = s:NetrwHome()
+   let savefile= home."/.netrwbook"
+   if filereadable(savefile)
+"    call Decho("sourcing .netrwbook")
+    exe "so ".savefile
+   endif
+   let savefile= home."/.netrwhist"
+   if filereadable(savefile)
+"    call Decho("sourcing .netrwhist")
+    exe "so ".savefile
+   endif
+   let s:netrw_initbookhist= 1
+   au VimLeave * call s:NetrwBookHistSave()
+  endif
+"  call Dret("s:NetrwBookHistRead")
+endfun
+
+" ---------------------------------------------------------------------
+" s:NetrwBookHistSave: this function saves bookmarks and history {{{2
+"                      Sister function: s:NetrwBookHistRead()
+"                      I used to do this via viminfo but that appears to
+"                      be unreliable for long-term storage
+"                      COMBAK: does $HOME work under windows???
+fun! s:NetrwBookHistSave()
+"  call Dfunc("s:NetrwBookHistSave() dirhistmax=".g:netrw_dirhistmax)
+  let savefile= s:NetrwHome()."/.netrwhist"
+  1split
+  call s:NetrwEnew()
+  setlocal cino= com= cpo-=aA fo=nroql2 tw=0 report=10000 noswf
+  setlocal nocin noai noci magic nospell nohid wig= noaw
+  setlocal ma noro write
+  if exists("&acd") | setlocal noacd | endif
+  silent %d
+
+  " save .netrwhist -- no attempt to merge
+  silent! file .netrwhist
+  call setline(1,"let g:netrw_dirhistmax  =".g:netrw_dirhistmax)
+  call setline(2,"let g:netrw_dirhist_cnt =".g:netrw_dirhist_cnt)
+  let lastline = line("$")
+  let cnt      = 1
+  while cnt <= g:netrw_dirhist_cnt
+   call setline((cnt+lastline),'let g:netrw_dirhist_'.cnt."='".g:netrw_dirhist_{cnt}."'")
+   let cnt= cnt + 1
+  endwhile
+  exe "silent! w! ".savefile
+
+  silent %d
+  if exists("g:netrw_bookmarklist") && g:netrw_bookmarklist != []
+   " merge and write .netrwbook
+   let savefile= s:NetrwHome()."/.netrwbook"
+
+   if filereadable(savefile)
+    let booklist= deepcopy(g:netrw_bookmarklist)
+    exe "silent so ".savefile
+    for bdm in booklist
+     if index(g:netrw_bookmarklist,bdm) == -1
+      call add(g:netrw_bookmarklist,bdm)
      endif
-     let cnt= cnt + 1
-    endwhile
+    endfor
+    call sort(g:netrw_bookmarklist)
+    exe "silent! w! ".savefile
    endif
 
+   " construct and save .netrwbook
+   call setline(1,"let g:netrw_bookmarklist= ".string(g:netrw_bookmarklist))
+   exe "silent! w! ".savefile
   endif
-  call s:NetrwBookmarkMenu()
-"  call Dret("NetrwBookmarkDir")
+  let bgone= bufnr("%")
+  q!
+  exe bgone."bwipe!"
+
+"  call Dret("s:NetrwBookHistSave")
 endfun
 
 " ---------------------------------------------------------------------
@@ -2024,6 +2060,16 @@
 "  call Dfunc("s:NetrwBrowse(islocal=".a:islocal." dirname<".a:dirname.">) liststyle=".w:netrw_liststyle." ".g:loaded_netrw." buf#".bufnr("%")."<".bufname("%").">")
 "  call Decho("tab#".tabpagenr()." win#".winnr())
 "  call Dredir("ls!")
+  if !exists("s:netrw_initbookhist")
+   call s:NetrwBookHistRead()
+  endif
+
+  " simplify the dirname (especially for ".."s in dirnames)
+  if a:dirname !~ '^\a\+://'
+   let dirname= simplify(a:dirname)
+  else
+   let dirname= a:dirname
+  endif
 
   if exists("s:netrw_skipbrowse")
    unlet s:netrw_skipbrowse
@@ -2043,7 +2089,6 @@
   endif
 
   call s:NetrwOptionSave("w:")
-  call s:NetrwSafeOptions()
 
   " re-instate any marked files
   if exists("s:netrwmarkfilelist_{bufnr('%')}")
@@ -2053,27 +2098,29 @@
 
   if a:islocal && exists("w:netrw_acdkeep") && w:netrw_acdkeep
 "   call Decho("handle w:netrw_acdkeep:")
-"   call Decho("keepjumps lcd ".fnameescape(a:dirname)." (due to w:netrw_acdkeep=".w:netrw_acdkeep." - acd=".&acd.")")
-   exe 'keepjumps lcd '.fnameescape(a:dirname)
+"   call Decho("keepjumps lcd ".fnameescape(dirname)." (due to w:netrw_acdkeep=".w:netrw_acdkeep." - acd=".&acd.")")
+   exe 'keepjumps lcd '.fnameescape(dirname)
+   call s:NetrwSafeOptions()
 "   call Decho("getcwd<".getcwd().">")
 
-  elseif !a:islocal && a:dirname !~ '[\/]$' && a:dirname !~ '^"'
+  elseif !a:islocal && dirname !~ '[\/]$' && dirname !~ '^"'
    " looks like a regular file, attempt transfer
-"   call Decho("attempt transfer as regular file<".a:dirname.">")
+"   call Decho("attempt transfer as regular file<".dirname.">")
 
    " remove any filetype indicator from end of dirname, except for the {{{3
    " "this is a directory" indicator (/).
    " There shouldn't be one of those here, anyway.
-   let path= substitute(a:dirname,'[*=@|]\r\=$','','e')
+   let path= substitute(dirname,'[*=@|]\r\=$','','e')
 "   call Decho("new path<".path.">")
-   call s:RemotePathAnalysis(a:dirname)
+   call s:RemotePathAnalysis(dirname)
 
    " remote-read the requested file into current buffer {{{3
    mark '
-   call s:NetrwEnew(a:dirname)
+   call s:NetrwEnew(dirname)
+   call s:NetrwSafeOptions()
    setlocal ma noro
 "   call Decho("setlocal ma noro")
-   let b:netrw_curdir= a:dirname
+   let b:netrw_curdir= dirname
 "   call Decho("exe silent! keepalt file ".fnameescape(s:method."://".s:user.s:machine."/".s:path)." (bt=".&bt.")")
    exe "silent! keepalt file ".fnameescape(s:method."://".s:user.s:machine."/".s:path)
    exe "silent keepalt doau BufReadPre ".fnameescape(s:fname)
@@ -2098,7 +2145,7 @@
 
   " set up some variables {{{3
   let b:netrw_browser_active = 1
-  let dirname                = a:dirname
+  let dirname                = dirname
   let s:last_sort_by         = g:netrw_sort_by
 
   " set up menu {{{3
@@ -2183,11 +2230,11 @@
   else
 "   call Decho("remote only:")
 
-   " analyze a:dirname and g:netrw_list_cmd {{{4
-"   call Decho("b:netrw_curdir<".(exists("b:netrw_curdir")? b:netrw_curdir : "doesn't exist")."> a:dirname<".a:dirname.">")
-   if a:dirname =~ "^NetrwTreeListing\>"
+   " analyze dirname and g:netrw_list_cmd {{{4
+"   call Decho("b:netrw_curdir<".(exists("b:netrw_curdir")? b:netrw_curdir : "doesn't exist")."> dirname<".dirname.">")
+   if dirname =~ "^NetrwTreeListing\>"
     let dirname= b:netrw_curdir
-"    call Decho("(dirname was ".a:dirname.") dirname<".dirname.">")
+"    call Decho("(dirname was ".dirname.") dirname<".dirname.">")
    elseif exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST && exists("b:netrw_curdir")
     let dirname= substitute(b:netrw_curdir,'\\','/','g')
     if dirname !~ '/$'
@@ -2196,7 +2243,7 @@
     let b:netrw_curdir = dirname
 "    call Decho("(liststyle is TREELIST) dirname<".dirname.">")
    else
-    let dirname = substitute(a:dirname,'\\','/','g')
+    let dirname = substitute(dirname,'\\','/','g')
 "    call Decho("(normal) dirname<".dirname.">")
    endif
 
@@ -2221,6 +2268,14 @@
   call s:BrowserMaps(a:islocal)
   call s:PerformListing(a:islocal)
 
+  " The s:LocalBrowseShellCmdRefresh() function is called by an autocmd
+  " installed by s:LocalFastBrowser() when g:netrw_fastbrowse <= 1 (ie. slow, medium speed).
+  " However, s:NetrwBrowse() causes the ShellCmdPost event itself to fire once; setting
+  " the variable below avoids that second refresh of the screen.  The s:LocalBrowseShellCmdRefresh()
+  " function gets called due to that autocmd; it notices that the following variable is set
+  " and skips the refresh and sets s:locbrowseshellcmd to zero. Oct 13, 2008
+  let s:locbrowseshellcmd= 1
+
 "  call Decho("ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap)
 "  call Dret("s:NetrwBrowse : did PerformListing")
   return
@@ -2280,7 +2335,7 @@
     set ei=all
     exe "b ".w:netrw_treebufnr
     let &ei= eikeep
-"    call Dret("s:NetrwGetBuffer : bufnum#".bufnum."<NetrwTreeListing>")
+"    call Dret("s:NetrwGetBuffer : bufnum#".w:netrw_treebufnr."<NetrwTreeListing>")
     return
    endif
    let bufnum= -1
@@ -2510,6 +2565,7 @@
    if !exists("b:netrw_cpf")
     let b:netrw_cpf= 0
     exe 'silent keepjumps '.w:netrw_bannercnt.',$g/^./if virtcol("$") > b:netrw_cpf|let b:netrw_cpf= virtcol("$")|endif'
+    call histdel("/",-1)
 "   call Decho("computed cpf=".b:netrw_cpf)
    endif
 
@@ -2621,6 +2677,22 @@
   let svpos= netrw#NetrwSavePosn()
   call s:NetrwRefresh(a:islocal,s:NetrwBrowseChgDir(a:islocal,'./'))
   call netrw#NetrwRestorePosn(svpos)
+  if w:netrw_liststyle != s:WIDELIST
+   if g:netrw_cursorline == 2
+    setlocal cursorline
+    let &cursorcolumn= s:netrw_usercuc
+   elseif g:netrw_cursorline
+    setlocal cursorline
+"    call Decho("setlocal cursorline")
+   endif
+  else
+   if g:netrw_cursorline == 2
+    setlocal cursorline cursorcolumn
+"    call Decho("setlocal cursorline cursorcolumn")
+   elseif g:netrw_cursorline
+    let &cursorline= s:netrw_usercul
+   endif
+  endif
 
   " keep cursor on the filename
   silent keepjumps $
@@ -2642,37 +2714,47 @@
   if !exists("s:netrw_menucnt")
    return
   endif
-"  call Dfunc("NetrwBookmarkMenu() bookmarkcnt=".g:NETRW_BOOKMARKMAX." histcnt=".g:NETRW_DIRHIST_CNT." menucnt=".s:netrw_menucnt)
+"  call Dfunc("NetrwBookmarkMenu()  histcnt=".g:netrw_dirhist_cnt." menucnt=".s:netrw_menucnt)
 
   " the following test assures that gvim is running, has menus available, and has menus enabled.
   if has("gui") && has("menu") && has("gui_running") && &go =~ 'm' && g:netrw_menu
    if exists("g:NetrwTopLvlMenu")
 "    call Decho("removing ".g:NetrwTopLvlMenu."Bookmarks menu item(s)")
     exe 'silent! unmenu '.g:NetrwTopLvlMenu.'Bookmarks'
+    exe 'silent! unmenu '.g:NetrwTopLvlMenu.'Bookmarks\ and\ History.Bookmark\ Delete'
+   endif
+   if !exists("s:netrw_initbookhist")
+    call s:NetrwBookHistRead()
    endif
 
    " show bookmarked places
-   let cnt       = 1
-   while cnt <= g:NETRW_BOOKMARKMAX
-    if exists("g:NETRW_BOOKMARKDIR_{cnt}")
-     let bmdir= escape(g:NETRW_BOOKMARKDIR_{cnt},'. ')
-"     call Decho('silent! menu '.g:NetrwMenuPriority.".2.".cnt." ".g:NetrwTopLvlMenu.'Bookmark.'.bmdir.'	:e '.bmdir)
-     exe 'silent! menu '.g:NetrwMenuPriority.".2.".cnt." ".g:NetrwTopLvlMenu.'Bookmarks.'.bmdir.'	:e '.bmdir."\<cr>"
-    endif
-    let cnt= cnt + 1
-   endwhile
+   if exists("g:netrw_bookmarklist") && g:netrw_bookmarklist != []
+    let cnt= 1
+    for bmd in g:netrw_bookmarklist
+"     call Decho('silent! menu '.g:NetrwMenuPriority.".2.".cnt." ".g:NetrwTopLvlMenu.'Bookmark.'.bmd.'	:e '.bmd)
+     let bmd= escape(bmd,'. ')
+
+     " show bookmarks for goto menu
+     exe 'silent! menu '.g:NetrwMenuPriority.".2.".cnt." ".g:NetrwTopLvlMenu.'Bookmarks.'.bmd.'	:e '.bmd."\<cr>"
+
+     " show bookmarks for deletion menu
+     exe 'silent! menu '.g:NetrwMenuPriority.".8.2.".cnt." ".g:NetrwTopLvlMenu.'Bookmarks\ and\ History.Bookmark\ Delete.'.bmd.'	'.cnt."mB"
+     let cnt= cnt + 1
+    endfor
+
+   endif
 
    " show directory browsing history
-   let cnt     = g:NETRW_DIRHIST_CNT
+   let cnt     = g:netrw_dirhist_cnt
    let first   = 1
    let histcnt = 0
-   while ( first || cnt != g:NETRW_DIRHIST_CNT )
+   while ( first || cnt != g:netrw_dirhist_cnt )
     let histcnt  = histcnt + 1
-    let priority = g:NETRW_DIRHIST_CNT + histcnt
-    if exists("g:NETRW_DIRHIST_{cnt}")
-     let bmdir= escape(g:NETRW_DIRHIST_{cnt},'/&? ')
-"     call Decho('silent! menu '.g:NetrwMenuPriority.".3.".priority." ".g:NetrwTopLvlMenu.'History.'.bmdir.'	:e '.bmdir)
-     exe 'silent! menu '.g:NetrwMenuPriority.".3.".priority." ".g:NetrwTopLvlMenu.'History.'.bmdir.'	:e '.bmdir."\<cr>"
+    let priority = g:netrw_dirhist_cnt + histcnt
+    if exists("g:netrw_dirhist_{cnt}")
+     let histdir= escape(g:netrw_dirhist_{cnt},'./&? ')
+"     call Decho('silent! menu '.g:NetrwMenuPriority.".3.".priority." ".g:NetrwTopLvlMenu.'History.'.histdir.'	:e '.histdir)
+     exe 'silent! menu '.g:NetrwMenuPriority.".3.".priority." ".g:NetrwTopLvlMenu.'History.'.histdir.'	:e '.histdir."\<cr>"
     endif
     let first = 0
     let cnt   = ( cnt - 1 ) % g:netrw_dirhistmax
@@ -2680,6 +2762,7 @@
      let cnt= cnt + g:netrw_dirhistmax
     endif
    endwhile
+
   endif
 "  call Dret("NetrwBookmarkMenu")
 endfun
@@ -2737,6 +2820,7 @@
     else
      let dirname= s:NetrwTreeDir()."/".newdir
     endif
+"    call Decho("dirname<".dirname.">")
 "    call Decho("tree listing")
    elseif newdir =~ '^\(/\|\a:\)'
     let dirname= newdir
@@ -2782,6 +2866,9 @@
     endif
     let dolockout= 1
    endif
+   if exists("g:Netrw_funcref")
+    call g:Netrw_funcref()
+   endif
 
   elseif newdir =~ '^/'
    " ---------------------------------
@@ -2887,15 +2974,16 @@
     " close tree listing for selected subdirectory
 "    call Decho("closing selected subdirectory<".dirname.">")
     call remove(w:netrw_treedict,treedir)
-"    call Decho("removed     entry<".dirname."> from treedict")
+"    call Decho("removed     entry<".treedir."> from treedict")
 "    call Decho("yielding treedict<".string(w:netrw_treedict).">")
-    let dirname= w:netrw_treetop
+    let dirname           = w:netrw_treetop
    else
     " go down one directory
     let dirname= substitute(treedir,'/*$','/','')
 "    call Decho("go down one dir: treedir<".treedir.">")
    endif
    call s:SetRexDir(a:islocal,dirname)
+   let s:treeforceredraw = 1
 
   else
    " go down one directory
@@ -2927,6 +3015,7 @@
   if has("win32") || has("win95") || has("win64") || has("win16")
    let exten= substitute(exten,'^.*$','\L&\E','')
   endif
+"  call Decho("exten<".exten.">")
 
   " seems kde systems often have gnome-open due to dependencies, even though
   " gnome-open's subsidiary display tools are largely absent.  Kde systems
@@ -2945,16 +3034,25 @@
 
   if a:remote == 1
    " create a local copy
-   let fname= fnamemodify(tempname(),":r").".".exten
-"   call Decho("a:remote=".a:remote.": create a local copy of <".fname."> as <".fname.">")
-   exe "silent keepjumps bot 1new ".fnameescape(fname)
+"   call Decho("a:remote=".a:remote.": create a local copy of <".a:fname.">")
    setlocal bh=delete
-"   call Decho("read <".fnameescape(fname).">, now writing: exe w! ".fnameescape(fname))
-   exe "silent! w! ".fnameescape(fname)
-   q
+   call netrw#NetRead(3,a:fname)
+   " attempt to rename tempfile
+   let basename= substitute(a:fname,'^\(.*\)/\(.*\)\.\([^.]*\)$','\2','')
+   let newname= substitute(s:netrw_tmpfile,'^\(.*\)/\(.*\)\.\([^.]*\)$','\1/'.basename.'.\3','')
+"   call Decho("basename<".basename.">")
+"   call Decho("newname <".newname.">")
+   if rename(s:netrw_tmpfile,newname) == 0
+    " renaming succeeded
+    let fname= newname
+   else
+    " renaming failed
+    let fname= s:netrw_tmpfile
+   endif
   else
    let fname= a:fname
   endif
+"  call Decho("fname<".fname.">")
 "  call Decho("exten<".exten."> "."netrwFileHandlers#NFH_".exten."():exists=".exists("*netrwFileHandlers#NFH_".exten))
 
   " set up redirection
@@ -3061,10 +3159,21 @@
 
 " ---------------------------------------------------------------------
 " netrw#Explore: launch the local browser in the directory of the current file {{{2
-"          dosplit==0: the window will be split iff the current file has
-"                      been modified
-"          dosplit==1: the window will be split before running the local
-"                      browser
+"          indx:  == -1: Nexplore
+"                 == -2: Pexplore
+"                 ==  +: this is overloaded:
+"                      * If Nexplore/Pexplore is in use, then this refers to the
+"                        indx'th item in the w:netrw_explore_list[] of items which
+"                        matched the */pattern **/pattern *//pattern **//pattern
+"                      * If Hexplore or Vexplore, then this will override
+"                        g:netrw_winsize to specify the qty of rows or columns the
+"                        newly split window should have.
+"          dosplit==0: the window will be split iff the current file has been modified
+"          dosplit==1: the window will be split before running the local browser
+"          style == 0: Explore     style == 1: Explore!
+"                == 2: Hexplore    style == 3: Hexplore!
+"                == 4: Vexplore    style == 5: Vexplore!
+"                == 6: Texplore
 fun! netrw#Explore(indx,dosplit,style,...)
 "  call Dfunc("netrw#Explore(indx=".a:indx." dosplit=".a:dosplit." style=".a:style.",a:1<".a:1.">) &modified=".&modified." a:0=".a:0)
   if !exists("b:netrw_curdir")
@@ -3083,30 +3192,34 @@
   if a:dosplit || &modified || a:style == 6
 "   call Decho("case: dosplit=".a:dosplit." modified=".&modified." a:style=".a:style)
    call s:SaveWinVars()
+   let winsize= g:netrw_winsize
+   if a:indx > 0
+    let winsize= a:indx
+   endif
 
    if a:style == 0      " Explore, Sexplore
 "    call Decho("style=0: Explore or Sexplore")
-    exe g:netrw_winsize."wincmd s"
+    exe winsize."wincmd s"
 
    elseif a:style == 1  "Explore!, Sexplore!
 "    call Decho("style=1: Explore! or Sexplore!")
-    exe g:netrw_winsize."wincmd v"
+    exe winsize."wincmd v"
 
    elseif a:style == 2  " Hexplore
 "    call Decho("style=2: Hexplore")
-    exe "bel ".g:netrw_winsize."wincmd s"
+    exe "bel ".winsize."wincmd s"
 
    elseif a:style == 3  " Hexplore!
 "    call Decho("style=3: Hexplore!")
-    exe "abo ".g:netrw_winsize."wincmd s"
+    exe "abo ".winsize."wincmd s"
 
    elseif a:style == 4  " Vexplore
 "    call Decho("style=4: Vexplore")
-    exe "lefta ".g:netrw_winsize."wincmd v"
+    exe "lefta ".winsize."wincmd v"
 
    elseif a:style == 5  " Vexplore!
 "    call Decho("style=5: Vexplore!")
-    exe "rightb ".g:netrw_winsize."wincmd v"
+    exe "rightb ".winsize."wincmd v"
 
    elseif a:style == 6  " Texplore
     call s:SaveBufVars()
@@ -3137,19 +3250,7 @@
    endif
   else
    " clear explore
-"   call Decho("clearing explore variables")
-   2match none
-   if exists("s:explore_match")        |unlet s:explore_match        |endif
-   if exists("s:explore_indx")         |unlet s:explore_indx         |endif
-   if exists("s:dirstarstar")          |unlet s:dirstarstar          |endif
-   if exists("s:dirstarstar")          |unlet s:dirstarstar          |endif
-   if exists("w:netrw_explore_indx")   |unlet w:netrw_explore_indx   |endif
-   if exists("w:netrw_explore_listlen")|unlet w:netrw_explore_listlen|endif
-   if exists("w:netrw_explore_list")   |unlet w:netrw_explore_list   |endif
-   if exists("w:netrw_explore_bufnr")  |unlet w:netrw_explore_bufnr  |endif
-"   redraw!
-   echo " "
-   echo " "
+   call s:NetrwClearExplore()
 "   call Dret("netrw#Explore : cleared list")
    return
   endif
@@ -3237,9 +3338,10 @@
     if !exists("w:netrw_explore_indx")
      let w:netrw_explore_indx= 0
     endif
+
     let indx = a:indx
 "    call Decho("starpat=".starpat.": set indx= [a:indx=".indx."]")
-"
+
     if indx == -1
      " Nexplore
 "     call Decho("case Nexplore with starpat=".starpat.": (indx=".indx.")")
@@ -3290,6 +3392,7 @@
      " Explore -- initialize
      " build list of files to Explore with Nexplore/Pexplore
 "     call Decho("starpat=".starpat.": case Explore: initialize (indx=".indx.")")
+     call s:NetrwClearExplore()
      let w:netrw_explore_indx= 0
      if !exists("b:netrw_curdir")
       let b:netrw_curdir= getcwd()
@@ -3300,8 +3403,9 @@
      if starpat == 1
       " starpat=1: Explore *//pattern  (current directory only search for files containing pattern)
 "      call Decho("starpat=".starpat.": build *//pattern list")
+"      call Decho("pattern<".pattern.">")
       exe "vimgrep /".pattern."/gj ".fnameescape(b:netrw_curdir)."/*"
-      let w:netrw_explore_list = map(getqflist(),'bufname(v:val.bufnr)')
+      let w:netrw_explore_list = s:NetrwExploreListUniq(map(getqflist(),'bufname(v:val.bufnr)'))
       if &hls | let keepregslash= s:ExplorePatHls(pattern) | endif
 
      elseif starpat == 2
@@ -3320,19 +3424,22 @@
       endtry
       let s:netrw_curdir       = b:netrw_curdir
       let w:netrw_explore_list = getqflist()
-      let w:netrw_explore_list = map(w:netrw_explore_list,'s:netrw_curdir."/".bufname(v:val.bufnr)')
+      let w:netrw_explore_list = s:NetrwExploreListUniq(map(w:netrw_explore_list,'s:netrw_curdir."/".bufname(v:val.bufnr)'))
 
      elseif starpat == 3
       " starpat=3: Explore */filepat   (search in current directory for filenames matching filepat)
 "      call Decho("starpat=".starpat.": build */filepat list")
-      let dirname             = substitute(dirname,'^\*/','','')
-      let w:netrw_explore_list= split(expand(b:netrw_curdir."/".dirname),'\n')
-      if &hls | let keepregslash= s:ExplorePatHls(dirname) | endif
+      let filepat= substitute(dirname,'^\*/','','')
+      let filepat= substitute(filepat,'^[%#<]','\\&','')
+"      call Decho("b:netrw_curdir<".b:netrw_curdir.">")
+"      call Decho("filepat<".filepat.">")
+      let w:netrw_explore_list= s:NetrwExploreListUniq(split(expand(b:netrw_curdir."/".filepat),'\n'))
+      if &hls | let keepregslash= s:ExplorePatHls(filepat) | endif
 
      elseif starpat == 4
       " starpat=4: Explore **/filepat  (recursive descent search for filenames matching filepat)
 "      call Decho("starpat=".starpat.": build **/filepat list")
-      let w:netrw_explore_list= split(expand(b:netrw_curdir."/".dirname),'\n')
+      let w:netrw_explore_list= s:NetrwExploreListUniq(split(expand(b:netrw_curdir."/".dirname),'\n'))
       if &hls | let keepregslash= s:ExplorePatHls(dirname) | endif
      endif " switch on starpat to build w:netrw_explore_list
 
@@ -3352,7 +3459,7 @@
 
     " NetrwStatusLine support - for exploring support
     let w:netrw_explore_indx= indx
-"    call Decho("explorelist<".join(w:netrw_explore_list,',')."> len=".w:netrw_explore_listlen)
+"    call Decho("w:netrw_explore_list<".join(w:netrw_explore_list,',')."> len=".w:netrw_explore_listlen)
 
     " wrap the indx around, but issue a note
     if indx >= w:netrw_explore_listlen || indx < 0
@@ -3360,7 +3467,6 @@
      let indx                = (indx < 0)? ( w:netrw_explore_listlen - 1 ) : 0
      let w:netrw_explore_indx= indx
      call netrw#ErrorMsg(s:NOTE,"no more files match Explore pattern",43)
-     sleep 1
     endif
 
     exe "let dirfile= w:netrw_explore_list[".indx."]"
@@ -3411,12 +3517,16 @@
   endif
 
   " visual display of **/ **// */ Exploration files
+"  call Decho("w:netrw_explore_indx=".w:netrw_explore_indx)
+"  call Decho("b:netrw_curdir<".b:netrw_curdir.">")
   if exists("w:netrw_explore_indx") && exists("b:netrw_curdir")
+"   call Decho("s:explore_prvdir<".(exists("s:explore_prvdir")? s:explore_prvdir : "-doesn't exist-"))
    if !exists("s:explore_prvdir") || s:explore_prvdir != b:netrw_curdir
     " only update match list if current directory isn't the same as before
+"    call Decho("only update match list if current directory not the same as before")
     let s:explore_prvdir = b:netrw_curdir
     let s:explore_match  = ""
-    let dirlen           = strlen(b:netrw_curdir)
+    let dirlen           = s:Strlen(b:netrw_curdir)
     if b:netrw_curdir !~ '/$'
      let dirlen= dirlen + 1
     endif
@@ -3425,15 +3535,15 @@
 "     call Decho("fname<".fname.">")
      if fname =~ '^'.b:netrw_curdir
       if s:explore_match == ""
-       let s:explore_match= '\<'.escape(strpart(fname,dirlen),g:netrw_markfileesc."'".g:netrw_markfileesc."'").'\>'
+       let s:explore_match= '\<'.escape(strpart(fname,dirlen),g:netrw_markfileesc).'\>'
       else
-       let s:explore_match= s:explore_match.'\|\<'.escape(strpart(fname,dirlen),g:netrw_markfileesc."'".g:netrw_markfileesc."'").'\>'
+       let s:explore_match= s:explore_match.'\|\<'.escape(strpart(fname,dirlen),g:netrw_markfileesc).'\>'
       endif
      elseif fname !~ '^/' && fname != prvfname
       if s:explore_match == ""
-       let s:explore_match= '\<'.escape(fname,g:netrw_markfileesc."'".g:netrw_markfileesc."'").'\>'
+       let s:explore_match= '\<'.escape(fname,g:netrw_markfileesc).'\>'
       else
-       let s:explore_match= s:explore_match.'\|\<'.escape(fname,g:netrw_markfileesc."'".g:netrw_markfileesc."'").'\>'
+       let s:explore_match= s:explore_match.'\|\<'.escape(fname,g:netrw_markfileesc).'\>'
       endif
      endif
      let prvfname= fname
@@ -3457,6 +3567,44 @@
 endfun
 
 " ---------------------------------------------------------------------
+" s:NetrwClearExplore: clear explore variables (if any) {{{2
+fun! s:NetrwClearExplore()
+"  call Dfunc("s:NetrwClearExplore()")
+  2match none
+  if exists("s:explore_match")        |unlet s:explore_match        |endif
+  if exists("s:explore_indx")         |unlet s:explore_indx         |endif
+  if exists("s:netrw_explore_prvdir") |unlet s:netrw_explore_prvdir |endif
+  if exists("s:dirstarstar")          |unlet s:dirstarstar          |endif
+  if exists("s:explore_prvdir")       |unlet s:explore_prvdir       |endif
+  if exists("w:netrw_explore_indx")   |unlet w:netrw_explore_indx   |endif
+  if exists("w:netrw_explore_listlen")|unlet w:netrw_explore_listlen|endif
+  if exists("w:netrw_explore_list")   |unlet w:netrw_explore_list   |endif
+  if exists("w:netrw_explore_bufnr")  |unlet w:netrw_explore_bufnr  |endif
+"   redraw!
+  echo " "
+  echo " "
+"  call Dret("s:NetrwClearExplore")
+endfun
+
+" ---------------------------------------------------------------------
+" s:NetrwExploreListUniq: {{{2
+fun! s:NetrwExploreListUniq(explist)
+"  call Dfunc("s:NetrwExploreListUniq(explist)")
+
+  " this assumes that the list is already sorted
+  let newexplist= []
+  for member in a:explist
+   if !exists("uniqmember") || member != uniqmember
+    let uniqmember = member
+    let newexplist = newexplist + [ member ]
+   endif
+  endfor
+
+"  call Dret("s:NetrwExploreListUniq")
+  return newexplist
+endfun
+
+" ---------------------------------------------------------------------
 " s:NetrwHide: this function is invoked by the "a" map for browsing {{{2
 "          and switches the hiding mode.  The actual hiding is done by
 "          s:NetrwListHide().
@@ -3490,9 +3638,7 @@
 "     call Decho("hide: g:netrw_list_hide<".g:netrw_list_hide.">")
     endif
    endfor
-   unlet s:netrwmarkfilelist_{bufnr("%")}
-   unlet s:netrwmarkfilemtch_{bufnr("%")}
-   2match none
+   call s:NetrwUnmarkList(bufnr("%"),b:netrw_curdir)
    let g:netrw_hide= 1
 
   else
@@ -3522,7 +3668,7 @@
   if g:netrw_list_hide =~ '\(^\|,\)\\(^\\|\\s\\s\\)\\zs\\.\\S\\+'
    " remove pattern from hiding list
    let g:netrw_list_hide= substitute(g:netrw_list_hide,'\(^\|,\)\\(^\\|\\s\\s\\)\\zs\\.\\S\\+','','')
-  elseif strlen(g:netrw_list_hide) >= 1
+  elseif s:Strlen(g:netrw_list_hide) >= 1
    let g:netrw_list_hide= g:netrw_list_hide . ',\(^\|\s\s\)\zs\.\S\+'
   else
    let g:netrw_list_hide= '\(^\|\s\s\)\zs\.\S\+'
@@ -3535,6 +3681,48 @@
 endfun
 
 " ---------------------------------------------------------------------
+"  s:NetrwHome: this function determines a "home" for saving bookmarks and history {{{2
+fun! s:NetrwHome()
+"  call Dfunc("s:NetrwHome()")
+  if exists("g:netrw_home")
+   let home= g:netrw_home
+  else
+   " go to vim plugin home
+   for home in split(&rtp,',') + ['']
+    if isdirectory(home) && filewritable(home) | break | endif
+     let basehome= substitute(home,'[/\\]\.vim$','','')
+    if isdirectory(basehome) && filewritable(basehome)
+     let home= basehome."/.vim"
+     break
+    endif
+   endfor
+   if home == ""
+    " just pick the first directory
+"    call Decho("just pick first directory in &rtp")
+    let home= substitute(&rtp,',.*$','','')
+   endif
+   if (has("win32") || has("win95") || has("win64") || has("win16"))
+    let home= substitute(home,'/','\\','g')
+   endif
+  endif
+  " insure that the home directory exists
+"  call Decho("picked home<".home.">")
+  if !isdirectory(home)
+   if exists("g:netrw_mkdir")
+"    call Decho("home<".home."> isn't a directory -- making it now with g:netrw_mkdir<".g:netrw_mkdir.">")
+"    call Decho("system(".g:netrw_mkdir." ".s:Escape(home).")")
+    call system(g:netrw_mkdir." ".s:Escape(home))
+   else
+"    call Decho("home<".home."> isn't a directory -- making it now with mkdir()")
+    call mkdir(home)
+   endif
+  endif
+  let g:netrw_home= home
+"  call Dret("s:NetrwHome <".home.">")
+  return home
+endfun
+
+" ---------------------------------------------------------------------
 " s:NetrwLeftmouse: handles the <leftmouse> when in a netrw browsing window {{{2
 fun! s:NetrwLeftmouse(islocal)
 "  call Dfunc("s:NetrwLeftmouse(islocal=".a:islocal.")")
@@ -3767,7 +3955,7 @@
     call filter(s:netrwmarkfilelist_{curbufnr},'v:val != a:fname')
     if s:netrwmarkfilelist_{curbufnr} == []
      " local markfilelist is empty; remove it entirely
-"     call Decho("markfile list now empty, unlet s:netrwmarkfilelist_".curbufnr." and ...mtch_".curbufnr)
+"     call Decho("markfile list now empty")
      call s:NetrwUnmarkList(curbufnr,curdir)
     else
      " rebuild match list to display markings correctly
@@ -3982,7 +4170,9 @@
   if a:islocal
    call s:NetrwRefreshDir(a:islocal,b:netrw_curdir)
   endif
-  call s:LocalBrowseShellCmdRefresh()
+  if g:netrw_fastbrowse <= 1
+   call s:LocalBrowseShellCmdRefresh()
+  endif
   
 "  call Dret("s:NetrwMarkFileCopy 1")
   return 1
@@ -4290,7 +4480,9 @@
   if a:islocal
    call s:NetrwRefreshDir(a:islocal,b:netrw_curdir)
   endif
-  call s:LocalBrowseShellCmdRefresh()
+  if g:netrw_fastbrowse <= 1
+   call s:LocalBrowseShellCmdRefresh()
+  endif
   
 "  call Dret("s:NetrwMarkFileMove")
 endfun
@@ -4371,7 +4563,8 @@
    set ei=all ma
 "   call Decho("set ei=all ma")
    1split
-   enew
+   call s:NetrwEnew()
+   call s:NetrwSafeOptions()
    silent norm! "ap
    2
    let bannercnt= search('^" =====','W')
@@ -4379,16 +4572,21 @@
    set bt=nofile
    if     g:netrw_liststyle == s:LONGLIST
     silent %s/\s\{2,}\S.*$//e
+    call histdel("/",-1)
    elseif g:netrw_liststyle == s:WIDELIST
     silent %s/\s\{2,}/\r/ge
+    call histdel("/",-1)
    elseif g:netrw_liststyle == s:TREELIST
     silent %s/^| //e
     silent! g/^ .*$/d
+    call histdel("/",-1)
+    call histdel("/",-1)
    endif
    " convert regexp into the more usual glob-style format
    let regexp= substitute(regexp,'\*','.*','g')
 "   call Decho("regexp<".regexp.">")
    exe "silent! v/".escape(regexp,'/')."/d"
+   call histdel("/",-1)
    let filelist= getline(1,line("$"))
    q!
    for filename in filelist
@@ -4459,6 +4657,7 @@
     let path= substitute(curdir,'^\(.*\)/[^/]*$','\1/','')
 "    call Decho("curdir<".curdir."> path<".path.">")
     exe '%s/\t\(\S\+\)\t/\t'.escape(path,"/\n\r\\").'\1\t/e'
+    call histdel("/",-1)
     wq!
    endif
    2match none
@@ -4518,7 +4717,7 @@
   endif
   let s:netrwmftgt_islocal= a:islocal
 
-  if g:netrw_fastbrowse > 0
+  if g:netrw_fastbrowse <= 1
    call s:LocalBrowseShellCmdRefresh()
   endif
   call s:NetrwRefresh(a:islocal,s:NetrwBrowseChgDir(a:islocal,'./'))
@@ -4653,20 +4852,17 @@
 "    call Decho("initialize menu")
     let s:netrw_menu_enabled= 1
     exe 'silent! menu '.g:NetrwMenuPriority.'.1     '.g:NetrwTopLvlMenu.'Help<tab><F1>	<F1>'
-    call s:NetrwBookmarkMenu() " provide some history!  uses priorities 2,3, reserves 4
     exe 'silent! menu '.g:NetrwMenuPriority.'.5     '.g:NetrwTopLvlMenu.'-Sep1-	:'
     exe 'silent! menu '.g:NetrwMenuPriority.'.6     '.g:NetrwTopLvlMenu.'Go\ Up\ Directory<tab>-	-'
     exe 'silent! menu '.g:NetrwMenuPriority.'.7     '.g:NetrwTopLvlMenu.'Apply\ Special\ Viewer<tab>x	x'
     exe 'silent! menu '.g:NetrwMenuPriority.'.8.1   '.g:NetrwTopLvlMenu.'Bookmarks\ and\ History.Bookmark\ Current\ Directory<tab>mb	mb'
-    exe 'silent! menu '.g:NetrwMenuPriority.'.8.2   '.g:NetrwTopLvlMenu.'Bookmarks\ and\ History.Bookmark\ Delete<tab>mB	mB'
-    exe 'silent! menu '.g:NetrwMenuPriority.'.8.3   '.g:NetrwTopLvlMenu.'Bookmarks\ and\ History.Goto\ Bookmark<tab>gb	gb'
     exe 'silent! menu '.g:NetrwMenuPriority.'.8.4   '.g:NetrwTopLvlMenu.'Bookmarks\ and\ History.Goto\ Prev\ Dir\ (History)<tab>u	u'
     exe 'silent! menu '.g:NetrwMenuPriority.'.8.5   '.g:NetrwTopLvlMenu.'Bookmarks\ and\ History.Goto\ Next\ Dir\ (History)<tab>U	U'
     exe 'silent! menu '.g:NetrwMenuPriority.'.8.6   '.g:NetrwTopLvlMenu.'Bookmarks\ and\ History.List<tab>qb	qb'
-    exe 'silent! menu '.g:NetrwMenuPriority.'.9.1   '.g:NetrwTopLvlMenu.'Browsing\ Control.Edit\ File\ Hiding\ List<tab>'."<ctrl-h>	\<Plug>NetrwHideEdit"
+    exe 'silent! menu '.g:NetrwMenuPriority.'.9.1   '.g:NetrwTopLvlMenu.'Browsing\ Control.Edit\ File\ Hiding\ List<tab><ctrl-h>'."	\<c-h>'"
     exe 'silent! menu '.g:NetrwMenuPriority.'.9.2   '.g:NetrwTopLvlMenu.'Browsing\ Control.Edit\ Sorting\ Sequence<tab>S	S'
     exe 'silent! menu '.g:NetrwMenuPriority.'.9.3   '.g:NetrwTopLvlMenu.'Browsing\ Control.Quick\ Hide/Unhide\ Dot\ Files<tab>'."gh	gh"
-    exe 'silent! menu '.g:NetrwMenuPriority.'.9.4   '.g:NetrwTopLvlMenu.'Browsing\ Control.Refresh\ Listing<tab>'."<ctrl-l>	\<Plug>NetrwRefresh"
+    exe 'silent! menu '.g:NetrwMenuPriority.'.9.4   '.g:NetrwTopLvlMenu.'Browsing\ Control.Refresh\ Listing<tab>'."<ctrl-l>	\<c-l>"
     exe 'silent! menu '.g:NetrwMenuPriority.'.9.5   '.g:NetrwTopLvlMenu.'Browsing\ Control.Settings/Options<tab>:NetrwSettings	'.":NetrwSettings\<cr>"
     exe 'silent! menu '.g:NetrwMenuPriority.'.10    '.g:NetrwTopLvlMenu.'Delete\ File/Directory<tab>D	D'
     exe 'silent! menu '.g:NetrwMenuPriority.'.11.1  '.g:NetrwTopLvlMenu.'Edit\ File/Dir.In\ Current\ Window<tab><cr>	'."\<cr>"
@@ -4704,6 +4900,7 @@
     exe 'silent! menu '.g:NetrwMenuPriority.'.16.4  '.g:NetrwTopLvlMenu.'Style.Sorting\ Method\ (name-time-size)<tab>s	s'
     exe 'silent! menu '.g:NetrwMenuPriority.'.17    '.g:NetrwTopLvlMenu.'Rename\ File/Directory<tab>R	R'
     exe 'silent! menu '.g:NetrwMenuPriority.'.18    '.g:NetrwTopLvlMenu.'Set\ Current\ Directory<tab>c	c'
+    call s:NetrwBookmarkMenu() " provide some history!  uses priorities 2,3, reserves 4, 8.2.x
     let s:netrw_menucnt= 28
 
    elseif !a:domenu
@@ -4731,8 +4928,8 @@
 "  call Dfunc("NetrwObtain(islocal=".a:islocal.")")
 
   if exists("s:netrwmarkfilelist_{bufnr('%')}")
-   let islocal= s:netrwmarkfilelist_{bufnr("%")}[1] !~ '^\a\+://'
-   call netrw#NetrwObtain(islocal,s:netrwmarkfilelist_{bufnr("%")})
+   let islocal= s:netrwmarkfilelist_{bufnr('%')}[1] !~ '^\a\+://'
+   call netrw#NetrwObtain(islocal,s:netrwmarkfilelist_{bufnr('%')})
    call s:NetrwUnmarkList(bufnr('%'),b:netrw_curdir)
   else
    call netrw#NetrwObtain(a:islocal,expand("<cWORD>"))
@@ -4769,7 +4966,7 @@
   endif
 "  call Decho("tgtdir<".tgtdir.">")
 
-  if b:netrw_islocal
+  if exists("b:netrw_islocal") && b:netrw_islocal
    " obtain a file from local b:netrw_curdir to (local) tgtdir
 "   call Decho("obtain a file from local ".b:netrw_curdir." to ".tgtdir)
    if exists("b:netrw_curdir") && getcwd() != b:netrw_curdir
@@ -4921,6 +5118,14 @@
       call netrw#ErrorMsg(s:ERROR,getline(1),5)
      endif
     endif
+   elseif !exists("b:netrw_method") || b:netrw_method < 0
+"    call Dfunc("netrw#NetrwObtain : unsupported method")
+    return
+   endif
+
+   " restore status line
+   if type(a:fname) == 1 && exists("s:netrw_users_stl")
+    call s:SetupNetrwStatusLine(s:netrw_users_stl)
    endif
 
   endif
@@ -5138,6 +5343,7 @@
      endif
      " If the result of the ftp operation isn't blank, show an error message (tnx to Doug Claar)
      silent g/Local directory now/d
+     call histdel("/",-1)
      if getline(1) !~ "^$" && !exists("g:netrw_quiet") && getline(1) !~ '^Trying '
       call netrw#ErrorMsg(s:ERROR,getline(1),14)
      else
@@ -5196,6 +5402,7 @@
      exe s: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)
      silent g/Local directory now/d
+     call histdel("/",-1)
      if getline(1) !~ "^$" && !exists("g:netrw_quiet") && getline(1) !~ '^Trying '
       let debugkeep= &debug
       setlocal debug=msg
@@ -5205,6 +5412,9 @@
      else
       bw!|q
      endif
+    elseif !exists("b:netrw_method") || b:netrw_method < 0
+"     call Dfunc("netrw#NetrwUpload : unsupported method")
+     return
     endif
    else
     call netrw#ErrorMsg(s:ERROR,"can't obtain files with protocol from<".a:tgt.">",63)
@@ -5325,13 +5535,12 @@
     let seq     = seqlist
     let seqlist = ""
    endif
-   let sepchr= "\<Char-0xff>"
    if priority < 10
-    let spriority= "00".priority.sepchr
+    let spriority= "00".priority.g:netrw_sepchr
    elseif priority < 100
-    let spriority= "0".priority.sepchr
+    let spriority= "0".priority.g:netrw_sepchr
    else
-    let spriority= priority.sepchr
+    let spriority= priority.g:netrw_sepchr
    endif
 "   call Decho("priority=".priority." spriority<".spriority."> seq<".seq."> seqlist<".seqlist.">")
 
@@ -5345,14 +5554,17 @@
     let starpriority= spriority
    else
     exe 'silent keepjumps '.w:netrw_bannercnt.',$g/'.seq.'/s/^/'.spriority.'/'
+    call histdel("/",-1)
     " sometimes multiple sorting patterns will match the same file or directory.
     " The following substitute is intended to remove the excess matches.
-    exe 'silent keepjumps '.w:netrw_bannercnt.',$g/^\d\{3}'.sepchr.'\d\{3}\//s/^\d\{3}'.sepchr.'\(\d\{3}\/\).\@=/\1/e'
+    exe 'silent keepjumps '.w:netrw_bannercnt.',$g/^\d\{3}'.g:netrw_sepchr.'\d\{3}\//s/^\d\{3}'.g:netrw_sepchr.'\(\d\{3}\/\).\@=/\1/e'
+    call histdel("/",-1)
    endif
    let priority = priority + 1
   endwhile
   if exists("starpriority")
-   exe 'silent keepjumps '.w:netrw_bannercnt.',$v/^\d\{3}'.sepchr.'/s/^/'.starpriority.'/'
+   exe 'silent keepjumps '.w:netrw_bannercnt.',$v/^\d\{3}'.g:netrw_sepchr.'/s/^/'.starpriority.'/'
+   call histdel("/",-1)
   endif
 
   " Following line associated with priority -- items that satisfy a priority
@@ -5361,7 +5573,8 @@
   " priority pattern needs to be retained.  So, at this point, these excess
   " priority prefixes need to be removed, but not directories that happen to
   " be just digits themselves.
-  exe 'silent keepjumps '.w:netrw_bannercnt.',$s/^\(\d\{3}'.sepchr.'\)\%(\d\{3}'.sepchr.'\)\+\ze./\1/e'
+  exe 'silent keepjumps '.w:netrw_bannercnt.',$s/^\(\d\{3}'.g:netrw_sepchr.'\)\%(\d\{3}'.g:netrw_sepchr.'\)\+\ze./\1/e'
+  call histdel("/",-1)
 
 "  call Dret("SetSort")
 endfun
@@ -5405,12 +5618,12 @@
 
   elseif a:mode == 1
    " remote and t
-   let cursorword  = s:NetrwGetWord()
+   let newdir  = s:NetrwBrowseChgDir(0,s:NetrwGetWord())
 "   call Decho("tabnew")
    tabnew
    let s:didsplit= 1
    call s:RestoreWinVars()
-   call s:NetrwBrowse(0,s:NetrwBrowseChgDir(0,cursorword))
+   call s:NetrwBrowse(0,newdir)
    unlet s:didsplit
 
   elseif a:mode == 2
@@ -5433,8 +5646,8 @@
 
   elseif a:mode == 4
    " local and t
-   let netrw_curdir= b:netrw_curdir
    let cursorword  = s:NetrwGetWord()
+   let netrw_curdir= s:NetrwTreeDir()
 "   call Decho("tabnew")
    tabnew
    let b:netrw_curdir= netrw_curdir
@@ -5505,12 +5718,13 @@
   if w:netrw_liststyle == s:TREELIST
 "   call Decho("w:netrrw_liststyle is TREELIST:")
 "   call Decho("line#".line(".")." getline(.)<".getline('.')."> treecurpos<".string(s:treecurpos).">")
+
+   " extract tree directory if on a line specifying a subdirectory (ie. ends with "/")
    if getline('.') =~ '/$'
     let treedir= substitute(getline('.'),'^\%(| \)*\([^|].\{-}\)$','\1','e')
    else
     let treedir= ""
    endif
-
 "   call Decho("treedir<".treedir.">")
 
    " detect user attempting to close treeroot
@@ -5525,11 +5739,11 @@
 
    " elide all non-depth information
    let depth = substitute(getline('.'),'^\(\%(| \)*\)[^|].\{-}$','\1','e')
-"   call Decho("depth<".depth."> 1st subst")
+"   call Decho("depth<".depth."> 1st subst (non-depth info removed)")
 
    " elide first depth
    let depth = substitute(depth,'^| ','','')
-"   call Decho("depth<".depth."> 2nd subst")
+"   call Decho("depth<".depth."> 2nd subst (first depth removed)")
 
    " construct treedir by searching backwards at correct depth
 "   call Decho("constructing treedir<".treedir."> depth<".depth.">")
@@ -5548,11 +5762,6 @@
   endif
   let treedir= substitute(treedir,'//$','/','')
 
-"  " now force a refresh
-"" call DECHO("clear buffer<".expand("%")."> with :%d")
-"  setlocal ma noro
-"  keepjumps %d
-
 "  call Dret("NetrwTreeDir <".treedir."> : (side effect) s:treecurpos<".string(s:treecurpos).">")
   return treedir
 endfun
@@ -5663,30 +5872,32 @@
   if w:netrw_liststyle == s:WIDELIST
 "   call Dfunc("NetrwWideListing() w:netrw_liststyle=".w:netrw_liststyle.' fo='.&fo.' l:fo='.&l:fo)
    " look for longest filename (cpf=characters per filename)
-   " cpf: characters per file
-   " fpl: files per line
-   " fpc: files per column
+   " cpf: characters per filename
+   " fpl: filenames per line
+   " fpc: filenames per column
    setlocal ma noro
 "   call Decho("setlocal ma noro")
    let b:netrw_cpf= 0
    if line("$") >= w:netrw_bannercnt
     exe 'silent keepjumps '.w:netrw_bannercnt.',$g/^./if virtcol("$") > b:netrw_cpf|let b:netrw_cpf= virtcol("$")|endif'
+    call histdel("/",-1)
    else
 "    call Dret("NetrwWideListing")
     return
    endif
-"   call Decho("max file strlen+1=".b:netrw_cpf)
-   let b:netrw_cpf= b:netrw_cpf + 1
+   let b:netrw_cpf= b:netrw_cpf + 2
+"   call Decho("b:netrw_cpf=max_filename_length+2=".b:netrw_cpf)
 
    " determine qty files per line (fpl)
    let w:netrw_fpl= winwidth(0)/b:netrw_cpf
    if w:netrw_fpl <= 0
     let w:netrw_fpl= 1
    endif
-"   call Decho("fpl= ".winwidth(0)."/[b:netrw_cpf=".b:netrw_cpf.']='.w:netrw_fpl)
+"   call Decho("fpl= [winwidth=".winwidth(0)."]/[b:netrw_cpf=".b:netrw_cpf.']='.w:netrw_fpl)
 
    " make wide display
    exe 'silent keepjumps '.w:netrw_bannercnt.',$s/^.*$/\=escape(printf("%-'.b:netrw_cpf.'s",submatch(0)),"\\")/'
+   call histdel("/",-1)
    let fpc         = (line("$") - w:netrw_bannercnt + w:netrw_fpl)/w:netrw_fpl
    let newcolstart = w:netrw_bannercnt + fpc
    let newcolend   = newcolstart + fpc - 1
@@ -5706,6 +5917,7 @@
    endwhile
    silent! let @*= keepregstar
    exe "silent keepjumps ".w:netrw_bannercnt.',$s/\s\+$//e'
+   call histdel("/",-1)
    setlocal noma nomod ro
 "   call Dret("NetrwWideListing")
   endif
@@ -5733,7 +5945,7 @@
   endif
 
   " save current directory on directory history list
-  call s:NetrwBookmarkDir(3,b:netrw_curdir)
+  call s:NetrwBookHistHandler(3,b:netrw_curdir)
 
   " Set up the banner {{{3
 "  call Decho("set up banner")
@@ -5844,8 +6056,8 @@
      endif
      " remove priority pattern prefix
 "     call Decho("remove priority pattern prefix")
-     let sepchr= "\<Char-0xff>"
-     exe 'silent keepjumps '.w:netrw_bannercnt.',$s/^\d\{3}'.sepchr.'//e'
+     exe 'silent keepjumps '.w:netrw_bannercnt.',$s/^\d\{3}'.g:netrw_sepchr.'//e'
+     call histdel("/",-1)
 
     elseif a:islocal
      if w:netrw_bannercnt < line("$")
@@ -5857,13 +6069,17 @@
 "       call Decho('exe silent keepjumps '.w:netrw_bannercnt.',$sort!')
        exe 'silent keepjumps '.w:netrw_bannercnt.',$sort!'.' '.g:netrw_sort_options
       endif
-     endif
      exe 'silent keepjumps '.w:netrw_bannercnt.',$s/^\d\{-}\///e'
+     call histdel("/",-1)
+     endif
     endif
 
    elseif g:netrw_sort_direction =~ 'r'
 "    call Decho('reverse the sorted listing')
-    exe 'silent keepjumps '.w:netrw_bannercnt.'g/^/m '.w:netrw_bannercnt
+    if w:netrw_bannercnt < line('$')
+     exe 'silent keepjumps '.w:netrw_bannercnt.',$g/^/m '.w:netrw_bannercnt
+     call histdel("/",-1)
+    endif
    endif
   endif
 
@@ -6006,8 +6222,10 @@
     " cleanup
     if g:netrw_ftp_browse_reject != ""
      exe "silent! g/".g:netrw_ftp_browse_reject."/keepjumps d"
+     call histdel("/",-1)
     endif
     silent! keepjumps %s/\r$//e
+    call histdel("/",-1)
 
     " if there's no ../ listed, then put ./ and ../ in
     let line1= line(".")
@@ -6025,11 +6243,15 @@
     if search('^\d\{2}-\d\{2}-\d\{2}\s','n') " M$ ftp site cleanup
 "     call Decho("M$ ftp cleanup")
      exe 'silent! keepjumps '.w:netrw_bannercnt.',$s/^\d\{2}-\d\{2}-\d\{2}\s\+\d\+:\d\+[AaPp][Mm]\s\+\%(<DIR>\|\d\+\)\s\+//'
+     call histdel("/",-1)
     else " normal ftp cleanup
 "     call Decho("normal ftp cleanup")
      exe 'silent! keepjumps '.w:netrw_bannercnt.',$s/^\(\%(\S\+\s\+\)\{7}\S\+\)\s\+\(\S.*\)$/\2/e'
      exe "silent! keepjumps ".w:netrw_bannercnt.',$g/ -> /s# -> .*/$#/#e'
      exe "silent! keepjumps ".w:netrw_bannercnt.',$g/ -> /s# -> .*$#/#e'
+     call histdel("/",-1)
+     call histdel("/",-1)
+     call histdel("/",-1)
     endif
    endif
 
@@ -6045,8 +6267,12 @@
     g/^Listing directory/d
     g/^d[-rwx][-rwx][-rwx]/s+$+/+e
     silent g/^l[-rwx][-rwx][-rwx]/s+$+@+e
+    call histdel("/",-1)
+    call histdel("/",-1)
+    call histdel("/",-1)
     if g:netrw_liststyle != s:LONGLIST
      g/^[dlsp-][-rwx][-rwx][-rwx]/s/^.*\s\(\S\+\)$/\1/e
+     call histdel("/",-1)
     endif
    else
     if s:path == ""
@@ -6063,6 +6289,7 @@
    if g:netrw_ftp_browse_reject != ""
 "    call Decho("(cleanup) exe silent! g/".g:netrw_ssh_browse_reject."/keepjumps d")
     exe "silent! g/".g:netrw_ssh_browse_reject."/keepjumps d"
+    call histdel("/",-1)
    endif
   endif
 
@@ -6099,6 +6326,9 @@
     exe 'silent keepjumps '.w:netrw_bannercnt.',$s/ -> .*$//e'
     exe 'silent keepjumps '.w:netrw_bannercnt.',$s/^\(\%(\S\+\s\+\)\{7}\S\+\)\s\+\(\S.*\)$/\2\t\1/e'
     exe 'silent keepjumps '.w:netrw_bannercnt
+    call histdel("/",-1)
+    call histdel("/",-1)
+    call histdel("/",-1)
    endif
   endif
 
@@ -6118,6 +6348,7 @@
   let all= 0
   if exists("s:netrwmarkfilelist_{bufnr('%')}")
    " remove all marked files
+"   call Decho("remove all marked files with bufnr#".bufnr("%"))
    for fname in s:netrwmarkfilelist_{bufnr("%")}
     let ok= s:NetrwRemoteRmFile(a:path,fname,all)
     if ok =~ 'q\%[uit]'
@@ -6126,12 +6357,11 @@
      let all= 1
     endif
    endfor
-   unlet s:netrwmarkfilelist_{bufnr("%")}
-   unlet s:netrwmarkfilemtch_{bufnr("%")}
-   2match none
+   call s:NetrwUnmarkList(bufnr("%"),b:netrw_curdir)
 
   else
    " remove files specified by range
+"   call Decho("remove files specified by range")
 
    " preparation for removing multiple files/directories
    let ctr= a:firstline
@@ -6353,13 +6583,17 @@
   " cleanup for Windows
   if has("win32") || has("win95") || has("win64") || has("win16")
    silent! keepjumps %s/\r$//e
+   call histdel("/",-1)
   endif
   if a:listcmd == "dir"
    " infer directory/link based on the file permission string
    silent! keepjumps g/d\%([-r][-w][-x]\)\{3}/s@$@/@
    silent! keepjumps g/l\%([-r][-w][-x]\)\{3}/s/$/@/
+   call histdel("/",-1)
+   call histdel("/",-1)
    if w:netrw_liststyle == s:THINLIST || w:netrw_liststyle == s:WIDELIST || w:netrw_liststyle == s:TREELIST
     exe "silent! keepjumps ".w:netrw_bannercnt.',$s/^\%(\S\+\s\+\)\{8}//e'
+    call histdel("/",-1)
    endif
   endif
 
@@ -6466,13 +6700,16 @@
   " The &ft == "netrw" test was installed because the BufEnter event
   " would hit when re-entering netrw windows, creating unexpected
   " refreshes (and would do so in the middle of NetrwSaveOptions(), too)
-"  call Decho("netrw#LocalBrowseCheck: isdir<".a:dirname.">=".isdirectory(a:dirname))
+"  call Decho("netrw#LocalBrowseCheck: isdir<".a:dirname.">=".isdirectory(a:dirname).((exists("s:treeforceredraw")? " treeforceredraw" : "")))
   if isdirectory(a:dirname)
 "   call Decho(" ft<".&ft."> b:netrw_curdir<".(exists("b:netrw_curdir")? b:netrw_curdir : " doesn't exist")."> dirname<".a:dirname.">"." line($)=".line("$"))
    if &ft != "netrw" || (exists("b:netrw_curdir") && b:netrw_curdir != a:dirname)
     silent! call s:NetrwBrowse(1,a:dirname)
    elseif &ft == "netrw" && line("$") == 1
     silent! call s:NetrwBrowse(1,a:dirname)
+   elseif exists("s:treeforceredraw")
+    unlet s:treeforceredraw
+    silent! call s:NetrwBrowse(1,a:dirname)
    endif
   endif
   " not a directory, ignore it
@@ -6492,7 +6729,7 @@
 
   " get the list of files contained in the current directory
   let dirname    = escape(b:netrw_curdir,g:netrw_glob_escape)
-  let dirnamelen = strlen(b:netrw_curdir)
+  let dirnamelen = s:Strlen(b:netrw_curdir)
   let filelist   = glob(s:ComposePath(dirname,"*"))
 "  call Decho("glob(dirname<".dirname."/*>)=".filelist)
   if filelist != ""
@@ -6608,7 +6845,7 @@
 
    if w:netrw_liststyle == s:LONGLIST
     let sz   = getfsize(filename)
-    let fsz  = strpart("               ",1,15-s:Strlen(sz)).sz
+    let fsz  = strpart("               ",1,15-strlen(sz)).sz
     let pfile= pfile."\t".fsz." ".strftime(g:netrw_timefmt,getftime(filename))
 "    call Decho("sz=".sz." fsz=".fsz)
    endif
@@ -6617,7 +6854,7 @@
     " sort by time (handles time up to 1 quintillion seconds, US)
 "    call Decho("getftime(".filename.")=".getftime(filename))
     let t  = getftime(filename)
-    let ft = strpart("000000000000000000",1,18-s:Strlen(t)).t
+    let ft = strpart("000000000000000000",1,18-strlen(t)).t
 "    call Decho("exe keepjumps put ='".ft.'/'.filename."'")
     let ftpfile= ft.'/'.pfile
     keepjumps silent! put=ftpfile
@@ -6626,7 +6863,7 @@
     " sort by size (handles file sizes up to 1 quintillion bytes, US)
 "    call Decho("getfsize(".filename.")=".getfsize(filename))
     let sz   = getfsize(filename)
-    let fsz  = strpart("000000000000000000",1,18-s:Strlen(sz)).sz
+    let fsz  = strpart("000000000000000000",1,18-strlen(sz)).sz
 "    call Decho("exe keepjumps put ='".fsz.'/'.filename."'")
     let fszpfile= fsz.'/'.pfile
     keepjumps silent! put =fszpfile
@@ -6640,6 +6877,7 @@
 
   " cleanup any windows mess at end-of-line
   silent! keepjumps %s/\r$//e
+  call histdel("/",-1)
   exe "setlocal ts=".g:netrw_maxfilenamelen
 "  call Decho("setlocal ts=".g:netrw_maxfilenamelen)
 
@@ -6659,9 +6897,17 @@
    return
   endif
   if !exists("w:netrw_bannercnt")
-"   call Dret("LocalBrowseShellCmdRefresh : don't refresh when focus not on netrw windwo")
+"   call Dret("LocalBrowseShellCmdRefresh : don't refresh when focus not on netrw window")
    return
   endif
+  if exists("s:locbrowseshellcmd")
+   if s:locbrowseshellcmd
+    let s:locbrowseshellcmd= 0
+"    call Dret("LocalBrowseShellCmdRefresh : NetrwBrowse itself caused the refresh")
+    return
+   endif
+   let s:locbrowseshellcmd= 0
+  endif
   let itab       = 1
   let buftablist = []
   while itab <= tabpagenr("$")
@@ -6874,9 +7120,7 @@
     endif
     call rename(oldname,newname)
    endfor
-   2match none
-   unlet s:netrwmarkfilelist_{bufnr("%")}
-   unlet s:netrwmarkfilemtch_{bufnr("%")}
+   call s:NetrwUnmarkList(bufnr("%"),b:netrw_curdir)
   
   else
 
@@ -6955,9 +7199,11 @@
    augroup AuNetrwShellCmd
     au!
     if (has("win32") || has("win95") || has("win64") || has("win16"))
+"     call Decho("autocmd: ShellCmdPost * call s:LocalBrowseShellCmdRefresh()")
      au ShellCmdPost			*	call s:LocalBrowseShellCmdRefresh()
     else
      au ShellCmdPost,FocusGained	*	call s:LocalBrowseShellCmdRefresh()
+"     call Decho("autocmd: ShellCmdPost,FocusGained * call s:LocalBrowseShellCmdRefresh()")
     endif
    augroup END
   endif
@@ -6984,7 +7230,7 @@
 "   0=note     = s:NOTE
 "   1=warning  = s:WARNING
 "   2=error    = s:ERROR
-"  Jul 08, 2008 : max errnum currently is 71
+"  Oct 12, 2008 : max errnum currently is 73
 fun! netrw#ErrorMsg(level,msg,errnum)
 "  call Dfunc("netrw#ErrorMsg(level=".a:level." msg<".a:msg."> errnum=".a:errnum.") g:netrw_use_errorwindow=".g:netrw_use_errorwindow)
 
@@ -7017,7 +7263,8 @@
    else
 "    call Decho("create a NetrwMessage buffer window")
     bo 1split
-    enew
+    call s:NetrwEnew()
+    call s:NetrwSafeOptions()
     setlocal bt=nofile
     file NetrwMessage
 "    call Decho("setlocal ma noro")
@@ -7130,7 +7377,7 @@
 
   if(has("amiga"))
 "   call Decho("amiga")
-   let ec = a:base[strlen(a:base)-1]
+   let ec = a:base[s:Strlen(a:base)-1]
    if ec != '/' && ec != ':'
     let ret = a:base . "/" . a:subdir
    else
@@ -7212,7 +7459,7 @@
    endif
 
    " let netrw#NetSource() know about the tmpfile
-   let s:netrw_tmpfile= tmpfile " used by netrw#NetSource()
+   let s:netrw_tmpfile= tmpfile " used by netrw#NetSource() and netrw#NetrwBrowseX()
 "   call Decho("tmpfile<".tmpfile."> s:netrw_tmpfile<".s:netrw_tmpfile.">")
 
    " o/s dependencies
@@ -7317,7 +7564,7 @@
    let result= delete(path)
   endif
   if result < 0
-   call Netrw#ErrorMsg(s:WARNING,"delete(".path.") failed!",71)
+   call netrw#ErrorMsg(s:WARNING,"delete(".path.") failed!",71)
   endif
 
 "  call Dret("s:NetrwDelete ".result)
@@ -7326,8 +7573,9 @@
 
 " ---------------------------------------------------------------------
 " s:NetrwEnew: opens a new buffer, passes netrw buffer variables through {{{2
-fun! s:NetrwEnew(curdir)
-"  call Dfunc("s:NetrwEnew(curdir<".a:curdir.">) buf#".bufnr("%")."<".bufname("%").">")
+fun! s:NetrwEnew(...)
+"  call Dfunc("s:NetrwEnew() a:0=".a:0)
+"  call Decho("curdir<".((a:0>0)? a:1 : "")."> buf#".bufnr("%")."<".bufname("%").">")
 
   " grab a function-local-variable copy of buffer variables
   if exists("b:netrw_bannercnt")      |let netrw_bannercnt       = b:netrw_bannercnt      |endif
@@ -7370,14 +7618,16 @@
   if exists("netrw_option")         |let b:netrw_option          = netrw_option         |endif
   if exists("netrw_prvdir")         |let b:netrw_prvdir          = netrw_prvdir         |endif
 
-  let b:netrw_curdir= a:curdir
-  if b:netrw_curdir =~ '/$'
-   if exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST
-    file NetrwTreeListing
-    nno <silent> <buffer> [	:silent call <SID>TreeListMove('[')<cr>
-    nno <silent> <buffer> ]	:silent call <SID>TreeListMove(']')<cr>
-   else
-    exe "silent! keepalt file ".fnameescape(b:netrw_curdir)
+  if a:0 > 0
+   let b:netrw_curdir= a:1
+   if b:netrw_curdir =~ '/$'
+    if exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST
+     file NetrwTreeListing
+     nno <silent> <buffer> [	:silent call <SID>TreeListMove('[')<cr>
+     nno <silent> <buffer> ]	:silent call <SID>TreeListMove(']')<cr>
+    else
+     exe "silent! keepalt file ".fnameescape(b:netrw_curdir)
+    endif
    endif
   endif
 
@@ -7511,13 +7761,16 @@
    call netrw#NetrwRestorePosn(s:nbcd_curpos_{bufnr('%')})
    unlet s:nbcd_curpos_{bufnr('%')}
   endif
+  if exists("s:explore_match")
+   exe "2match netrwMarkFile /".s:explore_match."/"
+  endif
 "  call Dret("s:NetrwRexplore")
 endfun
 
 " ---------------------------------------------------------------------
 " s:SaveBufVars: {{{2
 fun! s:SaveBufVars()
-"  call Dfunc("s:SaveBufVars()")
+"  call Dfunc("s:SaveBufVars() buf#".bufnr("%"))
 
   if exists("b:netrw_curdir")        |let s:netrw_curdir         = b:netrw_curdir        |endif
   if exists("b:netrw_lastfile")      |let s:netrw_lastfile       = b:netrw_lastfile      |endif
@@ -7532,7 +7785,7 @@
 " ---------------------------------------------------------------------
 " s:SaveWinVars: (used by Explore() and NetrwSplit()) {{{2
 fun! s:SaveWinVars()
-"  call Dfunc("s:SaveWinVars()")
+"  call Dfunc("s:SaveWinVars() win#".winnr())
   if exists("w:netrw_bannercnt")      |let s:bannercnt       = w:netrw_bannercnt      |endif
   if exists("w:netrw_col")            |let s:col             = w:netrw_col            |endif
   if exists("w:netrw_curdir")         |let s:curdir          = w:netrw_curdir         |endif
@@ -7562,7 +7815,7 @@
 "   variables are not inherited by the new window.  SetBufWinVars() and
 "   UseBufWinVars() get around that.
 fun! s:SetBufWinVars()
-"  call Dfunc("s:SetBufWinVars()")
+"  call Dfunc("s:SetBufWinVars() win#".winnr())
   if exists("w:netrw_liststyle")      |let b:netrw_liststyle      = w:netrw_liststyle      |endif
   if exists("w:netrw_bannercnt")      |let b:netrw_bannercnt      = w:netrw_bannercnt      |endif
   if exists("w:netrw_method")         |let b:netrw_method         = w:netrw_method         |endif
@@ -7584,8 +7837,7 @@
   if a:islocal
    exe 'com! Rexplore call s:NetrwRexplore(1,"'.escape(a:dirname,'"\').'")'
    if g:netrw_retmap
-    silent! unmap <2-leftmouse>
-    if !hasmapto("<Plug>NetrwReturn")
+    if !hasmapto("<Plug>NetrwReturn") && maparg("<2-leftmouse>","n") == ""
      nmap <unique> <silent> <2-leftmouse>	<Plug>NetrwReturn
     endif
     let dir = escape(a:dirname, s:netrw_map_escape)
@@ -7594,8 +7846,7 @@
   else
    exe 'com! Rexplore call s:NetrwRexplore(0,"'.escape(a:dirname,'"\').'")'
    if g:netrw_retmap
-    silent! unmap <2-leftmouse>
-    if !hasmapto("<Plug>NetrwReturn")
+    if !hasmapto("<Plug>NetrwReturn") && maparg("<2-leftmouse>","n") == ""
      nmap <unique> <silent> <2-leftmouse>	<Plug>NetrwReturn
     endif
     let dir = escape(a:dirname, s:netrw_map_escape)
@@ -7608,9 +7859,9 @@
 " ---------------------------------------------------------------------
 " s:Strlen: this function returns the length of a string, even if its {{{2
 "           using two-byte etc characters.
-"           Currently, its only used if g:Align_xstrlen is set to a
-"           nonzero value.  Solution from Nicolai Weibull, vim docs
-"           (:help strlen()), Tony Mechelynck, and my own invention.
+"           Solution from Nicolai Weibull, vim docs (:help strlen()), Tony Mechelynck,
+"           and a bit from me.
+"           if g:netrw_xstrlen is zero (default), then the builtin strlen() function is used.
 fun! s:Strlen(x)
 "  call Dfunc("s:Strlen(x<".a:x.">")
   if g:netrw_xstrlen == 1
@@ -7638,7 +7889,7 @@
 
   else
    " at least give a decent default
-   ret= strlen(a:x)
+   let ret= strlen(a:x)
   endif
 "  call Dret("s:Strlen ".ret)
   return ret
@@ -7737,12 +7988,14 @@
 endfun
 
 " ---------------------------------------------------------------------
-" s:WinPath: {{{2
+" s:WinPath: tries to insure that the path is windows-acceptable, whether cygwin is used or not {{{2
 fun! s:WinPath(path)
 "  call Dfunc("s:WinPath(path<".a:path.">)")
-  if !g:netrw_cygwin && (has("win32") || has("win95") || has("win64") || has("win16"))
+  if (!g:netrw_cygwin || &shell !~ '\%(\<bash\>\|\<zsh\>\)\%(\.exe\)\=$') && (has("win32") || has("win95") || has("win64") || has("win16"))
+   " remove cygdrive prefix, if present
+   let path = substitute(a:path,'/cygdrive/\(.\)','\1:','')
    " remove trailing slash (Win95)
-   let path = substitute(a:path, '\(\\\|/\)$', '', 'g')
+   let path = substitute(path, '\(\\\|/\)$', '', 'g')
    " remove escaped spaces
    let path = substitute(path, '\ ', ' ', 'g')
    " convert slashes to backslashes
diff -Nur runtime.patched/autoload/netrwFileHandlers.vim runtime/autoload/netrwFileHandlers.vim
--- runtime.patched/autoload/netrwFileHandlers.vim	2006-10-12 12:14:46.000000000 -0700
+++ runtime/autoload/netrwFileHandlers.vim	2008-11-06 08:04:45.000000000 -0800
@@ -1,9 +1,9 @@
 " netrwFileHandlers: contains various extension-based file handlers for
 "                    netrw's browsers' x command ("eXecute launcher")
 " Author:	Charles E. Campbell, Jr.
-" Date:		May 30, 2006
-" Version:	9
-" Copyright:    Copyright (C) 1999-2005 Charles E. Campbell, Jr. {{{1
+" Date:		Sep 30, 2008
+" Version:	10
+" Copyright:    Copyright (C) 1999-2008 Charles E. Campbell, Jr. {{{1
 "               Permission is hereby granted to use and distribute this code,
 "               with or without modifications, provided that this copyright
 "               notice is copied with it. Like anything else that's free,
@@ -20,9 +20,15 @@
 if exists("g:loaded_netrwFileHandlers") || &cp
  finish
 endif
+let g:loaded_netrwFileHandlers= "v10"
+if v:version < 702
+ echohl WarningMsg
+ echo "***warning*** this version of netrwFileHandlers needs vim 7.2"
+ echohl Normal
+ finish
+endif
 let s:keepcpo= &cpo
 set cpo&vim
-let g:loaded_netrwFileHandlers= "v9"
 
 " ---------------------------------------------------------------------
 " netrwFileHandlers#Invoke: {{{1
@@ -73,10 +79,10 @@
 
   if executable("mozilla")
 "   call Decho("executing !mozilla ".page)
-   exe "!mozilla ".g:netrw_shq.page.g:netrw_shq
+   exe "!mozilla ".shellescape(page,1)
   elseif executable("netscape")
 "   call Decho("executing !netscape ".page)
-   exe "!netscape ".g:netrw_shq..page.g:netrw_shq
+   exe "!netscape ".shellescape(page,1)
   else
 "   call Dret("s:NFH_html 0")
    return 0
@@ -96,10 +102,10 @@
 
   if executable("mozilla")
 "   call Decho("executing !mozilla ".page)
-   exe "!mozilla ".g:netrw_shq.page.g:netrw_shq
+   exe "!mozilla ".shellescape(page,1)
   elseif executable("netscape")
 "   call Decho("executing !netscape ".page)
-   exe "!netscape ".g:netrw_shq.page.g:netrw_shq
+   exe "!netscape ".shellescape(page,1)
   else
 "   call Dret("s:NFH_htm 0")
    return 0
@@ -115,10 +121,10 @@
 "  call Dfunc("s:NFH_jpg(jpgfile<".a:jpgfile.">)")
 
   if executable("gimp")
-   exe "silent! !gimp -s ".g:netrw_shq.a:jpgfile.g:netrw_shq
+   exe "silent! !gimp -s ".shellescape(a:jpgfile,1)
   elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
 "   call Decho("silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".escape(a:jpgfile," []|'"))
-   exe "!".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".g:netrw_shq.a:jpgfile.g:netrw_shq
+   exe "!".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".shellescape(a:jpgfile,1)
   else
 "   call Dret("s:NFH_jpg 0")
    return 0
@@ -134,9 +140,9 @@
 "  call Dfunc("s:NFH_gif(giffile<".a:giffile.">)")
 
   if executable("gimp")
-   exe "silent! !gimp -s ".g:netrw_shq.a:giffile.g:netrw_shq
+   exe "silent! !gimp -s ".shellescape(a:giffile,1)
   elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
-   exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".g:netrw_shq.a:giffile.g:netrw_shq
+   exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".shellescape(a:giffile,1)
   else
 "   call Dret("s:NFH_gif 0")
    return 0
@@ -152,9 +158,9 @@
 "  call Dfunc("s:NFH_png(pngfile<".a:pngfile.">)")
 
   if executable("gimp")
-   exe "silent! !gimp -s ".g:netrw_shq.a:pngfile.g:netrw_shq
+   exe "silent! !gimp -s ".shellescape(a:pngfile,1)
   elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
-   exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".g:netrw_shq.a:pngfile.g:netrw_shq
+   exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".shellescape(a:pngfile,1)
   else
 "   call Dret("s:NFH_png 0")
    return 0
@@ -170,9 +176,9 @@
 "  call Dfunc("s:NFH_pnm(pnmfile<".a:pnmfile.">)")
 
   if executable("gimp")
-   exe "silent! !gimp -s ".g:netrw_shq.a:pnmfile.g:netrw_shq
+   exe "silent! !gimp -s ".shellescape(a:pnmfile,1)
   elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
-   exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".g:netrw_shq.a:pnmfile.g:netrw_shq
+   exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".shellescape(a:pnmfile,1)
   else
 "   call Dret("s:NFH_pnm 0")
    return 0
@@ -190,7 +196,7 @@
   if executable("gimp")
    exe "silent! !gimp -s ".a:bmpfile
   elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
-   exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".g:netrw_shq.a:bmpfile.g:netrw_shq
+   exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".shellescape(a:bmpfile,1)
   else
 "   call Dret("s:NFH_bmp 0")
    return 0
@@ -205,9 +211,9 @@
 fun! s:NFH_pdf(pdf)
 "  call Dfunc("s:NFH_pdf(pdf<".a:pdf.">)")
   if executable("gs")
-   exe 'silent! !gs '.g:netrw_shq.a:pdf.g:netrw_shq
+   exe 'silent! !gs '.shellescape(a:pdf,1)
   elseif executable("pdftotext")
-   exe 'silent! pdftotext -nopgbrk '.g:netrw_shq.a:pdf.g:netrw_shq
+   exe 'silent! pdftotext -nopgbrk '.shellescape(a:pdf,1)
   else
 "  call Dret("s:NFH_pdf 0")
    return 0
@@ -223,7 +229,7 @@
 "  call Dfunc("s:NFH_doc(doc<".a:doc.">)")
 
   if executable("oowriter")
-   exe 'silent! !oowriter '.g:netrw_shq.a:doc.g:netrw_shq
+   exe 'silent! !oowriter '.shellescape(a:doc,1)
    redraw!
   else
 "  call Dret("s:NFH_doc 0")
@@ -240,7 +246,7 @@
 "  call Dfunc("s:NFH_sxw(sxw<".a:sxw.">)")
 
   if executable("oowriter")
-   exe 'silent! !oowriter '.g:netrw_shq.a:sxw.g:netrw_shq
+   exe 'silent! !oowriter '.shellescape(a:sxw,1)
    redraw!
   else
 "   call Dret("s:NFH_sxw 0")
@@ -257,7 +263,7 @@
 "  call Dfunc("s:NFH_xls(xls<".a:xls.">)")
 
   if executable("oocalc")
-   exe 'silent! !oocalc '.g:netrw_shq.a:xls.g:netrw_shq
+   exe 'silent! !oocalc '.shellescape(a:xls,1)
    redraw!
   else
 "  call Dret("s:NFH_xls 0")
@@ -274,15 +280,15 @@
 "  call Dfunc("s:NFH_ps(ps<".a:ps.">)")
   if executable("gs")
 "   call Decho("exe silent! !gs ".a:ps)
-   exe "silent! !gs ".g:netrw_shq.a:ps.g:netrw_shq
+   exe "silent! !gs ".shellescape(a:ps,1)
    redraw!
   elseif executable("ghostscript")
 "   call Decho("exe silent! !ghostscript ".a:ps)
-   exe "silent! !ghostscript ".g:netrw_shq.a:ps.g:netrw_shq
+   exe "silent! !ghostscript ".shellescape(a:ps,1)
    redraw!
   elseif executable("gswin32")
-"   call Decho("exe silent! !gswin32 ".g:netrw_shq.a:ps.g:netrw_shq)
-   exe "silent! !gswin32 ".g:netrw_shq.a:ps.g:netrw_shq
+"   call Decho("exe silent! !gswin32 ".shellescape(a:ps,1))
+   exe "silent! !gswin32 ".shellescape(a:ps,1)
    redraw!
   else
 "   call Dret("s:NFH_ps 0")
@@ -298,16 +304,16 @@
 fun! s:NFH_eps(eps)
 "  call Dfunc("s:NFH_eps()")
   if executable("gs")
-   exe "silent! !gs ".g:netrw_shq.a:eps.g:netrw_shq
+   exe "silent! !gs ".shellescape(a:eps,1)
    redraw!
   elseif executable("ghostscript")
-   exe "silent! !ghostscript ".g:netrw_shq.a:eps.g:netrw_shq
+   exe "silent! !ghostscript ".shellescape(a:eps,1)
    redraw!
   elseif executable("ghostscript")
-   exe "silent! !ghostscript ".g:netrw_shq.a:eps.g:netrw_shq
+   exe "silent! !ghostscript ".shellescape(a:eps,1)
    redraw!
   elseif executable("gswin32")
-   exe "silent! !gswin32 ".g:netrw_shq.a:eps.g:netrw_shq
+   exe "silent! !gswin32 ".shellescape(a:eps,1)
    redraw!
   else
 "   call Dret("s:NFH_eps 0")
diff -Nur runtime.patched/autoload/netrwSettings.vim runtime/autoload/netrwSettings.vim
--- runtime.patched/autoload/netrwSettings.vim	2008-07-02 13:39:22.000000000 -0700
+++ runtime/autoload/netrwSettings.vim	2009-01-14 12:15:12.000000000 -0800
@@ -1,7 +1,7 @@
 " netrwSettings.vim: makes netrw settings simpler
-" Date:		Jul 02, 2008
+" Date:		Sep 03, 2008
 " Maintainer:	Charles E Campbell, Jr <drchipNOSPAM at campbellfamily dot biz>
-" Version:	12
+" Version:	13
 " Copyright:    Copyright (C) 1999-2007 Charles E. Campbell, Jr. {{{1
 "               Permission is hereby granted to use and distribute this code,
 "               with or without modifications, provided that this copyright
@@ -19,7 +19,13 @@
 if exists("g:loaded_netrwSettings") || &cp
   finish
 endif
-let g:loaded_netrwSettings  = "v12"
+let g:loaded_netrwSettings = "v13"
+if v:version < 700
+ echohl WarningMsg
+ echo "***warning*** this version of netrwSettings needs vim 7.0"
+ echohl Normal
+ finish
+endif
 
 " ---------------------------------------------------------------------
 " NetrwSettings: {{{1
@@ -100,6 +106,7 @@
    put = 'let g:netrw_browsex_viewer    = (not defined)'
   endif
   put = 'let g:netrw_compress          = '.g:netrw_compress
+  put = 'let g:netrw_cursorline        = '.g:netrw_cursorline
   let decompressline= line("$")
   put ='let g:netrw_decompress...'
   put = 'let g:netrw_dirhistmax        = '.g:netrw_dirhistmax
@@ -138,6 +145,7 @@
   put = 'let g:netrw_special_syntax    = '.g:netrw_special_syntax
   put = 'let g:netrw_ssh_browse_reject = '.g:netrw_ssh_browse_reject
   put = 'let g:netrw_scpport           = '.g:netrw_scpport
+  put = 'let g:netrw_sepchr            = '.g:netrw_sepchr
   put = 'let g:netrw_sshport           = '.g:netrw_sshport
   put = 'let g:netrw_timefmt           = '.g:netrw_timefmt
   let tmpfileescline= line("$")
diff -Nur runtime.patched/autoload/spellfile.vim runtime/autoload/spellfile.vim
--- runtime.patched/autoload/spellfile.vim	2008-06-27 11:14:05.000000000 -0700
+++ runtime/autoload/spellfile.vim	2008-12-01 12:32:56.000000000 -0800
@@ -1,6 +1,6 @@
 " Vim script to download a missing spell file
 " Maintainer:	Bram Moolenaar <[email protected]>
-" Last Change:	2008 Jun 27
+" Last Change:	2008 Nov 29
 
 if !exists('g:spellfile_URL')
   " Prefer using http:// when netrw should be able to use it, since
@@ -39,19 +39,22 @@
   let s:donedict[a:lang . &enc] = 1
 
   " Find spell directories we can write in.
-  let dirlist = []
-  let dirchoices = '&Cancel'
-  for dir in split(globpath(&rtp, 'spell'), "\n")
-    if filewritable(dir) == 2
-      call add(dirlist, dir)
-      let dirchoices .= "\n&" . len(dirlist)
-    endif
-  endfor
+  let [dirlist, dirchoices] = spellfile#GetDirChoices()
   if len(dirlist) == 0
-    if &verbose
+    let dir_to_create = spellfile#WritableSpellDir()
+    if &verbose || dir_to_create != ''
       echomsg 'spellfile#LoadFile(): There is no writable spell directory.'
     endif
-    return
+    if dir_to_create != ''
+      if confirm("Shall I create " . dir_to_create, "&Yes\n&No", 2) == 1
+	" After creating the directory it should show up in the list.
+	call mkdir(dir_to_create, "p")
+	let [dirlist, dirchoices] = spellfile#GetDirChoices()
+      endif
+    endif
+    if len(dirlist) == 0
+      return
+    endif
   endif
 
   let msg = 'Cannot find spell file for "' . a:lang . '" in ' . &enc
@@ -177,3 +180,29 @@
     unlet g:netrw_use_errorwindow
   endif
 endfunc
+
+" Get a list of writable spell directories and choices for confirm().
+function! spellfile#GetDirChoices()
+  let dirlist = []
+  let dirchoices = '&Cancel'
+  for dir in split(globpath(&rtp, 'spell'), "\n")
+    if filewritable(dir) == 2
+      call add(dirlist, dir)
+      let dirchoices .= "\n&" . len(dirlist)
+    endif
+  endfor
+  return [dirlist, dirchoices]
+endfunc
+
+function! spellfile#WritableSpellDir()
+  if has("unix")
+    " For Unix always use the $HOME/.vim directory
+    return $HOME . "/.vim/spell"
+  endif
+  for dir in split(&rtp, ',')
+    if filewritable(dir) == 2
+      return dir . "/spell"
+    endif
+  endfor
+  return ''
+endfunction
diff -Nur runtime.patched/autoload/sqlcomplete.vim runtime/autoload/sqlcomplete.vim
--- runtime.patched/autoload/sqlcomplete.vim	2008-04-03 13:37:56.000000000 -0700
+++ runtime/autoload/sqlcomplete.vim	2009-10-08 14:19:32.000000000 -0700
@@ -1,13 +1,19 @@
 " Vim OMNI completion script for SQL
 " Language:    SQL
-" Maintainer:  David Fishburn <[email protected]>
-" Version:     6.0
-" Last Change: Thu 03 Apr 2008 10:37:54 PM Eastern Daylight Time
+" Maintainer:  David Fishburn <dfishburn dot vim at gmail dot com>
+" Version:     7.0
+" Last Change: 2009 Jan 04
 " Usage:       For detailed help
 "              ":help sql.txt" 
 "              or ":help ft-sql-omni" 
 "              or read $VIMRUNTIME/doc/sql.txt
 
+" History
+" Version 7.0
+"     Better handling of object names
+" Version 6.0
+"     Supports object names with spaces "my table name"
+"
 " Set completion with CTRL-X CTRL-O to autoloaded function.
 " This check is in place in case this script is
 " sourced directly instead of using the autoload feature. 
@@ -22,7 +28,7 @@
 if exists('g:loaded_sql_completion')
     finish 
 endif
-let g:loaded_sql_completion = 50
+let g:loaded_sql_completion = 70
 
 " Maintains filename of dictionary
 let s:sql_file_table        = ""
@@ -106,10 +112,23 @@
             let begindot = 1
         endif
         while start > 0
-            if line[start - 1] =~ '\(\w\|\s\+\)'
+            " Additional code was required to handle objects which 
+            " can contain spaces like "my table name".
+            if line[start - 1] !~ '\(\w\|\.\)'
+                " If the previous character is not a period or word character
+                break
+            " elseif line[start - 1] =~ '\(\w\|\s\+\)'
+            "     let start -= 1
+            elseif line[start - 1] =~ '\w'
+                " If the previous character is word character continue back
                 let start -= 1
             elseif line[start - 1] =~ '\.' && 
                         \ compl_type =~ 'column\|table\|view\|procedure'
+                " If the previous character is a period and we are completing
+                " an object which can be specified with a period like this:
+                "     table_name.column_name
+                "     owner_name.table_name
+
                 " If lastword has already been set for column completion
                 " break from the loop, since we do not also want to pickup
                 " a table name if it was also supplied.
@@ -184,9 +203,10 @@
         endif
 
         let compl_type_uc = substitute(compl_type, '\w\+', '\u&', '')
-        if s:sql_file_{compl_type} == ""
-            let s:sql_file_{compl_type} = DB_getDictionaryName(compl_type_uc)
-        endif
+        " Same call below, no need to do it twice
+        " if s:sql_file_{compl_type} == ""
+        "     let s:sql_file_{compl_type} = DB_getDictionaryName(compl_type_uc)
+        " endif
         let s:sql_file_{compl_type} = DB_getDictionaryName(compl_type_uc)
         if s:sql_file_{compl_type} != ""
             if filereadable(s:sql_file_{compl_type})
@@ -312,9 +332,16 @@
     endif
 
     if base != ''
-        " Filter the list based on the first few characters the user
-        " entered
-        let expr = 'v:val '.(g:omni_sql_ignorecase==1?'=~?':'=~#').' "\\(^'.base.'\\|\\([^.]*\\)\\?'.base.'\\)"'
+        " Filter the list based on the first few characters the user entered.
+        " Check if the text matches at the beginning 
+        " or 
+        " Match to a owner.table or alias.column type match
+        " or
+        " Handle names with spaces "my table name"
+        let expr = 'v:val '.(g:omni_sql_ignorecase==1?'=~?':'=~#').' "\\(^'.base.'\\|^\\(\\w\\+\\.\\)\\?'.base.'\\)"'
+        " let expr = 'v:val '.(g:omni_sql_ignorecase==1?'=~?':'=~#').' "\\(^'.base.'\\)"'
+        " let expr = 'v:val '.(g:omni_sql_ignorecase==1?'=~?':'=~#').' "\\(^'.base.'\\|\\(\\.\\)\\?'.base.'\\)"'
+        " let expr = 'v:val '.(g:omni_sql_ignorecase==1?'=~?':'=~#').' "\\(^'.base.'\\|\\([^.]*\\)\\?'.base.'\\)"'
         let compl_list = filter(deepcopy(compl_list), expr)
     endif
 
diff -Nur runtime.patched/compiler/gcc.vim runtime/compiler/gcc.vim
--- runtime.patched/compiler/gcc.vim	2008-03-12 15:04:38.000000000 -0700
+++ runtime/compiler/gcc.vim	2009-05-05 11:29:38.000000000 -0700
@@ -1,7 +1,7 @@
 " Vim compiler file
 " Compiler:         GNU C Compiler
 " Maintainer:       Nikolai Weibull <[email protected]>
-" Latest Revision:  2006-12-20
+" Latest Revision:  2009-05-01
 
 if exists("current_compiler")
   finish
@@ -12,10 +12,13 @@
 set cpo-=C
 
 CompilerSet errorformat=
+      \%*[^\"]\"%f\"%*\\D%l:%c:\ %m,
       \%*[^\"]\"%f\"%*\\D%l:\ %m,
+      \\"%f\"%*\\D%l:%c:\ %m,
       \\"%f\"%*\\D%l:\ %m,
       \%-G%f:%l:\ %trror:\ (Each\ undeclared\ identifier\ is\ reported\ only\ once,
       \%-G%f:%l:\ %trror:\ for\ each\ function\ it\ appears\ in.),
+      \%f:%l:%c:\ %m,
       \%f:%l:\ %m,
       \\"%f\"\\,\ line\ %l%*\\D%c%*[^\ ]\ %m,
       \10/03/30*\\a[%*\\d]:\ Entering\ directory\ `%f',
diff -Nur runtime.patched/compiler/jikes.vim runtime/compiler/jikes.vim
--- runtime.patched/compiler/jikes.vim	2004-06-07 07:32:36.000000000 -0700
+++ runtime/compiler/jikes.vim	2009-01-28 08:23:44.000000000 -0800
@@ -1,8 +1,8 @@
 " Vim Compiler File
 " Compiler:	Jikes
 " Maintainer:	Dan Sharp <dwsharp at hotmail dot com>
-" Last Change:	2004 Mar 27
-" URL:		http://mywebpage.netscape.com/sharppeople/vim/compiler
+" Last Change:	20 Jan 2009
+" URL:		http://dwsharp.users.sourceforge.net/vim/compiler
 
 if exists("current_compiler")
   finish
diff -Nur runtime.patched/doc/autocmd.txt runtime/doc/autocmd.txt
--- runtime.patched/doc/autocmd.txt	2009-11-20 13:52:20.896416404 -0800
+++ runtime/doc/autocmd.txt	2009-10-08 14:17:02.000000000 -0700
@@ -1,4 +1,4 @@
-*autocmd.txt*   For Vim version 7.2.  Last change: 2008 Jun 27
+*autocmd.txt*   For Vim version 7.2.  Last change: 2009 Oct 04
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -59,10 +59,10 @@
 :au[tocmd] [group] {event} {pat} [nested] {cmd}
 			Add {cmd} to the list of commands that Vim will
 			execute automatically on {event} for a file matching
-			{pat}.  Vim always adds the {cmd} after existing
-			autocommands, so that the autocommands execute in the
-			order in which they were given.  See |autocmd-nested|
-			for [nested].
+			{pat} |autocmd-patterns|.
+			Vim always adds the {cmd} after existing autocommands,
+			so that the autocommands execute in the order in which
+			they were given.  See |autocmd-nested| for [nested].
 
 The special pattern <buffer> or <buffer=N> defines a buffer-local autocommand.
 See |autocmd-buflocal|.
@@ -551,7 +551,7 @@
 				buffer that was changed "<afile>".
 				NOTE: The commands must not change the current
 				buffer, jump to another buffer or delete a
-				buffer.  *E246*
+				buffer.  *E246* *E811*
 				NOTE: This event never nests, to avoid an
 				endless loop.  This means that while executing
 				commands for the FileChangedShell event no
@@ -835,9 +835,9 @@
 two ways:
 1. When there is no '/' in the pattern, Vim checks for a match against only
    the tail part of the file name (without its leading directory path).
-2. When there is a '/' in the pattern,  Vim checks for a match against the
-   both short file name (as you typed it) and the full file name (after
-   expanding it to a full path and resolving symbolic links).
+2. When there is a '/' in the pattern, Vim checks for a match against both the
+   short file name (as you typed it) and the full file name (after expanding
+   it to a full path and resolving symbolic links).
 
 The special pattern <buffer> or <buffer=N> is used for buffer-local
 autocommands |autocmd-buflocal|.  This pattern is not matched against the name
diff -Nur runtime.patched/doc/change.txt runtime/doc/change.txt
--- runtime.patched/doc/change.txt	2008-08-09 07:22:59.000000000 -0700
+++ runtime/doc/change.txt	2009-09-18 03:26:13.000000000 -0700
@@ -1,4 +1,4 @@
-*change.txt*    For Vim version 7.2.  Last change: 2008 Jul 24
+*change.txt*    For Vim version 7.2.  Last change: 2009 Sep 15
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -506,9 +506,9 @@
 			{filter}.  Vim replaces the optional bangs with the
 			latest given command and appends the optional [arg].
 			Vim saves the output of the filter command in a
-			temporary file and then reads the file into the
-			buffer.  Vim uses the 'shellredir' option to redirect
-			the filter output to the temporary file.
+			temporary file and then reads the file into the buffer
+			|tempfile|.  Vim uses the 'shellredir' option to
+			redirect the filter output to the temporary file.
 			However, if the 'shelltemp' option is off then pipes
 			are used when possible (on Unix).
 			When the 'R' flag is included in 'cpoptions' marks in
@@ -524,7 +524,9 @@
 			option is empty (this is the default), use the
 			internal formatting function |C-indenting|.  But when
 			'indentexpr' is not empty, it will be used instead
-			|indent-expression|.
+			|indent-expression|.  When Vim was compiled without
+			internal formatting then the "indent" program is used
+			as a last resort.
 
 							*==*
 ==			Filter [count] lines like with ={motion}.
@@ -534,6 +536,22 @@
 			{not in Vi}
 
 
+						*tempfile* *setuid*
+Vim uses temporary files for filtering, generating diffs and also for
+tempname().  For Unix, the file will be in a private directory (only
+accessible by the current user) to avoid security problems (e.g., a symlink
+attack or other people reading your file).  When Vim exits the directory and
+all files in it are deleted.  When Vim has the setuid bit set this may cause
+problems, the temp file is owned by the setuid user but the filter command
+probably runs as the original user.
+On MS-DOS and OS/2 the first of these directories that works is used: $TMP,
+$TEMP, c:\TMP, c:\TEMP.
+For Unix the list of directories is: $TMPDIR, /tmp, current-dir, $HOME.
+For MS-Windows the GetTempFileName() system function is used.
+For other systems the tmpnam() library function is used.
+
+
+
 4.2 Substitute						*:substitute*
 							*:s* *:su*
 :[range]s[ubstitute]/{pattern}/{string}/[flags] [count]
@@ -994,6 +1012,11 @@
 and whether the corners are on an existing character.  (Implementation detail:
 it actually works by first putting the register after the selection and then
 deleting the selection.)
+The previously selected text is put in the unnamed register.  If you want to
+put the same text into a Visual selection several times you need to use
+another register.  E.g., yank the text to copy, Visually select the text to
+replace and use "0p .  You can repeat this as many times as you like, the
+unnamed register will be changed each time.
 
 							*blockwise-register*
 If you use a blockwise Visual mode command to get the text into the register,
@@ -1031,8 +1054,10 @@
 Vim fills this register with text deleted with the "d", "c", "s", "x" commands
 or copied with the yank "y" command, regardless of whether or not a specific
 register was used (e.g.  "xdd).  This is like the unnamed register is pointing
-to the last used register.  An exception is the '_' register: "_dd does not
-store the deleted text in any register.
+to the last used register.  Thus when appending using an uppercase register
+name, the unnamed register contains the same text as the named register.
+An exception is the '_' register: "_dd does not store the deleted text in any
+register.
 Vim uses the contents of the unnamed register for any put command (p or P)
 which does not specify a register.  Additionally you can access it with the
 name '"'.  This means you have to type two double quotes.  Writing to the ""
@@ -1098,11 +1123,16 @@
 history for expressions.  When you end the command-line by typing <CR>, Vim
 computes the result of the expression.  If you end it with <Esc>, Vim abandons
 the expression.  If you do not enter an expression, Vim uses the previous
-expression (like with the "/" command).  The expression must evaluate to a
-string.  If the result is a number it's turned into a string.  A List,
-Dictionary or FuncRef results in an error message (use string() to convert).
-If the "= register is used for the "p" command, the string is split up at <NL>
-characters.  If the string ends in a <NL>, it is regarded as a linewise
+expression (like with the "/" command).
+
+The expression must evaluate to a String.  A Number is always automatically
+converted to a String.  For the "p" and ":put" command, if the result is a
+Float it's converted into a String.  If the result is a List each element is
+turned into a String and used as a line.  A Dictionary or FuncRef results in
+an error message (use string() to convert).
+
+If the "= register is used for the "p" command, the String is split up at <NL>
+characters.  If the String ends in a <NL>, it is regarded as a linewise
 register.  {not in Vi}
 
 7. Selection and drop registers "*, "+ and "~ 
diff -Nur runtime.patched/doc/cmdline.txt runtime/doc/cmdline.txt
--- runtime.patched/doc/cmdline.txt	2009-11-20 13:52:20.964642330 -0800
+++ runtime/doc/cmdline.txt	2009-10-28 13:57:15.000000000 -0700
@@ -1,4 +1,4 @@
-*cmdline.txt*   For Vim version 7.2.  Last change: 2008 Sep 18
+*cmdline.txt*   For Vim version 7.2.  Last change: 2009 Oct 25
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -118,8 +118,6 @@
 		preferred behavior, add the following to your .vimrc: >
 			:cnoremap <C-U> <C-E><C-U>
 <
-		Note: if the command-line becomes empty with one of the
-		delete commands, Command-line mode is quit.
 							*c_<Insert>*
 <Insert>	Toggle between insert and overstrike.  {not in Vi}
 
@@ -485,14 +483,14 @@
 
 The Ex commands have a few specialties:
 
-							*:quote*
+							*:quote* *:comment*
 '"' at the start of a line causes the whole line to be ignored.  '"'
 after a command causes the rest of the line to be ignored.  This can be used
 to add comments.  Example: >
 	:set ai		"set 'autoindent' option
 It is not possible to add a comment to a shell command ":!cmd" or to the
-":map" command and friends, because they see the '"' as part of their
-argument.
+":map" command and a few others, because they see the '"' as part of their
+argument.  This is mentioned where the command is explained.
 
 							*:bar* *:\bar*
 '|' can be used to separate commands, so you can give multiple commands in one
@@ -744,8 +742,8 @@
 function expand() |expand()|.
 	%	Is replaced with the current file name.		  *:_%* *c_%*
 	#	Is replaced with the alternate file name.	  *:_#* *c_#*
-	#n	(where n is a number) is replaced with the file name of
-		buffer n.  "#0" is the same as "#".
+	#n	(where n is a number) is replaced with		  *:_#0* *:_#n*
+		the file name of buffer n.  "#0" is the same as "#".     *c_#n*
 	##	Is replaced with all names in the argument list	  *:_##* *c_##*
 		concatenated, separated by spaces.  Each space in a name
 		is preceded with a backslash.
@@ -949,7 +947,7 @@
 
 ==============================================================================
 6. Command-line window				*cmdline-window* *cmdwin*
-
+							*command-line-window*
 In the command-line window the command line can be edited just like editing
 text in any window.  It is a special kind of window, because you cannot leave
 it in a normal way.
@@ -957,12 +955,12 @@
 feature}
 
 
-OPEN
+OPEN						*c_CTRL-F* *q:* *q/* *q?*
 
 There are two ways to open the command-line window:
 1. From Command-line mode, use the key specified with the 'cedit' option.
    The default is CTRL-F when 'compatible' is not set.
-2. From Normal mode, use the "q:", "q/" or "q?" command.  *q:* *q/* *q?*
+2. From Normal mode, use the "q:", "q/" or "q?" command.
    This starts editing an Ex command-line ("q:") or search string ("q/" or
    "q?").  Note that this is not possible while recording is in progress (the
    "q" stops recording then).
@@ -992,7 +990,8 @@
 The command-line window is not a normal window.  It is not possible to move to
 another window or edit another buffer.  All commands that would do this are
 disabled in the command-line window.  Of course it _is_ possible to execute
-any command that you entered in the command-line window.
+any command that you entered in the command-line window.  Other text edits are
+discarded when closing the window.
 
 
 CLOSE							*E199*
@@ -1027,7 +1026,7 @@
 
 The command-line window cannot be used:
 - when there already is a command-line window (no nesting)
-- for entering a encryption key or when using inputsecret()
+- for entering an encryption key or when using inputsecret()
 - when Vim was not compiled with the +vertsplit feature
 
 Some options are set when the command-line window is opened:
diff -Nur runtime.patched/doc/debug.txt runtime/doc/debug.txt
--- runtime.patched/doc/debug.txt	2008-08-09 07:22:59.000000000 -0700
+++ runtime/doc/debug.txt	2009-07-26 04:41:19.000000000 -0700
@@ -1,4 +1,4 @@
-*debug.txt*     For Vim version 7.2.  Last change: 2006 May 01
+*debug.txt*     For Vim version 7.2.  Last change: 2009 Jul 22
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -10,7 +10,8 @@
 For debugging Vim scripts, functions, etc. see |debug-scripts|
 
 1. Location of a crash, using gcc and gdb	|debug-gcc|
-2. Windows Bug Reporting			|debug-win32|
+2. Locating memory leaks			|debug-leaks|
+3. Windows Bug Reporting			|debug-win32|
 
 ==============================================================================
 
@@ -38,7 +39,25 @@
 
 ==============================================================================
 
-2. Windows Bug Reporting				*debug-win32*
+2. Locating memory leaks				*debug-leaks*
+
+If you suspect Vim is leaking memory and you are using Linux, the valgrind
+tool is very useful to pinpoint memory leaks.
+
+First of all, build Vim with EXITFREE defined.  Search for this in MAKEFILE
+and uncomment the line.
+
+Use this command to start Vim:				*valgrind*
+>
+	valgrind --log-file=valgrind.log ./vim
+
+Note: Vim will run much slower.  If your .vimrc is big or you have several
+plugins you need to be patient for startup, or run with the "-u NONE"
+argument.
+
+==============================================================================
+
+3. Windows Bug Reporting				*debug-win32*
 
 If the Windows version of Vim crashes in a reproducible manner, you can take
 some steps to provide a useful bug report.
diff -Nur runtime.patched/doc/develop.txt runtime/doc/develop.txt
--- runtime.patched/doc/develop.txt	2008-08-09 07:22:59.000000000 -0700
+++ runtime/doc/develop.txt	2009-01-14 12:15:17.000000000 -0800
@@ -1,4 +1,4 @@
-*develop.txt*   For Vim version 7.2.  Last change: 2007 May 11
+*develop.txt*   For Vim version 7.2.  Last change: 2008 Dec 17
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -64,7 +64,7 @@
   hard time finding and remembering them.  Keep in mind that more commands and
   options will be added later.
 - A feature that people do not know about is a useless feature.  Don't add
-  obscure features, or at least add hints in documentation that they exists.
+  obscure features, or at least add hints in documentation that they exist.
 - Minimize using CTRL and other modifiers, they are more difficult to type.
 - There are many first-time and inexperienced Vim users.  Make it easy for
   them to start using Vim and learn more over time.
@@ -323,7 +323,7 @@
 OK:	var = a * 5;
 
 In general: Use empty lines to group lines of code together.  Put a comment
-just above the group of lines.  This makes it more easy to quickly see what is
+just above the group of lines.  This makes it easier to quickly see what is
 being done.
 
 OK:	/* Prepare for building the table. */
diff -Nur runtime.patched/doc/diff.txt runtime/doc/diff.txt
--- runtime.patched/doc/diff.txt	2008-08-09 07:22:59.000000000 -0700
+++ runtime/doc/diff.txt	2009-09-18 03:26:13.000000000 -0700
@@ -1,4 +1,4 @@
-*diff.txt*      For Vim version 7.2.  Last change: 2008 Jul 21
+*diff.txt*      For Vim version 7.2.  Last change: 2009 Sep 15
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -64,6 +64,9 @@
 
 These options are set local to the window.  When editing another file they are
 reset to the global value.
+The options can still be overruled from a modeline when re-editing the file.
+However, 'foldmethod' and 'wrap' won't be set from a modeline when 'diff' is
+set.
 
 The differences shown are actually the differences in the buffer.  Thus if you
 make changes after loading a file, these will be included in the displayed
@@ -91,7 +94,7 @@
 :diffthis	Make the current window part of the diff windows.  This sets
 		the options like for "vimdiff".
 
-:diffpatch {patchfile}					*:diffp* *:diffpatch*
+:diffpatch {patchfile}				 *E816* *:diffp* *:diffpatch*
 		Use the current buffer, patch it with the diff found in
 		{patchfile} and open a buffer on the result.  The options are
 		set as for "vimdiff".
@@ -121,7 +124,8 @@
 							*:diffo* *:diffoff*
 :diffoff	Switch off diff mode for the current window.
 
-:diffoff!	Switch off diff mode for all windows in the current tab page.
+:diffoff!	Switch off diff mode for the current window and in all windows
+		in the current tab page where 'diff' is set.
 
 The ":diffoff" command resets the relevant options to their default value.
 This may be different from what the values were before diff mode was started,
@@ -237,7 +241,8 @@
 							*:diffg* *:diffget*
 :[range]diffg[et] [bufspec]
 		Modify the current buffer to undo difference with another
-		buffer.  If [bufspec] is given, that buffer is used.
+		buffer.  If [bufspec] is given, that buffer is used.  If
+		[bufspec] refers to the current buffer then nothing happens.
 		Otherwise this only works if there is one other buffer in diff
 		mode.
 		See below for [range].
@@ -323,7 +328,7 @@
 The "4d4" item deletes the line "111".
 The '7c7" item replaces the line "GGG" with "ggg".
 
-When 'diffexpr' is not empty, Vim evaluates to obtain a diff file in the
+When 'diffexpr' is not empty, Vim evaluates it to obtain a diff file in the
 format mentioned.  These variables are set to the file names used:
 
 	v:fname_in		original file
@@ -353,7 +358,7 @@
 binaries isn't useful.  The "--binary" argument makes the files read in binary
 mode, so that a CTRL-Z doesn't end the text on DOS.
 
-						*E97*
+						*E810* *E97*
 Vim will do a test if the diff output looks alright.  If it doesn't, you will
 get an error message.  Possible causes:
 -  The "diff" program cannot be executed.
diff -Nur runtime.patched/doc/editing.txt runtime/doc/editing.txt
--- runtime.patched/doc/editing.txt	2008-08-09 07:22:59.000000000 -0700
+++ runtime/doc/editing.txt	2009-06-13 05:40:52.000000000 -0700
@@ -1,4 +1,4 @@
-*editing.txt*   For Vim version 7.2.  Last change: 2008 Aug 09
+*editing.txt*   For Vim version 7.2.  Last change: 2009 Jun 10
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -270,7 +270,7 @@
 			Normal mode.  Otherwise same as |:edit|.
 
 							*:vie* *:view*
-:vie[w] [++opt] [+cmd] file
+:vie[w][!] [++opt] [+cmd] file
 			When used in Ex mode: Leave |Ex mode|, go back to
 			Normal mode.  Otherwise same as |:edit|, but set
 			'readonly' option for this buffer.  {not in Vi}
@@ -462,7 +462,10 @@
     ++bad=drop   Remove the bad characters.
 
 The default is like "++bad=?": Replace each bad character with a question
-mark.
+mark.  In some places an inverted question mark is used (0xBF).
+
+Note that not all commands use the ++bad argument, even though they do not
+give an error when you add it.  E.g. |:write|.
 
 Note that when reading, the 'fileformat' and 'fileencoding' options will be
 set to the used format.  When writing this doesn't happen, thus a next write
@@ -837,7 +840,7 @@
 Example: >
 	:args *.c
 	:argdo set ff=unix | update
-This sets the 'fileformat' option to "unix" and writes the file if is now
+This sets the 'fileformat' option to "unix" and writes the file if it is now
 changed.  This is done for all *.c files.
 
 Example: >
@@ -1456,6 +1459,17 @@
 			may be specified by name, number or with a pattern.
 
 
+							*E813* *E814*
+Vim will reload the buffer if you chose to.  If a window is visible that
+contains this buffer, the reloading will happen in the context of this window.
+Otherwise a special window is used, so that most autocommands will work.  You
+can't close this window.  A few other restrictions apply.  Best is to make
+sure nothing happens outside of the current buffer.  E.g., setting
+window-local options may end up in the wrong window.  Splitting the window,
+doing something there and closing it should be OK (if there are no side
+effects from other autocommands).  Closing unrelated windows and buffers will
+get you into trouble.
+
 Before writing a file the timestamp is checked.  If it has changed, Vim will
 ask if you really want to overwrite the file:
 
diff -Nur runtime.patched/doc/eval.txt runtime/doc/eval.txt
--- runtime.patched/doc/eval.txt	2009-11-20 13:52:21.275029797 -0800
+++ runtime/doc/eval.txt	2009-10-08 14:17:02.000000000 -0700
@@ -1,4 +1,4 @@
-*eval.txt*	For Vim version 7.2.  Last change: 2008 Nov 27
+*eval.txt*	For Vim version 7.2.  Last change: 2009 Sep 30
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -853,7 +853,8 @@
 
 If expr8 is a Number or String this results in a String that contains the
 expr1'th single byte from expr8.  expr8 is used as a String, expr1 as a
-Number.  Note that this doesn't recognize multi-byte encodings.
+Number.  This doesn't recognize multi-byte encodings, see |byteidx()| for
+an alternative.
 
 Index zero gives the first character.  This is like it works in C.  Careful:
 text column numbers start with one!  Example, to get the character under the
@@ -878,8 +879,8 @@
 
 If expr8 is a Number or String this results in the substring with the bytes
 from expr1a to and including expr1b.  expr8 is used as a String, expr1a and
-expr1b are used as a Number.  Note that this doesn't recognize multi-byte
-encodings.
+expr1b are used as a Number.  This doesn't recognize multi-byte encodings, see
+|byteidx()| for computing the indexes.
 
 If expr1a is omitted zero is used.  If expr1b is omitted the length of the
 string minus one is used.
@@ -895,7 +896,8 @@
 	:let c = name[-2:-2]		" last but one byte of a string
 	:let s = line(".")[4:]		" from the fifth byte to the end
 	:let s = s[:-3]			" remove last two bytes
-
+<
+							*sublist* *slice*
 If expr8 is a |List| this results in a new |List| with the items indicated by
 the indexes expr1a and expr1b.	This works like with a String, as explained
 just above, except that indexes out of range cause an error.  Examples: >
@@ -1190,6 +1192,7 @@
 Thus not in:
 - other scripts sourced from this one
 - mappings
+- menus
 - etc.
 
 Script variables can be used to avoid conflicts with global variable names.
@@ -1280,7 +1283,8 @@
 		valid while evaluating the 'balloonexpr' option.
 
 					*v:char* *char-variable*
-v:char		Argument for evaluating 'formatexpr'.
+v:char		Argument for evaluating 'formatexpr' and used for the typed
+		character when using <expr> in an abbreviation |map-<expr>|.
 
 			*v:charconvert_from* *charconvert_from-variable*
 v:charconvert_from
@@ -1317,6 +1321,8 @@
 	:map _x :<C-U>echo "the count is " . v:count<CR>
 <		Note: The <C-U> is required to remove the line range that you
 		get when typing ':' after a count.
+		When there are two counts, as in "3d2w", they are multiplied,
+		just like what happens in the command, "d6w" for the example.
 		Also used for evaluating the 'formatexpr' option.
 		"count" also works, for backwards compatibility.
 
@@ -1677,9 +1683,9 @@
 changenr()			Number	current change number
 char2nr( {expr})		Number	ASCII value of first char in {expr}
 cindent( {lnum})		Number	C indent for line {lnum}
-clearmatches()			None	clear all matches
+clearmatches()			none	clear all matches
 col( {expr})			Number	column nr of cursor or mark
-complete({startcol}, {matches})	String	set Insert mode completion
+complete( {startcol}, {matches}) none	set Insert mode completion
 complete_add( {expr})		Number	add completion match
 complete_check()		Number	check for key typed during completion
 confirm( {msg} [, {choices} [, {default} [, {type}]]])
@@ -1704,7 +1710,7 @@
 eventhandler( )			Number	TRUE if inside an event handler
 executable( {expr})		Number	1 if executable {expr} exists
 exists( {expr})			Number	TRUE if {expr} exists
-extend({expr1}, {expr2} [, {expr3}])
+extend( {expr1}, {expr2} [, {expr3}])
 				List/Dict insert items of {expr2} into {expr1}
 expand( {expr} [, {flag}])	String	expand special keywords in {expr}
 feedkeys( {string} [, {mode}])	Number	add key sequence to typeahead buffer
@@ -1746,7 +1752,7 @@
 getftype( {fname})		String	description of type of file {fname}
 getline( {lnum})		String	line {lnum} of current buffer
 getline( {lnum}, {end})		List	lines {lnum} to {end} of current buffer
-getloclist({nr})		List	list of location list items
+getloclist( {nr})		List	list of location list items
 getmatches()			List	list of current matches
 getpid()			Number	process ID of Vim
 getpos( {expr})			List	position of cursor, mark, etc.
@@ -1815,9 +1821,9 @@
 				List	match and submatches of {pat} in {expr}
 matchstr( {expr}, {pat}[, {start}[, {count}]])
 				String	{count}'th match of {pat} in {expr}
-max({list})			Number	maximum value of items in {list}
-min({list})			Number	minimum value of items in {list}
-mkdir({name} [, {path} [, {prot}]])
+max( {list})			Number	maximum value of items in {list}
+min( {list})			Number	minimum value of items in {list}
+mkdir( {name} [, {path} [, {prot}]])
 				Number	create directory {name}
 mode( [expr])			String	current editing mode
 nextnonblank( {lnum})		Number	line nr of non-blank line >= {lnum}
@@ -1829,7 +1835,7 @@
 pumvisible()			Number	whether popup menu is visible
 range( {expr} [, {max} [, {stride}]])
 				List	items from {expr} to {max}
-readfile({fname} [, {binary} [, {max}]])
+readfile( {fname} [, {binary} [, {max}]])
 				List	get list of lines from file {fname}
 reltime( [{start} [, {end}]])	List	get time value
 reltimestr( {time})		String	turn time value into a String
@@ -1850,7 +1856,7 @@
 round( {expr})			Float	round off {expr}
 search( {pattern} [, {flags} [, {stopline} [, {timeout}]]])
 				Number	search for {pattern}
-searchdecl({name} [, {global} [, {thisblock}]])
+searchdecl( {name} [, {global} [, {thisblock}]])
 				Number	search for variable declaration
 searchpair( {start}, {middle}, {end} [, {flags} [, {skip} [...]]])
 				Number	search for other end of start/end pair
@@ -1867,7 +1873,7 @@
 setloclist( {nr}, {list}[, {action}])
 				Number	modify location list using {list}
 setmatches( {list})		Number	restore a list of matches
-setpos( {expr}, {list})		none	set the {expr} position to {list}
+setpos( {expr}, {list})		Number	set the {expr} position to {list}
 setqflist( {list}[, {action}])	Number	modify quickfix list using {list}
 setreg( {n}, {v}[, {opt}])	Number	set register to value and type
 settabwinvar( {tabnr}, {winnr}, {varname}, {val})    set {varname} in window
@@ -1905,7 +1911,7 @@
 synIDattr( {synID}, {what} [, {mode}])
 				String	attribute {what} of syntax ID {synID}
 synIDtrans( {synID})		Number	translated syntax ID of {synID}
-synstack({lnum}, {col})		List	stack of syntax IDs at {lnum} and {col}
+synstack( {lnum}, {col})	List	stack of syntax IDs at {lnum} and {col}
 system( {expr} [, {input}])	String	output of shell command/filter {expr}
 tabpagebuflist( [{arg}])	List	list of buffer numbers in tab page
 tabpagenr( [{arg}])		Number	number of current or last tab page
@@ -1929,10 +1935,10 @@
 winline()			Number	window line of the cursor
 winnr( [{expr}])		Number	number of current window
 winrestcmd()			String	returns command to restore window sizes
-winrestview({dict})		None	restore view of current window
+winrestview( {dict})		none	restore view of current window
 winsaveview()			Dict	save view of current window
 winwidth( {nr})			Number	width of window {nr}
-writefile({list}, {fname} [, {binary}])
+writefile( {list}, {fname} [, {binary}])
 				Number	write list of lines to file {fname}
 
 abs({expr})							*abs()*
@@ -2245,7 +2251,7 @@
 		{matches} must be a |List|.  Each |List| item is one match.
 		See |complete-items| for the kind of items that are possible.
 		Note that the after calling this function you need to avoid
-		inserting anything that would completion to stop.
+		inserting anything that would cause completion to stop.
 		The match can be selected with CTRL-N and CTRL-P as usual with
 		Insert mode completion.  The popup menu will appear if
 		specified, see |ins-completion-menu|.
@@ -2477,7 +2483,7 @@
 		Return the Number 1 if {expr} is empty, zero otherwise.
 		A |List| or |Dictionary| is empty when it does not have any
 		items.	A Number is empty when its value is zero.
-		For a long |List| this is much faster then comparing the
+		For a long |List| this is much faster than comparing the
 		length with zero.
 
 escape({string}, {chars})				*escape()*
@@ -3053,7 +3059,7 @@
 			128	Macintosh only: command
 		Only the modifiers that have not been included in the
 		character itself are obtained.	Thus Shift-a results in "A"
-		with no modifier.
+		without a modifier.
 
 getcmdline()						*getcmdline()*
 		Return the current command-line.  Only works when the command
@@ -3181,7 +3187,7 @@
 		window {nr}. When {nr} is zero the current window is used.
 		For a location list window, the displayed location list is
 		returned.  For an invalid window number {nr}, an empty list is
-		returned. Otherwise, same as getqflist().
+		returned. Otherwise, same as |getqflist()|.
 
 getmatches()						*getmatches()*
 		Returns a |List| with all matches previously defined by
@@ -3503,7 +3509,10 @@
 
 index({list}, {expr} [, {start} [, {ic}]])			*index()*
 		Return the lowest index in |List| {list} where the item has a
-		value equal to {expr}.
+		value equal to {expr}.  There is no automatic conversion, so
+		the String "4" is different from the Number 4.  And the number
+		4 is different from the Float 4.0.  The value of 'ignorecase'
+		is not used here, case always matters.
 		If {start} is given then start looking at the item with index
 		{start} (may be negative for an item relative to the end).
 		When {ic} is given and it is non-zero, ignore case.  Otherwise
@@ -3516,9 +3525,9 @@
 
 input({prompt} [, {text} [, {completion}]])		*input()*
 		The result is a String, which is whatever the user typed on
-		the command-line.  The parameter is either a prompt string, or
-		a blank string (for no prompt).  A '\n' can be used in the
-		prompt to start a new line.
+		the command-line.  The {prompt} argument is either a prompt
+		string, or a blank string (for no prompt).  A '\n' can be used
+		in the prompt to start a new line.
 		The highlighting set with |:echohl| is used for the prompt.
 		The input is entered just like a command-line, with the same
 		editing commands and mappings.	There is a separate history
@@ -3528,8 +3537,9 @@
 			:  echo "Cheers!"
 			:endif
 <
-		If the optional {text} is present and not empty, this is used
-		for the default reply, as if the user typed this.  Example: >
+		If the optional {text} argument is present and not empty, this
+		is used for the default reply, as if the user typed this.
+		Example: >
 			:let color = input("Color? ", "white")
 
 <		The optional {completion} argument specifies the type of
@@ -3559,8 +3569,8 @@
 			:endfunction
 
 inputdialog({prompt} [, {text} [, {cancelreturn}]])		*inputdialog()*
-		Like input(), but when the GUI is running and text dialogs are
-		supported, a dialog window pops up to input the text.
+		Like |input()|, but when the GUI is running and text dialogs
+		are supported, a dialog window pops up to input the text.
 		Example: >
 			:let n = inputdialog("value for shiftwidth", &sw)
 			:if n != ""
@@ -3581,7 +3591,7 @@
 		above the first item a negative number is returned.  When
 		clicking on the prompt one more than the length of {textlist}
 		is returned.
-		Make sure {textlist} has less then 'lines' entries, otherwise
+		Make sure {textlist} has less than 'lines' entries, otherwise
 		it won't work.	It's a good idea to put the entry number at
 		the start of the string.  And put a prompt in the first item.
 		Example: >
@@ -3589,7 +3599,7 @@
 				\ '2. green', '3. blue'])
 
 inputrestore()						*inputrestore()*
-		Restore typeahead that was saved with a previous inputsave().
+		Restore typeahead that was saved with a previous |inputsave()|.
 		Should be called the same number of times inputsave() is
 		called.  Calling it more often is harmless though.
 		Returns 1 when there is nothing to restore, 0 otherwise.
@@ -3726,7 +3736,7 @@
 <
 							*libcallnr()*
 libcallnr({libname}, {funcname}, {argument})
-		Just like libcall(), but used for a function that returns an
+		Just like |libcall()|, but used for a function that returns an
 		int instead of a string.
 		{only in Win32 on some Unix versions, when the |+libcall|
 		feature is present}
@@ -3759,7 +3769,7 @@
 <							*last-position-jump*
 		This autocommand jumps to the last known position in a file
 		just after opening it, if the '" mark is set: >
-	:au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
+	:au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g`\"" | endif
 
 line2byte({lnum})					*line2byte()*
 		Return the byte count from the start of the buffer for line
@@ -3802,8 +3812,7 @@
 		Replace each item in {expr} with the result of evaluating
 		{string}.
 		Inside {string} |v:val| has the value of the current item.
-		For a |Dictionary| |v:key| has the key of the current item
-		and for a |List| |v:key| has the index of the current item.
+		For a |Dictionary| |v:key| has the key of the current item.
 		Example: >
 			:call map(mylist, '"> " . v:val . " <"')
 <		This puts "> " before and " <" after each item in "mylist".
@@ -3990,8 +3999,8 @@
 		be deleted in one operation by |clearmatches()|.
 
 matchend({expr}, {pat}[, {start}[, {count}]])			*matchend()*
-		Same as match(), but return the index of first character after
-		the match.  Example: >
+		Same as |match()|, but return the index of first character
+		after the match.  Example: >
 			:echo matchend("testing", "ing")
 <		results in "7".
 							*strspn()* *strcspn()*
@@ -4001,15 +4010,15 @@
 			:let span = matchend(line, '[^a-zA-Z]')
 <		Except that -1 is returned when there are no matches.
 
-		The {start}, if given, has the same meaning as for match(). >
+		The {start}, if given, has the same meaning as for |match()|. >
 			:echo matchend("testing", "ing", 2)
 <		results in "7". >
 			:echo matchend("testing", "ing", 5)
 <		result is "-1".
-		When {expr} is a |List| the result is equal to match().
+		When {expr} is a |List| the result is equal to |match()|.
 
 matchlist({expr}, {pat}[, {start}[, {count}]])			*matchlist()*
-		Same as match(), but return a |List|.  The first item in the
+		Same as |match()|, but return a |List|.  The first item in the
 		list is the matched string, same as what matchstr() would
 		return.  Following items are submatches, like "\1", "\2", etc.
 		in |:substitute|.  When an optional submatch didn't match an
@@ -4023,7 +4032,7 @@
 			:echo matchstr("testing", "ing")
 <		results in "ing".
 		When there is no match "" is returned.
-		The {start}, if given, has the same meaning as for match(). >
+		The {start}, if given, has the same meaning as for |match()|. >
 			:echo matchstr("testing", "ing", 2)
 <		results in "ing". >
 			:echo matchstr("testing", "ing", 5)
@@ -4497,9 +4506,9 @@
 <
 remove({list}, {idx} [, {end}])				*remove()*
 		Without {end}: Remove the item at {idx} from |List| {list} and
-		return it.
+		return the item.
 		With {end}: Remove items from {idx} to {end} (inclusive) and
-		return a list with these items.  When {idx} points to the same
+		return a List with these items.  When {idx} points to the same
 		item as {end} a list with one item is returned.  When {end}
 		points to an item before {idx} this is an error.
 		See |list-index| for possible values of {idx} and {end}.
@@ -4750,7 +4759,7 @@
 							*searchpairpos()*
 searchpairpos({start}, {middle}, {end} [, {flags} [, {skip}
 				[, {stopline} [, {timeout}]]]])
-		Same as searchpair(), but returns a |List| with the line and
+		Same as |searchpair()|, but returns a |List| with the line and
 		column position of the match. The first element of the |List|
 		is the line number and the second element is the byte index of
 		the column position of the match.  If no match is found,
@@ -5051,15 +5060,20 @@
 		When {func} is given and it is one then case is ignored.
 		When {func} is a |Funcref| or a function name, this function
 		is called to compare items.  The function is invoked with two
-		items as argument and must return zero if they are equal, 1 if
-		the first one sorts after the second one, -1 if the first one
-		sorts before the second one.  Example: >
+		items as argument and must return zero if they are equal, 1 or
+		bigger if the first one sorts after the second one, -1 or
+		smaller if the first one sorts before the second one.
+		Example: >
 			func MyCompare(i1, i2)
 			   return a:i1 == a:i2 ? 0 : a:i1 > a:i2 ? 1 : -1
 			endfunc
 			let sortedlist = sort(mylist, "MyCompare")
+<		A shorter compare version for this specific simple case, which
+		ignores overflow: >
+			func MyCompare(i1, i2)
+			   return a:i1 - a:i2
+			endfunc
 <
-
 							*soundfold()*
 soundfold({word})
 		Return the sound-folded equivalent of {word}.  Uses the first
@@ -5508,10 +5522,7 @@
 		is different for at least 26 consecutive calls.  Example: >
 			:let tmpfile = tempname()
 			:exe "redir > " . tmpfile
-<		For Unix, the file will be in a private directory (only
-		accessible by the current user) to avoid security problems
-		(e.g., a symlink attack or other people reading your file).
-		When Vim exits the directory and all files in it are deleted.
+<		For Unix, the file will be in a private directory |tempfile|.
 		For MS-Windows forward slashes are used when the 'shellslash'
 		option is set or when 'shellcmdflag' starts with '-'.
 
@@ -5870,7 +5881,6 @@
 signs			Compiled with |:sign| support.
 smartindent		Compiled with 'smartindent' support.
 sniff			Compiled with SNiFF interface support.
-startuptime		Compiled with |--startuptime| support.
 statusline		Compiled with support for 'statusline', 'rulerformat'
 			and special formats of 'titlestring' and 'iconstring'.
 sun_workshop		Compiled with support for Sun |workshop|.
@@ -6575,15 +6585,19 @@
 			removed without effect.  Removing any later item means
 			it will not be found.  Thus the following example
 			works (an inefficient way to make a list empty): >
-				:for item in mylist
-				   :call remove(mylist, 0)
-				:endfor
+				for item in mylist
+				   call remove(mylist, 0)
+				endfor
 <			Note that reordering the list (e.g., with sort() or
 			reverse()) may have unexpected effects.
 			Note that the type of each list item should be
 			identical to avoid errors for the type of {var}
 			changing.  Unlet the variable at the end of the loop
-			to allow multiple item types.
+			to allow multiple item types: >
+				for item in ["foo", ["bar"]]
+				   echo item
+				   unlet item  " E706 without this
+				endfor
 
 :for [{var1}, {var2}, ...] in {listlist}
 :endfo[r]
@@ -6652,7 +6666,7 @@
 		:try | edit | catch /^Vim(edit):E\d\+/ | echo "error" | endtry
 <
 					*:cat* *:catch* *E603* *E604* *E605*
-:cat[ch] /{pattern}/	The following commands until the next ":catch",
+:cat[ch] /{pattern}/	The following commands until the next |:catch|,
 			|:finally|, or |:endtry| that belongs to the same
 			|:try| as the ":catch" are executed when an exception
 			matching {pattern} is being thrown and has not yet
@@ -6825,7 +6839,7 @@
 		:execute 'while i < 5 | echo i | let i = i + 1 | endwhile'
 <
 
-							*:comment*
+							*:exe-comment*
 			":execute", ":echo" and ":echon" cannot be followed by
 			a comment directly, because they see the '"' as the
 			start of a string.  But, you can use '|' followed by a
@@ -7831,7 +7845,7 @@
 
 Printing in Binary ~
 >
-  :" The function Nr2Bin() returns the Hex string of a number.
+  :" The function Nr2Bin() returns the binary string representation of a number.
   :func Nr2Bin(nr)
   :  let n = a:nr
   :  let r = ""
diff -Nur runtime.patched/doc/evim-pl.1 runtime/doc/evim-pl.1
--- runtime.patched/doc/evim-pl.1	2006-03-26 04:20:16.000000000 -0800
+++ runtime/doc/evim-pl.1	2009-09-18 03:29:10.000000000 -0700
@@ -14,11 +14,11 @@
 .B Vima
 i ustawia opcje tak by zachowywa� si� jak edytor bez tryb�w.
 To jest ca�y czas Vim ale u�ywany jako edytor wska�-i-kliknij.
-Zachowanie w stlu Notepada dla MS-Windows.
+Zachowanie w stylu Notepada dla MS-Windows.
 .B eVim
 b�dzie zawsze uruchomiony w GUI by w��czy� menu i pasek narz�dzi.
 .PP
-Przeznaczony tylko dla ludzi, kt�rzy naprawd� nie potrafi� pracowa�
+Przeznaczony tylko dla ludzi, kt�rzy naprawd� nie mog� pracowa�
 z Vimem w normalny spos�b. Edycja b�dzie o wiele mniej efektywna.
 .PP
 .B eview
@@ -31,8 +31,8 @@
 tekst.
 .br
 Mapowania s� ustawione tak by Kopiowanie i Wklejanie dzia�a�o
-z klawiszami MS-Windows. CTRL-X wycina tekst, CTRL-C kopiuje
-a CTRL-V wkleja. U�yj CTRL-Q by uzyska� oryginalne znaczenie
+z klawiszami MS-Windows. CTRL-X wycina, CTRL-C kopiuje a CTRL-V 
+wkleja tekst. U�yj CTRL-Q by uzyska� oryginalne przeznaczenie
 CTRL-V.
 .SH OPCJE
 Zobacz vim(1).
@@ -42,7 +42,7 @@
 Skrypt uruchamiania dla eVima.
 .SH ZNANY JAKO
 Znany jako "Vim dla frajer�w".
-Je�li u�ywasz evima oczekuje si�, �e wyjmiesz chusteczk� do nosa,
+Je�li u�ywasz eVima oczekuje si�, �e wyjmiesz chusteczk� do nosa,
 zrobisz w�z� w ka�dym rogu i b�dziesz to nosi� na g�owie.
 .SH ZOBACZ TAK�E
 vim(1)
diff -Nur runtime.patched/doc/evim-pl.UTF-8.1 runtime/doc/evim-pl.UTF-8.1
--- runtime.patched/doc/evim-pl.UTF-8.1	2006-03-26 09:01:17.000000000 -0800
+++ runtime/doc/evim-pl.UTF-8.1	2009-09-18 03:26:13.000000000 -0700
@@ -14,11 +14,11 @@
 .B Vima
 i ustawia opcje tak by zachowywał się jak edytor bez trybów.
 To jest cały czas Vim ale używany jako edytor wskaż-i-kliknij.
-Zachowanie w stlu Notepada dla MS-Windows.
+Zachowanie w stylu Notepada dla MS-Windows.
 .B eVim
 będzie zawsze uruchomiony w GUI by włączyć menu i pasek narzędzi.
 .PP
-Przeznaczony tylko dla ludzi, którzy naprawdę nie potrafią pracować
+Przeznaczony tylko dla ludzi, którzy naprawdę nie mogą pracować
 z Vimem w normalny sposób. Edycja będzie o wiele mniej efektywna.
 .PP
 .B eview
@@ -31,8 +31,8 @@
 tekst.
 .br
 Mapowania są ustawione tak by Kopiowanie i Wklejanie działało
-z klawiszami MS-Windows. CTRL-X wycina tekst, CTRL-C kopiuje
-a CTRL-V wkleja. Użyj CTRL-Q by uzyskać oryginalne znaczenie
+z klawiszami MS-Windows. CTRL-X wycina, CTRL-C kopiuje a CTRL-V 
+wkleja tekst. Użyj CTRL-Q by uzyskać oryginalne przeznaczenie
 CTRL-V.
 .SH OPCJE
 Zobacz vim(1).
@@ -42,7 +42,7 @@
 Skrypt uruchamiania dla eVima.
 .SH ZNANY JAKO
 Znany jako "Vim dla frajerów".
-Jeśli używasz evima oczekuje się, że wyjmiesz chusteczkę do nosa,
+Jeśli używasz eVima oczekuje się, że wyjmiesz chusteczkę do nosa,
 zrobisz węzęł w każdym rogu i będziesz to nosił na głowie.
 .SH ZOBACZ TAKŻE
 vim(1)
diff -Nur runtime.patched/doc/ft_ada.txt runtime/doc/ft_ada.txt
--- runtime.patched/doc/ft_ada.txt	2008-08-09 07:22:59.000000000 -0700
+++ runtime/doc/ft_ada.txt	2008-12-01 12:32:36.000000000 -0800
@@ -82,7 +82,7 @@
  - comment handling	(|'comments'|, |'commentstring'|)
 
 The plug-in only activates the features of the Ada mode whenever an Ada
-files is opened and add adds Ada related entries to the main and pop-up menu.
+file is opened and adds Ada related entries to the main and pop-up menu.
 
 ==============================================================================
 3. Omni Completion ~
@@ -142,7 +142,7 @@
 4.  Compiler Support ~
 								*ada-compiler*
 
-The Ada mode supports more then one Ada compiler and will automatically load the
+The Ada mode supports more than one Ada compiler and will automatically load the
 compiler set in|g:ada_default_compiler|whenever an Ada source is opened. The
 provided compiler plug-ins are split into the actual compiler plug-in and a
 collection of support functions and variables. This allows the easy
@@ -154,7 +154,7 @@
 							       *compiler-gnat*
 
 GNAT is the only free (beer and speech) Ada compiler available. There are
-several version available which differentiate in the licence terms used.
+several versions available which differ in the licence terms used.
 
 The GNAT compiler plug-in will perform a compile on pressing <F7> and then
 immediately shows the result. You can set the project file to be used by
@@ -163,7 +163,7 @@
  > call g:gnat.Set_Project_File ('my_project.gpr')
 
 Setting a project file will also create a Vim session (|views-sessions|) so -
-like with the GPS - opened files, window positions etc. will remembered
+like with the GPS - opened files, window positions etc. will be remembered
 separately for all projects.
 
 								*gnat_members*
@@ -228,9 +228,9 @@
 compile the current unit.
 
 The Dec Ada compiler expects the package name and not the file name to be
-passed a parameter. The compiler plug-in supports the usual file name
-convention to convert the file into a unit name. For separates both '-' and
-'__' are allowed.
+passed as a parameter. The compiler plug-in supports the usual file name
+convention to convert the file into a unit name. Both '-' and '__' are allowed
+as separators.
 
 							      *decada_members*
 DEC ADA OBJECT ~
@@ -262,7 +262,7 @@
 
 							*g:ada_standard_types*
 g:ada_standard_types	bool (true when exists)
-		Highlight types in package Standard (e.g., "Float")
+		Highlight types in package Standard (e.g., "Float").
 
 							  *g:ada_space_errors*
 						  *g:ada_no_trail_space_error*
@@ -279,13 +279,13 @@
 
 							   *g:ada_line_errors*
 g:ada_line_errors	  bool (true when exists)
-		Highlight lines which are to long. Note: This highlighting
+		Highlight lines which are too long. Note: This highlighting
 		option is quite CPU intensive.
 
 							 *g:ada_rainbow_color*
 g:ada_rainbow_color	  bool (true when exists)
 		Use rainbow colours for '(' and ')'. You need the
-		rainbow_parenthesis for this to work
+		rainbow_parenthesis for this to work.
 
 							       *g:ada_folding*
 g:ada_folding		  set ('sigpft')
@@ -313,7 +313,7 @@
 
 								*g:ada_abbrev*
 g:ada_abbrev		  bool (true when exists)
-		Add some abbreviations. This feature more or less superseded
+		Add some abbreviations. This feature is more or less superseded
 		by the various completion methods.
 
 						      *g:ada_withuse_ordinary*
@@ -359,12 +359,12 @@
 
 						      *g:ada_default_compiler*
 g:ada_default_compiler	  string
-		set default compiler. Currently supported is 'gnat' and
+		set default compiler. Currently supported are 'gnat' and
 		'decada'.
 
-An "exists" type is a boolean is considered true when the variable is defined
-and false when the variable is undefined. The value which the variable is
-set makes no difference.
+An "exists" type is a boolean considered true when the variable is defined and
+false when the variable is undefined. The value to which the variable is set
+makes no difference.
 
 ------------------------------------------------------------------------------
 5.3 Commands ~
@@ -372,10 +372,10 @@
 
 :AdaRainbow							 *:AdaRainbow*
 		Toggles rainbow colour (|g:ada_rainbow_color|) mode for
-		'(' and ')'
+		'(' and ')'.
 
 :AdaLines							   *:AdaLines*
-		Toggles line error (|g:ada_line_errors|) display
+		Toggles line error (|g:ada_line_errors|) display.
 
 :AdaSpaces							  *:AdaSpaces*
 		Toggles space error (|g:ada_space_errors|) display.
@@ -424,7 +424,7 @@
 
 							     *g:ada#WordRegex*
 g:ada#WordRegex		string
-		Regular expression to search for Ada words
+		Regular expression to search for Ada words.
 
 							  *g:ada#DotWordRegex*
 g:ada#DotWordRegex	string
@@ -432,7 +432,7 @@
 
 							       *g:ada#Comment*
 g:ada#Comment		string
-		Regular expression to search for Ada comments
+		Regular expression to search for Ada comments.
 
 							      *g:ada#Keywords*
 g:ada#Keywords		list of dictionaries
@@ -454,7 +454,7 @@
 
 ada#List_Tag([{line}, {col}])				      *ada#Listtags()*
 		List all occurrences of the Ada entity under the cursor (or at
-		given line/column) inside the quick-fix window
+		given line/column) inside the quick-fix window.
 
 ada#Jump_Tag ({ident}, {mode})				      *ada#Jump_Tag()*
 		List all occurrences of the Ada entity under the cursor (or at
@@ -482,8 +482,8 @@
 8. Extra Plugins ~
 							   *ada-extra-plugins*
 
-You can optionally install the following extra plug-in. They work well with Ada
-and enhance the ability of the Ada mode.:
+You can optionally install the following extra plug-ins. They work well with
+Ada and enhance the ability of the Ada mode:
 
 backup.vim
 	http://www.vim.org/scripts/script.php?script_id=1537
@@ -501,7 +501,7 @@
 matchit.vim
 	http://www.vim.org/scripts/script.php?script_id=39
 	'%' jumping for any language. The normal '%' jump only works for '{}'
-	style languages. The Ada mode will set the needed search patters.
+	style languages. The Ada mode will set the needed search patterns.
 
 taglist.vim
 	http://www.vim.org/scripts/script.php?script_id=273
diff -Nur runtime.patched/doc/ft_sql.txt runtime/doc/ft_sql.txt
--- runtime.patched/doc/ft_sql.txt	2008-08-09 07:22:59.000000000 -0700
+++ runtime/doc/ft_sql.txt	2009-10-08 14:17:02.000000000 -0700
@@ -1,4 +1,4 @@
-*ft_sql.txt*	For Vim version 7.2.  Last change: Wed Apr 26 2006 3:05:33 PM
+*sql.txt*	For Vim version 7.0g.  Last change: 2009 Oct 08
 
 by David Fishburn
 
@@ -15,7 +15,8 @@
     1.4 Macros					|sql-macros|
 2. SQL Dialects					|sql-dialects|
     2.1 SQLSetType				|SQLSetType|
-    2.2 SQL Dialect Default			|sql-type-default|
+    2.2 SQLGetType				|SQLGetType|
+    2.3 SQL Dialect Default			|sql-type-default|
 3. Adding new SQL Dialects			|sql-adding-dialects|
 4. OMNI SQL Completion				|sql-completion|
     4.1 Static mode				|sql-completion-static|
@@ -204,7 +205,7 @@
 						*sqlanywhere*
 						*oracle* *plsql* *sqlj*
 						*sqlserver*
-						*mysql* *postgres* *psql*
+						*mysql* *postgress* *psql*
 						*informix*
 
 All relational databases support SQL.  There is a portion of SQL that is
@@ -231,7 +232,7 @@
 
 2.1 SQLSetType					*sqlsettype* *SQLSetType*
 --------------
-For the people that work with many different databases, it would be nice to be
+For the people that work with many different databases, it is nice to be
 able to flip between the various vendors rules (indent, syntax) on a per
 buffer basis, at any time.  The ftplugin/sql.vim file defines this function: >
     SQLSetType
@@ -259,7 +260,17 @@
     :SQL<Tab><space><Tab>
 
 
-2.2 SQL Dialect Default				*sql-type-default*
+2.2 SQLGetType					*sqlgettype* *SQLGetType*
+--------------
+At anytime you can determine which SQL dialect you are using by calling the
+SQLGetType command.  The ftplugin/sql.vim file defines this function: >
+    SQLGetType
+
+This will echo: >
+    Current SQL dialect in use:sqlanywhere
+
+
+2.3 SQL Dialect Default				*sql-type-default*
 -----------------------
 As mentioned earlier, the default syntax rules for Vim is based on Oracle
 (PL/SQL).  You can override this default by placing one of the following in
@@ -331,6 +342,10 @@
     imap <buffer> <C-C>T <C-\><C-O>:call sqlcomplete#Map('sqlType')<CR><C-X><C-O>
     imap <buffer> <C-C>s <C-\><C-O>:call sqlcomplete#Map('sqlStatement')<CR><C-X><C-O>
 
+The use of "<C-C>" can be user chosen by using the following in your |.vimrc| as it 
+may not work properly on all platforms: >
+    let g:ftplugin_sql_omni_key = '<C-C>'
+>
 The static maps (which are based on the syntax highlight groups) follow this
 format: >
     imap <buffer> <C-C>k <C-\><C-O>:call sqlcomplete#Map('sqlKeyword')<CR><C-X><C-O>
@@ -406,21 +421,25 @@
 To enable the popup, while in INSERT mode, use the following key combinations
 for each group (where <C-C> means hold the CTRL key down while pressing
 the space bar):
-     Table List		    - <C-C>t
-			    - <C-X><C-O> (the default map assumes tables)
-     Stored Procedure List  - <C-C>p
-     View List		    - <C-C>v
-     Column List	    - <C-C>c
-
-     Windows platform only  - When viewing a popup window displaying the list
-			      of tables, you can press <C-Right>, this will
-			      replace the table currently highlighted with
-			      the column list for that table.
-			    - When viewing a popup window displaying the list
-			      of columns, you can press <C-Left>, this will
-			      replace the column list with the list of tables.
-			    - This allows you to quickly drill down into a
-			      table to view it's columns and back again.
+     Table List		   - <C-C>t
+			   - <C-X><C-O> (the default map assumes tables)
+     Stored Procedure List - <C-C>p
+     View List		   - <C-C>v
+     Column List	   - <C-C>c
+
+     Drilling In / Out     - When viewing a popup window displaying the list
+			     of tables, you can press <Right>, this will
+			     replace the table currently highlighted with
+			     the column list for that table.
+			   - When viewing a popup window displaying the list
+			     of columns, you can press <Left>, this will
+			     replace the column list with the list of tables.
+			   - This allows you to quickly drill down into a
+			     table to view it's columns and back again.
+			   - <Right> and <Left> can be also be chosen via
+			     your |.vimrc| >
+                                let g:ftplugin_sql_omni_key_right = '<Right>'
+                                let g:ftplugin_sql_omni_key_left  = '<Left>'
 
 The SQL completion plugin caches various lists that are displayed in
 the popup window.  This makes the re-displaying of these lists very
@@ -498,30 +517,24 @@
 The SQL completion plugin can also display a list of columns for particular
 tables.  The column completion is trigger via <C-C>c.
 
-NOTE: The following example uses <C-Right> to trigger a column list while
-the popup window is active.  This map is only available on the Windows
-platforms since *nix does not recognize CTRL and the right arrow held down
-together.  If you wish to enable this functionality on a *nix platform choose
-a key and create one of these mappings (see |sql-completion-maps| for further
-details on where to create this imap): >
-    imap <buffer> <your_keystroke> <C-R>=sqlcomplete#DrillIntoTable()<CR>
-    imap <buffer> <your_keystroke> <C-Y><C-\><C-O>:call sqlcomplete#Map('column')<CR><C-X><C-O>
+NOTE: The following example uses <Right> to trigger a column list while
+      the popup window is active.  
 
 Example of using column completion:
      - Press <C-C>t again to display the list of tables.
-     - When the list is displayed in the completion window, press <C-Right>,
+     - When the list is displayed in the completion window, press <Right>,
        this will replace the list of tables, with a list of columns for the
        table highlighted (after the same short delay).
-     - If you press <C-Left>, this will again replace the column list with the
+     - If you press <Left>, this will again replace the column list with the
        list of tables.  This allows you to drill into tables and column lists
        very quickly.
-     - Press <C-Right> again while the same table is highlighted.  You will
+     - Press <Right> again while the same table is highlighted.  You will
        notice there is no delay since the column list has been cached.  If you
        change the schema of a cached table you can press <C-C>R, which
        clears the SQL completion cache.
-     - NOTE: <C-Right> and <C-Left> have been designed to work while the
+     - NOTE: <Right> and <Left> have been designed to work while the
        completion window is active.  If the completion popup window is
-       not active, a normal <C-Right> or <C-Left> will be executed.
+       not active, a normal <Right> or <Left> will be executed.
 
 Lets look how we can build a SQL statement dynamically.  A select statement
 requires a list of columns.  There are two ways to build a column list using
@@ -529,7 +542,7 @@
     One column at a time:
 <       1. After typing SELECT press <C-C>t to display a list of tables.
 	2. Choose a table from the list.
-	3. Press <C-Right> to display a list of columns.
+	3. Press <Right> to display a list of columns.
 	4. Choose the column from the list and press enter.
 	5. Enter a "," and press <C-C>c.  Generating a column list
 	   generally requires having the cursor on a table name.  The plugin
@@ -632,7 +645,7 @@
 	- When completing tables, procedure or views and using dbext.vim 3.00
 	  or higher the list of objects will also include the owner name.
 	  When completing these objects and omni_sql_include_owner is enabled
-	  the owner name will be replaced. >
+	  the owner name will be be replaced. >
 
     omni_sql_precache_syntax_groups
 <	- Default:
@@ -684,15 +697,15 @@
     <C-C>L
 <       - Displays a comma separated list of columns for a specific table.
 	  This should only be used when the completion window is active. >
-    <C-Right>
+    <Right>
 <	- Displays a list of columns for the table currently highlighted in
-	  the completion window.  <C-Right> is not recognized on most Unix
+	  the completion window.  <Right> is not recognized on most Unix
 	  systems, so this maps is only created on the Windows platform.
 	  If you would like the same feature on Unix, choose a different key
 	  and make the same map in your vimrc. >
-    <C-Left>
+    <Left>
 <	- Displays the list of tables.
-	  <C-Left> is not recognized on most Unix systems, so this maps is
+	  <Left> is not recognized on most Unix systems, so this maps is
 	  only created on the Windows platform.  If you would like the same
 	  feature on Unix, choose a different key and make the same map in
 	  your vimrc. >
diff -Nur runtime.patched/doc/gui.txt runtime/doc/gui.txt
--- runtime.patched/doc/gui.txt	2008-08-09 07:22:59.000000000 -0700
+++ runtime/doc/gui.txt	2009-01-28 08:23:39.000000000 -0800
@@ -1,4 +1,4 @@
-*gui.txt*       For Vim version 7.2.  Last change: 2008 Jun 14
+*gui.txt*       For Vim version 7.2.  Last change: 2009 Jan 22
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -35,13 +35,13 @@
 The X11 version of Vim can run both in GUI and in non-GUI mode.  See
 |gui-x11-start|.
 
-					*gui-init* *gvimrc* *.gvimrc* *_gvimrc*
+			*gui-init* *gvimrc* *.gvimrc* *_gvimrc* *$MYGVIMRC*
 The gvimrc file is where GUI-specific startup commands should be placed.  It
 is always sourced after the |vimrc| file.  If you have one then the $MYGVIMRC
 environment variable has its name.
 
 When the GUI starts up initializations are carried out, in this order:
-- The 'term' option is set to "builgin_gui" and terminal options are reset to
+- The 'term' option is set to "builtin_gui" and terminal options are reset to
   their default value for the GUI |terminal-options|.
 - If the system menu file exists, it is sourced.  The name of this file is
   normally "$VIMRUNTIME/menu.vim".  You can check this with ":version".  Also
@@ -473,9 +473,11 @@
 	:let did_install_default_menus = 1
 If you also want to avoid the Syntax menu: >
 	:let did_install_syntax_menu = 1
-If you do want the Syntax menu but not all the entries for each available
-syntax file (which take quite a bit of time to load): >
-	:let skip_syntax_sel_menu = 1
+The first item in the Syntax menu can be used to show all available filetypes
+in the menu (which can take a bit of time to load).  If you want to have all
+filetypes already present at startup, add: >
+	:let do_syntax_sel_menu = 1
+
 <
 							*console-menus*
 Although this documentation is in the GUI section, you can actually use menus
diff -Nur runtime.patched/doc/gui_x11.txt runtime/doc/gui_x11.txt
--- runtime.patched/doc/gui_x11.txt	2008-08-09 07:22:59.000000000 -0700
+++ runtime/doc/gui_x11.txt	2009-10-28 13:58:52.000000000 -0700
@@ -1,4 +1,4 @@
-*gui_x11.txt*   For Vim version 7.2.  Last change: 2007 Dec 09
+*gui_x11.txt*   For Vim version 7.2.  Last change: 2009 Oct 28
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -540,13 +540,16 @@
 register.  Vim does not access the SECONDARY selection.
 
 Examples: (assuming the default option values)
-- Select an URL in Visual mode in Vim.  Go to a text field in Netscape and
-  click the middle mouse button.  The selected text will be inserted
-  (hopefully!).
-- Select some text in Netscape by dragging with the mouse.  Go to Vim and
+- Select an URL in Visual mode in Vim.  Go to your browser and click the
+  middle mouse button in the URL text field.  The selected text will be
+  inserted (hopefully!).  Note: in Firefox you can set the
+  middlemouse.contentLoadURL preference to true in about:config, then the
+  selected URL will be used when pressing middle mouse button in most places
+  in the window.
+- Select some text in your browser by dragging with the mouse.  Go to Vim and
   press the middle mouse button: The selected text is inserted.
-- Select some text in Vim and do "+y.  Go to Netscape, select some text in a
-  textfield by dragging with the mouse.  Now use the right mouse button and
+- Select some text in Vim and do "+y.  Go to your browser, select some text in
+  a textfield by dragging with the mouse.  Now use the right mouse button and
   select "Paste" from the popup menu.  The selected text is overwritten by the
   text from Vim.
 Note that the text in the "+ register remains available when making a Visual
diff -Nur runtime.patched/doc/hangulin.txt runtime/doc/hangulin.txt
--- runtime.patched/doc/hangulin.txt	2008-08-09 07:22:59.000000000 -0700
+++ runtime/doc/hangulin.txt	2009-07-02 11:04:40.000000000 -0700
@@ -1,8 +1,12 @@
-*hangulin.txt*  For Vim version 7.2.  Last change: 2006 Apr 02
+*hangulin.txt*  For Vim version 7.2.  Last change: 2009 Jun 24
 
 
 		  VIM REFERENCE MANUAL    by Chi-Deok Hwang and Sung-Hyun Nam
 
+NOTE: The |+hangul_input| feature is scheduled to be removed.  If you want to
+keep it, please send a message to the Vim user maillist.
+
+
 Introduction					*hangul*
 ------------
 It is to input hangul, the Korean language, with VIM GUI version.
@@ -96,6 +100,6 @@
 Send comments, patches and suggestions to:
 
 				    Chi-Deok Hwang <[email protected]>
-				    Nam SungHyun <[email protected]>
+				    SungHyun Nam <[email protected]>
 
  vim:tw=78:ts=8:ft=help:norl:
diff -Nur runtime.patched/doc/help.txt runtime/doc/help.txt
--- runtime.patched/doc/help.txt	2008-08-09 07:22:59.000000000 -0700
+++ runtime/doc/help.txt	2008-08-24 18:57:42.000000000 -0700
@@ -144,6 +144,7 @@
 |hebrew.txt|	Hebrew language support and editing
 |russian.txt|	Russian language support and editing
 |ft_ada.txt|	Ada (the programming language) support
+|ft_sql.txt|	about the SQL filetype plugin
 |hangulin.txt|	Hangul (Korean) input mode
 |rileft.txt|	right-to-left editing mode
 
diff -Nur runtime.patched/doc/if_ole.txt runtime/doc/if_ole.txt
--- runtime.patched/doc/if_ole.txt	2008-08-09 07:22:59.000000000 -0700
+++ runtime/doc/if_ole.txt	2008-08-24 18:57:54.000000000 -0700
@@ -1,4 +1,4 @@
-*if_ole.txt*    For Vim version 7.2.  Last change: 2007 May 10
+*if_ole.txt*    For Vim version 7.2.  Last change: 2008 Aug 16
 
 
 		  VIM REFERENCE MANUAL    by Paul Moore
@@ -115,7 +115,7 @@
 3. The "normal" command					*ole-normal*
 
 Due to the way Vim processes OLE Automation commands, combined with the method
-of implementation of the ex command :normal, it is not possible to execute the
+of implementation of the Ex command :normal, it is not possible to execute the
 :normal command via OLE automation.  Any attempt to do so will fail, probably
 harmlessly, although possibly in unpredictable ways.
 
diff -Nur runtime.patched/doc/if_pyth.txt runtime/doc/if_pyth.txt
--- runtime.patched/doc/if_pyth.txt	2008-08-09 07:22:59.000000000 -0700
+++ runtime/doc/if_pyth.txt	2008-08-24 18:57:42.000000000 -0700
@@ -1,4 +1,4 @@
-*if_pyth.txt*   For Vim version 7.2.  Last change: 2006 Apr 30
+*if_pyth.txt*   For Vim version 7.2.  Last change: 2008 Aug 16
 
 
 		  VIM REFERENCE MANUAL    by Paul Moore
@@ -93,7 +93,7 @@
 
 Overview >
 	:py print "Hello"		# displays a message
-	:py vim.command(cmd)		# execute an ex command
+	:py vim.command(cmd)		# execute an Ex command
 	:py w = vim.windows[n]		# gets window "n"
 	:py cw = vim.current.window	# gets the current window
 	:py b = vim.buffers[n]		# gets buffer "n"
diff -Nur runtime.patched/doc/if_ruby.txt runtime/doc/if_ruby.txt
--- runtime.patched/doc/if_ruby.txt	2008-08-09 07:22:59.000000000 -0700
+++ runtime/doc/if_ruby.txt	2008-08-24 18:57:54.000000000 -0700
@@ -1,4 +1,4 @@
-*if_ruby.txt*   For Vim version 7.2.  Last change: 2006 Apr 30
+*if_ruby.txt*   For Vim version 7.2.  Last change: 2008 Aug 16
 
 
 		  VIM REFERENCE MANUAL    by Shugo Maeda
@@ -79,7 +79,7 @@
 
 Overview >
 	print "Hello"			      # displays a message
-	VIM.command(cmd)		      # execute an ex command
+	VIM.command(cmd)		      # execute an Ex command
 	num = VIM::Window.count		      # gets the number of windows
 	w = VIM::Window[n]		      # gets window "n"
 	cw = VIM::Window.current	      # gets the current window
diff -Nur runtime.patched/doc/if_tcl.txt runtime/doc/if_tcl.txt
--- runtime.patched/doc/if_tcl.txt	2008-08-09 07:22:59.000000000 -0700
+++ runtime/doc/if_tcl.txt	2008-08-24 18:57:42.000000000 -0700
@@ -1,4 +1,4 @@
-*if_tcl.txt*    For Vim version 7.2.  Last change: 2008 Jun 26
+*if_tcl.txt*    For Vim version 7.2.  Last change: 2008 Aug 16
 
 
 		  VIM REFERENCE MANUAL    by Ingo Wilken
@@ -83,7 +83,7 @@
 	::vim::beep			# Guess.
 	::vim::buffer {n}		# Create Tcl command for one buffer.
 	::vim::buffer list		# Create Tcl commands for all buffers.
-	::vim::command [-quiet] {cmd}	# Execute an ex command.
+	::vim::command [-quiet] {cmd}	# Execute an Ex command.
 	::vim::expr {expr}		# Use Vim's expression evaluator.
 	::vim::option {opt}		# Get vim option.
 	::vim::option {opt} {val}	# Set vim option.
@@ -116,7 +116,7 @@
 
 	::vim::command {cmd}				*tcl-command*
 	::vim::command -quiet {cmd}
-	Execute the vim (ex-mode) command {cmd}.  Any ex command that affects
+	Execute the vim (ex-mode) command {cmd}.  Any Ex command that affects
 	a buffer or window uses the current buffer/current window.  Does not
 	return a result other than a standard Tcl error code.  After this
 	command is completed, the "::vim::current" variable is updated.
@@ -210,7 +210,7 @@
 
 	line						*tcl-var-line*
 	lnum						*tcl-var-lnum*
-	These global variables are only available if the ":tcldo" ex command
+	These global variables are only available if the ":tcldo" Ex command
 	is being executed.  They contain the text and line number of the
 	current line.  When the Tcl command invoked by ":tcldo" is completed,
 	the current line is set to the contents of the "line" variable, unless
@@ -233,7 +233,7 @@
 i.e. "$win" calls the command.  The following options are available: >
 
 	$win buffer		# Create Tcl command for window's buffer.
-	$win command {cmd}	# Execute ex command in windows context.
+	$win command {cmd}	# Execute Ex command in windows context.
 	$win cursor		# Get current cursor position.
 	$win cursor {var}	# Set cursor position from array variable.
 	$win cursor {row} {col}	# Set cursor position.
@@ -312,7 +312,7 @@
 i.e. "$buf" calls the command.  The following options are available: >
 
 	$buf append {n} {str}	# Append a line to buffer, after line {n}.
-	$buf command {cmd}	# Execute ex command in buffers context.
+	$buf command {cmd}	# Execute Ex command in buffers context.
 	$buf count		# Report number of lines in buffer.
 	$buf delcmd {cmd}	# Call Tcl command when buffer is deleted.
 	$buf delete {n}		# Delete a single line.
@@ -438,7 +438,7 @@
 ==============================================================================
 7. Known bugs & problems				*tcl-bugs*
 
-Calling one of the Tcl ex commands from inside Tcl (via "::vim::command") may
+Calling one of the Tcl Ex commands from inside Tcl (via "::vim::command") may
 have unexpected side effects.  The command creates a new interpreter, which
 has the same abilities as the standard interpreter - making "::vim::command"
 available in a safe child interpreter therefore makes the child unsafe.  (It
@@ -487,11 +487,11 @@
 		incr i ; incr n
 	}
 
-The same can also be done quickly with two ex commands, using ":tcldo":
+The same can also be done quickly with two Ex commands, using ":tcldo":
 	:tcl set n 1
 	:[range]tcldo set line "$n\t$line" ; incr n
 
-This procedure runs an ex command on each buffer (idea stolen from Ron Aaron):
+This procedure runs an Ex command on each buffer (idea stolen from Ron Aaron):
 	proc eachbuf { cmd } {
 		foreach b [::vim::buffer list] {
 			$b command $cmd
@@ -500,7 +500,7 @@
 Use it like this:
 	:tcl eachbuf %s/foo/bar/g
 Be careful with Tcl's string and backslash substitution, tough.  If in doubt,
-surround the ex command with curly braces.
+surround the Ex command with curly braces.
 
 
 If you want to add some Tcl procedures permanently to vim, just place them in
diff -Nur runtime.patched/doc/index.txt runtime/doc/index.txt
--- runtime.patched/doc/index.txt	2008-08-09 07:22:59.000000000 -0700
+++ runtime/doc/index.txt	2009-07-02 11:04:41.000000000 -0700
@@ -1,4 +1,4 @@
-*index.txt*     For Vim version 7.2.  Last change: 2008 May 04
+*index.txt*     For Vim version 7.2.  Last change: 2009 Jul 01
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -522,7 +522,7 @@
 |CTRL-W_+|	CTRL-W +	   increase current window height N lines
 |CTRL-W_-|	CTRL-W -	   decrease current window height N lines
 |CTRL-W_<|	CTRL-W <	   decrease current window width N columns
-|CTRL-W_=|	CTRL-W =	   make all windows the same height
+|CTRL-W_=|	CTRL-W =	   make all windows the same height & width
 |CTRL-W_>|	CTRL-W >	   increase current window width N columns
 |CTRL-W_H|	CTRL-W H	   move current window to the far left
 |CTRL-W_J|	CTRL-W J	   move current window to the very bottom
@@ -572,7 +572,7 @@
 				   window N lines high
 |CTRL-W_t|	CTRL-W t	   go to top window
 |CTRL-W_v|	CTRL-W v	   split current window vertically, new window
-				   N lines wide
+				   N columns wide
 |CTRL-W_w|	CTRL-W w	   go to N next window (wrap around)
 |CTRL-W_x|	CTRL-W x	   exchange current window with window N
 				   (default: next window)
@@ -1339,6 +1339,7 @@
 |:number|	:nu[mber]	print lines with line number
 |:nunmap|	:nun[map]	like ":unmap" but for Normal mode
 |:nunmenu|	:nunme[nu]	remove menu for Normal mode
+|:oldfiles|	:ol[dfiles]	list files that have marks in the viminfo file
 |:open|		:o[pen]		start open mode (not implemented)
 |:omap|		:om[ap]		like ":map" but for Operator-pending mode
 |:omapclear|	:omapc[lear]	remove all mappings for Operator-pending mode
@@ -1436,7 +1437,7 @@
 |:shell|	:sh[ell]	escape to a shell
 |:simalt|	:sim[alt]	Win32 GUI: simulate Windows ALT key
 |:sign|		:sig[n]		manipulate signs
-|:silent|	:sil[ent]	Run a command silently
+|:silent|	:sil[ent]	run a command silently
 |:sleep|	:sl[eep]	do nothing for a few seconds
 |:slast|	:sla[st]	split window and go to last file in the
 				argument list
@@ -1525,6 +1526,7 @@
 |:unlockvar|	:unlo[ckvar]	unlock variables
 |:unmap|	:unm[ap]	remove mapping
 |:unmenu|	:unme[nu]	remove menu
+|:unsilent|	:uns[ilent]	run a command not silently
 |:update|	:up[date]	write buffer if modified
 |:vglobal|	:v[global]	execute commands for not matching lines
 |:version|	:ve[rsion]	print version number and other info
diff -Nur runtime.patched/doc/insert.txt runtime/doc/insert.txt
--- runtime.patched/doc/insert.txt	2008-08-09 07:22:59.000000000 -0700
+++ runtime/doc/insert.txt	2009-07-26 04:45:18.000000000 -0700
@@ -1,4 +1,4 @@
-*insert.txt*    For Vim version 7.2.  Last change: 2008 Jun 21
+*insert.txt*    For Vim version 7.2.  Last change: 2009 Jul 14
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -123,6 +123,7 @@
 			':'	the last command-line
 			'.'	the last inserted text
 			'-'	the last small (less than a line) delete
+							*i_CTRL-R_=*
 			'='	the expression register: you are prompted to
 				enter an expression (see |expression|)
 				Note that 0x80 (128 decimal) is used for
@@ -133,6 +134,8 @@
 				When the result is a |List| the items are used
 				as lines.  They can have line breaks inside
 				too.
+				When the result is a Float it's automatically
+				converted to a String.
 		See |registers| about registers.  {not in Vi}
 
 CTRL-R CTRL-R {0-9a-z"%#*+/:.-=}			*i_CTRL-R_CTRL-R*
@@ -660,7 +663,8 @@
 
 	CTRL-X CTRL-L	After expanding a line you can additionally get the
 			line next to it by typing CTRL-X CTRL-L again, unless
-			a double CTRL-X is used.
+			a double CTRL-X is used.  Only works for loaded
+			buffers.
 
 Completing keywords in current file			*compl-current*
 
@@ -1488,7 +1492,7 @@
 and a tutorial see |omni-sql-completion|.
 
 The SQL completion plugin can be used in conjunction with other completion
-plugins.  For example, the PHP filetype has it's own completion plugin.
+plugins.  For example, the PHP filetype has its own completion plugin.
 Since PHP is often used to generate dynamic website by accessing a database,
 the SQL completion plugin can also be enabled.  This allows you to complete
 PHP code and SQL code at the same time.
@@ -1725,14 +1729,9 @@
 These two commands will keep on asking for lines, until you type a line
 containing only a ".".  Watch out for lines starting with a backslash, see
 |line-continuation|.
-When these commands are used with |:global| or |:vglobal| then the lines are
-obtained from the text following the command.  Separate lines with a NL
-escaped with a backslash: >
-	:global/abc/insert\
-	one line\
-	another line
-The final "." is not needed then.
-NOTE: ":append" and ":insert" don't work properly in between ":if" and
+
+NOTE: These commands cannot be used with |:global| or |:vglobal|.
+":append" and ":insert" don't work properly in between ":if" and
 ":endif", ":for" and ":endfor", ":while" and ":endwhile".
 
 							*:start* *:startinsert*
diff -Nur runtime.patched/doc/intro.txt runtime/doc/intro.txt
--- runtime.patched/doc/intro.txt	2008-08-09 07:22:59.000000000 -0700
+++ runtime/doc/intro.txt	2009-04-22 14:26:12.000000000 -0700
@@ -1,4 +1,4 @@
-*intro.txt*     For Vim version 7.2.  Last change: 2008 Jun 24
+*intro.txt*     For Vim version 7.2.  Last change: 2009 Apr 21
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -43,6 +43,10 @@
 document, there is a separate document for each supported system, see
 |sys-file-list|.
 
+							*pronounce*
+Vim is pronounced as one word, like Jim, not vi-ai-em.  It's written with a
+capital, since it's a name, again like Jim.
+
 This manual is a reference for all the Vim commands and options.  This is not
 an introduction to the use of Vi or Vim, it gets a bit complicated here and
 there.  For beginners, there is a hands-on |tutor|.  To learn using Vim, read
diff -Nur runtime.patched/doc/map.txt runtime/doc/map.txt
--- runtime.patched/doc/map.txt	2009-11-20 13:52:21.093434502 -0800
+++ runtime/doc/map.txt	2009-10-28 13:57:15.000000000 -0700
@@ -1,4 +1,4 @@
-*map.txt*       For Vim version 7.2.  Last change: 2008 Aug 09
+*map.txt*       For Vim version 7.2.  Last change: 2009 Oct 14
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -272,9 +272,10 @@
 1.3 MAPPING AND MODES					*:map-modes*
 			*mapmode-nvo* *mapmode-n* *mapmode-v* *mapmode-o*
 
-There are five sets of mappings
+There are six sets of mappings
 - For Normal mode: When typing commands.
 - For Visual mode: When typing commands while the Visual area is highlighted.
+- For Select mode: like Visual mode but typing text replaces the selection.
 - For Operator-pending mode: When an operator is pending (after "d", "y", "c",
   etc.).  See below: |omap-info|.
 - For Insert mode.  These are also used in Replace mode.
@@ -299,6 +300,9 @@
 Some commands work both in Visual and Select mode, some in only one.  Note
 that quite often "Visual" is mentioned where both Visual and Select mode
 apply. |Select-mode-mapping|
+NOTE: Mapping a printable character in Select mode may confuse the user.  It's
+better to explicitly use :xmap and :smap for printable characters.  Or use
+:sunmap after defining the mapping.
 
     commands:				      modes: ~
 					  Visual    Select ~
@@ -590,11 +594,14 @@
 suggestions:
 - Function keys <F2>, <F3>, etc..  Also the shifted function keys <S-F1>,
   <S-F2>, etc.  Note that <F1> is already used for the help command.
-- Meta-keys (with the ALT key pressed). |:map-alt-keys|
+- Meta-keys (with the ALT key pressed).  Depending on your keybord accented
+  characters may be used as well. |:map-alt-keys|
 - Use the '_' or ',' character and then any other character.  The "_" and ","
   commands do exist in Vim (see |_| and |,|), but you probably never use them.
 - Use a key that is a synonym for another command.  For example: CTRL-P and
   CTRL-N.  Use an extra character to allow more mappings.
+- The key defined by <Leader> and one or more other keys.  This is especially
+  useful in scripts. |mapleader|
 
 See the file "index" for keys that are not used and thus can be mapped without
 losing any builtin function.  You can also use ":help {key}^D" to find out if
@@ -1082,7 +1089,7 @@
 It is possible to define your own Ex commands.  A user-defined command can act
 just like a built-in command (it can have a range or arguments, arguments can
 be completed as filenames or buffer names, etc), except that when the command
-is executed, it is transformed into a normal ex command and then executed.
+is executed, it is transformed into a normal Ex command and then executed.
 
 For starters: See section |40.2| in the user manual.
 
@@ -1150,7 +1157,7 @@
 
 Command attributes
 
-User-defined commands are treated by Vim just like any other ex commands.  They
+User-defined commands are treated by Vim just like any other Ex commands.  They
 can have arguments, or have a range specified.  Arguments are subject to
 completion as filenames, buffers, etc.  Exactly how this works depends upon the
 command's attributes, which are specified when the command is defined.
@@ -1240,7 +1247,7 @@
 	CursorPos	the cursor position in it (byte index)
 The function may use these for determining context.  For the "custom"
 argument, it is not necessary to filter candidates against the (implicit
-pattern in) ArgLead.  Vim will do filter the candidates with its regexp engine
+pattern in) ArgLead.  Vim will filter the candidates with its regexp engine
 after function return, and this is probably more efficient in most cases. For
 the "customlist" argument, Vim will not filter the returned completion
 candidates and the user supplied function should filter the candidates.
@@ -1405,7 +1412,7 @@
 This will invoke: >
 	:call Allargs("%s/foo/bar/ge|update")
 <
-When defining an user command in a script, it will be able to call functions
+When defining a user command in a script, it will be able to call functions
 local to the script and use mappings local to the script.  When the user
 invokes the user command, it will run in the context of the script it was
 defined in.  This matters if |<SID>| is used in a command.
diff -Nur runtime.patched/doc/mbyte.txt runtime/doc/mbyte.txt
--- runtime.patched/doc/mbyte.txt	2008-08-09 07:22:59.000000000 -0700
+++ runtime/doc/mbyte.txt	2009-03-22 12:39:56.000000000 -0700
@@ -1,4 +1,4 @@
-*mbyte.txt*     For Vim version 7.2.  Last change: 2008 Jun 21
+*mbyte.txt*     For Vim version 7.2.  Last change: 2009 Feb 28
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar et al.
@@ -555,7 +555,7 @@
 font is a long string.  For multi-byte fonts we need several of these...
 
 Note: Most of this is no longer relevant for GTK+ 2.  Selecting a font via
-its XLFD is not supported anymore; see 'guifont' for an example of how to
+its XLFD is not supported; see 'guifont' for an example of how to
 set the font.  Do yourself a favor and ignore the |XLFD| and |xfontset|
 sections below.
 
@@ -1030,7 +1030,7 @@
 Ex command first, which is ASCII.
 For typing search patterns the 'imsearch' option is used.  It can be set to
 use the same value as for 'iminsert'.
-
+								*lCursor*
 It is possible to give the GUI cursor another color when the language mappings
 are being used.  This is disabled by default, to avoid that the cursor becomes
 invisible when you use a non-standard background color.  Here is an example to
@@ -1246,9 +1246,10 @@
 Unicode (with a few rarely used languages excluded).  And it's mostly possible
 to mix these languages in one file, which is impossible with other encodings.
 
-Unicode can be encoded in several ways.  The two most popular ones are UCS-2,
-which uses 16-bit words and UTF-8, which uses one or more bytes for each
-character.  Vim can support all of these encodings, but always uses UTF-8
+Unicode can be encoded in several ways.  The most popular one is UTF-8, which
+uses one or more bytes for each character and is backwards compatible with
+ASCII.   On MS-Windows UTF-16 is also used (previously UCS-2), which uses
+16-bit words.  Vim can support all of these encodings, but always uses UTF-8
 internally.
 
 Vim has comprehensive UTF-8 support.  It appears to work in:
@@ -1402,7 +1403,7 @@
 
 Contributions specifically for the multi-byte features by:
 	Chi-Deok Hwang <[email protected]>
-	Nam SungHyun <[email protected]>
+	SungHyun Nam <[email protected]>
 	K.Nagano <[email protected]>
 	Taro Muraoka  <[email protected]>
 	Yasuhiro Matsumoto <[email protected]>
diff -Nur runtime.patched/doc/message.txt runtime/doc/message.txt
--- runtime.patched/doc/message.txt	2008-08-09 07:22:59.000000000 -0700
+++ runtime/doc/message.txt	2009-10-28 13:57:15.000000000 -0700
@@ -1,4 +1,4 @@
-*message.txt*   For Vim version 7.2.  Last change: 2007 Aug 19
+*message.txt*   For Vim version 7.2.  Last change: 2009 Oct 28
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -135,8 +135,8 @@
 run, but some of the colors will not appear in the specified color.  Try
 stopping other applications that use many colors, or start them after starting
 gvim.
-Netscape is known to consume a lot of colors.  You can avoid this by telling
-it to use its own colormap: >
+Browsers are known to consume a lot of colors.  You can avoid this with
+netscape by telling it to use its own colormap: >
 	netscape -install
 Or tell it to limit to a certain number of colors (64 should work well): >
 	netscape -ncols 64
@@ -567,7 +567,7 @@
   Unable to open swap file for "{filename}", recovery impossible
 
 Vim was not able to create a swap file.  You can still edit the file, but if
-Vim unexpected exits the changes will be lost.  And Vim may consume a lot of
+Vim unexpectedly exits the changes will be lost.  And Vim may consume a lot of
 memory when editing a big file.  You may want to change the 'directory' option
 to avoid this error.  See |swap-file|.
 
@@ -758,9 +758,9 @@
 -> Press 'k', <Up>, 'u', 'b' or 'g' to scroll back in the messages.  This
    works the same way as at the |more-prompt|.  Only works when 'compatible'
    is off and 'more' is on.
--> Pressing 'j', 'd' or <Down> is ignored when messages scrolled off the top
-   of the screen, 'compatible' is off and 'more' is on, to avoid that typing
-   one 'j' too many causes the messages to disappear.
+-> Pressing 'j', 'f', 'd' or <Down> is ignored when messages scrolled off the
+   top of the screen, 'compatible' is off and 'more' is on, to avoid that
+   typing one 'j' or 'f' too many causes the messages to disappear.
 -> Press <C-Y> to copy (yank) a modeless selection to the clipboard register.
 -> Use a menu.  The characters defined for Cmdline-mode are used.
 -> When 'mouse' contains the 'r' flag, clicking the left mouse button works
@@ -795,7 +795,7 @@
 Type					effect ~
      <CR> or <NL> or j or <Down>	one more line
      d					down a page (half a screen)
-     <Space> or <PageDown>		down a screen
+     <Space> or f or <PageDown>		down a screen
      G					down all the way, until the hit-enter
 					prompt
 
diff -Nur runtime.patched/doc/motion.txt runtime/doc/motion.txt
--- runtime.patched/doc/motion.txt	2008-08-09 07:22:59.000000000 -0700
+++ runtime/doc/motion.txt	2009-09-18 03:29:11.000000000 -0700
@@ -1,4 +1,4 @@
-*motion.txt*    For Vim version 7.2.  Last change: 2008 Aug 03
+*motion.txt*    For Vim version 7.2.  Last change: 2009 Sep 15
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -151,6 +151,11 @@
 ==============================================================================
 2. Left-right motions					*left-right-motions*
 
+These commands move the cursor to the specified column in the current line.
+They stop at the first column and at the end of the line, except "$", which
+may move to one of the next lines.  See 'whichwrap' option to make some of the
+commands move across line boundaries.
+
 h		or					*h*
 <Left>		or					*<Left>*
 CTRL-H		or					*CTRL-H* *<BS>*
@@ -234,7 +239,7 @@
 
 							*bar*
 |			To screen column [count] in the current line.
-			|exclusive| motion.
+			|exclusive| motion.  Ceci n'est pas une pipe.
 
 							*f*
 f{char}			To [count]'th occurrence of {char} to the right.  The
@@ -270,11 +275,6 @@
 ,			Repeat latest f, t, F or T in opposite direction
 			[count] times.
 
-These commands move the cursor to the specified column in the current line.
-They stop at the first column and at the end of the line, except "$", which
-may move to one of the next lines.  See 'whichwrap' option to make some of the
-commands move across line boundaries.
-
 ==============================================================================
 3. Up-down motions					*up-down-motions*
 
@@ -325,9 +325,9 @@
 			non-blank character |linewise|.  If 'startofline' not
 			set, keep the same column.
 
-:[range]		Set the cursor on the specified line number.  If
-			there are several numbers, the last one is used.
-
+:[range]		Set the cursor on the last line number in [range].
+			[range] can also be just one line number, e.g., ":1"
+			or ":'m".
 							*N%*
 {count}%		Go to {count} percentage in the file, on the first
 			non-blank in the line |linewise|.  To compute the new
@@ -637,7 +637,8 @@
 			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.
+			Any trailing white space is included, unless there is
+			none, then 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.
diff -Nur runtime.patched/doc/options.txt runtime/doc/options.txt
--- runtime.patched/doc/options.txt	2009-11-20 13:52:20.810054487 -0800
+++ runtime/doc/options.txt	2009-10-28 13:58:52.000000000 -0700
@@ -1,4 +1,4 @@
-*options.txt*	For Vim version 7.2.  Last change: 2008 Nov 25
+*options.txt*	For Vim version 7.2.  Last change: 2009 Oct 12
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -743,8 +743,8 @@
 	     within a word (initial, medial, final and stand-alone).
 	  b) the enabling of the ability to compose characters
 	  c) the enabling of the required combining of some characters
-	When disabled the character display reverts back to each character's
-	true stand-alone form.
+	When disabled the display shows each character's true stand-alone
+	form.
 	Arabic is a complex language which requires other settings, for
 	further details see |arabic.txt|.
 
@@ -959,7 +959,8 @@
 			{not in Vi}
 	List of directories for the backup file, separated with commas.
 	- The backup file will be created in the first directory in the list
-	  where this is possible.
+	  where this is possible.  The directory must exist, Vim will not
+	  create it for you.
 	- Empty means that no backup file will be created ('patchmode' is
 	  impossible!).  Writing may fail because of this.
 	- A directory "." means to put the backup file in the same directory
@@ -1143,7 +1144,7 @@
 	Some applications use the BOM to recognize the encoding of the file.
 	Often used for UCS-2 files on MS-Windows.  For other applications it
 	causes trouble, for example: "cat file1 file2" makes the BOM of file2
-	appear halfway the resulting file.
+	appear halfway the resulting file.  Gcc doesn't accept a BOM.
 	When Vim reads a file and 'fileencodings' starts with "ucs-bom", a
 	check for the presence of the BOM is done and 'bomb' set accordingly.
 	Unless 'binary' is set, it is removed from the first line, so that you
@@ -2386,6 +2387,10 @@
 	This is specified with 'fileencoding'.  The conversion is done with
 	iconv() or as specified with 'charconvert'.
 
+	If you need to know whether 'encoding' is a multi-byte encoding, you
+	can use: >
+		if has("multi_byte_encoding")
+<
 	Normally 'encoding' will be equal to your current locale.  This will
 	be the default if Vim recognizes your environment settings.  If
 	'encoding' is not set to the current locale, 'termencoding' must be
@@ -2453,7 +2458,8 @@
 			{not in Vi}
 	External program to use for "=" command.  When this option is empty
 	the internal formatting functions are used; either 'lisp', 'cindent'
-	or 'indentexpr'.
+	or 'indentexpr'.  When Vim was compiled without internal formatting,
+	the "indent" program is used.
 	Environment variables are expanded |:set_env|.  See |option-backslash|
 	about including spaces and backslashes.
 	This option cannot be set from a |modeline| or in the |sandbox|, for
@@ -2550,13 +2556,17 @@
 			{not in Vi}
 	Sets the character encoding for the file of this buffer.
 	When 'fileencoding' is different from 'encoding', conversion will be
-	done when reading and writing the file.
+	done when writing the file.  For reading see below.
 	When 'fileencoding' is empty, the same value as 'encoding' will be
 	used (no conversion when reading or writing a file).
+	Conversion will also be done when 'encoding' and 'fileencoding' are
+	both a Unicode encoding and 'fileencoding' is not utf-8.  That's
+	because internally Unicode is always stored as utf-8.
 		WARNING: Conversion can cause loss of information!  When
-		'encoding' is "utf-8" conversion is most likely done in a way
-		that the reverse conversion results in the same text.  When
-		'encoding' is not "utf-8" some characters may be lost!
+		'encoding' is "utf-8" or another Unicode encoding, conversion
+		is most likely done in a way that the reverse conversion
+		results in the same text.  When 'encoding' is not "utf-8" some
+		characters may be lost!
 	See 'encoding' for the possible values.  Additionally, values may be
 	specified that can be handled by the converter, see
 	|mbyte-conversion|.
@@ -2843,6 +2853,8 @@
 
 	The expression may be evaluated in the |sandbox|, see
 	|sandbox-option|.
+	This option can't be set from a |modeline| when the 'diff' option is
+	on.
 
 	It is not allowed to change text or jump to another window while
 	evaluating 'foldexpr' |textlock|.
@@ -3244,8 +3256,13 @@
 
 	For the GTK+ 2 GUI the font name looks like this: >
 	    :set guifont=Andale\ Mono\ 11
-<	That's all.  XLFDs are no longer accepted.
-
+<	That's all.  XLFDs are not used.  For Chinese this is reported to work
+	well: >
+	    if has("gui_gtk2")
+	      set guifont=Bitstream\ Vera\ Sans\ Mono\ 12,Fixed\ 12
+	      set guifontwide=Microsoft\ Yahei\ 12,WenQuanYi\ Zen\ Hei\ 12
+	    endif
+<
 	For Mac OSX you can use something like this: >
 	    :set guifont=Monaco:h10
 <	Also see 'macatsui', it can help fix display problems.
@@ -3491,7 +3508,9 @@
 	When nonempty describes the text to use in a tooltip for the GUI tab
 	pages line.  When empty Vim will use a default tooltip.
 	This option is otherwise just like 'guitablabel' above.
-
+	You can include a line break.  Simplest method is to use |:let|: >
+		:let &guitabtooltip = "line one\nline two"
+<
 
 						*'helpfile'* *'hf'*
 'helpfile' 'hf'		string	(default (MSDOS)  "$VIMRUNTIME\doc\help.txt"
@@ -3776,7 +3795,7 @@
 	English characters directly, e.g., when it's used to type accented
 	characters with dead keys.
 
-				*'imdisable'* *'imd'* *'nodisable'* *'noimd'*
+				*'imdisable'* *'imd'* *'noimdisable'* *'noimd'*
 'imdisable' 'imd'	boolean (default off, on for some systems (SGI))
 			global
 			{not in Vi}
@@ -4092,8 +4111,8 @@
 	displayed as <xx>, with the hexadecimal value of the byte.
 	When 'display' contains "uhex" all unprintable characters are
 	displayed as <xx>.
-	The NonText highlighting will be used for unprintable characters.
-	|hl-NonText|
+	The SpecialKey highlighting will be used for unprintable characters.
+	|hl-SpecialKey|
 
 	Multi-byte characters 256 and above are always included, only the
 	characters up to 255 are specified with this option.  When a character
@@ -4330,10 +4349,17 @@
 						*'list'* *'nolist'*
 'list'			boolean	(default off)
 			local to window
-	List mode: Show tabs as CTRL-I, show end of line with $.  Useful to
-	see the difference between tabs and spaces and for trailing blanks.
-	Note that this will also affect formatting (set with 'textwidth' or
-	'wrapmargin') when 'cpoptions' includes 'L'.  See 'listchars' for
+	List mode: Show tabs as CTRL-I is displayed, display $ after end of
+	line.  Useful to see the difference between tabs and spaces and for
+	trailing blanks.  Further changed by the 'listchars' option.
+
+	The cursor is displayed at the start of the space a Tab character
+	occupies, not at the end as usual in Normal mode.  To get this cursor
+	position while displaying Tabs with spaces, use: >
+		:set list lcs=tab\ \ 
+<
+	Note that list mode will also affect formatting (set with 'textwidth'
+	or 'wrapmargin') when 'cpoptions' includes 'L'.  See 'listchars' for
 	changing the way tabs are displayed.
 
 						*'listchars'* *'lcs'*
@@ -4516,15 +4542,15 @@
 			{not in Vi}
 	Maximum amount of memory (in Kbyte) to use for one buffer.  When this
 	limit is reached allocating extra memory for a buffer will cause
-	other memory to be freed.  Maximum value 2000000.  Use this to work
-	without a limit.  Also see 'maxmemtot'.
+	other memory to be freed.  The maximum usable value is about 2000000.
+	Use this to work without a limit.  Also see 'maxmemtot'.
 
 						*'maxmempattern'* *'mmp'*
 'maxmempattern' 'mmp'	number	(default 1000)
 			global
 			{not in Vi}
 	Maximum amount of memory (in Kbyte) to use for pattern matching.
-	Maximum value 2000000.  Use this to work without a limit.
+	The maximum value is about 2000000.  Use this to work without a limit.
 							*E363*
 	When Vim runs into the limit it gives an error message and mostly
 	behaves like CTRL-C was typed.
@@ -4539,9 +4565,11 @@
 				 available)
 			global
 			{not in Vi}
-	Maximum amount of memory (in Kbyte) to use for all buffers together.
-	Maximum value 2000000.  Use this to work without a limit.  Also see
-	'maxmem'.
+	Maximum amount of memory in Kbyte to use for all buffers together.
+	The maximum usable value is about 2000000 (2 Gbyte).  Use this to work
+	without a limit.  On 64 bit machines higher values might work.  But
+	hey, do you really need more than 2 Gbyte for text editing?
+	Also see 'maxmem'.
 
 						*'menuitems'* *'mis'*
 'menuitems' 'mis'	number	(default 25)
@@ -5607,8 +5635,8 @@
 	   winsize	window sizes
 
 	Don't include both "curdir" and "sesdir".
-	When "curdir" nor "sesdir" is included, file names are stored with
-	absolute paths.
+	When neither "curdir" nor "sesdir" is included, file names are stored
+	with absolute paths.
 	"slash" and "unix" are useful on Windows when sharing session files
 	with Unix.  The Unix version of Vim cannot source dos format scripts,
 	but the Windows version of Vim can source unix format scripts.
@@ -5906,7 +5934,8 @@
 	In Visual mode the size of the selected area is shown:
 	- When selecting characters within a line, the number of characters.
 	- When selecting more than one line, the number of lines.
-	- When selecting a block, the size in screen characters: linesxcolumns.
+	- When selecting a block, the size in screen characters:
+	  {lines}x{columns}.
 	NOTE: This option is set to the Vi default value when 'compatible' is
 	set and to the Vim default value when 'compatible' is reset.
 
@@ -6641,8 +6670,9 @@
 	of '2' in the "!_TAG_FILE_SORTED" line for this.  A tag file can be
 	case-fold sorted with the -f switch to "sort" in most unices, as in
 	the command: "sort -f -o tags tags".  For "Exuberant ctags" version
-	5.3 or higher the -f or --fold-case-sort switch can be used for this
-	as well.  Note that case must be folded to uppercase for this to work.
+	5.x or higher (at least 5.5) the --sort=foldcase switch can be used
+	for this as well.  Note that case must be folded to uppercase for this
+	to work.
 
 	When 'tagbsearch' is off, tags searching is slower when a full match
 	exists, but faster when no full match exists.  Tags in unsorted tags
@@ -7252,9 +7282,9 @@
 
 				*'viminfo'* *'vi'* *E526* *E527* *E528*
 'viminfo' 'vi'		string	(Vi default: "", Vim default for MS-DOS,
-				   Windows and OS/2: '20,<50,s10,h,rA:,rB:,
-				   for Amiga: '20,<50,s10,h,rdf0:,rdf1:,rdf2:
-				   for others: '20,<50,s10,h)
+				   Windows and OS/2: '100,<50,s10,h,rA:,rB:,
+				   for Amiga: '100,<50,s10,h,rdf0:,rdf1:,rdf2:
+				   for others: '100,<50,s10,h)
 			global
 			{not in Vi}
 			{not available when compiled without the  |+viminfo|
@@ -7727,6 +7757,8 @@
 		:set sidescroll=5
 		:set listchars+=precedes:<,extends:>
 <	See 'sidescroll', 'listchars' and |wrap-off|.
+	This option can't be set from a |modeline| when the 'diff' option is
+	on.
 
 						*'wrapmargin'* *'wm'*
 'wrapmargin' 'wm'	number	(default 0)
diff -Nur runtime.patched/doc/os_390.txt runtime/doc/os_390.txt
--- runtime.patched/doc/os_390.txt	2008-08-09 07:22:59.000000000 -0700
+++ runtime/doc/os_390.txt	2009-01-14 12:15:18.000000000 -0800
@@ -1,4 +1,4 @@
-*os_390.txt*    For Vim version 7.2.  Last change: 2005 Mar 29
+*os_390.txt*    For Vim version 7.2.  Last change: 2008 Dec 17
 
 
 		  VIM REFERENCE MANUAL	  by Ralf Schandl
@@ -282,7 +282,7 @@
 
 5.6-390c:
   I grepped through the source and examined every spot with a character
-  involved in a operation (+-).  I hope I now found all EBCDIC/ASCII
+  involved in an operation (+-).  I hope I now found all EBCDIC/ASCII
   stuff, but ....
 
   Fixed:
@@ -311,7 +311,7 @@
 	- added special compiler and linker options if building with X11
     - configure:
 	- after created via autoconf hand-edited it to make the test for
-	  ICEConnectionNumber work.  This is a autoconf problem.  OS/390 UNIX
+	  ICEConnectionNumber work.  This is an autoconf problem.  OS/390 UNIX
 	  needs -lX11 for this.
     - Makefile
 	- Don't include the lib directories ('-L...') into the variable
diff -Nur runtime.patched/doc/os_vms.txt runtime/doc/os_vms.txt
--- runtime.patched/doc/os_vms.txt	2008-08-09 07:23:00.000000000 -0700
+++ runtime/doc/os_vms.txt	2009-10-28 13:57:15.000000000 -0700
@@ -1,4 +1,4 @@
-*os_vms.txt*    For Vim version 7.2.  Last change: 2006 Nov 18
+*os_vms.txt*    For Vim version 7.2.  Last change: 2009 Oct 28
 
 
 		  VIM REFERENCE MANUAL
@@ -139,9 +139,9 @@
 	define/nolog VIMRUNTIME device:[path.vim.vim60]
 	define/nolog TMP	device:[path.tmp]
 
-to get vim.exe to find its document, filetype, and syntax files, and to
+To get vim.exe to find its document, filetype, and syntax files, and to
 specify a directory where temporary files will be located.  Copy the "runtime"
-subdirectory of the vim distribution to vimruntime.
+subdirectory of the Vim distribution to vimruntime.
 
 Logicals $VIMRUNTIME and $TMP are optional.
 
@@ -217,7 +217,7 @@
 	$ define VIM "<server_name>[""user password""]::device:<path>"
 	$ vi*m :== "mcr VIM:VIM.EXE"
 
-as for example: >
+As for example: >
 
 	$ define VIM "PLUTO::RF10:[UTIL.VIM]"
 	$ define VIM "PLUTO""ZAY mypass""::RF10:[UTIL.VIM]" ! if passwd required
@@ -234,7 +234,7 @@
 	$ define/nolog/sys VIM device:<path>
 	$ define/nolog/sys TMP SYS$SCRATCH
 
-and to the SYS$STARTUP:SYLOGIN.COM >
+And to the SYS$STARTUP:SYLOGIN.COM >
 
 	$ vi*m :== mcr VIM:VIM.EXE
 	$ gv*im:== spawn/nowait/input=NLA0 mcr VIM:VIM.EXE -g -GEOMETRY 80x40
@@ -312,7 +312,7 @@
 
 8. Useful notes						*vms-notes*
 
-8.1 backspace/delete
+8.1 Backspace/delete
 8.2 Filters
 8.3 VMS file version numbers
 8.4 Directory conversion
@@ -326,8 +326,10 @@
 8.12 diff-mode
 8.13 Allow '$' in C keywords
 8.14 VIMTUTOR for beginners
+8.15 Slow start in console mode issue 
+8.16 Common VIM directory - different architectures 
 
-8.1 backspace/delete
+8.1 Backspace/delete
 
 There are backspace/delete key inconsistencies with VMS.
 :fixdel doesn't do the trick, but the solution is: >
@@ -394,7 +396,7 @@
 
 	vi "<server>""username passwd""::<device>:<path><filename>;<version>"
 
-example: >
+Example: >
 	vi "pluto""zay passwd""::RF10:<USER.ZAY.WORK>TEST.C;1"
 
 Note: syntax is very important, otherwise VMS will recognize more parameters
@@ -416,7 +418,7 @@
 	$ end:
 
 Note: Never use it in a clustered environment (you do not need it), loading
-could be very-very slow, but even faster then a local Emacs. :-)
+could be very-very slow, but even faster than a local Emacs. :-)
 
 (Zoltan Arpadffy, Vim 5.6)
 
@@ -573,12 +575,12 @@
 
 8.12 diff-mode
 
-Vim 6.0 and higher supports vim diff-mode (See |new-diff-mode|, |diff-mode|
+Vim 6.0 and higher supports Vim diff-mode (See |new-diff-mode|, |diff-mode|
 and |08.7|).  This uses the external program 'diff' and expects a Unix-like
 output format from diff.  The standard VMS diff has a different output
-format.  To use vim on VMS in diff-mode, you need to:
+format.  To use Vim on VMS in diff-mode, you need to:
     1 Install a Unix-like diff program, e.g. GNU diff
-    2 Tell vim to use the Unix-like diff for diff-mode.
+    2 Tell Vim to use the Unix-like diff for diff-mode.
 
 You can download GNU diff from the VIM-VMS website, it is one of the GNU
 tools in http://www.polarhome.com/vim/files/gnu_tools.zip.  I suggest to
@@ -592,7 +594,7 @@
 
    GDIFF :==     $GNU:DIFF.EXE
 
-Now you need to tell vim to use the new diff program.  Take the example
+Now you need to tell Vim to use the new diff program.  Take the example
 settings from |diff-diffexpr| and change the call to the external diff
 program to the new diff on VMS.  Add this to your .vimrc file: >
 
@@ -613,7 +615,7 @@
 	endfunction
       endif
 
-You can now use vim in diff-mode, e.g. to compare two files in read-only
+You can now use Vim in diff-mode, e.g. to compare two files in read-only
 mode: >
 
     $ VIM -D/R <FILE1> <FILE2>
@@ -636,7 +638,7 @@
 8.13 Allow '$' in C keywords
 
 DEC C uses many identifiers with '$' in them.  This is not allowed in ANSI C,
-and vim recognises the '$' as the end of the identifier.  You can change this
+and Vim recognises the '$' as the end of the identifier.  You can change this
 with the |iskeyword|command.
 Add this command to your .vimrc file: >
 
@@ -663,12 +665,130 @@
 
 (Thomas.R.Wyant III, Vim 6.1)
 
+8.14 Slow start in console mode issue
+
+As GUI/GTK Vim works equally well in console mode, many administrators
+deploy those executables system wide.
+Unfortunately, on a remote slow connections GUI/GTK executables behave rather
+slow when user wants to run Vim just in the console mode - because of X environment detection timeout.
+
+Luckily, there is a simple solution for that. Administrators need to deploy
+both GUI/GTK build and just console build executables, like below: >
+
+    |- vim72
+    |----- doc
+    |----- syntax        
+       vimrc    (system rc files)
+       gvimrc
+       gvim.exe (the renamed GUI or GTK built vim.exe)      
+       vim.exe  (the console only executable) 
+
+Define system symbols like below in for ex in LOGIN.COM or SYLOGIN.COM: >
+
+	$ define/nolog VIM RF10:[UTIL.VIM72] ! where you VIM directory is
+	$ vi*m  :== mcr VIM:VIM.EXE
+	$ gvi*m :== mcr VIM:GVIM.EXE
+	$ ! or you can try to spawn with
+	$ gv*im :== spawn/nowait/input=NLA0 mcr VIM:GVIM.EXE -g -GEOMETRY 80x40
+
+
+Like this, users that do not have X environment and want to use Vim just in 
+console mode can avoid performance problems.
+
+(Zoltan Arpadffy, Vim 7.2)
+
+8.15 Common VIM directory - different architectures
+
+In a cluster that contains nodes with different architectures like below:
+
+$show cluster
+View of Cluster from system ID 11655  node: TOR                                                                     18-AUG-2008 11:58:31
++---------------------------------+
+�        SYSTEMS        � MEMBERS �
++-----------------------+---------�
+�  NODE  �   SOFTWARE   �  STATUS �
++--------+--------------+---------�
+� TOR    � VMS V7.3-2   � MEMBER  �
+� TITAN2 � VMS V8.3     � MEMBER  �
+� ODIN   � VMS V7.3-2   � MEMBER  �
++---------------------------------+
+
+It is convenient to have a common VIM directory but execute different
+executables. 
+There are more solutions for this problem:
+
+Solution 1.  All executables in the same directory with different names
+This is easily done with the following script that can be added
+to the login.com or sylogin.com: >
+
+	$ if f$getsyi("NODE_HWTYPE") .eqs. "VAX"
+	$ then
+	$       say "VAX platform"
+	$       vi*m:== mcr vim:VIM.EXE_VAX
+	$ endif
+	$ if f$getsyi("NODE_HWTYPE") .eqs. "ALPH"
+	$ then
+	$       say "ALPHA platform"
+	$       vi*m :== mcr vim:VIM.EXE_AXP
+	$ endif
+	$ if f$getsyi("ARCH_NAME") .eqs. "IA64"
+	$ then
+	$      say "IA64 platform"
+	$      vi*m :== mcr vim:VIM.EXE_IA64
+	$ endif
+
+Solution 2.  Different directories: >
+
+	$ if f$getsyi("NODE_HWTYPE") .eqs. "VAX"
+	$ then
+	$       say "VAX platform"
+	$       define/nolog VIM RF10:[UTIL.VAX_EXE] ! VAX executables
+	$ endif
+	$ if f$getsyi("NODE_HWTYPE") .eqs. "ALPH"
+	$ then
+	$       say "ALPHA platform"
+	$       define/nolog VIM RF10:[UTIL.AXP_EXE] ! AXP executables
+	$ endif
+	$ if f$getsyi("ARCH_NAME") .eqs. "IA64"
+	$ then
+	$      say "IA64 platform"
+	$      define/nolog VIM RF10:[UTIL.IA64_EXE] ! IA64 executables
+	$ endif
+        $! VIMRUNTIME must be defined in order to find runtime files
+	$ define/nolog VIMRUNTIME RF10:[UTIL.VIM72]
+
+A good example for this approach is the [GNU]gnu_tools.com script from
+GNU_TOOLS.ZIP package downloadable from http://www.polarhome.com/vim/
+
+(Zoltan Arpadffy, Vim 7.2)
+
 ==============================================================================
 
 9. VMS related changes					*vms-changes*
 
-Version 7
+Recent changes
+- The following plugins are included into VMS runtime: 
+  genutils 2.4, multiselect 2.2, multvals 3.1, selectbuf 4.3,
+  bufexplorer 7.1.7, taglist 4.5
+- minor changes in vimrc (just in VMS runtime) 
+- make_vms.mms - HUGE model is the default
+- [TESTDIR]make_vms.mms include as many tests possible
+- modify test30 and test54 for VMS
+- enable FLOAT feature in VMS port
+- os_vms.txt updated  
+
+Version 7.2 (2008 Aug 9)
+- VCF files write corrected
+- CTAGS 5.7 included
+- corrected make_vms.mms (on VAX gave syntax error) 
+
+Version 7.1 (2007 Jun 15)
+- create TAGS file from menu 
+
+Version 7 (2006 May 8)
 - Improved low level char input (affects just console mode)
+- Fixed plugin bug
+- CTAGS 5.6 included
 
 Version 6.4 (2005 Oct 15)
 - GTKLIB and Vim build on IA64
@@ -806,6 +926,7 @@
 
 OpenVMS documentation and executables are maintained by:
 Zoltan Arpadffy <[email protected]>
+OpenVMS Vim page: http://www.polarhome.com/vim/
 
 This document uses parts and remarks from earlier authors and contributors
 of OS_VMS.TXT:
diff -Nur runtime.patched/doc/pattern.txt runtime/doc/pattern.txt
--- runtime.patched/doc/pattern.txt	2008-08-09 07:23:00.000000000 -0700
+++ runtime/doc/pattern.txt	2008-12-01 12:32:54.000000000 -0800
@@ -1,4 +1,4 @@
-*pattern.txt*   For Vim version 7.2.  Last change: 2008 Jul 16
+*pattern.txt*   For Vim version 7.2.  Last change: 2008 Nov 18
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -32,12 +32,13 @@
 			|linewise|.
 
 							*/<CR>*
-/<CR>			Search forward for the [count]'th latest used
-			pattern |last-pattern| with latest used |{offset}|.
-
-//{offset}<CR>		Search forward for the [count]'th latest used
-			pattern |last-pattern| with new |{offset}|.  If
-			{offset} is empty no offset is used.
+/<CR>			Search forward for the [count]'th occurrence of the
+			latest used pattern |last-pattern| with latest used
+			|{offset}|.
+
+//{offset}<CR>		Search forward for the [count]'th occurrence of the
+			latest used pattern |last-pattern| with new
+			|{offset}|.  If {offset} is empty no offset is used.
 
 							*?*
 ?{pattern}[?]<CR>	Search backward for the [count]'th previous
@@ -48,12 +49,13 @@
 			down |linewise|.
 
 							*?<CR>*
-?<CR>			Search backward for the [count]'th latest used
-			pattern |last-pattern| with latest used |{offset}|.
-
-??{offset}<CR>		Search backward for the [count]'th latest used
-			pattern |last-pattern| with new |{offset}|.  If
-			{offset} is empty no offset is used.
+?<CR>			Search backward for the [count]'th occurrence of the
+			latest used pattern |last-pattern| with latest used
+			|{offset}|.
+
+??{offset}<CR>		Search backward for the [count]'th occurrence of the
+			latest used pattern |last-pattern| with new
+			|{offset}|.  If {offset} is empty no offset is used.
 
 							*n*
 n			Repeat the latest "/" or "?" [count] times.
@@ -507,7 +509,7 @@
 |/\Z|	\Z	\Z	ignore differences in Unicode "combining characters".
 			Useful when searching voweled Hebrew or Arabic text.
 
-|/\%d|	\%d	\%d	match specified decimal character (eg \%d123
+|/\%d|	\%d	\%d	match specified decimal character (eg \%d123)
 |/\%x|	\%x	\%x	match specified hex character (eg \%x2a)
 |/\%o|	\%o	\%o	match specified octal character (eg \%o040)
 |/\%u|	\%u	\%u	match specified multibyte character (eg \%u20ac)
@@ -794,7 +796,11 @@
 						*/\%V*
 \%V	Match inside the Visual area.  When Visual mode has already been
 	stopped match in the area that |gv| would reselect.
-	Only works for the current buffer.
+	This is a |/zero-width| match.  To make sure the whole pattern is
+	inside the Visual area put it at the start and end of the pattern,
+	e.g.: >
+		/\%Vfoo.*bar\%V
+<	Only works for the current buffer.
 
 						*/\%#* *cursor-position*
 \%#	Matches with the cursor position.  Only works when matching in a
@@ -877,10 +883,13 @@
 	this will clearly show when the match is updated or not.
 	To match the text up to column 17: >
 		/.*\%17v
-<	Column 17 is not included, because that's where the "\%17v" matches,
-	and since this is a |/zero-width| match, column 17 isn't included in
-	the match.  This does the same: >
-		/.*\%<18v
+<	Column 17 is included, because that's where the "\%17v" matches,
+	even though this is a |/zero-width| match.  Adding a dot to match the
+	next character has the same result: >
+		/.*\%17v.
+<	This command does the same thing, but also matches when there is no
+	character in column 17: >
+		/.*\%<18v.
 <
 
 Character classes: {not in Vi}
diff -Nur runtime.patched/doc/pi_getscript.txt runtime/doc/pi_getscript.txt
--- runtime.patched/doc/pi_getscript.txt	2008-08-09 07:23:00.000000000 -0700
+++ runtime/doc/pi_getscript.txt	2009-07-26 04:45:18.000000000 -0700
@@ -76,7 +76,7 @@
 ==============================================================================
 3. GetLatestVimScripts Usage				*glvs-usage* *:GLVS*
 
-Unless its been defined elsewhere, >
+Unless it's been defined elsewhere, >
 	:GLVS
 will invoke GetLatestVimScripts().  If some other plugin has defined that
 command, then you may type
@@ -136,7 +136,7 @@
 out-of-date.
 
 The SourceID is extracted by GetLatestVimScripts from the script's page on
-vim.sf.net; whenever its greater than the one stored in the
+vim.sf.net; whenever it's greater than the one stored in the
 GetLatestVimScripts.dat file, the script will be downloaded
 (see |GetLatestVimScripts_dat|).
 
@@ -194,7 +194,7 @@
 are, then you may include :AutoInstall: at the start of "yourscriptname".
 
 GetLatestVimScripts commands for those scripts are then appended, if not
-already present, to the user's GetLatest/GetLatestVimScripts.dat file.  Its a
+already present, to the user's GetLatest/GetLatestVimScripts.dat file.  It's a
 relatively painless way to automate the acquisition of any scripts your
 plugins depend upon.
 
@@ -337,7 +337,7 @@
 
 v31 Jun 29, 2008 : * (Bill McCarthy) fixed having hls enabled with getscript
 v30 Jun 13, 2008 : * GLVS now checks for existence of fnameescape() and will
-		     issue an error message if its not supported
+		     issue an error message if it's not supported
 v29 Jan 07, 2008 : * Bram M pointed out that cpo is a global option and that
                      getscriptPlugin.vim was setting it but not restoring it.
 v28 Jan 02, 2008 : * improved shell quoting character handling, cygwin
diff -Nur runtime.patched/doc/pi_netrw.txt runtime/doc/pi_netrw.txt
--- runtime.patched/doc/pi_netrw.txt	2008-08-09 07:23:00.000000000 -0700
+++ runtime/doc/pi_netrw.txt	2009-07-26 04:41:19.000000000 -0700
@@ -1,4 +1,4 @@
-*pi_netrw.txt*  For Vim version 7.2.  Last change: 2008 Aug 08
+*pi_netrw.txt*  For Vim version 7.2.  Last change: 2009 Jan 15
 
 	    -----------------------------------------------------
 	    NETRW REFERENCE MANUAL    by Charles E. Campbell, Jr.
@@ -43,6 +43,7 @@
       Changing To A Predecessor Directory................|netrw-u|
       Changing To A Successor Directory..................|netrw-U|
       Customizing Browsing With A User Function..........|netrw-x|
+      Deleting Bookmarks.................................|netrw-mB|
       Deleting Files Or Directories......................|netrw-D|
       Directory Exploring Commands.......................|netrw-explore|
       Exploring With Stars and Patterns..................|netrw-star|
@@ -80,6 +81,7 @@
       Renaming Files Or Directories......................|netrw-move|
       Reversing Sorting Order............................|netrw-r|
       Selecting Sorting Style............................|netrw-s|
+      Setting Editing Window.............................|netrw-C|
 10. Problems and Fixes...................................|netrw-problems|
 11. Debugging Netrw Itself...............................|netrw-debug|
 12. History..............................................|netrw-history|
@@ -159,16 +161,33 @@
 
 	Protocol  Variable	    Default Value
 	--------  ----------------  -------------
-	   dav:    *g:netrw_dav_cmd*  = "cadaver"
-	 fetch:  *g:netrw_fetch_cmd*  = "fetch -o"    if fetch is available
-	   ftp:    *g:netrw_ftp_cmd*  = "ftp"
-	  http:   *g:netrw_http_cmd*  = "curl -o"     if     curl  is available
-	  http:    g:netrw_http_cmd   = "wget -q -O"  elseif wget  is available
-          http:    g:netrw_http_cmd   = "fetch -o"    elseif fetch is available
-	   rcp:    *g:netrw_rcp_cmd*  = "rcp"
-	 rsync:  *g:netrw_rsync_cmd*  = "rsync -a"
-	   scp:    *g:netrw_scp_cmd*  = "scp -q"
-	  sftp:   *g:netrw_sftp_cmd*  = "sftp"
+	   dav:  *g:netrw_dav_cmd*   = "cadaver"     if cadaver is executable
+	   dav:   g:netrw_dav_cmd    = "curl -o"     elseif curl is available
+	 fetch:  *g:netrw_fetch_cmd* = "fetch -o"    if fetch is available
+	   ftp:  *g:netrw_ftp_cmd*   = "ftp"
+	  http:  *g:netrw_http_cmd*  = "elinks"     if   elinks  is available
+	  http:   g:netrw_http_cmd   = "links"      elseif links is available
+	  http:   g:netrw_http_cmd   = "curl"       elseif curl  is available
+	  http:   g:netrw_http_cmd   = "wget"       elseif wget  is available
+          http:   g:netrw_http_cmd   = "fetch"      elseif fetch is available
+	   rcp:  *g:netrw_rcp_cmd*   = "rcp"
+	 rsync:  *g:netrw_rsync_cmd* = "rsync -a"
+	   scp:  *g:netrw_scp_cmd*   = "scp -q"
+	  sftp:  *g:netrw_sftp_cmd*  = "sftp"
+
+	*g:netrw_http_xcmd* : the option string for http://... protocols are
+	specified via this variable and may be independently oveerridden.
+
+		    elinks : "-dump >"
+		    links  : "-dump >"
+		    curl   : "-o"
+		    wget   : "-q -O"
+		    fetch  : "-o"
+
+	For example, if your system has elinks but you want to see the html
+	source in detail rather than a text rendering thereof, you may wish
+	to have  let g:netrw_http_xcmd= "-source >" in your .vimrc.
+
 
 READING						*netrw-read* *netrw-nread* {{{2
 
@@ -241,7 +260,7 @@
 		:e ftp://[user]@hostname/path/
 <
 	For remote directories (ie. those using scp or ftp), that trailing
-	"/" is necessary (it tells netrw that its to treat it as a directory
+	"/" is necessary (it tells netrw that it's to treat it as a directory
 	to browse instead of a file to download).
 
 	However, the Nread command can also be used to accomplish this:
@@ -278,6 +297,15 @@
  *b:netrw_lastfile*	last file Network-read/written retained on a per-buffer
 			basis		(supports plain :Nw )
 
+ *g:netrw_chgwin*	specifies a window number where file edits will take
+			place.  (also see |netrw-C|)
+			(default) not defined
+
+ *g:Netrw_funcref*	specifies a function to be called when netrw edits
+			a file.  The file is first edited, and then the
+			function reference (|Funcref|) is called.
+			(default) not defined
+
  *g:netrw_ftp*		if it doesn't exist, use default ftp
 			=0 use default ftp		       (uid password)
 			=1 use alternate ftp method	  (user uid password)
@@ -317,6 +345,13 @@
  *g:netrw_scpport*      = "-P" : option to use to set port for scp
  *g:netrw_sshport*      = "-p" : option to use to set port for ssh
 
+ *g:netrw_sepchr*	=\0xff
+			=\0x01 for enc == euc-jp (and perhaps it should be for
+			                          others, too, please let me
+						  know)
+			Separates priority codes from filenames internally.
+			See |netrw-p12|.
+
   *g:netrw_silent*	=0 : transfers done normally
 			=1 : transfers done silently
 
@@ -678,7 +713,8 @@
                                                   read via ftp automatically
                                                   transformed however they wish
                                                   by NetReadFixup()
-    g:netrw_dav_cmd    variable   ="cadaver"
+    g:netrw_dav_cmd    variable   ="cadaver"      if cadaver  is executable
+    g:netrw_dav_cmd    variable   ="curl -o"      elseif curl is executable
     g:netrw_fetch_cmd  variable   ="fetch -o"     if fetch is available
     g:netrw_ftp_cmd    variable   ="ftp"
     g:netrw_http_cmd   variable   ="fetch -o"     if      fetch is available
@@ -782,7 +818,7 @@
 
 ==============================================================================
 9. Browsing		*netrw-browsing* *netrw-browse* *netrw-help* {{{1
-   			*netrw-browser*  *netrw-dir*    *netrw-list*
+			*netrw-browser*  *netrw-dir*    *netrw-list*
 
 INTRODUCTION TO BROWSING			*netrw-intro-browse* {{{2
 	(Quick References: |netrw-quickmaps| |netrw-quickcoms|)
@@ -818,7 +854,7 @@
 
 	vim ftp://ftp.home.vim.org/pub/vim/
 <
-For local directories, the trailing slash is not required.  Again, because its
+For local directories, the trailing slash is not required.  Again, because it's
 easy to miss: to browse remote directories, the url must terminate with a
 slash!
 
@@ -838,6 +874,18 @@
 
 See |netrw-browse-cmds| for all the things you can do with netrw!
 
+			*netrw-getftype* *netrw-filigree* *netrw-ftype*
+The |getftype()| function is used to append a bit of filigree to indicate
+filetype to locally listed files:
+
+	directory  : /
+	executable : *
+	fifo       : |
+	links      : @
+	sockets    : =
+
+The filigree also affects the |g:netrw_sort_sequence|.
+
 
 QUICK HELP						*netrw-quickhelp* {{{2
                        (Use ctrl-] to select a topic)~
@@ -876,6 +924,7 @@
 		hiding (suppress display of files matching g:netrw_list_hide)
 		showing (display only files which match g:netrw_list_hide)
 	   c	Make browsing directory the current directory        |netrw-c|
+	   C	Setting the editing window                           |netrw-C|
 	   d	Make a directory                                     |netrw-d|
 	   D	Attempt to remove the file(s)/directory(ies)         |netrw-D|
 	   gb	Go to previous bookmarked directory                  |netrw-gb|
@@ -899,7 +948,7 @@
 	   mx	Apply arbitrary shell command to marked files        |netrw-mx|
 	   mz	Compress/decompress marked files                     |netrw-mz|
 	   o	Enter the file/directory under the cursor in a new   |netrw-o|
-	   	browser window.  A horizontal split is used.
+		browser window.  A horizontal split is used.
 	   O	Obtain a file specified by cursor                    |netrw-O|
 	   p	Preview the file                                     |netrw-p|
 	   P	Browse in the previously used window                 |netrw-P|
@@ -912,7 +961,7 @@
 	   u	Change to recently-visited directory                 |netrw-u|
 	   U	Change to subsequently-visited directory             |netrw-U|
 	   v	Enter the file/directory under the cursor in a new   |netrw-v|
-	   	browser window.  A vertical split is used.
+		browser window.  A vertical split is used.
 	   x	View file with an associated program                 |netrw-x|
 
 	   %	Open a new file in netrw's current directory         |netrw-%|
@@ -929,7 +978,7 @@
 		         * the user doesn't already have a <2-leftmouse> mapping
 			   defined before netrw is autoloaded,
 			then a double clicked leftmouse button will return
-			to the netrw browser window.
+			to the netrw browser window.  See |g:netrw_retmap|.
 	<s-leftmouse>	(gvim only) like mf, will mark files
 
 				*netrw-quickcom* *netrw-quickcoms*
@@ -946,13 +995,18 @@
      :Vexplore[!] [dir] Vertical Split & Explore...............|netrw-explore|
 
 BOOKMARKING A DIRECTORY	*netrw-mb* *netrw-bookmark* *netrw-bookmarks* {{{2
+
 One may easily "bookmark" a directory by using >
 
-	{cnt}mb
+	mb
 <
-Any count may be used.  One may use viminfo's "!" option (|'viminfo'|) to
-retain bookmarks between vim sessions.  See |netrw-gb| for how to return
-to a bookmark and |netrw-qb| for how to list them.
+Bookmarks are retained in between sesions in a $HOME/.netrwbook file, and are
+kept in sorted order.
+
+Related Topics:
+	|netrw-gb| how to return (go) to a bookmark
+	|netrw-mB| how to delete bookmarks
+	|netrw-qb| how to list bookmarks
 
 
 BROWSING						*netrw-cr* {{{2
@@ -960,7 +1014,7 @@
 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.  
+protocol given in the original read request.
 
   CAVEAT: There are four forms of listing (see |netrw-i|).  Netrw assumes that
   two or more spaces delimit filenames and directory names for the long and
@@ -1019,7 +1073,7 @@
 
 in your <.vimrc>.  (also see |netrw-t| |netrw-v|)
 
-There is only one tree listing buffer; using "o" on a displayed subdirectory 
+There is only one tree listing buffer; using "o" on a displayed subdirectory
 will split the screen, but the same buffer will be shown twice.
 
 Associated setting variables: |g:netrw_alto| |g:netrw_winsize|
@@ -1046,7 +1100,7 @@
 
 in your <.vimrc>.  (also see: |netrw-o| |netrw-t|)
 
-There is only one tree listing buffer; using "v" on a displayed subdirectory 
+There is only one tree listing buffer; using "v" on a displayed subdirectory
 will split the screen, but the same buffer will be shown twice.
 
 Associated setting variable: |g:netrw_altv| |g:netrw_winsize|
@@ -1085,8 +1139,12 @@
 
 	{cnt}gb
 
-Any count may be used to reference any of the bookmarks.  See |netrw-mb| on
-how to bookmark a directory and |netrw-qb| on how to list bookmarks.
+Any count may be used to reference any of the bookmarks.
+
+Related Topics:
+	|netrw-mB| how to delete bookmarks
+	|netrw-mb| how to return to a bookmark
+	|netrw-qb| how to list bookmarks
 
 
 CHANGING TO A PREDECESSOR DIRECTORY	*netrw-u* *netrw-updir* {{{2
@@ -1141,7 +1199,7 @@
     If g:netrw_browsex_viewer == '-', then netrwFileHandler() will be
     invoked first (see |netrw_filehandler|).
 
-  * for Windows 32 or 64, the url and FileProtocolHandler dlls are used.  
+  * for Windows 32 or 64, the url and FileProtocolHandler dlls are used.
   * for Gnome (with gnome-open): gnome-open is used.
   * for KDE (with kfmclient)   : kfmclient is used.
   * for Mac OS X               : open is used.
@@ -1175,11 +1233,11 @@
 contain such characters, netrw will first convert the suffix using the
 following table: >
 
-    @ -> AT       ! -> EXCLAMATION    % -> PERCENT  
-    : -> COLON    = -> EQUAL          ? -> QUESTION 
+    @ -> AT       ! -> EXCLAMATION    % -> PERCENT
+    : -> COLON    = -> EQUAL          ? -> QUESTION
     , -> COMMA    - -> MINUS          ; -> SEMICOLON
-    $ -> DOLLAR   + -> PLUS           ~ -> TILDE    
-<    
+    $ -> DOLLAR   + -> PLUS           ~ -> TILDE
+<
 So, for example: >
 
 	file.rcs,v  ->  NFH_rcsCOMMAv()
@@ -1191,6 +1249,18 @@
 Associated setting variable: |g:netrw_browsex_viewer|
 
 							*netrw-curdir*
+DELETING BOOKMARKS					*netrw-mB* {{{2
+
+To delete a bookmark, use >
+
+	{cnt}mB
+<
+Related Topics:
+	|netrw-gb| how to return (go) to a bookmark
+	|netrw-mb| how to make a bookmark
+	|netrw-qb| how to list bookmarks
+
+
 DELETING FILES OR DIRECTORIES	*netrw-delete* *netrw-D* *netrw-del* {{{2
 
 If files have not been marked with |netrw-mf|:   (local marked file list)
@@ -1232,12 +1302,12 @@
 *netrw-rexplore* *netrw-sexplore* *netrw-texplore* *netrw-vexplore*
 DIRECTORY EXPLORATION COMMANDS  {{{2
 
-     :Explore[!]   [dir]... Explore directory of current file       *:Explore*
-     :Hexplore[!]  [dir]... Horizontal Split & Explore              *:Hexplore*
-     :Rexplore          ... Return to Explorer                      *:Rexplore*
-     :Sexplore[!]  [dir]... Split&Explore directory of current file *:Sexplore*
-     :Texplore     [dir]... Tab              & Explore              *:Texplore*
-     :Vexplore[!]  [dir]... Vertical   Split & Explore              *:Vexplore*
+     :[N]Explore[!]   [dir]... Explore directory of current file     *:Explore*
+     :[N]Hexplore[!]  [dir]... Horizontal Split & Explore            *:Hexplore*
+     :Rexplore             ... Return to Explorer                    *:Rexplore*
+     :[N]Sexplore[!]  [dir]... Split&Explore current file's directory*:Sexplore*
+     :Texplore        [dir]... Tab              & Explore            *:Texplore*
+     :[N]Vexplore[!]  [dir]... Vertical   Split & Explore            *:Vexplore*
 
      Used with :Explore **/pattern : (also see |netrw-starstar|)
      :Nexplore............. go to next matching file                *:Nexplore*
@@ -1259,16 +1329,20 @@
 :Vexplore! [dir] does an :Explore with |:rightbelow| vertical splitting.
 :Texplore  [dir] does a tabnew before generating the browser window
 
-By default, these commands use the current file's directory.  However, one
-may explicitly provide a directory (path) to use.
+By default, these commands use the current file's directory.  However, one may
+explicitly provide a directory (path) to use.
 
-The |g:netrw_winsize| variable also is used, if specified by the user, to
-size Hexplore and Vexplore windows.
+The [N] will override |g:netrw_winsize| to specify the quantity of rows and/or
+columns the new explorer window should have.
+
+Otherwise, the |g:netrw_winsize| variable, if it has been specified by the
+user, is used to control the quantity of rows and/or columns new explorer
+windows should have.
 
 :Rexplore  This command is a little different from the others.  When one
            edits a file, for example by pressing <cr> when atop a file in
 	   a netrw browser window, :Rexplore will return the display to
-	   that of the last netrw browser window.  Its a command version
+	   that of the last netrw browser window.  It's a command version
 	   of <2-leftmouse> (which is only available under gvim and
 	   cooperative terms).
 
@@ -1282,11 +1356,11 @@
 
     */filepat	files in current directory which satisfy filepat
     **/filepat	files in current directory or below which satisfy the
-    		file pattern
+		file pattern
     *//pattern	files in the current directory which contain the
-    		pattern (vimgrep is used)
+		pattern (vimgrep is used)
     **//pattern	files in the current directory or below which contain
-    		the pattern (vimgrep is used)
+		the pattern (vimgrep is used)
 <
 The cursor will be placed on the first file in the list.  One may then
 continue to go to subsequent files on that list via |:Nexplore| or to
@@ -1349,7 +1423,12 @@
 (g:netrw_sort_sequence).  The sorting sequence typically prioritizes the
 name-listing by suffix, although any pattern will do.  Patterns are delimited
 by commas.  The default sorting sequence is (all one line):
->
+
+For Unix: >
+	'[\/]$,\<core\%(\.\d\+\)\=,\.[a-np-z]$,\.h$,\.c$,\.cpp$,*,\.o$,\.obj$,
+	\.info$,\.swp$,\.bak$,\~$'
+<
+Otherwise: >
 	'[\/]$,\.[a-np-z]$,\.h$,\.c$,\.cpp$,*,\.o$,\.obj$,\.info$,
 	\.swp$,\.bak$,\~$'
 <
@@ -1508,11 +1587,15 @@
 
 LISTING BOOKMARKS AND HISTORY		*netrw-qb* *netrw-listbookmark* {{{2
 
-Pressing "qb" (query bookmarks) will list the bookmarked directories and
-directory traversal history (query).
-
-(see |netrw-mb|, |netrw-gb|, |netrw-u|, and |netrw-U|)
+Pressing "qb" (query bookmarks) will list both the bookmarked directories and
+directory traversal history.
 
+Related Topics:
+	|netrw-gb| how to return (go) to a bookmark
+	|netrw-mb| how to make a bookmark
+	|netrw-mB| how to delete bookmarks
+	|netrw-u|  change to a predecessor directory via the history stack
+	|netrw-U|  change to a successor   directory via the history stack
 
 MAKING A NEW DIRECTORY					*netrw-d* {{{2
 
@@ -1695,7 +1778,7 @@
 	    (See |netrw-mf| and |netrw-mr| for how to mark files)
 		      (uses the global marked file list)
 
-The "mt" mapping will apply the command in |g:netrw_ctags| (by default, its
+The "mt" mapping will apply the command in |g:netrw_ctags| (by default, it's
 "ctags") to marked files.  For remote browsing, in order to create a tags file
 netrw will use ssh (see |g:netrw_ssh_cmd|), and so ssh must be available for
 this to work on remote systems.  For your local system, see |ctags| on how to
@@ -1762,8 +1845,8 @@
 
   *g:netrw_browse_split*	when browsing, <cr> will open the file by:
 				=0: re-using the same window
-				=1: horizontally splitting the window first  
-				=2: vertically   splitting the window first  
+				=1: horizontally splitting the window first
+				=2: vertically   splitting the window first
 				=3: open file in new tab
 				=4: act like "P" (ie. open previous window)
 
@@ -1783,6 +1866,16 @@
   *g:netrw_ctags*		="ctags"
 				The default external program used to create tags
 
+  *g:netrw_cursorline*		= 1 (default)
+				will use the |'cursorline'| local setting when
+				|g:netrw_liststyle| ==0 (thin listing) or
+				|g:netrw_liststyle| ==1 (long listing) or
+				|g:netrw_liststyle| ==3 (tree listing)
+				=0: off
+				=2: like ==1, but the wide listing gets both
+				cursorline and |'cursorcolumn'|locally set
+				(ie. doesn't affect the wide listing)
+
   *g:netrw_decompress*		= { ".gz" : "gunzip" ,
 				    ".bz2" : "bunzip2" ,
 				    ".zip" : "unzip" ,
@@ -1815,7 +1908,7 @@
 				versus speed.
 
   *g:netrw_fname_escape*	=' ?&;%'
-  				Used on filenames before remote reading/writing
+				Used on filenames before remote reading/writing
 
   *g:netrw_ftp_browse_reject*	ftp can produce a number of errors and warnings
 				that can show up as "directories" and "files"
@@ -1849,12 +1942,18 @@
 				 otherwise                     "dir"
 
   *g:netrw_glob_escape*		='[]*?`{~$'
-  				These characters in directory names are
+				These characters in directory names are
 				escaped before applying glob()
 
   *g:netrw_hide*		if true, the hiding list is used
 				 default: =0
 
+  *g:netrw_home*		The home directory for where bookmarks and
+				history are saved (as .netrwbook and
+				.netrwhist).
+				 default: the first directory on the
+				         |'runtimepath'|
+
   *g:netrw_keepdir*		=1 (default) keep current directory immune from
 				   the browsing directory.
 				=0 keep the current directory the same as the
@@ -1878,12 +1977,12 @@
 				 default: ""
 
   *g:netrw_localcopycmd*	="cp" Linux/Unix/MacOS/Cygwin
-  				="copy" Windows
+				="copy" Windows
 				Copies marked files (|netrw-mf|) to target
 				directory (|netrw-mt|, |netrw-mc|)
 
   *g:netrw_localmovecmd*	="mv" Linux/Unix/MacOS/Cygwin
-  				="move" Windows
+				="move" Windows
 				Moves marked files (|netrw-mf|) to target
 				directory (|netrw-mt|, |netrw-mm|)
 
@@ -1903,11 +2002,23 @@
   *g:netrw_mkdir_cmd*		command for making a remote directory
 				 default: "ssh USEPORT HOSTNAME mkdir"
 
-  *g:netrw_retmap*		if it exists and is set to one, then
-				<2-leftmouse> will be mapped for easy
+  *g:netrw_retmap*		if it exists and is set to one, then:
+				 * if in a netrw-selected file, AND
+				 * no normal-mode <2-leftmouse> mapping exists,
+				then the <2-leftmouse> will be mapped for easy
 				return to the netrw browser window.
-				(example: click once to select and open
-				a file, double-click to return)
+				 example: click once to select and open a file,
+				          double-click to return.
+
+				Note that one may instead choose to:
+				 * let g:netrw_retmap= 1, AND
+				 * nmap <silent> YourChoice <Plug>NetrwReturn
+				and have another mapping instead of
+				<2-leftmouse> to invoke the return.
+
+				You may also use the |:Rexplore| command to do
+				the same thing.
+
 				  default: =0
 
   *g:netrw_rm_cmd*		command for removing files
@@ -1934,12 +2045,14 @@
 <				 default: ""
 
   *g:netrw_sort_sequence*	when sorting by name, first sort by the
-				comma-separated pattern sequence
+				comma-separated pattern sequence.  Note that
+				the filigree added to indicate filetypes
+				should be accounted for in your pattern.
 				 default: '[\/]$,*,\.bak$,\.o$,\.h$,
 				           \.info$,\.swp$,\.obj$'
 
   *g:netrw_special_syntax*	If true, then certain files will be shown
-  				in special syntax in the browser:
+				in special syntax in the browser:
 
 					netrwBak     : *.bak
 					netrwCompress: *.gz *.bz2 *.Z *.zip
@@ -1974,7 +2087,7 @@
 
 
   *g:netrw_tmpfile_escape*	=' &;'
-  				escape() is applied to all temporary files
+				escape() is applied to all temporary files
 				to escape these characters.
 
   *g:netrw_timefmt*		specify format string to vim's strftime().
@@ -1988,7 +2101,7 @@
 				 default: "%c"
 
   *g:netrw_use_noswf*		netrw normally avoids writing swapfiles
-  				for browser buffers.  However, under some
+				for browser buffers.  However, under some
 				systems this apparently is causing nasty
 				ml_get errors to appear; if you're getting
 				ml_get errors, try putting
@@ -2000,14 +2113,14 @@
 				|:Hexplore| or |:Vexplore|.
 				 default: ""
 
-  *g:netrw_xstrlen*		Controls how netrw computes a string
-  				including multi-byte characters' string
+  *g:netrw_xstrlen*		Controls how netrw computes string lengths,
+				including multi-byte characters' string
 				length. (thanks to N Weibull, T Mechelynck)
 				=0: uses Vim's built-in strlen()
 				=1: number of codepoints (Latin + a combining
 				    circumflex is two codepoints)  (DEFAULT)
 				=2: number of spacing codepoints (Latin a +
-				    combining circumflex is one spacing 
+				    combining circumflex is one spacing
 				    codepoint; a hard tab is one; wide and
 				    narrow CJK are one each; etc.)
 				=3: virtual length (counting tabs as anything
@@ -2162,6 +2275,16 @@
 Associated setting variables: |g:netrw_sort_by| |g:netrw_sort_sequence|
 
 
+SETTING EDITING WINDOW					*netrw-C* {{{2
+
+One may select a netrw window for editing with the "C" mapping, or by setting
+g:netrw_chgwin to the selected window number.  Subsequent selection of a file
+to edit (|netrw-cr|) will use that window.
+
+Related topics:			|netrw-cr|
+Associated setting variables:	|g:netrw_chgwin|
+
+
 10. Problems and Fixes					*netrw-problems* {{{1
 
 	(This section is likely to grow as I get feedback)
@@ -2238,7 +2361,7 @@
 	    Put the following line in your |.vimrc|:
 >
 		let g:netrw_keepdir= 0
-<	
+<
 								*netrw-p7*
 	P7. I use Chinese (or other non-ascii) characters in my filenames, and
 	    netrw (Explore, Sexplore, Hexplore, etc) doesn't display them!
@@ -2266,7 +2389,7 @@
 
 		(Marlin Unruh) This program also works for me. It's a single
 		executable, so he/she can copy it into the Windows\System32
-		folder and create a shortcut to it. 
+		folder and create a shortcut to it.
 
 		(Dudley Fox) You might also wish to consider plink, as it
 		sounds most similar to what you are looking for. plink is an
@@ -2274,12 +2397,12 @@
 
            http://the.earth.li/~sgtatham/putty/0.58/htmldoc/Chapter7.html#plink
 
-	   	(Vissale Neang) Maybe you can try OpenSSH for windows, which
+		(Vissale Neang) Maybe you can try OpenSSH for windows, which
 		can be obtained from:
 
 		http://sshwindows.sourceforge.net/
 
-		It doesn't need the full Cygwin package. 
+		It doesn't need the full Cygwin package.
 
 		(Antoine Mechelynck) For individual Unix-like programs needed
 		for work in a native-Windows environment, I recommend getting
@@ -2290,7 +2413,7 @@
 		Unlike Cygwin, which sets up a Unix-like virtual machine on
 		top of Windows, GnuWin32 is a rewrite of Unix utilities with
 		Windows system calls, and its programs works quite well in the
-		cmd.exe "Dos box". 
+		cmd.exe "Dos box".
 
 		(dave) Download WinSCP and use that to connect to the server.
 		In Preferences > Editors, set gvim as your editor:
@@ -2317,7 +2440,7 @@
 		How to use a private key with 'pscp': >
 
 			http://www.tartarus.org/~simon/puttydoc/Chapter5.html
-			5.2.4 Using public key authentication with PSCP 
+			5.2.4 Using public key authentication with PSCP
 <
 		(Ben Schmidt) I find the ssh included with cwRsync is
 		brilliant, and install cwRsync or cwRsyncServer on most
@@ -2375,6 +2498,16 @@
 		  <leftmouse> in the browser window and then press the
 		  <middlemouse> to select the file.
 
+								*netrw-p12*
+	P12. My directory isn't sorting correctly, or unwanted letters are
+	     appearing in the listed filenames, or things aren't lining
+	     up properly in the wide listing, ...
+
+	     This may be due to an encoding problem.  I myself usually use
+	     utf-8, but really only use ascii (ie. bytes from 32-126).
+	     Multibyte encodings use two (or more) bytes per character.
+	     You may need to change |g:netrw_sepchr| and/or |g:netrw_xstrlen|.
+
 ==============================================================================
 11. Debugging Netrw Itself				*netrw-debug* {{{1
 
@@ -2429,6 +2562,69 @@
 ==============================================================================
 12. History						*netrw-history* {{{1
 
+	v136: Jan 14, 2009 * extended |g:Netrw_funcref| to also handle lists
+			     of function references
+	      Jan 14, 2009 * (reported by Marvin Renich) with spell check
+			     enabled, some filenamess will still being
+			     displayed as spelling errors.
+	v135: Oct 29, 2008 * using |simplify()| on directory names
+			     (supporting handling ".."s in directory names)
+	      Oct 31, 2008 * added special file highlighting for core dumps
+			     under Unix/Linux.  The default sorting sequence
+			     now also gives core dumps priority.
+	      Nov 10, 2008 * uses a call to netrw#Nread() instead of Nread
+			     to avoid having to use fnameescape()
+			   * fixed a tree redrawing problem (open directory,
+			     open subdir, close subdir, close dir)
+	      Nov 19, 2008 * sprinked some histdel("/",-1)s through the code
+			     in an attempt to prevent netrw from changing
+			     the search history.
+	      Jan 02, 2009 * |g:Netrw_funcref| included
+	      Jan 05, 2009 * Explore */ **/ *// **// all clear explorer
+			     variables
+	      Jan 05, 2009 * (Panagiotis Louridas) extended s:WinPath()
+			     to remove cygdrive from non-cygwin Windows
+			     paths.  Improved the determination as to
+			     whether or not to do so.
+	      Jan 13, 2009 * included contains=@NoSpell in every syntax
+			     group for syntax/netrw.vim .
+	v134: Sep 30, 2008 * (Sander Marechal) provided a bugfix involving
+			     the use of the |netrw-t| command with a remote
+			     directory.
+	      Sep 30, 2008 * using "x" on a remote jpg was failing; fixed.
+	      Oct 03, 2008 * bookmarks now go on a list and are stored to
+			     the first directory on the |'runtimepath'| in
+			     the hopes of making their retention reliable.
+			     History now also goes to that directory.
+	      Oct 07, 2008 * Included check that vim 7.0 or later is in use.
+	      Oct 07, 2008 * Improved |g:netrw_retmap| handling.
+	      Oct 12, 2008 * Based upon Sébastien Migniot's suggestion, if
+			     cadaver isn't available then netrw will try to
+			     use curl for the dav://... protocol.
+	      Oct 13, 2008 * added @*/ to netrw buffers' |'iskeyword'|setting
+			     This lets mf (|netrw-mf|) mark directories, links
+			     and executables.
+	      Oct 13, 2008 * avoids a second NetrwBrowse() refresh when
+			     g:netrw_fastbrowse is <= 1 (slow, medium speed)
+	      Oct 22, 2008 * |g:netrw_http_xcmd| may now be overridden
+			     independently of |g:netrw_http_cmd|.
+	      Oct 23, 2008 * [N] added to the various Explore commands to
+			     let users specify the width/height of new
+			     explorer windows, overriding |g:netrw_winsize|.
+	v133: Aug 10, 2008 * NetReadFixup() for win95 was missing some "a:"s
+	      Aug 12, 2008 * (Jan Minář) an error condition in NetrwMethod()
+			     wasn't being used, resulting in "b:netrw_fname
+			     undefined" errors
+	      Aug 12, 2008 * (François Ingeirest) asked that "hi link" be
+			     changed to hi default link in the netrw syntax
+			     files.
+	      Aug 12, 2008 * using s:NetrwUnmarkList() more often.  Filenames
+			     were being left on the global list when removed
+			     from the buffer-local lists.
+	      Aug 14, 2008 * (Joshua Clayton) an errant extra ")" was left in
+			     the rcp-handling portion of NetRead().
+	      Sep 03, 2008 * added |'cursorline'| highlighting to thin, long,
+			     and tree displays.
 	v132: Aug 06, 2008 * Fixed marked file-based obtain
 	      Aug 08, 2008 * sourcing a file via ftp from a netrw-generated
 	                     buffer (or any buffer with |'nobl'|) left an
@@ -2543,7 +2739,7 @@
 			   * executable files now displayed with trailing (*)
 			   * symbolically linked files now displayed with
 			     trailing (@)
-			   * Somewhen, s:NetrwMarkFileMove() got damaged.  Its
+			   * Somewhen, s:NetrwMarkFileMove() got damaged.  It's
 			     now restored (missing an endif, for example).
 			   * |netrw-mu| implemented (unmarking marked files)
 			   * many bugs have been removed from the marked file
@@ -2615,7 +2811,7 @@
 			     the end of the s:NetrwBrowseChgDir() function;
 			     they're now at the end of every if..elseif..else
 			     block.  The edit-a-file one is not quite at the end
-			     of its block; instead, its just before the edit.
+			     of its block; instead, it's just before the edit.
 			     Restores user options, then this new placement
 			     allows ftplugins, autocmds, etc to change settings
 			     (ex. ftplugin/cpp.vim sets cindent).
@@ -2668,7 +2864,7 @@
 			     decipher the name.
 	      May 07, 2007 * g:netrw_use_errorwindow now allows one to
 			     have error messages go to a reliable window
-			     or to use a less reliable but recallable 
+			     or to use a less reliable but recallable
 			     echoerr method
 	      May 07, 2007 * g:netrw_scpport and g:netrw_sshport support
 			     use of -P and -p, respectively, to set port
diff -Nur runtime.patched/doc/print.txt runtime/doc/print.txt
--- runtime.patched/doc/print.txt	2008-08-09 07:23:00.000000000 -0700
+++ runtime/doc/print.txt	2009-01-14 12:14:42.000000000 -0800
@@ -1,4 +1,4 @@
-*print.txt*     For Vim version 7.2.  Last change: 2008 Apr 30
+*print.txt*     For Vim version 7.2.  Last change: 2008 Dec 17
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -704,7 +704,7 @@
 even.ps with your platform's print command.  All the even pages should now
 appear on the back of the odd pages.
 
-There a couple of points to bear in mind:
+There are a couple of points to bear in mind:
 
 1. Position of the first page.  If the first page is on top of the printout
    when printing the odd pages then you need to reverse the order that the odd
diff -Nur runtime.patched/doc/quickfix.txt runtime/doc/quickfix.txt
--- runtime.patched/doc/quickfix.txt	2008-08-09 07:23:00.000000000 -0700
+++ runtime/doc/quickfix.txt	2009-06-03 03:05:26.000000000 -0700
@@ -1,4 +1,4 @@
-*quickfix.txt*  For Vim version 7.2.  Last change: 2008 Mar 14
+*quickfix.txt*  For Vim version 7.2.  Last change: 2009 May 24
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -630,14 +630,20 @@
 			Just like ":grep", but instead of making a new list of
 			errors the matches are appended to the current list.
 			Example: >
-				:grep nothing %
+				:call setqflist([])
 				:bufdo grepadd! something %
 <			The first command makes a new error list which is
 			empty.  The second command executes "grepadd" for each
 			listed buffer.  Note the use of ! to avoid that
 			":grepadd" jumps to the first error, which is not
 			allowed with |:bufdo|.
-
+			An example that uses the argument list and avoids
+			errors for files without matches: >
+                                :silent argdo try 
+				  \ | grepadd! something %
+				  \ | catch /E480:/
+				  \ | endtry"
+<
 							*:lgrepa* *:lgrepadd*
 :lgrepa[dd][!] [arguments]
 			Same as ":grepadd", except the location list for the
diff -Nur runtime.patched/doc/quickref.txt runtime/doc/quickref.txt
--- runtime.patched/doc/quickref.txt	2008-08-09 07:23:00.000000000 -0700
+++ runtime/doc/quickref.txt	2009-01-28 08:23:53.000000000 -0800
@@ -1,4 +1,4 @@
-*quickref.txt*  For Vim version 7.2.  Last change: 2008 Jan 22
+*quickref.txt*  For Vim version 7.2.  Last change: 2009 Jan 22
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -40,13 +40,13 @@
 |^|	   ^		to first non-blank character in the line
 |$|	N  $		to the last character in the line (N-1 lines lower)
 			   (also: <End> key)
-|g0|	N  g0		to first character in screen line (differs from "0"
+|g0|	   g0		to first character in screen line (differs from "0"
 			   when lines wrap)
-|g^|	N  g^		to first non-blank character in screen line (differs
+|g^|	   g^		to first non-blank character in screen line (differs
 			   from "^" when lines wrap)
 |g$|	N  g$		to last character in screen line (differs from "$"
 			   when lines wrap)
-|gm|	N  gm		to middle of the screen line
+|gm|	   gm		to middle of the screen line
 |bar|	N  |		to column N (default: 1)
 |f|	N  f{char}	to the Nth occurrence of {char} to the right
 |F|	N  F{char}	to the Nth occurrence of {char} to the left
diff -Nur runtime.patched/doc/quotes.txt runtime/doc/quotes.txt
--- runtime.patched/doc/quotes.txt	2008-08-09 07:23:00.000000000 -0700
+++ runtime/doc/quotes.txt	2009-07-26 04:41:20.000000000 -0700
@@ -247,7 +247,7 @@
 memory usage, text alteration to name 3.  (Mark Adam)
 
 In fact, now if I want to know what a particular setting does in vi, I fire up
-VIM and check out it's help!  (Nikhil Patel, USA)
+VIM and check out its help!  (Nikhil Patel, USA)
 
 As a vi user, VIM has made working with text a far more pleasant task than
 before I encountered this program.  (Steinar Knutsen, Norway)
diff -Nur runtime.patched/doc/recover.txt runtime/doc/recover.txt
--- runtime.patched/doc/recover.txt	2008-08-09 07:23:00.000000000 -0700
+++ runtime/doc/recover.txt	2009-04-22 14:26:12.000000000 -0700
@@ -1,4 +1,4 @@
-*recover.txt*   For Vim version 7.2.  Last change: 2006 Apr 24
+*recover.txt*   For Vim version 7.2.  Last change: 2009 Apr 18
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -181,7 +181,7 @@
 Be sure that the recovery was successful before overwriting the original
 file or deleting the swap file.  It is good practice to write the recovered
 file elsewhere and run 'diff' to find out if the changes you want are in the
-recovered file.
+recovered file.  Or use |:DiffOrig|.
 
 Once you are sure the recovery is ok delete the swap file.  Otherwise, you
 will continue to get warning messages that the ".swp" file already exists.
diff -Nur runtime.patched/doc/spell.txt runtime/doc/spell.txt
--- runtime.patched/doc/spell.txt	2009-11-20 13:52:20.058737644 -0800
+++ runtime/doc/spell.txt	2009-10-28 13:57:15.000000000 -0700
@@ -1,4 +1,4 @@
-*spell.txt*	For Vim version 7.2.  Last change: 2008 Nov 30
+*spell.txt*	For Vim version 7.2.  Last change: 2009 Oct 28
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -1279,7 +1279,7 @@
 
 							*spell-ONLYINCOMPOUND*
 The ONLYINCOMPOUND does exactly the same as NEEDCOMPOUND.  Supported for
-compatiblity with Hunspell.
+compatibility with Hunspell.
 
 							*spell-COMPOUNDMIN*
 The minimal character length of a word used for compounding is specified with
diff -Nur runtime.patched/doc/starting.txt runtime/doc/starting.txt
--- runtime.patched/doc/starting.txt	2009-11-20 13:52:21.222648639 -0800
+++ runtime/doc/starting.txt	2009-10-28 13:57:15.000000000 -0700
@@ -1,4 +1,4 @@
-*starting.txt*  For Vim version 7.2.  Last change: 2008 Nov 09
+*starting.txt*  For Vim version 7.2.  Last change: 2009 Oct 25
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -144,13 +144,12 @@
 			-u NORC			no		    yes
 			--noplugin		yes		    no
 
---startuptime {fname}					*--startuptime*
+--startuptime={fname}					*--startuptime*
 		During startup write timing messages to the file {fname}.
 		This can be used to find out where time is spent while loading
-		your .vimrc, plugins and opening the first file.
+		your .vimrc and plugins.
 		When {fname} already exists new messages are appended.
-		(Only available when compiled with the |+startuptime|
-		feature).
+		{only when compiled with this feature}
 
 							*--literal*
 --literal	Take file names literally, don't expand wildcards.  Not needed
@@ -338,12 +337,19 @@
 							*-C*
 -C		Compatible mode.  Sets the 'compatible' option.  You can use
 		this to get 'compatible', even though a .vimrc file exists.
-		But the command ":set nocompatible" overrules it anyway.
-		Also see |compatible-default|.  {not in Vi}
+		Keep in mind that the command ":set nocompatible" in some
+		plugin or startup script overrules this, so you may end up
+		with 'nocmpatible' anyway.  To find out, use: >
+			:verbose set compatible?
+<		Several plugins won't work with 'compatible' set.  You may
+		want to set it after startup this way: >
+			vim "+set cp" filename
+<		Also see |compatible-default|.  {not in Vi}
 
 							*-N*
 -N		Not compatible mode.  Resets the 'compatible' option.  You can
-		use this to get 'nocompatible', when there is no .vimrc file.
+		use this to get 'nocompatible', when there is no .vimrc file
+		or when using "-u NONE".
 		Also see |compatible-default|.  {not in Vi}
 
 							*-y* *easy*
@@ -361,6 +367,8 @@
 		Can also be done with ":set updatecount=0".  You can switch it
 		on again by setting the 'updatecount' option to some value,
 		e.g., ":set uc=100".
+		NOTE: Don't combine -n with -b, making -nb, because that has a
+		different meaning: |-nb|.
 		'updatecount' is set to 0 AFTER executing commands from a
 		vimrc file, but before the GUI initializations.  Thus it
 		overrides a setting for 'updatecount' in a vimrc file, but not
@@ -593,17 +601,8 @@
 		it.  The second form specifies a file to read connection info
 		from.  The third form specifies the hostname, address and
 		password for connecting to Netbeans. |netbeans-run|
-
-Example for using a script file to change a name in several files:
-	Create a file "subs.vi" containing substitute commands and a :wq
-	command: >
-		:%s/Jones/Smith/g
-		:%s/Allen/Peter/g
-		:wq
-<
-	Execute Vim on all files you want to change: >
-
-		foreach i ( *.let ) vim -s subs.vi $i
+		{only available when compiled with the |+netbeans_intg|
+		feature; if not then -nb will make Vim exit}
 
 If the executable is called "view", Vim will start in Readonly mode.  This is
 useful if you can make a hard or symbolic link from "view" to "vim".
@@ -777,10 +776,11 @@
 	nocp" command if you like.
 	For the Macintosh the $VIMRUNTIME/macmap.vim is read.
 
-			  *VIMINIT* *.vimrc* *_vimrc* *EXINIT* *.exrc* *_exrc*
+	  *VIMINIT* *.vimrc* *_vimrc* *EXINIT* *.exrc* *_exrc* *$MYVIMRC*
      c. Four places are searched for initializations.  The first that exists
 	is used, the others are ignored.  The $MYVIMRC environment variable is
-	set to the file that was first found, unless $MYVIMRC was already set.
+	set to the file that was first found, unless $MYVIMRC was already set
+	and when using VIMINIT.
 	-  The environment variable VIMINIT (see also |compatible-default|) (*)
 	   The value of $VIMINIT is used as an Ex command line.
 	-  The user vimrc file(s):
@@ -990,7 +990,7 @@
 
 							*info-message*
 The |--help| and |--version| arguments cause Vim to print a message and then
-exit.  Normally the message is send to stdout, thus can be redirected to a
+exit.  Normally the message is sent to stdout, thus can be redirected to a
 file with: >
 
 	vim --help >file
@@ -1441,7 +1441,7 @@
 converted.
 
 
-MANUALLY READING AND WRITING
+MANUALLY READING AND WRITING				*viminfo-read-write*
 
 Two commands can be used to read and write the viminfo file manually.  This
 can be used to exchange registers between two running Vim programs: First
@@ -1504,7 +1504,7 @@
 			the list is edited.
 			If you get the |press-enter| prompt you can press "q"
 			and still get the prompt to enter a file number.
-			Use ! to abondon a modified buffer. |abandon|
+			Use ! to abandon a modified buffer. |abandon|
 			{not when compiled with tiny or small features}
 
  vim:tw=78:ts=8:ft=help:norl:
diff -Nur runtime.patched/doc/syntax.txt runtime/doc/syntax.txt
--- runtime.patched/doc/syntax.txt	2008-08-09 07:23:00.000000000 -0700
+++ runtime/doc/syntax.txt	2009-10-28 13:57:15.000000000 -0700
@@ -1,4 +1,4 @@
-*syntax.txt*	For Vim version 7.2.  Last change: 2008 Jul 22
+*syntax.txt*	For Vim version 7.2.  Last change: 2009 Oct 28
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -113,6 +113,9 @@
     :syntax off		$VIMRUNTIME/syntax/nosyntax.vim
 Also see |syntax-loading|.
 
+NOTE: If displaying long lines is slow and switching off syntax highlighting
+makes it fast, consider setting the 'synmaxcol' option to a lower value.
+
 ==============================================================================
 2. Syntax files						*:syn-files*
 
@@ -198,8 +201,12 @@
 Vim will only load the first syntax file found.
 
 
-NAMING CONVENTIONS
-				    *group-name* *{group-name}* *E669* *W18*
+NAMING CONVENTIONS		    *group-name* *{group-name}* *E669* *W18*
+
+A syntax group name is to be used for syntax items that match the same kind of
+thing.  These are then linked to a highlight group that specifies the color.
+A syntax group name doesn't specify any color or attributes itself.
+
 The name for a highlight or syntax group must consist of ASCII letters, digits
 and the underscore.  As a regexp: "[a-zA-Z0-9_]*"
 
@@ -379,8 +386,8 @@
 
 	:10,40TOhtml
 
-After you save the resulting file, you can view it with any HTML viewer, such
-as Netscape.  The colors should be exactly the same as you see them in Vim.
+After you save the resulting file, you can view it with any browser.  The
+colors should be exactly the same as you see them in Vim.
 
 To restrict the conversion to a range of lines set "html_start_line" and
 "html_end_line" to the first and last line to be converted.  Example, using
@@ -398,15 +405,45 @@
 Go back to the default to use 'number' by deleting the variable: >
    :unlet html_number_lines
 
-Closed folds are put in the HTML as they are displayed.  If you don't want
-this, use the |zR| command before invoking 2html, or use: >
-   :let html_ignore_folding = 1
-
 By default, HTML optimized for old browsers is generated.  If you prefer using
 cascading style sheets (CSS1) for the attributes (resulting in considerably
 shorter and valid HTML 4 file), use: >
    :let html_use_css = 1
 
+Closed folds are put in the HTML as they are displayed.  If you don't want
+this, use the |zR| command before invoking 2html, or use: >
+   :let html_ignore_folding = 1
+
+You may want to generate HTML that includes all the data within the folds, and
+allow the user to view the folded data similar to how they would in Vim. To
+generate this dynamic fold information, use: >
+   :let html_dynamic_folds = 1
+
+Using html_dynamic_folds will imply html_use_css, because it would be far too
+difficult to do it for old browsers. However, html_ignore_folding overrides
+html_dynamic_folds.
+
+Using html_dynamic_folds will default to generating a foldcolumn in the html
+similar to Vim's foldcolumn, that will use javascript to open and close the
+folds in the HTML document. The width of this foldcolumn starts at the current
+setting of |'foldcolumn'| but grows to fit the greatest foldlevel in your
+document. If you do not want to show a foldcolumn at all, use: >
+   :let html_no_foldcolumn = 1
+
+Using this option, there will be no foldcolumn available to open the folds in
+the HTML. For this reason, another option is provided: html_hover_unfold.
+Enabling this option will use CSS 2.0 to allow a user to open a fold by
+hovering the mouse pointer over it. Note that old browsers (notably Internet
+Explorer 6) will not support this feature.  Browser-specific markup for IE6 is
+included to fall back to the normal CSS1 code so that the folds show up
+correctly for this browser, but they will not be openable without a
+foldcolumn. Note that using html_hover_unfold will allow modern browsers with
+disabled javascript to view closed folds. To use this option, use: >
+   :let html_hover_unfold = 1
+
+Setting html_no_foldcolumn with html_dynamic_folds will automatically set
+html_hover_unfold, because otherwise the folds wouldn't be dynamic.
+
 By default "<pre>" and "</pre>" is used around the text.  This makes it show
 up as you see it in Vim, but without wrapping.	If you prefer wrapping, at the
 risk of making some things look a bit different, use: >
@@ -525,9 +562,10 @@
 	pic		PIC assembly (currently for PIC16F84)
 
 The most flexible is to add a line in your assembly file containing: >
-	:asmsyntax=nasm
+	asmsyntax=nasm
 Replace "nasm" with the name of the real assembly syntax.  This line must be
-one of the first five lines in the file.
+one of the first five lines in the file.  No non-white text must be
+immediately before or after this text.
 
 The syntax type can always be overruled for a specific buffer by setting the
 b:asmsyntax variable: >
@@ -3414,8 +3452,9 @@
 - The highlighted area will never be outside of the matched text.
 - A negative offset for an end pattern may not always work, because the end
   pattern may be detected when the highlighting should already have stopped.
-- Until Vim 7.2 the offsets were counted in bytes instead of characters.  This
-  didn't work well for multi-byte characters.
+- Before Vim 7.2 the offsets were counted in bytes instead of characters.
+  This didn't work well for multi-byte characters, so it was changed with the
+  Vim 7.2 release.
 - The start of a match cannot be in a line other than where the pattern
   matched.  This doesn't work: "a\nb"ms=e.  You can make the highlighting
   start in another line, this does work: "a\nb"hs=e.
@@ -3466,7 +3505,8 @@
 
 When using a start pattern with an offset, the start of the match is not
 allowed to start in a following line.  The highlighting can start in a
-following line though.
+following line though.  Using the "\zs" item also requires that the start of
+the match doesn't move to another line.
 
 The skip pattern can include the "\n", but the search for an end pattern will
 continue in the first character of the next line, also when that character is
diff -Nur runtime.patched/doc/tags runtime/doc/tags
--- runtime.patched/doc/tags	2008-08-09 07:47:14.000000000 -0700
+++ runtime/doc/tags	2009-10-28 13:58:52.000000000 -0700
@@ -4,6 +4,8 @@
 $	motion.txt	/*$*
 $HOME	options.txt	/*$HOME*
 $HOME-use	version5.txt	/*$HOME-use*
+$MYGVIMRC	gui.txt	/*$MYGVIMRC*
+$MYVIMRC	starting.txt	/*$MYVIMRC*
 $VIM	starting.txt	/*$VIM*
 $VIM-use	version5.txt	/*$VIM-use*
 $VIMRUNTIME	starting.txt	/*$VIMRUNTIME*
@@ -481,7 +483,6 @@
 'nodg'	options.txt	/*'nodg'*
 'nodiff'	options.txt	/*'nodiff'*
 'nodigraph'	options.txt	/*'nodigraph'*
-'nodisable'	options.txt	/*'nodisable'*
 'noea'	options.txt	/*'noea'*
 'noeb'	options.txt	/*'noeb'*
 'noed'	options.txt	/*'noed'*
@@ -518,6 +519,7 @@
 'noimc'	options.txt	/*'noimc'*
 'noimcmdline'	options.txt	/*'noimcmdline'*
 'noimd'	options.txt	/*'noimd'*
+'noimdisable'	options.txt	/*'noimdisable'*
 'noincsearch'	options.txt	/*'noincsearch'*
 'noinf'	options.txt	/*'noinf'*
 'noinfercase'	options.txt	/*'noinfercase'*
@@ -1230,6 +1232,7 @@
 --serverlist	remote.txt	/*--serverlist*
 --servername	remote.txt	/*--servername*
 --socketid	starting.txt	/*--socketid*
+--startuptime	starting.txt	/*--startuptime*
 --version	starting.txt	/*--version*
 --windowid	starting.txt	/*--windowid*
 -A	starting.txt	/*-A*
@@ -1768,7 +1771,6 @@
 :Print	various.txt	/*:Print*
 :Rexplore	pi_netrw.txt	/*:Rexplore*
 :RmVimball	pi_vimball.txt	/*:RmVimball*
-:Sexplore	pi_netrw.txt	/*:Sexplore*
 :TOhtml	syntax.txt	/*:TOhtml*
 :Texplore	pi_netrw.txt	/*:Texplore*
 :UseVimball	pi_vimball.txt	/*:UseVimball*
@@ -1781,6 +1783,9 @@
 :_!	cmdline.txt	/*:_!*
 :_#	cmdline.txt	/*:_#*
 :_##	cmdline.txt	/*:_##*
+:_#0	cmdline.txt	/*:_#0*
+:_#<	cmdline.txt	/*:_#<*
+:_#n	cmdline.txt	/*:_#n*
 :_%	cmdline.txt	/*:_%*
 :_%:	cmdline.txt	/*:_%:*
 :_%<	cmdline.txt	/*:_%<*
@@ -1971,7 +1976,7 @@
 :command-range	map.txt	/*:command-range*
 :command-register	map.txt	/*:command-register*
 :command-verbose	map.txt	/*:command-verbose*
-:comment	eval.txt	/*:comment*
+:comment	cmdline.txt	/*:comment*
 :comp	quickfix.txt	/*:comp*
 :compiler	quickfix.txt	/*:compiler*
 :con	eval.txt	/*:con*
@@ -2087,6 +2092,7 @@
 :enew!	editing.txt	/*:enew!*
 :ex	editing.txt	/*:ex*
 :exe	eval.txt	/*:exe*
+:exe-comment	eval.txt	/*:exe-comment*
 :execute	eval.txt	/*:execute*
 :exi	editing.txt	/*:exi*
 :exit	editing.txt	/*:exit*
@@ -2434,6 +2440,8 @@
 :nunme	gui.txt	/*:nunme*
 :nunmenu	gui.txt	/*:nunmenu*
 :o	vi_diff.txt	/*:o*
+:ol	starting.txt	/*:ol*
+:oldfiles	starting.txt	/*:oldfiles*
 :om	map.txt	/*:om*
 :omap	map.txt	/*:omap*
 :omap_l	map.txt	/*:omap_l*
@@ -2862,6 +2870,8 @@
 :unme	gui.txt	/*:unme*
 :unmenu	gui.txt	/*:unmenu*
 :unmenu-all	gui.txt	/*:unmenu-all*
+:uns	various.txt	/*:uns*
+:unsilent	various.txt	/*:unsilent*
 :up	editing.txt	/*:up*
 :update	editing.txt	/*:update*
 :v	repeat.txt	/*:v*
@@ -4102,7 +4112,15 @@
 E806	eval.txt	/*E806*
 E807	eval.txt	/*E807*
 E808	eval.txt	/*E808*
+E809	cmdline.txt	/*E809*
 E81	map.txt	/*E81*
+E810	diff.txt	/*E810*
+E811	autocmd.txt	/*E811*
+E812	autocmd.txt	/*E812*
+E813	editing.txt	/*E813*
+E814	editing.txt	/*E814*
+E815	if_mzsch.txt	/*E815*
+E816	diff.txt	/*E816*
 E82	message.txt	/*E82*
 E83	message.txt	/*E83*
 E84	windows.txt	/*E84*
@@ -4304,6 +4322,7 @@
 Russian	russian.txt	/*Russian*
 S	change.txt	/*S*
 SHELL	starting.txt	/*SHELL*
+SQLGetType	ft_sql.txt	/*SQLGetType*
 SQLSetType	ft_sql.txt	/*SQLSetType*
 Select	visual.txt	/*Select*
 Select-mode	visual.txt	/*Select-mode*
@@ -4698,6 +4717,11 @@
 c	change.txt	/*c*
 c.vim	syntax.txt	/*c.vim*
 cW	change.txt	/*cW*
+c_#	cmdline.txt	/*c_#*
+c_##	cmdline.txt	/*c_##*
+c_#<	cmdline.txt	/*c_#<*
+c_#n	cmdline.txt	/*c_#n*
+c_%	cmdline.txt	/*c_%*
 c_<BS>	cmdline.txt	/*c_<BS>*
 c_<C-Left>	cmdline.txt	/*c_<C-Left>*
 c_<C-R>	cmdline.txt	/*c_<C-R>*
@@ -4733,6 +4757,7 @@
 c_CTRL-C	cmdline.txt	/*c_CTRL-C*
 c_CTRL-D	cmdline.txt	/*c_CTRL-D*
 c_CTRL-E	cmdline.txt	/*c_CTRL-E*
+c_CTRL-F	cmdline.txt	/*c_CTRL-F*
 c_CTRL-H	cmdline.txt	/*c_CTRL-H*
 c_CTRL-I	cmdline.txt	/*c_CTRL-I*
 c_CTRL-J	cmdline.txt	/*c_CTRL-J*
@@ -4773,6 +4798,7 @@
 ceil()	eval.txt	/*ceil()*
 ch.vim	syntax.txt	/*ch.vim*
 change-list-jumps	motion.txt	/*change-list-jumps*
+change-name	tips.txt	/*change-name*
 change-tabs	change.txt	/*change-tabs*
 change.txt	change.txt	/*change.txt*
 changed-5.1	version5.txt	/*changed-5.1*
@@ -4836,6 +4862,7 @@
 color-xterm	syntax.txt	/*color-xterm*
 coloring	syntax.txt	/*coloring*
 colortest.vim	syntax.txt	/*colortest.vim*
+command-line-window	cmdline.txt	/*command-line-window*
 command-mode	intro.txt	/*command-mode*
 compatible-default	starting.txt	/*compatible-default*
 compile-changes-5	version5.txt	/*compile-changes-5*
@@ -5022,6 +5049,7 @@
 dd	change.txt	/*dd*
 debug-gcc	debug.txt	/*debug-gcc*
 debug-highlight	debugger.txt	/*debug-highlight*
+debug-leaks	debug.txt	/*debug-leaks*
 debug-minidump	debug.txt	/*debug-minidump*
 debug-mode	repeat.txt	/*debug-mode*
 debug-scripts	repeat.txt	/*debug-scripts*
@@ -5512,7 +5540,6 @@
 ft-xml-syntax	syntax.txt	/*ft-xml-syntax*
 ft-xpm-syntax	syntax.txt	/*ft-xpm-syntax*
 ft_ada.txt	ft_ada.txt	/*ft_ada.txt*
-ft_sql.txt	ft_sql.txt	/*ft_sql.txt*
 ftdetect	filetype.txt	/*ftdetect*
 ftp	pi_netrw.txt	/*ftp*
 ftplugin	usr_41.txt	/*ftplugin*
@@ -5544,6 +5571,7 @@
 g0	motion.txt	/*g0*
 g8	various.txt	/*g8*
 g:NetrwTopLvlMenu	pi_netrw.txt	/*g:NetrwTopLvlMenu*
+g:Netrw_funcref	pi_netrw.txt	/*g:Netrw_funcref*
 g:ada#Comment	ft_ada.txt	/*g:ada#Comment*
 g:ada#Ctags_Kinds	ft_ada.txt	/*g:ada#Ctags_Kinds*
 g:ada#DotWordRegex	ft_ada.txt	/*g:ada#DotWordRegex*
@@ -5588,8 +5616,10 @@
 g:netrw_altv	pi_netrw.txt	/*g:netrw_altv*
 g:netrw_browse_split	pi_netrw.txt	/*g:netrw_browse_split*
 g:netrw_browsex_viewer	pi_netrw.txt	/*g:netrw_browsex_viewer*
+g:netrw_chgwin	pi_netrw.txt	/*g:netrw_chgwin*
 g:netrw_compress	pi_netrw.txt	/*g:netrw_compress*
 g:netrw_ctags	pi_netrw.txt	/*g:netrw_ctags*
+g:netrw_cursorline	pi_netrw.txt	/*g:netrw_cursorline*
 g:netrw_cygwin	pi_netrw.txt	/*g:netrw_cygwin*
 g:netrw_dav_cmd	pi_netrw.txt	/*g:netrw_dav_cmd*
 g:netrw_decompress	pi_netrw.txt	/*g:netrw_decompress*
@@ -5606,7 +5636,9 @@
 g:netrw_ftpmode	pi_netrw.txt	/*g:netrw_ftpmode*
 g:netrw_glob_escape	pi_netrw.txt	/*g:netrw_glob_escape*
 g:netrw_hide	pi_netrw.txt	/*g:netrw_hide*
+g:netrw_home	pi_netrw.txt	/*g:netrw_home*
 g:netrw_http_cmd	pi_netrw.txt	/*g:netrw_http_cmd*
+g:netrw_http_xcmd	pi_netrw.txt	/*g:netrw_http_xcmd*
 g:netrw_ignorenetrc	pi_netrw.txt	/*g:netrw_ignorenetrc*
 g:netrw_keepdir	pi_netrw.txt	/*g:netrw_keepdir*
 g:netrw_list_cmd	pi_netrw.txt	/*g:netrw_list_cmd*
@@ -5629,6 +5661,7 @@
 g:netrw_rsync_cmd	pi_netrw.txt	/*g:netrw_rsync_cmd*
 g:netrw_scp_cmd	pi_netrw.txt	/*g:netrw_scp_cmd*
 g:netrw_scpport	pi_netrw.txt	/*g:netrw_scpport*
+g:netrw_sepchr	pi_netrw.txt	/*g:netrw_sepchr*
 g:netrw_sftp_cmd	pi_netrw.txt	/*g:netrw_sftp_cmd*
 g:netrw_silent	pi_netrw.txt	/*g:netrw_silent*
 g:netrw_sort_by	pi_netrw.txt	/*g:netrw_sort_by*
@@ -6054,6 +6087,7 @@
 i_CTRL-P	insert.txt	/*i_CTRL-P*
 i_CTRL-Q	insert.txt	/*i_CTRL-Q*
 i_CTRL-R	insert.txt	/*i_CTRL-R*
+i_CTRL-R_=	insert.txt	/*i_CTRL-R_=*
 i_CTRL-R_CTRL-O	insert.txt	/*i_CTRL-R_CTRL-O*
 i_CTRL-R_CTRL-P	insert.txt	/*i_CTRL-R_CTRL-P*
 i_CTRL-R_CTRL-R	insert.txt	/*i_CTRL-R_CTRL-R*
@@ -6228,6 +6262,7 @@
 known-bugs	todo.txt	/*known-bugs*
 l	motion.txt	/*l*
 l:var	eval.txt	/*l:var*
+lCursor	mbyte.txt	/*lCursor*
 lace.vim	syntax.txt	/*lace.vim*
 lang-variable	eval.txt	/*lang-variable*
 language-mapping	map.txt	/*language-mapping*
@@ -6483,6 +6518,7 @@
 netrw	pi_netrw.txt	/*netrw*
 netrw-%	pi_netrw.txt	/*netrw-%*
 netrw--	pi_netrw.txt	/*netrw--*
+netrw-C	pi_netrw.txt	/*netrw-C*
 netrw-D	pi_netrw.txt	/*netrw-D*
 netrw-O	pi_netrw.txt	/*netrw-O*
 netrw-P	pi_netrw.txt	/*netrw-P*
@@ -6524,9 +6560,12 @@
 netrw-explore-cmds	pi_netrw.txt	/*netrw-explore-cmds*
 netrw-externapp	pi_netrw.txt	/*netrw-externapp*
 netrw-file	pi_netrw.txt	/*netrw-file*
+netrw-filigree	pi_netrw.txt	/*netrw-filigree*
 netrw-fixup	pi_netrw.txt	/*netrw-fixup*
 netrw-ftp	pi_netrw.txt	/*netrw-ftp*
+netrw-ftype	pi_netrw.txt	/*netrw-ftype*
 netrw-gb	pi_netrw.txt	/*netrw-gb*
+netrw-getftype	pi_netrw.txt	/*netrw-getftype*
 netrw-gh	pi_netrw.txt	/*netrw-gh*
 netrw-gx	pi_netrw.txt	/*netrw-gx*
 netrw-handler	pi_netrw.txt	/*netrw-handler*
@@ -6543,6 +6582,7 @@
 netrw-listbookmark	pi_netrw.txt	/*netrw-listbookmark*
 netrw-listhack	pi_netrw.txt	/*netrw-listhack*
 netrw-login	pi_netrw.txt	/*netrw-login*
+netrw-mB	pi_netrw.txt	/*netrw-mB*
 netrw-mT	pi_netrw.txt	/*netrw-mT*
 netrw-mb	pi_netrw.txt	/*netrw-mb*
 netrw-mc	pi_netrw.txt	/*netrw-mc*
@@ -6571,6 +6611,7 @@
 netrw-p1	pi_netrw.txt	/*netrw-p1*
 netrw-p10	pi_netrw.txt	/*netrw-p10*
 netrw-p11	pi_netrw.txt	/*netrw-p11*
+netrw-p12	pi_netrw.txt	/*netrw-p12*
 netrw-p2	pi_netrw.txt	/*netrw-p2*
 netrw-p3	pi_netrw.txt	/*netrw-p3*
 netrw-p4	pi_netrw.txt	/*netrw-p4*
@@ -6732,6 +6773,7 @@
 objects	index.txt	/*objects*
 obtaining-exted	netbeans.txt	/*obtaining-exted*
 ocaml.vim	syntax.txt	/*ocaml.vim*
+oldfiles-variable	eval.txt	/*oldfiles-variable*
 ole-activation	if_ole.txt	/*ole-activation*
 ole-eval	if_ole.txt	/*ole-eval*
 ole-gethwnd	if_ole.txt	/*ole-gethwnd*
@@ -6852,7 +6894,7 @@
 posix	vi_diff.txt	/*posix*
 posix-compliance	vi_diff.txt	/*posix-compliance*
 posix-screen-size	vi_diff.txt	/*posix-screen-size*
-postgres	ft_sql.txt	/*postgres*
+postgress	ft_sql.txt	/*postgress*
 postscr.vim	syntax.txt	/*postscr.vim*
 postscript-cjk-printing	print.txt	/*postscript-cjk-printing*
 postscript-print-encoding	print.txt	/*postscript-print-encoding*
@@ -6889,6 +6931,7 @@
 profiling-variable	eval.txt	/*profiling-variable*
 progname-variable	eval.txt	/*progname-variable*
 progress.vim	syntax.txt	/*progress.vim*
+pronounce	intro.txt	/*pronounce*
 psql	ft_sql.txt	/*psql*
 ptcap.vim	syntax.txt	/*ptcap.vim*
 pterm-mouse	options.txt	/*pterm-mouse*
@@ -7149,6 +7192,7 @@
 setting-guifont	gui.txt	/*setting-guifont*
 setting-guitablabel	tabpage.txt	/*setting-guitablabel*
 setting-tabline	tabpage.txt	/*setting-tabline*
+setuid	change.txt	/*setuid*
 setwinvar()	eval.txt	/*setwinvar()*
 sftp	pi_netrw.txt	/*sftp*
 sgml.vim	syntax.txt	/*sgml.vim*
@@ -7171,6 +7215,7 @@
 sin()	eval.txt	/*sin()*
 single-repeat	repeat.txt	/*single-repeat*
 skeleton	autocmd.txt	/*skeleton*
+slice	eval.txt	/*slice*
 slow-fast-terminal	term.txt	/*slow-fast-terminal*
 slow-start	starting.txt	/*slow-start*
 slow-terminal	term.txt	/*slow-terminal*
@@ -7195,6 +7240,7 @@
 spell-ACCENT	spell.txt	/*spell-ACCENT*
 spell-AUTHOR	spell.txt	/*spell-AUTHOR*
 spell-BAD	spell.txt	/*spell-BAD*
+spell-BREAK	spell.txt	/*spell-BREAK*
 spell-CHECKCOMPOUNDCASE	spell.txt	/*spell-CHECKCOMPOUNDCASE*
 spell-CHECKCOMPOUNDDUP	spell.txt	/*spell-CHECKCOMPOUNDDUP*
 spell-CHECKCOMPOUNDPATTERN	spell.txt	/*spell-CHECKCOMPOUNDPATTERN*
@@ -7214,6 +7260,7 @@
 spell-COMPOUNDPERMITFLAG	spell.txt	/*spell-COMPOUNDPERMITFLAG*
 spell-COMPOUNDROOT	spell.txt	/*spell-COMPOUNDROOT*
 spell-COMPOUNDRULE	spell.txt	/*spell-COMPOUNDRULE*
+spell-COMPOUNDRULES	spell.txt	/*spell-COMPOUNDRULES*
 spell-COMPOUNDSYLLABLE	spell.txt	/*spell-COMPOUNDSYLLABLE*
 spell-COMPOUNDSYLMAX	spell.txt	/*spell-COMPOUNDSYLMAX*
 spell-COMPOUNDWORDMAX	spell.txt	/*spell-COMPOUNDWORDMAX*
@@ -7224,6 +7271,7 @@
 spell-FORBIDDENWORD	spell.txt	/*spell-FORBIDDENWORD*
 spell-HOME	spell.txt	/*spell-HOME*
 spell-KEEPCASE	spell.txt	/*spell-KEEPCASE*
+spell-KEY	spell.txt	/*spell-KEY*
 spell-LANG	spell.txt	/*spell-LANG*
 spell-LEMMA_PRESENT	spell.txt	/*spell-LEMMA_PRESENT*
 spell-LOW	spell.txt	/*spell-LOW*
@@ -7311,9 +7359,11 @@
 sql-predefined-objects	ft_sql.txt	/*sql-predefined-objects*
 sql-type-default	ft_sql.txt	/*sql-type-default*
 sql-types	ft_sql.txt	/*sql-types*
+sql.txt	ft_sql.txt	/*sql.txt*
 sql.vim	syntax.txt	/*sql.vim*
 sqlanywhere	ft_sql.txt	/*sqlanywhere*
 sqlanywhere.vim	syntax.txt	/*sqlanywhere.vim*
+sqlgettype	ft_sql.txt	/*sqlgettype*
 sqlinformix.vim	syntax.txt	/*sqlinformix.vim*
 sqlj	ft_sql.txt	/*sqlj*
 sqlserver	ft_sql.txt	/*sqlserver*
@@ -7364,12 +7414,14 @@
 sub-replace-\=	change.txt	/*sub-replace-\\=*
 sub-replace-expression	change.txt	/*sub-replace-expression*
 sub-replace-special	change.txt	/*sub-replace-special*
+sublist	eval.txt	/*sublist*
 submatch()	eval.txt	/*submatch()*
 subscribe-maillist	intro.txt	/*subscribe-maillist*
 substitute()	eval.txt	/*substitute()*
 substitute-CR	version6.txt	/*substitute-CR*
 suffixes	cmdline.txt	/*suffixes*
 suspend	starting.txt	/*suspend*
+swap-exists-choices	usr_11.txt	/*swap-exists-choices*
 swap-file	recover.txt	/*swap-file*
 swapchoice-variable	eval.txt	/*swapchoice-variable*
 swapcommand-variable	eval.txt	/*swapcommand-variable*
@@ -7650,6 +7702,7 @@
 tear-off-menus	gui.txt	/*tear-off-menus*
 telnet-CTRL-]	tagsrch.txt	/*telnet-CTRL-]*
 temp-file-name	eval.txt	/*temp-file-name*
+tempfile	change.txt	/*tempfile*
 template	autocmd.txt	/*template*
 tempname()	eval.txt	/*tempname()*
 term-dependent-settings	term.txt	/*term-dependent-settings*
@@ -7818,6 +7871,7 @@
 v:mouse_col	eval.txt	/*v:mouse_col*
 v:mouse_lnum	eval.txt	/*v:mouse_lnum*
 v:mouse_win	eval.txt	/*v:mouse_win*
+v:oldfiles	eval.txt	/*v:oldfiles*
 v:operator	eval.txt	/*v:operator*
 v:prevcount	eval.txt	/*v:prevcount*
 v:profiling	eval.txt	/*v:profiling*
@@ -7942,6 +7996,7 @@
 v_y	change.txt	/*v_y*
 v_~	change.txt	/*v_~*
 val-variable	eval.txt	/*val-variable*
+valgrind	debug.txt	/*valgrind*
 values()	eval.txt	/*values()*
 variables	eval.txt	/*variables*
 various	various.txt	/*various*
@@ -8008,6 +8063,7 @@
 viminfo-file-marks	starting.txt	/*viminfo-file-marks*
 viminfo-file-name	starting.txt	/*viminfo-file-name*
 viminfo-read	starting.txt	/*viminfo-read*
+viminfo-read-write	starting.txt	/*viminfo-read-write*
 viminfo-write	starting.txt	/*viminfo-write*
 vimrc	starting.txt	/*vimrc*
 vimrc-filetype	usr_05.txt	/*vimrc-filetype*
diff -Nur runtime.patched/doc/tagsrch.txt runtime/doc/tagsrch.txt
--- runtime.patched/doc/tagsrch.txt	2008-08-09 07:23:00.000000000 -0700
+++ runtime/doc/tagsrch.txt	2009-02-22 13:51:57.000000000 -0800
@@ -1,4 +1,4 @@
-*tagsrch.txt*   For Vim version 7.2.  Last change: 2006 Apr 24
+*tagsrch.txt*   For Vim version 7.2.  Last change: 2009 Feb 18
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -176,7 +176,7 @@
 3. Tag match list				*tag-matchlist* *E427* *E428*
 
 When there are several matching tags, these commands can be used to jump
-between them.  Note that these command don't change the tag stack, they keep
+between them.  Note that these commands don't change the tag stack, they keep
 the same entry.
 
 							*:ts* *:tselect*
@@ -428,6 +428,10 @@
 |+emacs_tags| feature enabled.  Sorry, there is no explanation about Emacs tag
 files here, it is only supported for backwards compatibility :-).
 
+Lines in Emacs tags files can be very long.  Vim only deals with lines of up
+to about 510 bytes.  To see whether lines are ignored set 'verbose' to 5 or
+higher.
+
 							*tags-option*
 The 'tags' option is a list of file names.  Each of these files is searched
 for the tag.  This can be used to use a different tags file than the default
diff -Nur runtime.patched/doc/tips.txt runtime/doc/tips.txt
--- runtime.patched/doc/tips.txt	2008-08-09 07:23:00.000000000 -0700
+++ runtime/doc/tips.txt	2009-02-22 13:51:57.000000000 -0800
@@ -1,4 +1,4 @@
-*tips.txt*      For Vim version 7.2.  Last change: 2006 Jul 24
+*tips.txt*      For Vim version 7.2.  Last change: 2009 Feb 18
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -6,6 +6,10 @@
 
 Tips and ideas for using Vim				*tips*
 
+These are just a few that we thought would be helpful for many users.
+You can find many more tips on the wiki.  The URL can be found on
+http://www.vim.org
+
 Don't forget to browse the user manual, it also contains lots of useful tips
 |usr_toc.txt|.
 
@@ -18,11 +22,12 @@
 Counting words, lines, etc.			|count-items|
 Restoring the cursor position			|restore-position|
 Renaming files					|rename-files|
+Change a name in multiple files			|change-name|
 Speeding up external commands			|speed-up|
 Useful mappings					|useful-mappings|
 Compressing the help files			|gzip-helpfile|
-Hex editing					|hex-editing|
 Executing shell commands in a window		|shell-window|
+Hex editing					|hex-editing|
 Using <> notation in autocommands		|autocmd-<>|
 Highlighting matching parens			|match-parens|
 
@@ -266,6 +271,25 @@
 	:q!
 
 ==============================================================================
+Change a name in multiple files				*change-name*
+
+Example for using a script file to change a name in several files:
+
+	Create a file "subs.vim" containing substitute commands and a :update
+	command: >
+		:%s/Jones/Smith/g
+		:%s/Allen/Peter/g
+		:update
+<
+	Execute Vim on all files you want to change, and source the script for
+	each argument: >
+
+		vim *.let
+		argdo source subs.vim
+
+See |:argdo|.
+
+==============================================================================
 Speeding up external commands				*speed-up*
 
 In some situations, execution of an external command can be very slow.  This
diff -Nur runtime.patched/doc/todo.txt runtime/doc/todo.txt
--- runtime.patched/doc/todo.txt	2008-08-09 07:23:00.000000000 -0700
+++ runtime/doc/todo.txt	2009-10-28 13:57:15.000000000 -0700
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 7.2.  Last change: 2008 Aug 09
+*todo.txt*      For Vim version 7.2.  Last change: 2009 Oct 28
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -30,31 +30,319 @@
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
-":pedit %" with a BufReadPre autocommand causes the cursor to move to the
-first line. (Ingo Karkat, 2008 Jul 1)  Ian Kelling is working on this.
+Crash with redir to unknown array. (Christian Brabandt, 2009 Oct 25)
+Analysis by Dominique Pelle.
+  vim -u NONE -N -c 'redir => temp[0] |echo 1| redir END'
 
-Have a look at patch for utf-8 line breaking. (Yongwei Wu, 2008 Mar 1, Mar 23)
+C syntax: Recognize comments in #define (Samuel Thibault, 2009 Sep 16)
+
+patch to close file desc on ":shell". (James Vega, 2009 Aug 11, Sep 11)
+
+Crash when assigning s: to variable, pointer becomes invalid later.
+(Yukihiro Nakadaira, 2009 Oct 12, confirmed by Dominique Pelle)
+
+Coverity: ask someone to create new user: Dominique.
+look into reported defects: http://scan.coverity.com/rung2.html
+
+Spanish messages and menus. (Omar Campagne, 2009 Oct 1)
+
+Patch to fix text formatting with small 'tw'. (Yukihiro Nakadaira, 2009 Sep
+26, update Sep 29)
+
+Bug with 'incsearch' going to wrong line. (Wolfram Kresse, 2009 Aug 17)
+Only with "vim -u NONE".
+
+Problem with editing file in binary mode. (Ingo Krabbe, 2009 Oct 8)
+
+Support .xz with the xz program, like with lzma.
+
+Patch to set v:key for map() function. (Hari Krishna Dara, 2009 Sep 26)
+
+Perl runtime files update. (Andy Lester, 2009 Aug 25)
+
+Gvimext patch to support wide file names. (Szabolcs Horvat 2008 Sep 10)
+
+Problem with stop directory in findfile(). (Adam Simpkins, 2009 Aug 26)
+
+Patch to support :browse for more commands. (Lech Lorens, 2009 Jul 18)
+
+New wordlist for Dutch: http://www.opentaal.org/bestanden/1_10/nl_NL-Pack
+
+Check for unused functions, idea:
+http://blog.flameeyes.eu/2008/01/17/today-how-to-identify-unused-exported-functions-and-variables
+
+In command line window ":close" doesn't work properly. (Tony Mechelynck, 2009
+Jun 1)
+
+When a:base in 'completefunc' starts with a number it's passed as a number,
+not a string. (Sean Ma)  Need to add flag to call_func_retlist() to force a
+string value.
+
+Reproducable crash in syntax HL. (George Reilly, Dominique Pelle, 2009 May 9)
+
+Invalid read error in Farsi mode. (Dominique Pelle, 2009 Aug 2)
+
+For running gvim on an USB stick: avoid the OLE registration.  Use a command
+line argument -noregister.
+
+submatch() may remove backslash. (Sergey Goldgaber, 2009 Jul 6)
+
+Still a problem with ":make" in the wrong directory.  Caused by ":bufdo".
+(Ajit Thakkar, 2009 Jul 1) More information Jul 9, Jul 15.
+Caused by "doautoall syntaxset BufEnter *" in syntax/nosyntax.vim ?
+There also is a BufLeave/BufEnter aucmd to save/restore view.
+Does the patch to save/restore globaldir work?
+
+Patch for displaying 0x200c and 0x200d. (Ali Gholami Rudi, 2009 May 6)
+Probably needs a bit of work.
+
+List of encoding aliases. (Takao Fujiware, 2009 Jul 18)
+Are they all OK?  Update Jul 22.
+
+Patch for Ruby sockets. (todesking/Ariya Mizutani, 2008 Jul 1,24)
+Confirmed by Anton Sharonov, 2008 Dec 26.
+
+Patch for Ruby 1.9. (Msaki Suketa, 2009 Jul 21, Jul 26)
+
+Patch for completion of ":find" arguments. (Nazri Ramliy, 2009 Feb 22, 26)
+8   For ":find" and ":sfind" expand files found in 'path'.
+Update 2009 Mar 28.
+
+Setting 'tags' to "tagsdir/*" does not find "tagsdir/tags". (Steven K. Wong,
+2009 Jul 18)
+
+":e dir<Tab>" with 'wildmode' set to "list" doesn't highlight directory names
+with a space. (Alexandre Provencio, 2009 Jun 9)
+
+Patch to add farsi handling to arabic.c (Ali Gholami Rudi, 2009 May 2)
+Added test, updates, June 23.
+
+Patch to add "focusonly" to 'scrollopt', so that scrollbind also applies in
+window that doesn't have focus. (Jonathon Mah, 2009 Jan 12)
+Needs more work.
+
+Problem with <script> mappings (Andy Wokula, 2009 Mar 8)
+
+Patch to support netbeans for Mac. (Kazuki Sakamoto, 2009 Jun 25)
+
+Patch to support clibpoard for Mac terminal. (Jjgod Jiang, 2009 Aug 1)
+
+When starting Vim with "gvim -f -u non_existent_file > foo.txt" there are a
+few control characters in the output. (Dale Wiles, 2009 May 28)
+
+'cmdwinheight is only used in last window when 'winheight' is a large value.
+(Tony Mechelynck, 2009 Apr 15)
+
+Status line containing winnr() isn't updated when splitting the window (Clark
+J.  Wang, 2009 Mar 31)
+
+Patch for vertical line at certain column position, 'guidecolumn' option.
+(Pankaj Garg, 2009 Apr 14, aka Lone, Apr 15)
+Update 2009 May 2, 'margincolumn'
+
+Add different highlighting for a fold line depending on the fold level.
+Patch. (Noel Henson, 2009 Sep 13)
+
+When 'ft' changes redraw custom status line.
+
+":tab split fname" doesn't set the alternate file in the original window,
+because win_valid() always returns FALSE.  Below win_new_tabpage() in
+ex_docmd.c.
+
+Space before comma in function defenition not allowed: "function x(a , b)"
+Give a more appropriate error message.  Add a remark to the docs.
+
+string_convert() should be able to convert between utf-8 and utf-16le.  Used
+for GTK clipboard.  Avoid requirement for iconv.
+
+Now that colnr_T is int instead of unsigned, more type casts can be removed.
+
+'delcombine' does not work for the command line. (Tony Mechelynck, 2009 Jul
+20)
+
+Unwanted file name escaping: ":echo input('file:' , '', 'file')"
+And use file name completion on a file with spaces. (Frederic Hardy, 2009 Mar
+23)
+
+Don't load macmap.vim on startup, turn it into a plugin. (Ron Aaron,
+2009 Apr 7)  Reminder Apr 14.
+
+Add "no_hlsearch" to winsaveview().
+
+Cursorline highlighting combines with Search ('hlsearch') but not with
+SpellBad. (Jim Karsten, 2009 Mar 18)
+
+When 'foldmethod' is "indent", using >> on a line just above a fold makes the
+cursor line folded. (Evan Laforge, 2009 Oct 17)
+
+When 'foldmethod' is "indent", adding an empty line below a fold and then
+indented text, creates a new fold instead of joining it with the previous one.
+(Evan Laforge, 2009 Oct 17)
+
+Bug: When reloading a buffer changed outside of Vim, BufRead autocommands
+are applied to the wrong buffer/window. (Ben Fritz, 2009 Apr 2, May 11)
+Ignore window options when not in the right window?
+Perhaps we need to use a hidden window for applying autocommands to a buffer
+that doesn't have a window.
+
+When using "ab foo bar" and mapping <Tab> to <Esc>, pressing <Tab> after foo
+doesn't trigger the abbreviation like <Esc> would. (Ramana Kumar, 2009 Sep 6)
+
+getbufvar() to get a window-local option value for a buffer that's not
+displayed in a window should return the value that's stored for that buffer.
+
+":he ctrl_u" can be auto-corrected to ":he ctrl-u".
+
+Patch to make synIDattr() work for GUI attributes in Vim without GUI feature.
+(Matt Wozniski, 2009 Apr 15)
+
+There should be a way after an abbreviation has expanded to go back to what
+was typed.  CTRL-G h ?  Would also undo last word or line break inserted
+perhaps.  And undo CTRL-W.  CTRL-G l would redo.
+
+Win32: A --remote command that has a directory name starting with a ( doesn't
+work, the backslash is removed, assuming that it escapes the (. (Valery
+Kondakoff, 2009 May 13)
+
+Win32 GUI: Changing manifest helps for dpi changes (Joe Castro, 2009 Mar 27)
+
+Win32: patch for cross compile xxd and GvimExt. (Markus Heidelberg, 2009 Mar
+18)  Also update INSTALLpc.txt?
+Patch for xxd/Make_cyg.mak. (Chris Sutcliffe, 2009 Jun 10) Included in the
+above?
+
+Win32: patch for better font scaling. (George Reilly, 2009 Mar 26)
+
+Win32 GUI: last message from startup doesn't show up when there is an echoerr
+command. (Cyril Slobin, 2009 Mar 13)
+
+Win32: use different args for SearchPath()? (Yasuhiro Matsumoto, 2009 Jan 30)
+
+Win32: completion of file name ":e c:\!test" results in ":e c:\\!test", which
+does not work. (Nieko Maatjes, 2009 Jan 8, Ingo Karkat, 2009 Jan 22)
+
+Directory wrong in session file, caused by ":lcd" in BufEnter autocommand.
+(Felix Kater, 2009 Mar 3)
+
+maparg() doesn't return the flags, such as <buffer>, <script>, <silent>.
+These are needed to save and restore a mapping.
+Also: the rhs string is not always correct. (Hari Krishna Dara, 2009 Sept 29)
+
+Using ~ works OK on 'a' with composing char, but not on 0x0418  with composing
+char 0x0301. (Tony Mechelynck, 2009 Mar 4)
+
+6   In the quickfix window statusline add the command used to get the list of
+    errors, e.g. ":make foo", ":grep something *.c".
+    Patch by Lech Lorens, 2009 Mar 23.
+    Comments from Andreas Bernauer 24th, Dominique Pelle 24th
+    Docs patch by Dominique Pelle, Mar 25
+    Update 2009 Mar 28.
+    Fix for invalid memory access. (Lech Lorens, 2009 Apr 17)
+
+Inconsistent: starting with $LANG set to es_ES.utf-8 gives Spanish
+messages, even though locale is not supported.  But ":lang messages
+es_ES.utf-8" gives an error and doesn't switch messages. (Dominique Pelle,
+2009 Jan 26)
+
+When $HOME contains special characters, sich as a comma, escape them when used
+in an option. (Michael Hordijk, 2009 May 5)
+Turn "esc" argument of expand_env_esc() into string of chars to be escaped.
+
+Can 'undolevels' be a buffer-local option?  Helps for making big changes in
+one file only, set 'ul' to -1 only for that buffer.
+
+Should make 'ignorecase' global-local, so that it makes sense setting it from
+a modeline.
+
+Add cscope target to Makefile. (Tony Mechelynck, 2009 Jun 18, replies by
+Sergey Khorev)
+
+Consider making YankRing or something else that keeps a list of yanked text
+part of standard Vim.  The "1 to "9 registers are not sufficient.
 
 netrw: dragging status line causes selection of entry.  Should check row
 number to be below last visible line.
 
+Make do_do_join() work faster.  Could at least do a binary search way of doing
+this.  Hint from Dominique Pelle, Dec 10; Lee Naish, Dec 11.
+Patch from Milan Vancura, 2008 Dec 22.  Update 2009 Jan 7 in two parts.
+
+After doing "su" $HOME can be the old user's home, thus ~root/file is not
+correct.  Don't use it in the swap file.
+
+Completion for ":buf" doesn't work properly on Win32 when 'shellslash' is off.
+(Henrik Ohman, 2009, Jan 29)
+
+Allow patches to add something to version.c, like with an official patch, so
+that :version output shows which patches have been applied.
+
+Have a look at patch for utf-8 line breaking. (Yongwei Wu, 2008 Mar 1, Mar 23)
+Now at: http://vimgadgets.sourceforge.net/liblinebreak/
+
+Greek sigma character should be lower cased depending on the context.  Can we
+make this work?  (Dominique Pelle, 2009 Sep 24)
+
+Disable setting 'encoding' from a modeline?  It usually causes problems, can't
+do any good.  (Patch from Patrick Texier, 2008 Dec 9)
+
+When changing 'encoding' convert all the swap file names, so that we can
+still delete them.  Also convert all buffer file names?
+
+Update src/testdir/main.aap.
+
+"vim -c 'sniff connect'" hangs Vim. (Dominique Pelle, 2008 Dec 7)
+
+Something wrong with session that has "cd" commands and "badd", in such a way
+that Vim doesn't find the edited file in the buffer list, causing the
+ATTENTION message?  (Tony Mechelynck, 2008 Dec 1)
+Also: swap files are in ~/tmp/  One has relative file name ".mozilla/...".
+
+Add v:motion_force. (Kana Natsuno, 2008 Dec 6)
+
+Redraw problem when appending digraph causes line to wrap. (James Vega, 2007
+Sep 18)  Patch by Ian Kelling, 2008 Aug 8.
+
 Runtime files for Clojure. (Toralf Wittner, 2008 Jun 25)
 
-Patch to add extra argument to glob() and globpath() to ignore 'wildignore'.
-(Ingo Karkat, 2008 Jun 25)
+MS-Windows: editing the first, empty buffer, 'ffs' set to "unix,dos", ":enew"
+doesn't set 'ff' to "unix".  (Ben Fritz, 2008 Dec 5) Reusing the old buffer
+probably causes this.
+
+'scrollbind' is not respected when deleting lines or undo. (Milan Vancura,
+1009 Jan 16)
+
+Document that default font in Athena can be set with resources:
+   XtDefaultFont: "9x15"
+   XtDefaultFontSet: "9x15"
+(Richard Sherman, 2009 Apr 12)
+
+Having "Syntax" in 'eventignore' for :bufdo may cause problems, e.g. for
+":bufdo e" when buffers are open in windows.  ex_listdo(eap) could set the
+option only for when jumping to another buffer, not when the command argument
+is executed.
 
 Crash with dragn-n-drop of file combined with netrw (Marius Gedminas, 2008 Jun
 11)  I can't reproduce it.  It's probably caused by a handle_drop() call
 in combination with autocommands that invoke a ":redraw" command.
 Another valgrind output Jun 30.
 
-When reallocating cmdline xp_pattern becomes invalid.  Move expand_T xpc into
-ccline?  (Dominique Pelle)
+":pedit %" with a BufReadPre autocommand causes the cursor to move to the
+first line. (Ingo Karkat, 2008 Jul 1)  Ian Kelling is working on this.
 
 Wildmenu not deleted: "gvim -u NONE", ":set nocp wildmenu cmdheight=3
 laststatus=2", CTRL-D CTRL-H CTRL-H CTRL-H. (A.Politz, 2008 April 1)
 Works OK with Vim in an xterm.
 
+Cursor line moves in other window when using CTRL-W J that doesn't change
+anything.  (Dasn, 2009 Apr 7)
+
+On Unix "glob('does not exist~')" returns the string.  Without the "~" it
+doesn't. (John Little, 2008 Nov 9)
+Shell expansion returns unexpanded string?
+Don't use shell when "~" is not at the start?
+
+":unlet $VAR" doesn't work.
+
 When using ":e ++enc=foo file" and the file is already loaded with
 'fileencoding' set to "bar", then do_ecmd() uses that buffer, even though the
 fileencoding differs.  Reload the buffer in this situation?  Need to check for
@@ -62,8 +350,24 @@
 Unfinished patch by Ian Kelling, 2008 Jul 11.  Followup Jul 14, need to have
 another look at it.
 
+Patch for c.vim and cpp.vim syntax files. (Chung-chieh Shan, 2008 Nov 26)
+
+c.vim: XXX in a comment is colored yellow, but not when it's after "#if 0".
+(Ilya Dogolazky, 2009 Aug 7)
+
+Win32:  ":dis +" shows nothing, but "+p does insert text.  Problem with "* and
+"+ being the same thing?
+
+You can type ":w ++bad=x fname", but the ++bad argument is ignored.  Give an
+error message?  Or is this easy to implement?  (Nathan Stratton Treadway, 2008
+Aug 20)  This is in ucs2bytes(), search for 0xBF.  Using the ++bad argument is
+at the other match for 0xBF.
+
 Fix for matchparen HL doesn't work.  beep.
 
+When adding "-complete=file" to a user command this also changes how the
+argument is processed for <f-args>. (Ivan Tishchenko, 2008 Aug 19)
+
 Win32: associating a type with Vim doesn't take care of space after a
 backslash? (Robert Vibrant, 2008 Jun 5)
 
@@ -74,13 +378,43 @@
 ":help s/~" jumps to *s/\~*, while ":help s/\~" doesn't find anything. (Tim
 Chase)  Fix by Ian Kelling, 2008 Jul 14.
 
+":colorscheme" without arguments should echo the current color scheme name.
+
+After using ":recover" or recovering a file in another way, ":x" doesn't save
+what you see.  Mark the buffer as modified?  Only when the text is actually
+different from the original file?
+
+Use "\U12345678" for 32 bit Unicode characters?  (Tony Mechelynck, 2009
+Apr 6)  Or use "\u(123456)", similar to Perl.
+
+When mapping : to ; and ; to :, @; doesn't work like @: and @: doesn't work
+either.  Matt Wozniski:  nv_at() calls do_execreg() which uses
+put_in_typebuf().  Char mapped twice?
+
+Patch for colorscheme submenu. (Juergen Kraemer, 2008 Aug 20)
+
+Patch for Python 3 support. (Roland Puntaier, 2009 Sep 22)
+Includes changes for omnicompletion.
+Needs to be tested.
+
+8   Some file systems are case-sensitive, some are not.  Turn
+    CASE_INSENSITIVE_FILENAME into an option, at least for completion.
+
+9   Make it possible to drag a tab page label to another position with the
+    mouse.
+Patch by Paul B. Mahol, 2008 Aug 29.
+
 Despite adding save_subexpr() this still doesn't work properly:
 Regexp: matchlist('12a4aaa', '^\(.\{-}\)\(\%5c\@<=a\+\)\(.\+\)\?')
 Returns ['12a4', 'aaa', '4aaa'], should be ['12a4', 'aaa', '']
 Backreference not cleared when retrying after \@<= fails?
 (Brett Stahlman, 2008 March 8)
 
-Patch for 2html.vim to avoid "&amp;nbsp;". (Markus Heidelberg, 2008 Jul 19)
+Problem with remote_send(). (Charles Campbell, 2008 Aug 12)
+
+Patch to support netbeans in Unix console Vim. (Xaview de Gaye, 2009 Apr 26)
+
+ftplugin for help file should set 'isk' to help file value.
 
 Win32: remote editing fails when the current directory name contains "[".
 (Ivan Tishchenko, Liu Yubao)  Suggested patch by Chris Lubinski: Avoid
@@ -102,9 +436,14 @@
 Only happens with "gvim -geometry "160x26+4+27" -u NONE -U NONE prop.c".
 'lines' is 54. (2008 March 27)
 
+Problem with pointer wrapping around in getvcol(). (Wolfgang Kroworsch, 2008
+Oct 19)  Check for "col" being "MAXCOL" separately?
+
 Unexpectedly inserting a double quote. (Anton Woellert, 2008 Mar 23)
 Works OK when 'cmdheight' is 2.
 
+Test54 should not use shell commands.  Make it portable.
+
 The utf class table is missing some entries:
 	0x2212, minus sign 
 	0x2217, star
@@ -117,6 +456,12 @@
 GUI: In Normal mode can't yank the modeless selection.  Make "gy" do this?
 Works like CTRL-Y in Command line mode.
 
+Mac: Move Carbon todo items to os_mac.txt.  Note that this version is frozen,
+try the Cocoa version.
+
+Mac: Patch to disable antialias. (LC Mi, 2008 Aug 23)  Tested on 10.5 and
+10.4.
+
 Mac: After a ":vsplit" the left scrollbar doesn't appear until 'columns' is
 changed or the window is resized.
 
@@ -134,12 +479,37 @@
 with %nn%nn, which is taken as two characters instead of one.
 Try to reproduce at work.
 
+Patch for default choice in file changed dialog. (Bjorn Winckler, 2008 Oct 19)
+Is there a way to list all the files first?
+
+When 'smartcase' is set and using CTRL-L to add to the search pattern it may
+result in no matches.  Convert chars to lower case? (Erik Wognsen, 2009 Apr
+16)
+
 Patch for redo register. (Ben Schmidt, 2007 Oct 19)
 Await response to question to make the register writable.
 
+src/testdir/Make_dos.mak: not all tests are included, e.g., test49, without a
+remark why.
+
 Problem with 'ts' set to 9 and 'showbreak' to ">>>". (Matthew Winn, 2007 Oct
 1)
 
+In the swapfile dialog, add a H(elp) option that gives more info about what
+each choice does.  Similar to  ":help swap-exists-choices"
+
+try/catch not working for argument of return. (Matt Wozniski, 2008 Sep 15)
+
+Recognize and ignore BOM in error file. (Aleksey Baibarin)
+
+":tab help" always opens a new tab, while ":help" re-uses an existing window.
+Would be more consistent when an existing tab is re-used. (Tony Mechelynck)
+
+":tab drop filename" doesn't work nicely when "filename" is open in a window
+in another tab. (Tony Mechelynck, 2009 Feb 13)
+
+Add ":nofold".  Range will apply without expanding to closed fold.
+
 Including NFA regexp code:
 Use "\%#= to set the engine: 0 = automatic, 1 = backtracking, 2 = new.
 Useful in tests.
@@ -147,6 +517,7 @@
 - ~/vim/test/veryslow.js (file from Daniel Fetchinson)
 - ~/vim/test/slowsearch
 - ~/vim/test/rgb.vim
+- ~/vim/text/FeiqCfg.xml (file from Netjune)
 - search for  a.*e*exn  in the vim executable.  Go to last line to use
   'hlsearch'.
 
@@ -160,6 +531,9 @@
 C syntax: {} inside () causes following {} to be highlighted as error.
 (Michalis Giannakidis, 2006 Jun 1)
 
+Can't easily close the help window, like ":pc" closes the preview window and
+":ccl" closes the quickfix window.  Add ":hclose". (Chris Gaal)
+
 When 'diffopt' has "context:0" a single deleted line causes two folds to merge
 and mess up syncing. (Austin Jennings, 2008 Jan 31)
 
@@ -168,13 +542,24 @@
 
 New PHP syntax file, use it? (Peter Hodge)
 
+Patch go make gui highlight settings work in Vim without +gui feature.
+(Matt Wozniski, 2009 Mar 27)
+
 'foldcolumn' in modeline applied to wrong window when using a session. (Teemu
 Likonen, March 19)
 
+Test 54 uses shell commands, that doesn't work on non-Unix systems.  Use some
+other way to test buffer-local autocommands.
+
 The documentation mentions the priority for ":2match" and ":3match", but it
 appears the last one wins. (John Beckett, 2008 Jul 22)  Caused by adding
 matchadd()?  Suggested patch by John, 2008 Jul 24.
 
+When 'encoding' is utf-8 the command line is redrawn as a whole on every
+character typed. (Tyler Spivey, 2008 Sep 3)  Only redraw cmdline for
+'arabicshape' when there is a character on the command line for which
+(ARABIC_CHAR(u8c)) is TRUE.
+
 Replace ccomplete.vim by cppcomplete.vim from www.vim.org?  script 1520
 by Vissale Neang.  (Martin Stubenschrott)
 Asked Vissale to make the scripts more friendly for the Vim distribution.
@@ -192,9 +577,6 @@
 Problem with compound words?  (Bert, 2008 May 6)
 No warning for when flags are defined after they are used in an affix.
 
-With Visual selection, "r" and then CTRL-C  Visual mode is stopped but the
-highlighting is not removed.
-
 Screen redrawing when continuously updating the buffer and resizing the
 terminal. (Yakov Lerner, 2006 Sept 7)
 
@@ -206,6 +588,9 @@
 
 When opening quickfix window, disable spell checking?
 
+Problem with ".add" files when using two languages and restarting Vim. (Raul
+Coronado, 2008 Oct 30)
+
 Popup menu redraw: Instead of first redrawing the text and then drawing the
 popup menu over it, first draw the new popup menu, remember its position and
 size and then redraw the text, skipping the characters under the popup menu.
@@ -214,13 +599,13 @@
 When the popup menu is close to the edge of the window it is truncated.  Patch
 to anchor the popup menu in a different way. (James Vega, 2008 Jul 30)
 
-Spell checking: Add a way to specify punctuation characters.  Add the
-superscript numbers by default: 0x2070, 0xb9, 0xb2, 0xb3, 0x2074 - 0x2079.
-
 Windows 98: pasting from the clipboard with text from another application has
 a trailing NUL.  (Joachim Hofmann)  Perhaps the length specified for CF_TEXT
 isn't right?
 
+When a register contains illegal bytes, writing viminfo in utf-8 and reading
+it back doesn't result in utf-8. (Devin Bayer)
+
 Command line completion: Scanning for tags doesn't check for typed key now and
 then?  Hangs for about 5 seconds.  Appears to be caused by finding include
 files with "foo/**" in 'path'.  (Kalisiak, 2006 July 15)
@@ -239,6 +624,9 @@
 However, for backwards compatibility escaping might be necessary.  Check if
 the user put quotes around the expanded item?
 
+Error E324 can be given when a cron script has wiped out our temp directory.
+Give a clear error message about this (and tell them not to wipe out /tmp).
+
 Color for cUserLabel should differ from case label, so that a mistake in a
 switch list is noticed:
     switch (i)
@@ -254,23 +642,21 @@
 go to Insert mode and add a few lines.  Then backspacing every other time
 moves the cursor instead of deleting. (Chris Kaiser, 2007 Sep 25)
 
-Redraw problem when appending digraph causes line to wrap. (James Vega, 2007
-Sep 18)  Patch by Ian Kelling, 2008 Aug 8.
-
 Changes for Win32 makefile. (Mike Williams, 2007 Jan 22, Alexei Alexandrov,
 2007 Feb 8)
 
 Patch for Win32 clipboard under Cygwin. (Frodak Baksik, Feb 15)
     Sutcliffe says it works well.
     Update 2007 May 22 for Vim 7.1
+    Update 2008 Dec 2008 for Vim 7.2.xx (Sharonov)
+
+Win32: Can't complete shell command names.  Why is setting xp_context in
+set_one_cmd_context() inside #ifndef BACKSLASH_IN_FILENAME?
 
 Win32: Patch for convert_filterW(). (Taro Muraoka, 2007 Mar 2)
 
 Win32: Patch for cscope external command. (Mike Williams, 2007 Aug 7)
 
-":cscope find f  filename" doesn't work because of the extra space. (Ethan
-Mallove)
-
 Win32: XPM support only works with path without spaces.  Patch by Mathias
 Michaelis, 2006 Jun 9.  Another patch for more path names, 2006 May 31.
 New version: http://members.tcnet.ch/michaelis/vim/patches.zip (also for other
@@ -292,9 +678,6 @@
 Win32: using CTRL-S in Insert mode doesn't remove the "+" from the tab pages
 label.  (Tsakiridis, 2007 Feb 18)  Patch from Ian Kelling, 2008 Aug 6.
 
-When 'bomb' is changed the window title is updated to show/hide a "+", but the
-tab page label isn't. (Patrick Texier, 2008 Jun 24)
-
 Win32: using "gvim --remote-tab-silent fname" sometimes gives an empty screen
 with the more prompt.  Caused by setting the guitablabel?  (Thomas Michael
 Engelke, 2007 Dec 20 - 2008 Jan 17)
@@ -307,9 +690,28 @@
 
 Win32: patch for fullscreen mode. (Liushaolin, 2008 April 17)
 
+Win32: When 'shell' is cmd.exe this command fails:
+	echo system('"c:/path/echo.exe" "foo bar"')
+Should we set the default for 'shellxquote' to a double quote, when 'shell'
+contains "cmd" in the tail?  (Benjamin Fritz, 2008 Oct 13)
+Also set 'shellcmdflag' to include /s.
+
+Win32: When there is 4 Gbyte of memory mch_avail_mem() doesn't work properly.
+Unfished patch by Jelle Geerts, 2008 Aug 24.
+Let mch_avail_mem() return Kbyte instead?
+
+Win32: With two monitors, gvim partly on both, and adding/removing a scrollbar
+Vim resizes and moves to one of the monitors. (Chris Monkiewicz, 2008 Oct)
+
+Win32: When 'shell' is bash shellescape() doesn't always do the right thing.
+Depends on 'shellslash', 'shellquote' and 'shellxquote', but shellescape()
+only takes 'shellslash' into account.
+
 When file b is a link to file a and editing b twice you get the correct
 warning for existing swap file, but when trying to recover it doesn't find the
-swapfile. (Matt Wozniski, 2008 Aug 5)
+swapfile. (Matt Wozniski, 2008 Aug 5)  Patch by Ian Kelling, 2008 Aug 11.
+Another patch by James Vega, 2008 Aug 20, again 2008 Sep 3.
+Also solves: Problem finding swap file for recovery. (Gautam Iyer, 2006 May 16)
 
 Pressing the 'pastetoggle' key doesn't update the statusline. (Jan Christoph
 Ebersbach, 2008 Feb 1)
@@ -327,12 +729,16 @@
 
 If the variable "g:x#y#z" exists completion after ":echo g:x#" doesn't work.
 
+Feature request: Command to go to previous tab, like what CTRL-W p does for
+windows. (Adam George)
+
+When using input() in a loop and then ":echo" the display column isn't right.
+(Benjamin Fritz, 2008 Aug 28)  Patch by Ben Schmidt, 2008 Sep 2.
+
 F1 - F4 in an xterm produce a different escape sequence when used with a
 modifier key.  Need to catch three different sequences.  Use K_ZF1, like
 K_ZHOME? (Dickey, 2007 Dec 2)
 
-Problem finding swap file for recovery. (Gautam Iyer, 2006 May 16)
-
 UTF-8: mapping a multi-byte key where the second byte is 0x80 doesn't appear
 to work. (Tony Mechelynck, 2007 March 2)
 
@@ -353,12 +759,13 @@
 if_ruby.c.
 
 Problem with cursorcolumn highlighting and folds. (John Mullin, 2008 Jul 18)
-
-Spell checking in popup menu: If the only problem is the case of the first
-character, don't offer "ignore" and "add to word list".
+Problem with cursorcolumn in wide characters. (Dominique Pelle, 2009 May 5)
 
 ":helpgrep" should use the directory from 'helpfile'.
 
+Patch to dynamically load Python on Solaris. (Danek Duvall, 2009 Feb 16)
+Needs more work.
+
 The need_fileinfo flag is messy.  Instead make the message right away and put
 it in keep_msg?
 
@@ -369,7 +776,10 @@
 Test 61 fails sometimes.  This is a timing problem: "sleep 2" sometimes takes
 longer than 2 seconds.
 
-Changing 'guifont' in the console causes an unnecessary redraw.
+Using ":au CursorMoved * cmd" invokes mch_FullName(), which can be slow.
+Can this be avoided? (Thomas Waba, 2008 Aug 24)
+Also for ":w" without a file name.
+The buffer has the full path in ffname, should pass this to the autocommand.
 
 "vim -C" often has 'nocompatible', because it's set in some startup script.
 Set 'compatible' after startup is done?  Patch by James Vega, 2008 Feb 7.
@@ -393,11 +803,18 @@
 Another problem is that file_pat_to_reg_pat() doesn't recognize "\\", so "\\(" 
 will be seen as a path separator plus "\(".
 
+When doing ":quit" the Netbeans "killed" event isn't sent.  (Xavier de Gaye,
+2008 Nov 10)  call netbeans_file_closed() at the end of buf_freeall(), or in
+all places where buf_freeall() is called?
+
 ":python os.chdir('/tmp')" makes short buffer names invalid. (Xavier de Gaye)
 Check directory and call shorten_fnames()?
 
 aucmd_prepbuf() should also use a window in another tab page.
 
+When unloading a buffer in a BufHidden autocommand the hidden flag is reset?
+(Bob Hiestand, 2008 Aug 26, Aug 27)
+
 Substituting an area with a line break with almost the same area does change
 the Visual area.  Can this be fixed? (James Vega, 2006 Sept 15)
 
@@ -409,13 +826,33 @@
 
 GUI: When combining fg en bg make sure they are not equal.
 
+Spell checking: Add a way to specify punctuation characters.  Add the
+superscript numbers by default: 0x2070, 0xb9, 0xb2, 0xb3, 0x2074 - 0x2079.
+
+Spell checking in popup menu: If the only problem is the case of the first
+character, don't offer "ignore" and "add to word list".
+
 Use different pt_br dictionary for spell checking. (Jackson A. Aquino, 2006
 Jun 5)
 
+Use different romanian dictionary for spell checking. (Andrei Popescu, Nov
+2008)  Use http://downloads.sourceforge.net/rospell/ro_RO.3.2.zip
+Or the hunspell-ro.3.2.tar.gz file, it also has a iso-8859-2 list.
+
+In a C file with spell checking, in "% integer" "nteger" is seen as an error,
+but "]s" doesn't find it.  "nteger" by itself is found. (Ralf Wildenhues, 2008
+Jul 22)
+
+There should be something about spell checking in the user manual.
+
+Spell menu: When using the Popup menu to select a replacement word,
+":spellrepeat" doesn't work.  SpellReplace() uses setline().  Can it use "z="
+somehow?  Or use a new function.
+
 Mac: Using gvim: netrw window disappears. (Nick Lo, 2006 Jun 21)
 
-When 'ff' is "mac" then "ga" on a ^J shows 0x0d instead of 0x0a.  Compare with
-using "ga" on a NUL when 'ff' is "unix". (Andy Wokula, 2008 Jul 16)
+Mac: OS/X 10.4 with Python 2.5 installed: configure finds an extra argument
+that breaks the build. (Brian Victor, 2008 Sep 1)
 
 Add an option to specify the character to use when a double-width character is
 moved to the next line.  Default '>', set to a space to blank it out.  Check
@@ -423,13 +860,13 @@
 
 The generated vim.bat can avoid the loop for NT. (Carl Zmola, 2006 Sep 3)
 
-In a C file with spell checking, in "% integer" "nteger" is seen as an error,
-but "]s" doesn't find it.  "nteger" by itself is found. (Ralf Wildenhues, 2008
-Jul 22)
-
 Session file creation: 'autochdir' causes trouble.  Keep it off until after
 loading all files.
 
+Win32: When 'autochdir' is on and 'encoding' is changed, files on the command
+line are opened again, but from the wrong directory.  Apply 'autochdir' only
+after starting up?
+
 When showing a diff between a non-existant file and an existing one, with the
 cursor in the empty buffer, the other buffer only shows the last line.  Change
 the "insert" into a change from one line to many? (Yakov Lerner, 2008 May 27)
@@ -443,10 +880,6 @@
 background make.  ":bgcancel" interrupts it.
 A.Politz may work on this.
 
-The spellfile plugin checks for a writable "spell" directory.  A user may have
-a writable runtime directory without a "spell" directory, it could be created
-then.
-
 These two abbreviations don't give the same result:
 	let asdfasdf = "xyz\<Left>"
 	cabbr XXX <C-R>=asdfasdf<CR>
@@ -489,6 +922,10 @@
 
 Accessing file#var in a function should not need the g: prepended.
 
+When exiting detects a modified buffer, instead of opening the buffer in the
+current tab, use an existing tab, if possible.  Like finding a window where
+the buffer is displayed. (Antonios Tsakiridis)
+
 When ":cn" moves to an error in the same line the message isn't shortened.
 Only skip shortening for ":cc"?
 
@@ -521,9 +958,6 @@
 Another resizing problem when setting 'columns' and 'lines' to a very large
 number. (Tony Mechelynck, 2007 Feb 6)
 
-GTK: when using the -geom argument with an offset from the right edge and the
-size is smaller than the default, the Vim window is not positioned properly.
-
 After starting Vim, using '0 to jump somewhere in a file, ":sp" doesn't center
 the cursor line.  It works OK after some other commands.
 
@@ -531,8 +965,6 @@
 Does multi-byte printing with ":hardcopy" work?  Add remark in documentation
 about this.
 
-There should be something about spell checking in the user manual.
-
 Check: Running Vim in a console and still having connect to the X server for
 copy/paste: is stopping the X server handled gracefully?  Should catch the X
 error and stop using the connection to the server.
@@ -540,18 +972,35 @@
 Problem with 'cdpath' on MS-Windows when a directory is equal to $HOME. (2006
 Jul 26, Gary Johnson)
 
+Using UTF-8 character with ":command" does not work properly. (Matt Wosniski,
+2008 Sep 29)
+
 In the Netbeans interface add a "vimeval" function, so that the other side can
 check the result of has("patch13").
 
+Cursor line at bottom of window instead of halfway after saving view and
+restoring.  Only with 'nowrap'. (Robert Webb, 2008 Aug 25)
+
 Add command modifier that skips wildcard expansion, so that you don't need to
 put backslashes before special chars, only for white space.
 
+Syntax HL: open two windows on the same C code, delete a ")" in one window,
+resulting in highlighted "{" in that window, not in the other.
+
+In mswin.vim: Instead of mapping <C-V> for Insert mode in a complicated way,
+can it be done like ":imap <C-V> <MiddleMouse>" without negative side effects?
+
 Win32: When the GUI tab pages line is displayed Vim jumps from the secondary
 to the primary monitor. (Afton Lewis, 2007 Mar 9)  Old resizing problem?
 
 GTK: when the Tab pages bar appears or disappears while the window is
 maximized the window is no longer maximized.  Patch that has some idea but
 doesn't work from Geoffrey Antos, 2008 May 5.
+Also: the window may no longer fit on the screen, thus the command line is not
+visible.
+
+GTK: when setting 'columns' in a startup script and doing ":vertical diffsplit"
+the window isn't redrawn properly, see two vertical bars.
 
 The magic clipboard format "VimClipboard2" appears in several places.  Should
 be only one.
@@ -610,10 +1059,6 @@
 Syntax HL: When using "nextgroup" and the group has an empty match, there is
 no search at that position for another match. (Lukas Mai, 2008 April 11)
 
-Spell menu: When using the Popup menu to select a replacement word,
-":spellrepeat" doesn't work.  SpellReplace() uses setline().  Can it use "z="
-somehow?  Or use a new function.
-
 In gvim the backspace key produces a backspace character, but on Linux the
 VERASE key is Delete.  Set VERASE to Backspace? (patch by Stephane Chazelas,
 2007 Oct 16)
@@ -628,8 +1073,34 @@
 
 Create a gvimtutor.1 file and change Makefiles to install it.
 
+When 'encoding' is utf-8 typing text at the end of the line causes previously
+typed characters to be redrawn.  Caused by patch 7.1.329. (Tyler Spivey, 2008
+Sep 3, 11)
+
+When Vim in an xterm owns the selection and the user does ":shell" Vim doesn't
+respond to selection requests.  Invoking XtDisownSelection() before executing
+the shell doesn't help.  Would require forking and doing a message loop, like
+what happens for the GUI.
+
+X11: Putting more than about 262040 characters of text on the clipboard and
+pasting it in another Vim doesn't work.  (Dominique Pelle, 2008 Aug 21-23)
+clip_x11_request_selection_cb() is called with zero value and length.
+Also: Get an error message from free() in the process that owns the selection.
+Seems to happen when the selection is requested the second time, but before
+clip_x11_convert_selection_cb() is invoked, thus in X library code.
+
+Add 'lazysize' option: Above this size Vim doesn't load everything before
+starting to edit a file.  Things like 'fileencodings' only work up to this
+size, modelines only work at the top.  Useful for large log files where you
+only want to look at the first few pages.  Use zero to disable it.
+
+":vimgrep" does not recognize a recursive symlink.  Is it possible to detect
+this, at least for Unix (using device/inode)?
+
 
 Vim 7.3:
+-   Use NSIS 2.45, it includes Windows 7 support.
+-   Easier/standard way to disable default plugins.
 -   Add patch for 'relativenumber' option?  Markus Heidelberg, 2008 Jun 27.
 -   Add blowfish encryption.  Openssl has an implementation.  Also by Paul
     Kocher (LGPL), close to original.  Mohsin also has some ideas.
@@ -639,6 +1110,7 @@
 	You can already yank lines and use :@" to execute them.
 	Most of do_source() would not be used, need a new function.
 	It's easy when not doing breakpoints or profiling.
+- Patch for Lisp support with ECL (Mikael Jansson, 2008 Oct 25)
 
 
 More patches:
@@ -669,6 +1141,8 @@
     vimtutor.vim. (Jan Minar, 2008 Jul 20)
 -   When fsync() fails there is no hint about what went wrong.  Patch by Ben
     Schmidt, 2008 Jul 22.
+-   testdir/Make_dos_sh.mak for running tests with MingW. (Bill Mccarthy, 2008
+    Sep 13)
 
 
 Awaiting updated patches:
@@ -1220,8 +1694,6 @@
 8   ":gui" doesn't fork.  Enabling the code in gui.c to fork causes a SEGV.
 8   Define vim_mkdir() for Macintosh.
 8   Define mch_writable() for Macintosh.
-8   Some file systems are case-sensitive, some are not.  Turn
-    CASE_INSENSITIVE_FILENAME into an option, at least for completion.
 9   When DiskLock is running, using a swap file causes a crash.  Appears to be
     a problem with writing a file that starts with a dot. (Giacalone)
 9   On G3 Mac, OS version 8, control strip causes characters messed up when
@@ -1238,6 +1710,13 @@
     CTRL-Q.  Add an option for it?
 -   When using e_secure in do_one_cmd() mention the command being executed,
     otherwise it's not clear where it comes from.
+-   When the quickfix window is open and executing ":echo 'hello'" using the
+    Command-line window, the text is immediately removed by the redrawing.
+    (Michael Henry, 2008 Nov 1)
+    Generic solution: When redrawing while there is a message on the
+    cmdline, don't erase the display but draw over the existing text.
+    Other solution, redraw after closing the cmdline window, before executing
+    the command.
 9   For Turkish vim_tolower() and vim_toupper() also need to use utf_
     functions for characters below 0x80. (Sertacyildiz)
 9   When the last edited file is a help file, using '0 in a new Vim doesn't
@@ -1383,8 +1862,6 @@
 8   With 'virtualedit' set and 'selection' "exclusive", a Visual selection
     that ends in or after a tab, "d" doesn't delete (part of) the tab.
     (Helmut Stiegler)
-8   With 'virtualedit' set, a blockwise Visual selection that starts and ends
-    in a tab, "<" shifts too much. (Helmut Stiegler)
 9   When jumping to a tag, the search pattern is put in the history.  When
     'magic' is on, the pattern may not work.  Translate the pattern depending
     on p_magic when putting it in the history?  Alternative: Store value of
@@ -1615,7 +2092,12 @@
 ---------------------  extensions and improvements ----------------------
 						    *extensions-improvements*
 
-Didn't make it into Vim 7.0:
+Most interesting new features to be added when all bugs have been fixed:
+-   Using ":exe edit fname" has escaping problems.  Use ":edit ++(fname)".
+    Thus use "++=" to give arguments as expressions, comma separated as if
+    calling a function.
+    With options: ":edit ++(['!', '++enc=abc'], ['+/pat'], fname)".
+    Alternative: Make a function for Ex commands: cmd_edit().
 -   Add COLUMN NUMBERS to ":" commands ":line1,line2[col1,col2]cmd".  Block
     can be selected with CTRL-V.  Allow '$' (end of line) for col2.
 -   Add DEBUGGER INTERFACE.  Implementation for gdb by Xavier de Gaye.
@@ -1640,10 +2122,13 @@
 -   STICKY CURSOR: Add a way of scrolling that leaves the cursor where it is.
     Especially when using the scrollbar.  Typing a cursor-movement command
     scrolls back to where the cursor is.
+-   Scroll commands by screen line. g CTRL-E and g CTRL-Y ?  Requires the
+    first line to be able to start halfway.
 -   Running a shell command from the GUI still has limitations.  Look into how
     the terminal emulator of the Vim shell project can help:
     http://vimshell.wana.at
--   Add Lua interface? (Wolfgang Oertl)
+-   Add Lua interface? (Wolfgang Oertl) patch by Luis Carvalho, 2008 Sep 5
+	Patch for Make_ming.mak from Paul Moore (2008 Sep 1)
 8   Add a command to jump to a certain kind of tag.  Allow the user to specify
     values for the optional fields.  E.g., ":tag size type=m".
     Also allow specifying the file and command, so that the result of
@@ -1739,8 +2224,6 @@
 9   GUI implementation for the tab pages line for other systems.
 7   GUI: Control over the appearance of the text in the labels (bold, color,
     font, etc.)
-9   Make it possible to drag a tab page label to another position with the
-    mouse.
 8   Make GUI menu in tab pages line configurable.  Like the popup menu.
 8   balloons for the tab page labels that are shortened to show the full path.
 8   :tabmove +N	 move tab page N pages forward
@@ -1790,7 +2273,6 @@
     implement CHECKCOMPOUNDTRIPLE
     Add CHECKCOMPOUNDCASE: when compounding make leading capital lower case.
     How is it supposed to work?
-8   implement using CHECKCOMPOUNDPATTERN: match words with sl_comppat[].
 -   Add a command the repeats ]s and z=, showing the misspelled word in its
     context.  Thus to spell-check a whole file.
 -   suggestion for "KG" to "kg" when it's keepcase.
@@ -1813,8 +2295,6 @@
     - PSEUDOROOT == NEEDAFFIX
     - COMPOUNDROOT -> COMPOUNDED?  For a word that already is a compound word
 	    Or use COMPOUNDED2, COMPOUNDED3, etc.
-8   Alternate Dutch word list at www.nederlandsewoorden.nl (use script to
-    obtain).  But new Myspell wordlist will come (Hagen)
 -   CIRCUMFIX: when a word uses a prefix marked with the CIRCUMFIX flag, then
     the word must also have a suffix marked with the CIRCUMFIX flag.  It's a
     bit primitive, since only one flag is used, which doesn't allow matching
@@ -1874,8 +2354,6 @@
 8   Add "z/" and "z?" for searching in not folded text only.
 9   Add search pattern item to only match in closed or open fold and/or fold
     with certain level.  Allows doing ":g/pat/cmd" to work on closed folds.
-8   Add different highlighting for a fold line depending on the fold level.
-    (Noel Henson)
 7   Use "++--", "+++--" for different levels instead of "+---" "+----".
 8   When a closed fold is displayed open because of 'foldminlines', the
     behavior of commands is still like the fold is closed.  How to make the
@@ -1984,14 +2462,10 @@
     Support CTRL-K _{mnemonic}_
 7   In "-- INSERT (lang) --" show the name of the keymap used instead of
     "lang". (Ilya Dogolazky)
--   Make 'langmap' accept multi-byte characters.
-	Patch from Konstantin Korikov, 2006 Oct 15.
 -   Make 'breakat' accept multi-byte characters.  Problem: can't use a lookup
     table anymore (breakat_flags[]).
     Simplistic solution: when 'formatoptions' contains "m" also break a line
     at a multi-byte character >= 0x100.
--   Do we need the reverse of 'keymap', like 'langmap' but with files and
-    multi-byte characters?  E.g., when using a Russian keyboard.
 -   Add the possibility to enter mappings which are used whenever normal text
     could be entered.  E.g., for "f" command.  But not in Normal mode.  Sort
     of opposite of 'langmap'.  Use ":tmap" command?
@@ -2132,7 +2606,6 @@
     words.
 8   Add more command line completion for :syntax.
 8   Add more command line completion for :highlight.
-8   Add more command line completion for :sign.
 7   Should find a better way to parse the :syntax and :highlight commands.
     Use tables or lists that can be shared by parsing for execution and
     completion?
@@ -2276,6 +2749,7 @@
     option or environment variable.
 8   ":let &option" should list the value of the option.
 8   ":let Func().foo = value" should work, also when "foo" doesn't exist.
+    Also: ":let Func()[foo] = value" should work.  Same for a List.
 7   Add synIDlist(), making the whole list of syntax items on the syntax stack
     available as a List.
 8   Add autocommand-event for when a variable is changed:
@@ -2328,8 +2802,6 @@
     when starting up in a color terminal.
 8   Avoid alloc() for scratch buffer use, esp. in syntax.c.  It's very slow on
     Win16.
-9   Setting GUI options in the console (e.g., 'guifont') should not cause a
-    redraw.
 8   Profiling shows that in_id_list() is used very often for C code.  Can this
     function be improved?
 8   For an existing file, the page size of the swap file is always the
@@ -2541,6 +3013,9 @@
 8   Use a mechanism similar to omni completion to figure out the kind of tab
     for CTRL-] and jump to the appropriate matching tag (if there are
     several).
+    Alternative: be able to define a function that takes the tag name and uses
+    taglist() to find the right location.  With indication of using CTRL-] so
+    that the context can be taken into account. (Robert Webb)
 7   Can CTRL-] (jump to tag) include a following "." and "->" to restrict the
     number of possible matches? Check tags file for an item that has members.
     (Flemming Madsen)
@@ -2700,6 +3175,12 @@
 
 Autocommands:
 -   Put autocommand event names in a hashtable for faster lookup?
+8   When the SwapExists event is triggered, provide information about the
+    swap file, e.g., whether the process is running, file was modified, etc.
+    Must be possible to check the situation that it's probably OK to delete
+    the swap file. (Marc Merlin)
+8   When all the patterns for an event are "*" there is no need to expand
+    buffer names to a full path.  This can be slow for NFS.
 7   For autocommand events that trigger multiple times per buffer (e.g.,
     CursorHold), go through the list once and cache the result for a specific
     buffer.  Invalidate the cache when adding/deleting autocommands or
@@ -2782,7 +3263,7 @@
     WinClose	    - Just before closing a window
 -   Write the file now and then ('autosave'):
 				  *'autosave'* *'as'* *'noautosave'* *'noas'*
-    'autosave' 'aw' number  (default 0)
+    'autosave' 'as' number  (default 0)
 	    Automatically write the current buffer to file N seconds after the
 	    last change has been made and when |'modified'| is still set.
 	    Default: 0 = do not autosave the buffer.
@@ -2931,7 +3412,6 @@
 -   For 'wildmenu': Simplify "../bar" when possible.
 -   When using <Up> in wildmenu mode for a submenu, should go back to the
     current menu, not the first one.  E.g., ":emenu File.Save<Up>".
-8   For ":find" and ":sfind" expand files found in 'path'.
 8   When using backtick expansion, the external command may write a greeting
     message.  Add an option or commands to remove lines that match a regexp?
 7   When listing matches of files, display the common path separately from the
@@ -2999,6 +3479,8 @@
         cout << "a"
                 << ") :"
                 << "y";
+9   "} else" causes following lines to be indented too much. (Rouben
+    Rostamian, 2008 Aug 30)
 8   Lisp indenting: "\\" confuses the indenter. (Dorai Sitaram, 2006 May 17)
 8   Why are continuation lines outside of a {} block not indented?  E.g.:
 	long_type foo =
@@ -3013,6 +3495,13 @@
 			    "asdf"
 			}
 		    );
+8   In C++ a function isn't recognized inside a namespace:
+    (Chow Loong Jin)
+	namespace {
+	    int
+		 func(int arg) {
+		 }
+	}
 6   Add 'cino' flag for this function argument layout: (Spencer Collyer)
 	    func( arg1
 	        , arg2
@@ -3099,8 +3588,6 @@
 
 Virtual edit:
 8   Make the horizontal scrollbar work to move the text further left.
-7   Add a mode where the cursor is only allowed to go one character after the
-    end of the line?
 7   Allow specifying it separately for Tabs and beyond end-of-line?
 
 
@@ -3307,6 +3794,8 @@
     The vis.vim script has a ":S" command that does something like this.
     Can use "g/" in Normal mode, uses the '< to '> area.
     Use "&/" for searching the text in the Visual area?
+9   Add "v" offset: "/pat/v": search for pattern and start Visual mode on the
+    matching text.
 8   Add a mechanism for recursiveness: "\@(([^()]*\@g[^()]*)\)".  \@g stands
     for "go recursive here" and \@( \) marks the recursive part.
     Perl does it this way:
@@ -3317,6 +3806,9 @@
 8   Show the progress every second.  Could use the code that checks for CTRL-C
     to find out how much time has passed.  Or use SIGALRM.  Where to show the
     number?
+8   When using an expression for ":s", set the match position in a v:
+    variable.  So that you can do ":%s/^/\=v:lnum/" to put a line number
+    before each line.
 7   Support for approximate-regexps to find similar words (agrep
     http://www.tgries.de/agrep/ tre: http://laurikari.net/tre/index.html).
 8   Add an item for a big character range, so that one can search for a
@@ -3328,7 +3820,7 @@
 7   Add an option to accept a match at the cursor position.  Also for
     search(). (Brett)
 7   Add a flag to "/pat/" to discard an error.  Useful to continue a mapping
-    when a search fails.  Could be "/pat/E" (e is already used for an offset).
+    when a search fails.  Could be "/pat/E" (e is already used for end offset).
 7   Add pattern item to use properties of Unicode characters.  In Perl it's
     "\p{L}" for a letter.  See Regular Expression Pocket Reference.
 8   Would it be possible to allow ":23,45/pat/flags" to search for "pat" in
@@ -3440,7 +3932,9 @@
     storing the differences.
 8   Search for pattern in undo tree, showing when it happened and the text
     state, so that you can jump to it.
--   Persistent undo: store undo in a file.
+-   Persistent undo: store undo in a file.  Patch by Jordan Lewis, 2009 Feb
+    20.
+    Older ideas:
     Use timestamps, so that a version a certain time ago can be found and info
     before some time/date can be flushed. 'undopersist' gives maximum time to
     keep undo: "3h", "1d", "2w", "1y", etc.  For the file use dot and
@@ -3831,16 +4325,15 @@
     Govindachar)
 7   Add a command that goes back to the position from before jumping to the
     first quickfix location.  ":cbefore"?
-6   In the quickfix window statusline add the command used to get the list of
-    errors, e.g. ":make foo", ":grep something *.c".
+7   Allow a window not to have a statusline.  Makes it possible to use a
+    window as a buffer-tab selection.
+8   Allow non-active windows to have a different statusline. (Yakov Lerner)
 6   Python interface: add vim.message() function. (Michal Vitecek, 2002 Nov 5)
 7   Support using ":vert" with User commands.  Add expandable items <vert>.
     Do the same for ":browse" and ":confirm"?
     For ":silent" and ":debug" apply to the whole user command.
     More general: need a way to access command modifiers in a user command.
     Assign them to a v: variable?
-7   Allow a window not to have a statusline.  Makes it possible to use a
-    window as a buffer-tab selection.
 7   Add an invisible buffer which can be edited.  For use in scripts that want
     to manipulate text without changing the window layout.
 8   Add a command to revert to the saved version of file; undo or redo until
@@ -3865,7 +4358,6 @@
     etc.  Combinations of Alt, Ctrl and Shift are also possible.  Recognize
     these to avoid inserting the raw byte sequence, handle like the key
     without modifier (unless mapped).
-7   Support ":browse edit" in console, using explorer.vim?
 6   Add "gG": like what "gj" is to "j": go to the N'th window line.
 8   Add command like ":normal" that accepts <Key> notation like ":map".
 9   Support ACLs on more systems.
@@ -3905,12 +4397,6 @@
 3   Make "2d%" work like "d%d%" instead of "d2%"?
 7   "g CTRL-O" jumps back to last used buffer.	Skip CTRL-O jumps in the same
     buffer.  Make jumplist remember the last ten accessed buffers?
--   Keep a list of most recently used files for each window, use "[o" to go
-    back (older file) and "]n" to go forward (newer file) (like ^O and ^I for
-    jumps). (Webb)  Use ":files" and ":ls" to list the files in history order.
-7   Add a history of recently accessed buffer.	Maybe make "2 CTRL-^" jump to
-    the 2nd previously visited buffer, "3 CTRL-^" to the third, etc.  Or use
-    "3 g CTRL-^" for this?
 -   Add code to disable the CAPS key when going from Insert to Normal mode.
 -   Set date/protection/etc. of the patchfile the same as the original file.
 -   Use growarray for termcodes[] in term.c
@@ -4096,7 +4582,7 @@
 -   Updatescript() can be done faster with a string instead of a char.
 -   Screen updating is inefficient with CTRL-F and CTRL-B when there are long
     lines.
--   Uppercase characters in ex commands can be made lowercase?
+-   Uppercase characters in Ex commands can be made lowercase?
 8   Add option to show characters in text not as "|A" but as decimal ("^129"),
     hex ("\x81") or octal ("\201") or meta (M-x).  Nvi has the 'octal' option
     to switch from hex to octal.  Vile can show unprintable characters in hex
@@ -4156,7 +4642,7 @@
     for use in macro's and the like.
 -   Keep output from listings in a window, so you can have a look at it while
     working in another window.  Put cmdline in a separate window?
--   Add possibility to put output of ex commands in a buffer or file, e.g. for
+-   Add possibility to put output of Ex commands in a buffer or file, e.g. for
     ":set all".  ":r :set all"?
 -   'edit' option: When off changing the buffer is not possible (Really
     read-only mode).
diff -Nur runtime.patched/doc/undo.txt runtime/doc/undo.txt
--- runtime.patched/doc/undo.txt	2008-08-09 07:23:00.000000000 -0700
+++ runtime/doc/undo.txt	2009-04-14 12:16:53.000000000 -0700
@@ -1,4 +1,4 @@
-*undo.txt*      For Vim version 7.2.  Last change: 2006 Apr 30
+*undo.txt*      For Vim version 7.2.  Last change: 2009 Apr 12
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -106,6 +106,10 @@
 After this an "u" command will undo the delete command and the previous
 change.
 
+To do the opposite, break a change into two undo blocks, in Insert mode use
+CTRL-G u.  This is useful if you want an insert command to be undoable in
+parts.  E.g., for each sentence.  |i_CTRL-G_u|
+
 ==============================================================================
 4. Undo branches				*undo-branches* *undo-tree*
 
diff -Nur runtime.patched/doc/usr_04.txt runtime/doc/usr_04.txt
--- runtime.patched/doc/usr_04.txt	2008-08-09 07:23:00.000000000 -0700
+++ runtime/doc/usr_04.txt	2008-09-06 05:19:37.000000000 -0700
@@ -1,4 +1,4 @@
-*usr_04.txt*	For Vim version 7.2.  Last change: 2006 Jun 21
+*usr_04.txt*	For Vim version 7.2.  Last change: 2008 Sep 06
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
@@ -263,7 +263,7 @@
 one of the other corners, diagonally.  Use "O" to move to the other corner in
 the same line.
 
-Note that "o" and "O" in Visual mode work very different from Normal mode,
+Note that "o" and "O" in Visual mode work very differently from Normal mode,
 where they open a new line below or above the cursor.
 
 ==============================================================================
diff -Nur runtime.patched/doc/usr_05.txt runtime/doc/usr_05.txt
--- runtime.patched/doc/usr_05.txt	2008-08-09 07:23:00.000000000 -0700
+++ runtime/doc/usr_05.txt	2009-06-13 05:38:07.000000000 -0700
@@ -1,4 +1,4 @@
-*usr_05.txt*	For Vim version 7.2.  Last change: 2007 May 11
+*usr_05.txt*	For Vim version 7.2.  Last change: 2009 Jun 04
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
@@ -205,8 +205,8 @@
 
 							*restore-cursor*  >
 	autocmd BufReadPost *
-	    \ if line("'\"") > 0 && line("'\"") <= line("$") |
-	    \   exe "normal g`\"" |
+	    \ if line("'\"") > 1 && line("'\"") <= line("$") |
+	    \   exe "normal! g`\"" |
 	    \ endif
 
 Another autocommand.  This time it is used after reading any file.  The
diff -Nur runtime.patched/doc/usr_06.txt runtime/doc/usr_06.txt
--- runtime.patched/doc/usr_06.txt	2008-08-09 07:23:00.000000000 -0700
+++ runtime/doc/usr_06.txt	2009-10-28 13:57:15.000000000 -0700
@@ -1,4 +1,4 @@
-*usr_06.txt*	For Vim version 7.2.  Last change: 2006 Apr 24
+*usr_06.txt*	For Vim version 7.2.  Last change: 2009 Oct 28
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
@@ -244,10 +244,14 @@
 
 This also works on Unix, if you have a PostScript printer.  Otherwise, you
 will have to do a bit more work.  You need to convert the text to HTML first,
-and then print it from a web browser such as Netscape.
+and then print it from a web browser.
 
 Convert the current file to HTML with this command: >
 
+	:TOhtml
+
+In case that doesn't work: >
+
 	:source $VIMRUNTIME/syntax/2html.vim
 
 You will see it crunching away, this can take quite a while for a large file.
diff -Nur runtime.patched/doc/usr_11.txt runtime/doc/usr_11.txt
--- runtime.patched/doc/usr_11.txt	2008-08-09 07:23:01.000000000 -0700
+++ runtime/doc/usr_11.txt	2009-04-22 14:26:12.000000000 -0700
@@ -1,4 +1,4 @@
-*usr_11.txt*	For Vim version 7.2.  Last change: 2006 Apr 24
+*usr_11.txt*	For Vim version 7.2.  Last change: 2009 Apr 18
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
@@ -6,9 +6,9 @@
 
 
 Did your computer crash?  And you just spent hours editing?  Don't panic!  Vim
-keeps enough information on harddisk to be able to restore most of your work.
-This chapter shows you how to get your work back and explains how the swap
-file is used.
+stores enough information to be able to restore most of your work.  This
+chapter shows you how to get your work back and explains how the swap file is
+used.
 
 |11.1|	Basic recovery
 |11.2|	Where is the swap file?
@@ -214,7 +214,7 @@
 that file, be prepared to redo your last changes.
 
 
-WHAT TO DO?
+WHAT TO DO?					*swap-exists-choices*
 
 If dialogs are supported you will be asked to select one of five choices:
 
diff -Nur runtime.patched/doc/usr_25.txt runtime/doc/usr_25.txt
--- runtime.patched/doc/usr_25.txt	2008-08-09 07:23:01.000000000 -0700
+++ runtime/doc/usr_25.txt	2009-07-26 04:41:20.000000000 -0700
@@ -304,7 +304,7 @@
 One horizontal scrollbar will appear at the bottom of the Vim window.
 
 If you don't have a scrollbar or don't want to use it, use these commands to
-scroll the text.  The cursor will stay in the same place, but it's move back
+scroll the text.  The cursor will stay in the same place, but it's moved back
 into the visible text if necessary.
 
 	zh		scroll right
@@ -547,7 +547,7 @@
 What happens is that the "gr" command makes sure the new character takes the
 right amount of screen space.  Extra spaces or tabs are inserted to fill the
 gap.  Thus what actually happens is that a tab is replaced by "x" and then
-blanks added to make the text after it keep it's place.  In this case a
+blanks added to make the text after it keep its place.  In this case a
 tab is inserted.
    When you need to replace more than one character, you use the "R" command
 to go to Replace mode (see |04.9|).  This messes up the layout and replaces
diff -Nur runtime.patched/doc/usr_31.txt runtime/doc/usr_31.txt
--- runtime.patched/doc/usr_31.txt	2008-08-09 07:23:01.000000000 -0700
+++ runtime/doc/usr_31.txt	2009-07-26 04:43:37.000000000 -0700
@@ -245,7 +245,7 @@
 
 	:set lines=55
 
-You don't want to do this in a terminal, since it's size is fixed (except for
+You don't want to do this in a terminal, since its size is fixed (except for
 an xterm that supports resizing).
    The gvimrc file is searched for in the same locations as the vimrc file.
 Normally its name is "~/.gvimrc" for Unix and "$VIM/_gvimrc" for MS-Windows.
diff -Nur runtime.patched/doc/usr_43.txt runtime/doc/usr_43.txt
--- runtime.patched/doc/usr_43.txt	2008-08-09 07:23:01.000000000 -0700
+++ runtime/doc/usr_43.txt	2009-01-14 12:14:54.000000000 -0800
@@ -1,4 +1,4 @@
-*usr_43.txt*	For Vim version 7.2.  Last change: 2006 Apr 24
+*usr_43.txt*	For Vim version 7.2.  Last change: 2008 Dec 28
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
@@ -57,7 +57,8 @@
 Likewise, the mapping for "\c" will disappear when editing another buffer.
 The ":map <buffer>" command creates a mapping that is local to the current
 buffer.  This works with any mapping command: ":map!", ":vmap", etc.  The
-|<LocalLeader>| in the mapping is replaced with the value of "maplocalleader".
+|<LocalLeader>| in the mapping is replaced with the value of the
+"maplocalleader" variable.
 
 You can find examples for filetype plugins in this directory: >
 
diff -Nur runtime.patched/doc/usr_44.txt runtime/doc/usr_44.txt
--- runtime.patched/doc/usr_44.txt	2008-08-09 07:23:01.000000000 -0700
+++ runtime/doc/usr_44.txt	2009-01-14 12:15:18.000000000 -0800
@@ -1,4 +1,4 @@
-*usr_44.txt*	For Vim version 7.2.  Last change: 2006 Apr 24
+*usr_44.txt*	For Vim version 7.2.  Last change: 2008 Dec 28
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
@@ -493,9 +493,9 @@
 	:runtime! syntax/c.vim
 
 The ":runtime!" command searches 'runtimepath' for all "syntax/c.vim" files.
-This makes the C syntax be defined like for C files.  If you have replaced the
-c.vim syntax file, or added items with an extra file, these will be loaded as
-well.
+This makes the C parts of the C++ syntax be defined like for C files.  If you
+have replaced the c.vim syntax file, or added items with an extra file, these
+will be loaded as well.
    After loading the C syntax items the specific C++ items can be defined.
 For example, add keywords that are not used in C: >
 
@@ -503,8 +503,8 @@
 
 This works just like in any other syntax file.
 
-Now consider the Perl language.  It consists of two distinct parts: a
-documentation section in POD format, and a program written in Perl itself.
+Now consider the Perl language.  A Perl script consists of two distinct parts:
+a documentation section in POD format, and a program written in Perl itself.
 The POD section starts with "=head" and ends with "=cut".
    You want to define the POD syntax in one file, and use it from the Perl
 syntax file.  The ":syntax include" command reads in a syntax file and stores
@@ -663,7 +663,7 @@
 
 Choose a good, descriptive name for your syntax file.  Use lowercase letters
 and digits.  Don't make it too long, it is used in many places: The name of
-the syntax file "name.vim", 'filetype', b:current_syntax the start of each
+the syntax file "name.vim", 'filetype', b:current_syntax and the start of each
 syntax group (nameType, nameStatement, nameString, etc).
 
 Start with a check for "b:current_syntax".  If it is defined, some other
diff -Nur runtime.patched/doc/usr_45.txt runtime/doc/usr_45.txt
--- runtime.patched/doc/usr_45.txt	2008-08-09 07:23:01.000000000 -0700
+++ runtime/doc/usr_45.txt	2008-11-16 03:59:07.000000000 -0800
@@ -1,4 +1,4 @@
-*usr_45.txt*	For Vim version 7.2.  Last change: 2008 Apr 30
+*usr_45.txt*	For Vim version 7.2.  Last change: 2008 Nov 15
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
@@ -265,7 +265,7 @@
 
 Suppose you have setup Vim to use Unicode, and you want to edit a file that is
 in 16-bit Unicode.  Sounds simple, right?  Well, Vim actually uses utf-8
-encoding internally, thus the 16-bit encoding must be converted.  Thus there
+encoding internally, thus the 16-bit encoding must be converted, since there
 is a difference between the character set (Unicode) and the encoding (utf-8 or
 16-bit).
    Vim will try to detect what kind of file you are editing.  It uses the
@@ -283,7 +283,7 @@
 When you start editing that 16-bit Unicode file, and it has a BOM, Vim will
 detect this and convert the file to utf-8 when reading it.  The 'fileencoding'
 option (without s at the end) is set to the detected value.  In this case it
-is "ucs-2le".  That means it's Unicode, two bytes and little-endian.  This
+is "utf-16le".  That means it's Unicode, 16-bit and little-endian.  This
 file format is common on MS-Windows (e.g., for registry files).
    When writing the file, Vim will compare 'fileencoding' with 'encoding'.  If
 they are different, the text will be converted.
diff -Nur runtime.patched/doc/usr_90.txt runtime/doc/usr_90.txt
--- runtime.patched/doc/usr_90.txt	2008-08-09 07:23:01.000000000 -0700
+++ runtime/doc/usr_90.txt	2008-09-10 04:23:30.000000000 -0700
@@ -1,4 +1,4 @@
-*usr_90.txt*	For Vim version 7.2.  Last change: 2006 Apr 24
+*usr_90.txt*	For Vim version 7.2.  Last change: 2008 Sep 10
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
@@ -126,12 +126,12 @@
 	test results: ~
 	ALL DONE ~
 
-If there are one or two messages about failed tests, Vim might still work, but
-not perfectly.  If you see a lot of error messages or Vim doesn't finish until
-the end, there must be something wrong.  Either try to find out yourself, or
-find someone who can solve it.  You could look in the |maillist-archive| for a
-solution.  If everything else fails, you could ask in the vim |maillist| if
-someone can help you.
+If you get "TEST FAILURE" some test failed.  If there are one or two messages
+about failed tests, Vim might still work, but not perfectly.  If you see a lot
+of error messages or Vim doesn't finish until the end, there must be something
+wrong.  Either try to find out yourself, or find someone who can solve it.
+You could look in the |maillist-archive| for a solution.  If everything else
+fails, you could ask in the vim |maillist| if someone can help you.
 
 
 INSTALLING
diff -Nur runtime.patched/doc/various.txt runtime/doc/various.txt
--- runtime.patched/doc/various.txt	2009-11-20 13:52:21.223062590 -0800
+++ runtime/doc/various.txt	2009-07-26 04:43:37.000000000 -0700
@@ -1,4 +1,4 @@
-*various.txt*   For Vim version 7.2.  Last change: 2008 Aug 06
+*various.txt*   For Vim version 7.2.  Last change: 2009 Jul 09
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -179,8 +179,8 @@
 			(to start Insert mode, see |:startinsert|).  A ":"
 			command must be completed as well.  And you can't use
 			"Q" or "gQ" to start Ex mode.
-			{commands} cannot start with a space.  Put a 1 (one)
-			before it, 1 space is one space.
+			{commands} cannot start with a space.  Put a count of
+			1 (one) before it, "1 " is one space.
 			The 'insertmode' option is ignored for {commands}.
 			This command cannot be followed by another command,
 			since any '|' is considered part of the command.
@@ -347,7 +347,7 @@
 N  *+mouse_pterm*	QNX only: pterm mouse handling |qnx-terminal|
 N  *+mouse_sysmouse*	Unix only: *BSD console mouse handling |sysmouse|
 N  *+mouse_xterm*	Unix only: xterm mouse handling |xterm-mouse|
-B  *+multi_byte*	Korean and other languages |multibyte|
+B  *+multi_byte*	16 and 32 bit characters |multibyte|
    *+multi_byte_ime*	Win32 input method for multibyte chars |multibyte-ime|
 N  *+multi_lang*	non-English language support |multi-lang|
 m  *+mzscheme*		Mzscheme interface |mzscheme|
@@ -374,7 +374,6 @@
 B  *+signs*		|:sign|
 N  *+smartindent*	|'smartindent'|
 m  *+sniff*		SniFF interface |sniff|
-N  *+startuptime*	|--startuptime| argument
 N  *+statusline*	Options 'statusline', 'rulerformat' and special
 			formats of 'titlestring' and 'iconstring'
 m  *+sun_workshop*	|workshop|
@@ -647,7 +646,7 @@
 			Note that the longer the {subject} you give, the less
 			matches will be found.  You can get an idea how this
 			all works by using commandline completion (type CTRL-D
-			after ":help subject").
+			after ":help subject" |c_CTRL-D|).
 			If there are several matches, you can have them listed
 			by hitting CTRL-D.  Example: >
 				:help cont<Ctrl-D>
diff -Nur runtime.patched/doc/version5.txt runtime/doc/version5.txt
--- runtime.patched/doc/version5.txt	2008-08-09 07:23:01.000000000 -0700
+++ runtime/doc/version5.txt	2009-01-14 12:15:18.000000000 -0800
@@ -1,4 +1,4 @@
-*version5.txt*  For Vim version 7.2.  Last change: 2008 Jun 28
+*version5.txt*  For Vim version 7.2.  Last change: 2008 Dec 17
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -460,10 +460,10 @@
 Regular expression patterns				*added-regexp*
 ---------------------------
 
-Added specifying a range for the number of matches of a atom: "\{a,b}". |/\{|
+Added specifying a range for the number of matches of an atom: "\{a,b}". |/\{|
 Added the "shortest match" regexp "\{-}" (Webb).
-Added "\s", matches a white character.  Can replace "[ \t]".		|/\s|
-Added "\S", matches a non-white character.  Can replace "[^ \t]".	|/\S|
+Added "\s", matches a white character.  Can replace "[ \t]".		 |/\s|
+Added "\S", matches a non-white character.  Can replace "[^ \t]".	 |/\S|
 
 
 Overloaded tags						*tag-overloaded*
diff -Nur runtime.patched/doc/version7.txt runtime/doc/version7.txt
--- runtime.patched/doc/version7.txt	2008-08-09 09:28:51.000000000 -0700
+++ runtime/doc/version7.txt	2009-01-14 12:14:42.000000000 -0800
@@ -1,4 +1,4 @@
-*version7.txt*  For Vim version 7.2.  Last change: 2008 Aug 09
+*version7.txt*  For Vim version 7.2.  Last change: 2008 Dec 17
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1868,7 +1868,7 @@
 Win32: Cannot edit a file starting with # with --remote.  Do escape % and #
 when building the ":drop" command.
 
-A comment or | just after a expression-backtick argument was not recognized.
+A comment or | just after an expression-backtick argument was not recognized.
 E.g. in :e `="foo"`"comment.
 
 "(" does not stop at an empty sentence (single dot and white space) while ")"
@@ -4741,7 +4741,7 @@
 Added argument to mode() to return a bit more detail about the current mode.
 (Ben Schmidt)
 
-Added support for BSD console mouse: |sysmouse|.  (Paul Mahol)
+Added support for BSD console mouse: |sysmouse|.  (Paul B. Mahol)
 
 Added the "newtab" value for the 'switchbuf' option.  (partly by Yegappan
 Lakshmanan)
@@ -5903,7 +5903,7 @@
 
 Patch 7.1.188
 Problem:    When 'showmode' is off the message for changing a readonly file is
-	    given in the second column instead of the first.  (Payl B.  Mahol)
+	    given in the second column instead of the first.  (Payl B. Mahol)
 Solution:   Put the W10 message in the first column.
 Files:	    src/edit.c
 
diff -Nur runtime.patched/doc/vim-fr.1 runtime/doc/vim-fr.1
--- runtime.patched/doc/vim-fr.1	2008-07-21 13:17:34.000000000 -0700
+++ runtime/doc/vim-fr.1	2008-12-08 13:08:57.000000000 -0800
@@ -2,6 +2,8 @@
 .\" ([email protected])
 .\" Mise � jour de la traduction par David Blanchet
 .\" ([email protected]) 2006-06-10
+.\" Mise � jour de la traduction par Dominique Pell�
+.\" ([email protected]) 2008-11-29
 .\"
 .TH VIM 1 "22 F�vrier 2002"
 .SH NOM
@@ -194,7 +196,7 @@
 .TP
 \-d
 D�marre en mode Diff.
-Deux ou trois noms de fichiers doivent �tre sp�cifi�s.
+Deux, trois ou quatre noms de fichiers doivent �tre sp�cifi�s.
 .B Vim
 ouvrira alors tous les fichiers et affichera leurs diff�rences.
 Fonctionne comme vimdiff(1).
diff -Nur runtime.patched/doc/vim-fr.UTF-8.1 runtime/doc/vim-fr.UTF-8.1
--- runtime.patched/doc/vim-fr.UTF-8.1	2008-07-21 13:17:40.000000000 -0700
+++ runtime/doc/vim-fr.UTF-8.1	2008-12-08 13:08:57.000000000 -0800
@@ -2,6 +2,8 @@
 .\" ([email protected])
 .\" Mise à jour de la traduction par David Blanchet
 .\" ([email protected]) 2006-06-10
+.\" Mise à jour de la traduction par Dominique Pellé
+.\" ([email protected]) 2008-11-29
 .\"
 .TH VIM 1 "22 Février 2002"
 .SH NOM
@@ -194,7 +196,7 @@
 .TP
 \-d
 Démarre en mode Diff.
-Deux ou trois noms de fichiers doivent être spécifiés.
+Deux, trois ou quatre noms de fichiers doivent être spécifiés.
 .B Vim
 ouvrira alors tous les fichiers et affichera leurs différences.
 Fonctionne comme vimdiff(1).
diff -Nur runtime.patched/doc/vim-pl.1 runtime/doc/vim-pl.1
--- runtime.patched/doc/vim-pl.1	2008-07-31 13:22:18.000000000 -0700
+++ runtime/doc/vim-pl.1	2009-09-18 03:29:11.000000000 -0700
@@ -1,4 +1,4 @@
-.TH VIM 1 "2002 Lut 22"
+.TH VIM 1 "2006 kwi 11"
 .SH NAME
 vim \- Vi rozbudowany, edytor tekstu dla programisty
 .SH SYNOPSIS
@@ -13,7 +13,7 @@
 [opcje] \-t znacznik
 .br
 .B vim
-[opcje] \-q [plik b��du]
+[opcje] \-q [plik_b��du]
 .PP
 .br
 .B ex
@@ -35,10 +35,10 @@
 u�ywany do edycji wszelkiego rodzaju plik�w tekstowych.
 U�yteczny zw�aszcza przy edycji program�w.
 .PP
-Posiada wiele usprawnie� w por�wnaniu z Vi: wielo poziomowe cofanie zmian,
+Posiada wiele usprawnie� w por�wnaniu z Vi: wielopoziomowe cofanie zmian,
 wiele okien i bufor�w, pod�wietlanie sk�adni, edycja linii polece�,
 uzupe�nianie nazw plik�w, pomoc on-line, wizualna selekcja, itd.
-Zobacz ":help vi_diff.txt" dla podsumowania r�ni� pomi�dzy
+Zobacz ":help vi_diff.txt" dla podsumowania r�nic pomi�dzy
 .B Vimem
 i Vi.
 .PP
@@ -82,7 +82,7 @@
 {znacznika} szuka si� w pliku tags, zwi�zany z nim plik staje si�
 plikiem bie��cym i wykonuje si� powi�zane polecenie.
 Zazwyczaj u�ywa si� tego sposobu dla program�w w C, w kt�rych wypadku
-{znacznik} powinien by� nazw� funkcji.
+{znacznik} mo�e by� nazw� funkcji.
 W efekcie plik zawieraj�cy okre�lon� funkcj� staje si� plikiem
 bie��cym a kursor jest umieszczony na pocz�tku funkcji.
 Zobacz ":help tag-commands".
@@ -91,7 +91,7 @@
 Zacznij w trybie quickFix.
 Plik [plik_b��d�w] zostaje zinterpretowany i poka�e si� pierwszy b��d.
 Je�li brak opcji [plik_b��d�w] nazwa pliku zostanie pobrana z opcji
-'errorfile' (domy�lnie "AztecC.Err" dla Amigi, "errros.err" dla innych
+\&'errorfile' (domy�lnie "AztecC.Err" dla Amigi, "errros.err" dla innych
 system�w.
 Do kolejnych b��d�w mo�na przeskoczy� dzi�ki poleceniu ":cn".
 Zobacz ":help quickfix".
@@ -140,8 +140,8 @@
 +/{wz�r}
 W pierwszym pliku kursor zostanie umieszczony na pierwszym wyst�pieniu
 {wz�r}.
-Zobacz ":help search-pattern" by dowiedzie� si� jakie s� mo�liwo�ci
-wzor�w wyszukiwania.
+Zobacz ":help search-pattern" by dowiedzie� si� jakie s� mo�liwe
+wzorce wyszukiwania.
 .TP
 +{polecenie}
 .TP
@@ -164,7 +164,7 @@
 \-\-cmd {polecenie}
 Podobne do "\-c", ale polecenie jest wykonywane tu� przed
 interpretacj� jakiegokolwiek pliku vimrc.
-Mo�na u�y� do 10 takich polece�, niezale�ni od polece� od "\-c"
+Mo�na u�y� do 10 takich polece�, niezale�nie od polece� od "\-c"
 .TP
 \-A
 Je�li
@@ -190,7 +190,7 @@
 .TP
 \-d
 Uruchom w trybie diff.
-Powinno by� dwa lub trzy nazwy plik�w jako argumenty.
+Powinno si� u�y� dw�ch, trzech lub czterech nazwy plik�w jako argument�w.
 .B Vim
 otworzy wszystkie te pliki i poka�e r�nice mi�dzy nimi.
 Dzia�a jak vimdiff(1).
@@ -283,18 +283,18 @@
 \-m
 Zmiana pliku jest niemo�liwa.
 Przestawia opcj� 'write'.
-Mo�na ca�y czas zmieni� zawarto�� bufora, ale zapisanie pliku nie jest
-mo�liwa.
+Mo�na zmienia� zawarto�� bufora, ale zapisanie pliku nie jest
+mo�liwe.
 .TP
 \-M
 Opcje 'modifiable' i 'write' zostan� wy��czone, tak wi�c zmiany
-w pliku oraz ich zapisanie nie s� mo�liwe. Mo�na warto�� tych opcji
+w pliku oraz ich zapisanie nie s� mo�liwe. Warto�� tych opcji mo�na
 zmieni�.
 .TP
 \-N
-Tryb niekompatibylny. Przestawia opcj� 'compatible'. Dzi�ki temu
+Tryb niekompatybilny. Przestawia opcj� 'compatible'. Dzi�ki temu
 .B Vim
-b�dzie zachowywa� si� odrobin� lepiej, ale mniej zgodznie z Vi nawet
+b�dzie zachowywa� si� odrobin� lepiej, ale mniej zgodnie z Vi nawet
 je�li nie istnieje plik .vimrc.
 .TP
 \-n
@@ -323,8 +323,8 @@
 \-R
 Tryb tylko do odczytu.
 Zostanie ustawiona opcja 'readonly'.
-Ca�y czas mo�na zmienia� bufor, ale b�dzie istnia�a blokada przed przypadkowym
-zapisaniem pliku.
+Ca�y czas mo�na zmienia� bufor, ale b�dzie istnia�a blokada by chroni�
+przed przypadkowym zapisaniem pliku.
 Je�li chcesz zapisa� plik dodaj wykrzyknik do polecenia Ex, np. ":w!".
 Opcja \-R implikuje opcj� \-n (zobacz poni�ej).
 Opcja 'readonly' mo�e zosta� przestawiona poprzez ":set noro".
@@ -427,15 +427,15 @@
 .TP
 \-\-literal
 Potraktuj nazwy plik�w dos�ownie i nie rozwi�zuj kwantyfikator�w. Nie
-ma znaczenia na Uniksach gdzie pow�oka rozwi�zuje kwantyfikator�w
+ma znaczenia na Uniksach gdzie pow�oka rozwi�zuje kwantyfikatory.
 .TP
 \-\-noplugin
 Pomi� �adowanie wtyczek. Implikowane przy \-u NONE.
 .TP
 \-\-remote
-Po��cz si� z serwerem Vima i edytuj w nim reszt� argument�w. Je�li nie
-znaleziono serwera zostanie zg�oszony b��d a pliki b�d� otwarte
-w bie��cym Vimie.
+Po��cz si� z serwerem Vima i edytuj w nim reszt� plik�w podanych jako
+argumenty. Je�li nie znaleziono serwera zostanie zg�oszony b��d a pliki zostan�
+otwarte w bie��cym Vimie.
 .TP
 \-\-remote\-expr {wyra�enie}
 Po��cz z serwerem Vima, rozwi�� w nim {wyra�enie} i wypisz rozwi�zanie
@@ -449,7 +449,7 @@
 serwera.
 .TP
 \-\-remote\-wait
-Tak samo jak \-remote, ale Vim nie zako�czy dop�ki pliki nie zostan�
+Tak samo jak \-remote, ale Vim nie zako�czy dop�ki pliki pozostan�
 otwarte.
 .TP
 \-\-remote\-wait\-silent
@@ -487,6 +487,9 @@
 .B Vima
 U�yj ":help doc\-file\-list" aby uzyska� pe�n� list�.
 .TP
+/usr/local/lib/vim/doc/tags
+Plik znacznik�w s�u�y do znajdowania informacji w plikach dokumentacji.
+.TP
 /usr/local/lib/vim/syntax/syntax.vim
 Globalne uruchamianie pod�wietlania sk�adni.
 .TP
diff -Nur runtime.patched/doc/vim-pl.UTF-8.1 runtime/doc/vim-pl.UTF-8.1
--- runtime.patched/doc/vim-pl.UTF-8.1	2008-07-31 13:22:45.000000000 -0700
+++ runtime/doc/vim-pl.UTF-8.1	2009-09-18 03:29:11.000000000 -0700
@@ -1,4 +1,4 @@
-.TH VIM 1 "2002 Lut 22"
+.TH VIM 1 "2006 kwi 11"
 .SH NAME
 vim \- Vi rozbudowany, edytor tekstu dla programisty
 .SH SYNOPSIS
@@ -13,7 +13,7 @@
 [opcje] \-t znacznik
 .br
 .B vim
-[opcje] \-q [plik błędu]
+[opcje] \-q [plik_błędu]
 .PP
 .br
 .B ex
@@ -35,10 +35,10 @@
 używany do edycji wszelkiego rodzaju plików tekstowych.
 Użyteczny zwłaszcza przy edycji programów.
 .PP
-Posiada wiele usprawnień w porównaniu z Vi: wielo poziomowe cofanie zmian,
+Posiada wiele usprawnień w porównaniu z Vi: wielopoziomowe cofanie zmian,
 wiele okien i buforów, podświetlanie składni, edycja linii poleceń,
 uzupełnianie nazw plików, pomoc on-line, wizualna selekcja, itd.
-Zobacz ":help vi_diff.txt" dla podsumowania różnić pomiędzy
+Zobacz ":help vi_diff.txt" dla podsumowania różnic pomiędzy
 .B Vimem
 i Vi.
 .PP
@@ -82,7 +82,7 @@
 {znacznika} szuka się w pliku tags, związany z nim plik staje się
 plikiem bieżącym i wykonuje się powiązane polecenie.
 Zazwyczaj używa się tego sposobu dla programów w C, w których wypadku
-{znacznik} powinien być nazwą funkcji.
+{znacznik} może być nazwą funkcji.
 W efekcie plik zawierający określoną funkcję staje się plikiem
 bieżącym a kursor jest umieszczony na początku funkcji.
 Zobacz ":help tag-commands".
@@ -91,7 +91,7 @@
 Zacznij w trybie quickFix.
 Plik [plik_błędów] zostaje zinterpretowany i pokaże się pierwszy błąd.
 Jeśli brak opcji [plik_błędów] nazwa pliku zostanie pobrana z opcji
-'errorfile' (domyślnie "AztecC.Err" dla Amigi, "errros.err" dla innych
+\&'errorfile' (domyślnie "AztecC.Err" dla Amigi, "errros.err" dla innych
 systemów.
 Do kolejnych błędów można przeskoczyć dzięki poleceniu ":cn".
 Zobacz ":help quickfix".
@@ -140,8 +140,8 @@
 +/{wzór}
 W pierwszym pliku kursor zostanie umieszczony na pierwszym wystąpieniu
 {wzór}.
-Zobacz ":help search-pattern" by dowiedzieć się jakie są możliwości
-wzorów wyszukiwania.
+Zobacz ":help search-pattern" by dowiedzieć się jakie są możliwe
+wzorce wyszukiwania.
 .TP
 +{polecenie}
 .TP
@@ -164,7 +164,7 @@
 \-\-cmd {polecenie}
 Podobne do "\-c", ale polecenie jest wykonywane tuż przed
 interpretacją jakiegokolwiek pliku vimrc.
-Można użyć do 10 takich poleceń, niezależni od poleceń od "\-c"
+Można użyć do 10 takich poleceń, niezależnie od poleceń od "\-c"
 .TP
 \-A
 Jeśli
@@ -190,7 +190,7 @@
 .TP
 \-d
 Uruchom w trybie diff.
-Powinno być dwa lub trzy nazwy plików jako argumenty.
+Powinno się użyć dwóch, trzech lub czterech nazwy plików jako argumentów.
 .B Vim
 otworzy wszystkie te pliki i pokaże różnice między nimi.
 Działa jak vimdiff(1).
@@ -283,18 +283,18 @@
 \-m
 Zmiana pliku jest niemożliwa.
 Przestawia opcję 'write'.
-Można cały czas zmienić zawartość bufora, ale zapisanie pliku nie jest
-możliwa.
+Można zmieniać zawartość bufora, ale zapisanie pliku nie jest
+możliwe.
 .TP
 \-M
 Opcje 'modifiable' i 'write' zostaną wyłączone, tak więc zmiany
-w pliku oraz ich zapisanie nie są możliwe. Można wartość tych opcji
+w pliku oraz ich zapisanie nie są możliwe. Wartość tych opcji można
 zmienić.
 .TP
 \-N
-Tryb niekompatibylny. Przestawia opcję 'compatible'. Dzięki temu
+Tryb niekompatybilny. Przestawia opcję 'compatible'. Dzięki temu
 .B Vim
-będzie zachowywał się odrobinę lepiej, ale mniej zgodznie z Vi nawet
+będzie zachowywał się odrobinę lepiej, ale mniej zgodnie z Vi nawet
 jeśli nie istnieje plik .vimrc.
 .TP
 \-n
@@ -323,8 +323,8 @@
 \-R
 Tryb tylko do odczytu.
 Zostanie ustawiona opcja 'readonly'.
-Cały czas można zmieniać bufor, ale będzie istniała blokada przed przypadkowym
-zapisaniem pliku.
+Cały czas można zmieniać bufor, ale będzie istniała blokada by chronić
+przed przypadkowym zapisaniem pliku.
 Jeśli chcesz zapisać plik dodaj wykrzyknik do polecenia Ex, np. ":w!".
 Opcja \-R implikuje opcję \-n (zobacz poniżej).
 Opcja 'readonly' może zostać przestawiona poprzez ":set noro".
@@ -427,15 +427,15 @@
 .TP
 \-\-literal
 Potraktuj nazwy plików dosłownie i nie rozwiązuj kwantyfikatorów. Nie
-ma znaczenia na Uniksach gdzie powłoka rozwiązuje kwantyfikatorów
+ma znaczenia na Uniksach gdzie powłoka rozwiązuje kwantyfikatory.
 .TP
 \-\-noplugin
 Pomiń ładowanie wtyczek. Implikowane przy \-u NONE.
 .TP
 \-\-remote
-Połącz się z serwerem Vima i edytuj w nim resztę argumentów. Jeśli nie
-znaleziono serwera zostanie zgłoszony błąd a pliki będą otwarte
-w bieżącym Vimie.
+Połącz się z serwerem Vima i edytuj w nim resztę plików podanych jako
+argumenty. Jeśli nie znaleziono serwera zostanie zgłoszony błąd a pliki zostaną
+otwarte w bieżącym Vimie.
 .TP
 \-\-remote\-expr {wyrażenie}
 Połącz z serwerem Vima, rozwiąż w nim {wyrażenie} i wypisz rozwiązanie
@@ -449,7 +449,7 @@
 serwera.
 .TP
 \-\-remote\-wait
-Tak samo jak \-remote, ale Vim nie zakończy dopóki pliki nie zostaną
+Tak samo jak \-remote, ale Vim nie zakończy dopóki pliki pozostaną
 otwarte.
 .TP
 \-\-remote\-wait\-silent
@@ -487,6 +487,9 @@
 .B Vima
 Użyj ":help doc\-file\-list" aby uzyskać pełną listę.
 .TP
+/usr/local/lib/vim/doc/tags
+Plik znaczników służy do znajdowania informacji w plikach dokumentacji.
+.TP
 /usr/local/lib/vim/syntax/syntax.vim
 Globalne uruchamianie podświetlania składni.
 .TP
diff -Nur runtime.patched/doc/vim-ru.1 runtime/doc/vim-ru.1
--- runtime.patched/doc/vim-ru.1	2008-07-21 13:18:09.000000000 -0700
+++ runtime/doc/vim-ru.1	2009-09-18 03:31:20.000000000 -0700
@@ -7,7 +7,7 @@
 [�����] [���� ..]
 .br
 .B vim
-[�����] -
+[�����] \-
 .br
 .B vim
 [�����] \-t �����
@@ -69,12 +69,12 @@
 ������ ������� ":next". ����� ������� ����, ��� �������� ���������� � �������
 "�����" (-), ����� ������� ������ ���������� ��������� "--".
 .TP
--
+\-
 ���� ����� �������� �� ������ ������������ �����. ������� ����� �����������
 �� ������������ ������ ����������� (stderr), ������� ������ ���� 
 ����������.
 .TP
--t {�����}
+\-t {�����}
 ��� ����� � ��������� ������� ������� ������� �� "�����", ������� �� ����� goto.
 {�����} ������ � ����� �����, ��������������� ���� ���������� ��������, � 
 ��������������� ������� �����������.
@@ -83,7 +83,7 @@
 ����, ���������� �������, ���������� ��������, � ������ ���������� � ������ �������.
 ��. ":help tag-commands".
 .TP
--q [���� ������]
+\-q [���� ������]
 ������ ������ � ������ �������� �����������.
 ��� ���� ����������� [���� ������] � ������ ������ ��������� �� �����.
 ���� [���� ������] �� ������, ��� ����� ��ң��� �� �������� ����� 'errorfile'
@@ -101,21 +101,21 @@
 ex
 ������ � ������ Ex. ��� �������� � ���������� �����
 ���������� ��������� ������� ":vi". ����� Ex ��������
-����� ���� "-e".
+����� ���� "\-e".
 .TP
 view
 ������ � ������ "������ ��� ������". �� ������ �������� �� ��������� ������ 
-�����. �� �� ����� ����� ������� ������ "-R".
+�����. �� �� ����� ����� ������� ������ "\-R".
 .TP
 gvim gview
 ������ � ����������� �����������. ����������� � ����� ����.
-�� �� ����� ����� ������� ��� ������� � ������ "-g".
+�� �� ����� ����� ������� ��� ������� � ������ "\-g".
 .TP
 rvim rview rgvim rgview
 ��� � ���������� �������, �� � �������������. ������ ��������� ������� ��������
 ��� ���������������� ������
 .B Vim.
-������ ��������� "r" ����� ������������ ���� "-Z".
+������ ��������� "r" ����� ������������ ���� "\-Z".
 .SH �����
 ����� ����� ���� ������� � ����� �������, �� ��� ����� �ͣ�
 ������. ����� ��� ���������� ����� ���� ���������� ��� �����
@@ -132,21 +132,21 @@
 .TP
 +{�������}
 .TP
--c {�������}
+\-c {�������}
 {�������} ����������� ����� �������� ������� ����� ��� ������� Ex.
 ���� {�������} �������� �������, �� ��� ������ ���� ��������� �
 ������� ������� (� ����������� �� ������������ ��������).
 ������: vim "+set si" main.c
 .br
-����������: ����� ��������� �� ������ ������ "+" ��� "-c".
+����������: ����� ��������� �� ������ ������ "+" ��� "\-c".
 .TP
---cmd {�������}
-��� "-c", �� ������� ����������� ����� ���������� ������ �����
+\-\-cmd {�������}
+��� "\-c", �� ������� ����������� ����� ���������� ������ �����
 �������� (vimrc).
 ����� ��������� �� ������ ����� ������, ���������� �� ����������
-������ "-c".
+������ "\-c".
 .TP
--A
+\-A
 ����
 .B Vim
 ��� ������ � ���������� ��������� ����� ��� ������ ������,
@@ -158,34 +158,34 @@
 .B Vim
 ��������� ������ � �������.
 .TP
--b
+\-b
 �������� �����.
 ������������ ��������� ��������� �����, �������� ��������� ������
 ��������� ��� ������������ �����.
 .TP
--C
+\-C
 ����� �������������. �������� ����� 'compatible'.
 .B Vim
 ����� �������� ����� ��� Vi, ���� ���� ���������� ���� .vimrc.
 .TP
--d
+\-d
 ����� ������ ��������.
 ������ ���� ������� ��� ��� ��� ����� �����.
 .B Vim
 ������� ��� ����� � ������� �������� ����� ����
 (��� vimdiff(1)).
 .TP
--d {����������}
+\-d {����������}
 ������� {����������} ��� ������������� � �������� ��������� (������ �� Amiga).
 ������:
 "\-d con:20/30/600/150".
 .TP
--e
+\-e
 ���������
 .B Vim
 � ������ Ex, ��� ����� ����������� ���� ����� ��� "ex".
 .TP
--f
+\-f
 ����� ��������� ����������. ������
 .B Vim
 � ����������� ����������� �� ����� ��������� � �����������
@@ -198,25 +198,25 @@
 ������ ������ (��������, ��������� ��� ������ � ����������� ������).
 �� ��������� Amiga ������� ":sh" � ":!" �� ����� ��������.
 .TP
---nofork
+\-\-nofork
 ����� ��������� ����������. ������
 .B Vim
 � ����������� ����������� �� ����� ��������� � �����������
 �� ����������� ţ ��������.
 .TP
--F
+\-F
 ����
 .B Vim
 ��� ������ � ���������� FKMAP ��� ������ ������ ������ ������
 � �������� ���������� ��� ����� �����, ���� ���� ���������
 .B Vim
 � ������ �����, ����� ������, � ����ޣ����� ������� 
-'fkmap' � 'rightleft'.
+\&'fkmap' � 'rightleft'.
 � ��������� ������
 .B Vim
 ��������� ������ � ���������� �� ������.
 .TP
--g
+\-g
 ����
 .B Vim
 ��� ������ � ���������� ������������ ����������, ���� ����
@@ -224,13 +224,13 @@
 .B Vim
 ��������� ������ � ���������� �� ������.
 .TP
--h
+\-h
 ������� ������� ���������� �� ���������� � ������ ��������� ������.
 ����� �����
 .B Vim
 ��������� ������.
 .TP
--H
+\-H
 ����
 .B Vim
 ��� ������ � ���������� ������ ������ ������ ������
@@ -241,69 +241,69 @@
 .B Vim
 ��������� ������ � ���������� �� ������.
 .TP
--i {viminfo}
+\-i {viminfo}
 ���� ������������ ���� viminfo, �� ���� ���� ������ ��� ������ ����� (������
 "~/.viminfo" �� ���������). ����� ����� �������� ������������� ����� viminfo
 ��ԣ� �������� ����� "NONE".
 .TP
--L
-�� ��, ��� � -r.
+\-L
+�� ��, ��� � \-r.
 .TP
--l
+\-l
 ����� Lisp. ���������� ����� 'lisp' � 'showmatch'.
 .TP
--m
+\-m
 ��������� ������ ���������. ��� ���� ����������� ����� 'write', �������
 ������ ������ ���������� �����������.
 .TP
--N
+\-N
 ����� �������� �������������. ����������� 'compatible'.
 .B Vim
 ����� �������� �����, �� �� ����� ��������� ��������� � Vi, ���� ����
 ����������� ���� �������� �������� (.vimrc).
 .TP
--n
+\-n
 �� ������������ ����-����. �������������� ��� ���� � ������ ����� ����������.
 ������ ��� ������ ����� �� ����� ��������� �������� (��������, ������ �����).
 �� �� ����� ����� ������� �������� ":set uc=0". ������ -- ":set uc=200".
 .TP
--o[N]
+\-o[N]
 ������� N ����, �����̣���� �� �����������. ���� N �� �������, �� ����������� 
 �� ������ ���� �� ������ ����.
 .TP
--O[N]
+\-O[N]
 ������� N ����, �����̣���� �� ���������. ���� N �� �������, �� ����������� 
 �� ������ ���� �� ������ ����.
 .TP
--R
+\-R
 ����� "������ ��� ������". ���������� ����� 'readonly'.
 ���� � ������ �������� ��� ��������������, �� ��� ����� �� ����� ������
 �������� ������������. ��� ���������� ����� ���������� �������� ���������������
 ���� � ��������������� ������� Ex (��������, ":w!").
-���� "-R" ������������� �����, ��� ������������ � ���� "-n" (��. ����).
+���� "\-R" ������������� �����, ��� ������������ � ���� "\-n" (��. ����).
 ����� 'readonly' ����� ���� ��������� �� ������� ":set noro".
 ��. ":help 'readonly'".
 .TP
--r
+\-r
 ������� ������ ����-������ � ���������� �� �� ������������� ��� �������������� ����� ����.
 .TP
--r {����}
+\-r {����}
 ����� ��������������.
 ��� �������������� ����� ���� ����� ����������� ����-����.
 ����-���� ����� �� �� ���, ��� � ��������� ����, �� � ����������� ���������� ".swp".
 ��. ":help recovery".
 .TP
--s
-����� �����. ������ ��� ������� ��� "Ex" ��� ���� ����� "-s" ������ ���� "-e".
+\-s
+����� �����. ������ ��� ������� ��� "Ex" ��� ���� ����� "\-s" ������ ���� "\-e".
 .TP
--s {scriptin}
+\-s {scriptin}
 ����������� ���� �������� {scriptin}. ��� ����, ���������� ����� ��������������
 � ���� ������, ��� ���� �� ��� ���� ������� �� �������. 
 �� �� ����� ����������� �������� ":source! {scriptin}".
 ���� ����� ����� ����������� �� ���������� ������ ���������, �� � ���������� 
 ���� �������������� � ����������.
 .TP
--T {terminal}
+\-T {terminal}
 ��������
 .B Vim
 ��� ������������� ���������. ���������� ������ � ��� ���������, ����� 
@@ -312,96 +312,96 @@
 .B Vim
 (�������� � ����) ��� ���������� � ������ termcap ��� terminfo.
 .TP
--u {vimrc}
+\-u {vimrc}
 ������������ ������� �� ����� �������� {vimrc} ��� ���������.
 ��� ��������� ����� �������� ������������.
 ������ ��� �������������� ����������� ����� ������.
 ����� �������� ������������� ��������� �������� ������, ����� ������������
 ��� "NONE". ��. ":help initialization".
 .TP
--U {gvimrc}
+\-U {gvimrc}
 ������������ ������� �� ����� �������� {gvimrc} ��� ��������� ������������ 
 ����������.
 ��� ��������� ����� �������� ��� ������������ ���������� ������������.
 ����� �������� ������������� ��������� �������� ������������ ���������� ������, 
 ����� ������������ ��� "NONE". ��. ":help gui-init".
 .TP
--V
+\-V
 "���������" �����. �������� ��������� � ���, ����� ����� ��������, � �
 ������-������ ����� viminfo.
 .TP
--v
+\-v
 ���������
 .B Vim
 � ������ Vi, ��� ����� ����������� ���� ����� ��� "vi". ����� ����� ������ ����
 ����������� ���� ����� ��� "ex".
 .TP
--w {scriptout}
+\-w {scriptout}
 ��� �������, ���ģ���� � ���������� ������ �� ������� ���������� ������, 
 ������������ � ���� {scriptout}.
 ������ � ��� ������, ����� �� ������ ������� ���� �������� ��� ������������ 
-������������� � "vim -s" ��� ":source!". ���� ���� {scriptout} ��� ����������, 
+������������� � "vim \-s" ��� ":source!". ���� ���� {scriptout} ��� ����������, 
 �� ����� ������� ����� ����������� � ����� �����.
 .TP
--W {scriptout}
-��� "-w", �� ��� ������������ ���� ����� �����������.
+\-W {scriptout}
+��� "\-w", �� ��� ������������ ���� ����� �����������.
 .TP
--x
+\-x
 ��������� ������������ �����. ����� ������ ����������� ������ ������.
 .TP
--X
+\-X
 �� ������������ � X-�������. �������� �������� �� �������, �� ������ �����������
 ������������� ��������� ���� � ������ ������.
 .TP
--Z
+\-Z
 ������������ �����. �������� ��� ��, ��� � ���������, ������������ � "r".
 .TP
---
+\-\-
 ����� ������. ��� ��������� ��������� ��������������� ��� ����� ������.
 ����� ���� ������������ ��� ������ ������, ����� ������� ���������� � ������.
 .TP
---help
-������� ������� ������� � ��������� ������. �� ��, ��� � "-h".
+\-\-help
+������� ������� ������� � ��������� ������. �� ��, ��� � "\-h".
 .TP
---version
+\-\-version
 ������� ���������� � ������ ��������� � ��������� ������.
 .TP
---remote
+\-\-remote
 ������������ � ������� Vim � ��������� ��� ������� �����, ��������� �
 ����������� ����������. ���� ������ �� ������, ��������� ��������������,
 � ����� �������� � ������� ����� Vim.
 .TP
---remote-expr {���������}
+\-\-remote\-expr {���������}
 ������������ � ������� Vim � ��������� �� � ��������� {���������}. 
 ��������� ���������� ����� ������� � ����� ������������ ������ (stdout).
 .TP
---remote-send {�����}
+\-\-remote\-send {�����}
 ������������ � ������� Vim � �������� ��� ��������� {�����}.
 .TP
---remote-silent
-��� "--remote", �� ��� ������ ��������������, ���� ������ �� ������.
+\-\-remote\-silent
+��� "\-\-remote", �� ��� ������ ��������������, ���� ������ �� ������.
 .TP
---remote-wait
-��� "--remote", �� Vim �� ����� ��������� ������ �� ��� ���, ���� �� ����� 
+\-\-remote\-wait
+��� "\-\-remote", �� Vim �� ����� ��������� ������ �� ��� ���, ���� �� ����� 
 ��������� ������ ���� ������.
 .TP
---remote-wait-silent
-��� "--remote-wait", �� ��� ������ ��������������, ���� ������ �� ������.
+\-\-remote\-wait\-silent
+��� "\-\-remote\-wait", �� ��� ������ ��������������, ���� ������ �� ������.
 .TP
---serverlist
+\-\-serverlist
 ������� ������ ���� ��������� �������� Vim.
 .TP
---servername {���}
+\-\-servername {���}
 ������������ ��������� {���} � �������� ����� �������. ���� ���� 
-"--remote" �� ������, �� {���} ������������� ������ ����� Vim, 
+"\-\-remote" �� ������, �� {���} ������������� ������ ����� Vim, 
 � ��������� ������ ��������� �� ��� �������, � �������� ������� 
 ������������.
 .TP
---socketid {id}
+\-\-socketid {id}
 ������ ��� ������������ ���������� GTK: ������������ �������� GtkPlug ���
 ������� gvim � ��������� ����.
 .TP
---echo-wid
+\-\-echo\-wid
 ������ ��� ������������ ���������� GTK: ������� ������������� ���� (Window ID)
 � ����� ������������ ������ (stdout).
 .SH ���������� �������
diff -Nur runtime.patched/doc/vim-ru.UTF-8.1 runtime/doc/vim-ru.UTF-8.1
--- runtime.patched/doc/vim-ru.UTF-8.1	2008-07-21 13:18:14.000000000 -0700
+++ runtime/doc/vim-ru.UTF-8.1	2009-09-18 03:26:13.000000000 -0700
@@ -7,7 +7,7 @@
 [ключи] [файл ..]
 .br
 .B vim
-[ключи] -
+[ключи] \-
 .br
 .B vim
 [ключи] \-t метка
@@ -69,12 +69,12 @@
 помощи команды ":next". Чтобы править файл, имя которого начинается с символа
 "дефис" (-), перед списком файлов необходимо поставить "--".
 .TP
--
+\-
 Файл будет прочитан из потока стандартного ввода. Команды будут считываться
 из стандартного потока диагностики (stderr), который должен быть 
 терминалом.
 .TP
--t {метка}
+\-t {метка}
 Имя файла и начальная позиция курсора зависят от "метки", похожей на метку goto.
 {метка} ищется в файле меток, соответствующий файл становится активным, а 
 соответствующая команда исполняется.
@@ -83,7 +83,7 @@
 Файл, содержащий функцию, становится активным, а курсор помещается в начало функции.
 См. ":help tag-commands".
 .TP
--q [файл ошибок]
+\-q [файл ошибок]
 Начать работу в режиме быстрого исправления.
 При этом считывается [файл ошибок] и первая ошибка выводится на экран.
 Если [файл ошибок] не указан, имя файла берётся из значения опции 'errorfile'
@@ -101,21 +101,21 @@
 ex
 Запуск в режиме Ex. Для перехода в нормальный режим
 необходимо выполнить команду ":vi". Режим Ex включает
-также ключ "-e".
+также ключ "\-e".
 .TP
 view
 Запуск в режиме "только для чтения". Вы будете защищены от случайной записи 
-файла. То же самое можно сделать ключом "-R".
+файла. То же самое можно сделать ключом "\-R".
 .TP
 gvim gview
 Версия с графическим интерфейсом. Запускается в новом окне.
-То же самое можно сделать при запуске с ключом "-g".
+То же самое можно сделать при запуске с ключом "\-g".
 .TP
 rvim rview rgvim rgview
 Как и предыдущие команды, но с ограничениями. Нельзя запускать команды оболочки
 или приостанавливать работу
 .B Vim.
-Вместо приставки "r" можно использовать ключ "-Z".
+Вместо приставки "r" можно использовать ключ "\-Z".
 .SH КЛЮЧИ
 Ключи могут быть указаны в любом порядке, до или после имён
 файлов. Ключи без аргументов могут быть объединены под одним
@@ -132,21 +132,21 @@
 .TP
 +{команда}
 .TP
--c {команда}
+\-c {команда}
 {команда} исполняется после загрузки первого файла как команда Ex.
 Если {команда} содержит пробелы, то она должна быть заключена в
 двойные кавычки (в зависимости от используемой оболочки).
 Пример: vim "+set si" main.c
 .br
-Примечание: Можно указывать до десяти команд "+" или "-c".
+Примечание: Можно указывать до десяти команд "+" или "\-c".
 .TP
---cmd {команда}
-Как "-c", но команда исполняется перед обработкой любого файла
+\-\-cmd {команда}
+Как "\-c", но команда исполняется перед обработкой любого файла
 настроек (vimrc).
 Можно указывать до десяти таких команд, независимо от количества
-команд "-c".
+команд "\-c".
 .TP
--A
+\-A
 Если
 .B Vim
 был собран с поддержкой арабского языка для правки файлов,
@@ -158,34 +158,34 @@
 .B Vim
 завершает работу с ошибкой.
 .TP
--b
+\-b
 Двоичный режим.
 Производится настройка некоторых опций, делающих возможной правку
 двоичного или исполняемого файла.
 .TP
--C
+\-C
 Режим совместимости. Включает опцию 'compatible'.
 .B Vim
 будет работать почти как Vi, даже если существует файл .vimrc.
 .TP
--d
+\-d
 Режим поиска различий.
 Должно быть указано два или три имени файла.
 .B Vim
 откроет все файлы и покажет различия между ними
 (как vimdiff(1)).
 .TP
--d {устройство}
+\-d {устройство}
 Открыть {устройство} для использования в качестве терминала (только на Amiga).
 Пример:
 "\-d con:20/30/600/150".
 .TP
--e
+\-e
 Запустить
 .B Vim
 в режиме Ex, как будто исполняемый файл имеет имя "ex".
 .TP
--f
+\-f
 Режим активного приложения. Версия
 .B Vim
 с графическим интерфейсом не будет ветвиться и отключаться
@@ -198,25 +198,25 @@
 сеанса правки (например, программа для работы с электронной почтой).
 На платформе Amiga команды ":sh" и ":!" не будут работать.
 .TP
---nofork
+\-\-nofork
 Режим активного приложения. Версия
 .B Vim
 с графическим интерфейсом не будет ветвиться и отключаться
 от запустившей её оболочки.
 .TP
--F
+\-F
 Если
 .B Vim
 был собран с поддержкой FKMAP для правки текста справа налево
 и настроек клавиатуры для языка фарси, этот ключ запускает
 .B Vim
 в режиме фарси, иначе говоря, с включёнными опциями 
-'fkmap' и 'rightleft'.
+\&'fkmap' и 'rightleft'.
 В противном случае
 .B Vim
 завершает работу с сообщением об ошибке.
 .TP
--g
+\-g
 Если
 .B Vim
 был собран с поддержкой графического интерфейса, этот ключ
@@ -224,13 +224,13 @@
 .B Vim
 завершает работу с сообщением об ошибке.
 .TP
--h
+\-h
 Выводит краткую информацию об аргументах и ключах командной строки.
 После этого
 .B Vim
 завершает работу.
 .TP
--H
+\-H
 Если
 .B Vim
 был собран с поддержкой правки текста справа налево
@@ -241,69 +241,69 @@
 .B Vim
 завершает работу с сообщением об ошибке.
 .TP
--i {viminfo}
+\-i {viminfo}
 Если используется файл viminfo, то этот ключ задаёт имя такого файла (вместо
 "~/.viminfo" по умолчанию). Можно также избежать использования файла viminfo
 путём указания имени "NONE".
 .TP
--L
-То же, что и -r.
+\-L
+То же, что и \-r.
 .TP
--l
+\-l
 Режим Lisp. Включаются опции 'lisp' и 'showmatch'.
 .TP
--m
+\-m
 Изменение файлов запрещено. При этом отключается опция 'write', поэтому
 запись файлов становится невозможной.
 .TP
--N
+\-N
 Режим неполной совместимости. Отключается 'compatible'.
 .B Vim
 будет работать лучше, но не будет полностью совместим с Vi, даже если
 отсутствует файл сценария настроек (.vimrc).
 .TP
--n
+\-n
 Не использовать своп-файл. Восстановление при сбое в работе будет невозможно.
 Удобно для правки файла на очень медленном носителе (например, гибком диске).
 То же самое можно сделать командой ":set uc=0". Отмена -- ":set uc=200".
 .TP
--o[N]
+\-o[N]
 Открыть N окон, разделённых по горизонтали. Если N не указано, то открывается 
 по одному окну на каждый файл.
 .TP
--O[N]
+\-O[N]
 Открыть N окон, разделённых по вертикали. Если N не указано, то открывается 
 по одному окну на каждый файл.
 .TP
--R
+\-R
 Режим "только для чтения". Включается опция 'readonly'.
 Файл в буфере доступен для редактирования, но его копию на диске нельзя
 случайно перезаписать. Для сохранения файла необходимо добавить восклицательный
 знак к соответствующей команде Ex (например, ":w!").
-Ключ "-R" подразумевает также, что используется и ключ "-n" (см. выше).
+Ключ "\-R" подразумевает также, что используется и ключ "\-n" (см. выше).
 Опция 'readonly' может быть выключена по команде ":set noro".
 См. ":help 'readonly'".
 .TP
--r
+\-r
 Вывести список своп-файлов и информацию об их использовании для восстановления после сбоя.
 .TP
--r {файл}
+\-r {файл}
 Режим восстановления.
 Для восстановления после сбоя будет использован своп-файл.
 Своп-файл имеет то же имя, что и текстовый файл, но с добавлением расширения ".swp".
 См. ":help recovery".
 .TP
--s
-Тихий режим. Только при запуске как "Ex" или если перед "-s" указан ключ "-e".
+\-s
+Тихий режим. Только при запуске как "Ex" или если перед "\-s" указан ключ "\-e".
 .TP
--s {scriptin}
+\-s {scriptin}
 Считывается файл сценария {scriptin}. При этом, содержимое файла воспринимается
 в виде команд, как если бы они были набраны на консоли. 
 То же самое достигается командой ":source! {scriptin}".
 Если конец файла считывается до завершения работы редактора, то в дальнейшем 
 ввод осуществляется с клавиатуры.
 .TP
--T {terminal}
+\-T {terminal}
 Сообщает
 .B Vim
 тип используемого терминала. Необходимо только в тех ситуациях, когда 
@@ -312,96 +312,96 @@
 .B Vim
 (встроено в него) или определено в файлах termcap или terminfo.
 .TP
--u {vimrc}
+\-u {vimrc}
 Использовать команды из файла сценария {vimrc} для настройки.
 Все остальные файлы настроек пропускаются.
 Удобно для редактирования специальных типов файлов.
 Чтобы избежать использования сценариев настроек вообще, можно использовать
 имя "NONE". См. ":help initialization".
 .TP
--U {gvimrc}
+\-U {gvimrc}
 Использовать команды из файла сценария {gvimrc} для настройки графического 
 интерфейса.
 Все остальные файлы настроек для графического интерфейса пропускаются.
 Чтобы избежать использования сценариев настроек графического интерфейса вообще, 
 можно использовать имя "NONE". См. ":help gui-init".
 .TP
--V
+\-V
 "Болтливый" режим. Выводить сообщения о том, какие файлы читаются, и о
 чтении-записи файла viminfo.
 .TP
--v
+\-v
 Запустить
 .B Vim
 в режиме Vi, как будто исполняемый файл имеет имя "vi". Имеет смысл только если
 исполняемый файл имеет имя "ex".
 .TP
--w {scriptout}
+\-w {scriptout}
 Все символы, введённые с клавиатуры вплоть до момента завершения работы, 
 записываются в файл {scriptout}.
 Удобно в том случае, когда вы хотите создать файл сценария для последующего 
-использования с "vim -s" или ":source!". Если файл {scriptout} уже существует, 
+использования с "vim \-s" или ":source!". Если файл {scriptout} уже существует, 
 то новые символы будут добавляются в конец файла.
 .TP
--W {scriptout}
-Как "-w", но уже существующий файл будет перезаписан.
+\-W {scriptout}
+Как "\-w", но уже существующий файл будет перезаписан.
 .TP
--x
+\-x
 Шифровать записываемые файлы. Будет выдано приглашение ввести пароль.
 .TP
--X
+\-X
 Не подключаться к X-серверу. Ускоряет загрузку на консоли, но делает невозможным
 использование заголовка окна и буфера обмена.
 .TP
--Z
+\-Z
 Ограниченный режим. Работает так же, как и программы, начинающиеся с "r".
 .TP
---
+\-\-
 Конец ключей. Все остальные аргументы рассматриваются как имена файлов.
 Может быть использовано для правки файлов, имена которых начинаются с дефиса.
 .TP
---help
-Вывести краткую справку и завершить работу. То же, что и "-h".
+\-\-help
+Вывести краткую справку и завершить работу. То же, что и "\-h".
 .TP
---version
+\-\-version
 Вывести информацию о версии программы и завершить работу.
 .TP
---remote
+\-\-remote
 Подключиться к серверу Vim и заставить его править файлы, указанные в
 последующих аргументах. Если сервер не найден, выводится предупреждение,
 а файлы правятся в местной копии Vim.
 .TP
---remote-expr {выражение}
+\-\-remote\-expr {выражение}
 Подключиться к серверу Vim и вычислить на нём указанное {выражение}. 
 Результат вычисления будет выведен в поток стандартного вывода (stdout).
 .TP
---remote-send {ключи}
+\-\-remote\-send {ключи}
 Подключиться к серверу Vim и передать ему указанные {ключи}.
 .TP
---remote-silent
-Как "--remote", но без вывода предупреждения, если сервер не найден.
+\-\-remote\-silent
+Как "\-\-remote", но без вывода предупреждения, если сервер не найден.
 .TP
---remote-wait
-Как "--remote", но Vim не будет завершать работу до тех пор, пока не будет 
+\-\-remote\-wait
+Как "\-\-remote", но Vim не будет завершать работу до тех пор, пока не будет 
 выполнена правка всех файлов.
 .TP
---remote-wait-silent
-Как "--remote-wait", но без вывода предупреждения, если сервер не найден.
+\-\-remote\-wait\-silent
+Как "\-\-remote\-wait", но без вывода предупреждения, если сервер не найден.
 .TP
---serverlist
+\-\-serverlist
 Вывести список всех доступных серверов Vim.
 .TP
---servername {имя}
+\-\-servername {имя}
 Использовать указанное {имя} в качестве имени сервера. Если ключ 
-"--remote" не указан, то {имя} присваивается данной копии Vim, 
+"\-\-remote" не указан, то {имя} присваивается данной копии Vim, 
 в противном случае указывает на имя сервера, к которому следует 
 подключиться.
 .TP
---socketid {id}
+\-\-socketid {id}
 Только для графического интерфейса GTK: использовать механизм GtkPlug для
 запуска gvim в отдельном окне.
 .TP
---echo-wid
+\-\-echo\-wid
 Только для графического интерфейса GTK: вывести идентификатор окна (Window ID)
 в поток стандартного вывода (stdout).
 .SH ВСТРОЕННАЯ СПРАВКА
diff -Nur runtime.patched/doc/vimdiff-fr.1 runtime/doc/vimdiff-fr.1
--- runtime.patched/doc/vimdiff-fr.1	2005-04-01 03:23:37.000000000 -0800
+++ runtime/doc/vimdiff-fr.1	2008-12-08 13:08:57.000000000 -0800
@@ -1,18 +1,18 @@
 .TH VIMDIFF 1 "30 mars 2001"
 .SH NOM
-vimdiff \- ouvre deux ou trois versions d'un fichier dans Vim et affiche
-leurs diff�rences
+vimdiff \- ouvre deux, trois ou quatre versions d'un fichier dans Vim et
+affiche leurs diff�rences
 .SH SYNOPSIS
 .br
 .B vimdiff
-[options] fichier1 fichier2 [fichier3]
+[options] fichier1 fichier2 [fichier3 [fichier4]]
 .PP
 .B gvimdiff
 .SH DESCRIPTION
 .B Vimdiff
 d�marre
 .B Vim
-avec deux (ou trois) fichiers.
+avec deux (ou trois ou quatre) fichiers.
 Chaque fichier est ouvert dans sa propre fen�tre.
 Les diff�rences entres ces fichiers sont mises en surbrillance.
 C'est un outil tr�s pratique pour visualiser et reporter les
diff -Nur runtime.patched/doc/vimdiff-fr.UTF-8.1 runtime/doc/vimdiff-fr.UTF-8.1
--- runtime.patched/doc/vimdiff-fr.UTF-8.1	2005-04-01 03:25:59.000000000 -0800
+++ runtime/doc/vimdiff-fr.UTF-8.1	2008-12-08 13:08:57.000000000 -0800
@@ -1,18 +1,18 @@
 .TH VIMDIFF 1 "30 mars 2001"
 .SH NOM
-vimdiff \- ouvre deux ou trois versions d'un fichier dans Vim et affiche
-leurs différences
+vimdiff \- ouvre deux, trois ou quatre versions d'un fichier dans Vim et
+affiche leurs différences
 .SH SYNOPSIS
 .br
 .B vimdiff
-[options] fichier1 fichier2 [fichier3]
+[options] fichier1 fichier2 [fichier3 [fichier4]]
 .PP
 .B gvimdiff
 .SH DESCRIPTION
 .B Vimdiff
 démarre
 .B Vim
-avec deux (ou trois) fichiers.
+avec deux (ou trois ou quatre) fichiers.
 Chaque fichier est ouvert dans sa propre fenêtre.
 Les différences entres ces fichiers sont mises en surbrillance.
 C'est un outil très pratique pour visualiser et reporter les
diff -Nur runtime.patched/doc/vimdiff-pl.1 runtime/doc/vimdiff-pl.1
--- runtime.patched/doc/vimdiff-pl.1	2006-03-26 06:48:37.000000000 -0800
+++ runtime/doc/vimdiff-pl.1	2009-09-18 03:29:11.000000000 -0700
@@ -1,17 +1,17 @@
 .TH VIMDIFF 1 "2001 Mar 30"
 .SH NAZWA
-vimdiff \- edytuj dwie lub trzy wersje pliku w Vimie i zobacz r�nice
+vimdiff \- edytuj dwie, trzy lub cztery wersje pliku w Vimie i zobacz r�nice
 .SH SYNOPSIS
 .br
 .B vimdiff
-[opcje] plik1 plik2 [plik3]
+[opcje] plik1 plik2 [plik3 [plik4]]
 .PP
 .B gvimdiff
 .SH OPIS
 .B Vimdiff
 uruchomi
 .B Vima
-z dwoma (lub trzema plikami), ka�dy z nich we w�asnym oknie.
+z dwoma (trzema lub czterema plikami), ka�dy z nich we w�asnym oknie.
 R�nice mi�dzy plikami zostan� pod�wietlone.
 Jest to dobry spos�b by przeanalizowa� r�nice i przenie�� zmiany z jednej
 wersji pliku do innej.
@@ -25,14 +25,14 @@
 W ka�dym oknie zostanie ustawiona opcja 'diff', kt�ra spowoduje
 pod�wietlenie r�nic.
 .br
-Opcje 'wrap' i 'scrollbind' zostan� ustawione by tekst dobrze si�
-przegl�da�o.
+Opcje 'wrap' i 'scrollbind' zostan� ustawione by tekst si�
+wygodnie przegl�da�o.
 .br
-Opcja 'foldmethod' zostanie ustawiona na "diff", dzi�ki temu
+Opcja 'foldmethod' zostanie ustawiona na "diff", dzi�ki czemu
 niezmienione linie zostan� zwini�te. 'foldcolumn' b�dzie r�wne 2 aby
 �atwo wyszukiwa�, otwiera� i zamyka� zwini�cia.
 .SH OPCJE
-Pionowy podzia� jest u�yty do wyr�wnania linii, tak jakby u�yto
+Pionowy podzia� zostanie u�yty do wyr�wnania linii, tak jakby u�yto
 opcji "\-O". Aby uzyska� poziomy podzia� u�yj opcji "\-o".
 .PP
 Aby pozna� inne opcje zobacz vim(1).
diff -Nur runtime.patched/doc/vimdiff-pl.UTF-8.1 runtime/doc/vimdiff-pl.UTF-8.1
--- runtime.patched/doc/vimdiff-pl.UTF-8.1	2006-03-26 09:01:30.000000000 -0800
+++ runtime/doc/vimdiff-pl.UTF-8.1	2009-09-18 03:29:11.000000000 -0700
@@ -1,17 +1,17 @@
 .TH VIMDIFF 1 "2001 Mar 30"
 .SH NAZWA
-vimdiff \- edytuj dwie lub trzy wersje pliku w Vimie i zobacz różnice
+vimdiff \- edytuj dwie, trzy lub cztery wersje pliku w Vimie i zobacz różnice
 .SH SYNOPSIS
 .br
 .B vimdiff
-[opcje] plik1 plik2 [plik3]
+[opcje] plik1 plik2 [plik3 [plik4]]
 .PP
 .B gvimdiff
 .SH OPIS
 .B Vimdiff
 uruchomi
 .B Vima
-z dwoma (lub trzema plikami), każdy z nich we własnym oknie.
+z dwoma (trzema lub czterema plikami), każdy z nich we własnym oknie.
 Różnice między plikami zostaną podświetlone.
 Jest to dobry sposób by przeanalizować różnice i przenieść zmiany z jednej
 wersji pliku do innej.
@@ -25,14 +25,14 @@
 W każdym oknie zostanie ustawiona opcja 'diff', która spowoduje
 podświetlenie różnic.
 .br
-Opcje 'wrap' i 'scrollbind' zostaną ustawione by tekst dobrze się
-przeglądało.
+Opcje 'wrap' i 'scrollbind' zostaną ustawione by tekst się
+wygodnie przeglądało.
 .br
-Opcja 'foldmethod' zostanie ustawiona na "diff", dzięki temu
+Opcja 'foldmethod' zostanie ustawiona na "diff", dzięki czemu
 niezmienione linie zostaną zwinięte. 'foldcolumn' będzie równe 2 aby
 łatwo wyszukiwać, otwierać i zamykać zwinięcia.
 .SH OPCJE
-Pionowy podział jest użyty do wyrównania linii, tak jakby użyto
+Pionowy podział zostanie użyty do wyrównania linii, tak jakby użyto
 opcji "\-O". Aby uzyskać poziomy podział użyj opcji "\-o".
 .PP
 Aby poznać inne opcje zobacz vim(1).
diff -Nur runtime.patched/doc/vimdiff-ru.1 runtime/doc/vimdiff-ru.1
--- runtime.patched/doc/vimdiff-ru.1	2005-03-11 01:50:21.000000000 -0800
+++ runtime/doc/vimdiff-ru.1	2009-09-18 03:28:54.000000000 -0700
@@ -36,8 +36,8 @@
 ��������, ��������� � ��������� ����� �������.
 .SH ����� �������
 ��� ������������ ����� ����� ������ ������������ ������������ ���������� ����,
-��� ���� �� ������������� ���� "-O". ��� ����, ����� ������������ ����������
-���� �� �����������, ������� ������� � ��������� ������ ���� "-o".
+��� ���� �� ������������� ���� "\-O". ��� ����, ����� ������������ ����������
+���� �� �����������, ������� ������� � ��������� ������ ���� "\-o".
 .PP
 ��������� ����� ��������� ������ ��������������� �� �������� ����������� vim(1).
 .SH ������ �����
diff -Nur runtime.patched/doc/vimdiff-ru.UTF-8.1 runtime/doc/vimdiff-ru.UTF-8.1
--- runtime.patched/doc/vimdiff-ru.UTF-8.1	2005-03-18 07:27:03.000000000 -0800
+++ runtime/doc/vimdiff-ru.UTF-8.1	2009-09-18 03:31:20.000000000 -0700
@@ -36,8 +36,8 @@
 находить, открывать и закрывать такие складки.
 .SH КЛЮЧИ ЗАПУСКА
 Для выравнивания строк между окнами используется вертикальное разделение окон,
-как если бы использовался ключ "-O". Для того, чтобы использовать разделение
-окон по горизонтали, следует указать в командной строке ключ "-o".
+как если бы использовался ключ "\-O". Для того, чтобы использовать разделение
+окон по горизонтали, следует указать в командной строке ключ "\-o".
 .PP
 Остальные ключи командной строки рассматриваются на странице справочника vim(1).
 .SH СМОТРИ ТАКЖЕ
diff -Nur runtime.patched/doc/vimtutor-fr.1 runtime/doc/vimtutor-fr.1
--- runtime.patched/doc/vimtutor-fr.1	2006-04-30 09:20:32.000000000 -0700
+++ runtime/doc/vimtutor-fr.1	2008-12-08 13:09:03.000000000 -0800
@@ -3,7 +3,7 @@
 vimtutor \- tutoriel Vim
 .SH SYNOPSIS
 .br
-.B vimtutor [langue]
+.B vimtutor [-g] [langue]
 .SH DESCRIPTION
 .B Vimtutor
 lance le tutoriel
@@ -17,6 +17,10 @@
 .B Vim
 \.
 .PP
+L'argument optionnel -g lance vimtutor avec gvim plut�t qu'avec vim, si l'IHM
+graphique de vim est disponible, ou le lance avec vim si gvim n'est pas
+disponible.
+.PP
 L'argument optionnel [langue] est le nom d'une langue, sp�cifi�e par son
 symbole � deux lettres, tels que "it" ou "es". Si l'argument [langue] est omis,
 la langue de la r�gion linguistique actuelle sera retenue. Si le tutoriel est
diff -Nur runtime.patched/doc/vimtutor-fr.UTF-8.1 runtime/doc/vimtutor-fr.UTF-8.1
--- runtime.patched/doc/vimtutor-fr.UTF-8.1	2006-04-30 09:20:41.000000000 -0700
+++ runtime/doc/vimtutor-fr.UTF-8.1	2008-12-08 13:08:46.000000000 -0800
@@ -3,7 +3,7 @@
 vimtutor \- tutoriel Vim
 .SH SYNOPSIS
 .br
-.B vimtutor [langue]
+.B vimtutor [-g] [langue]
 .SH DESCRIPTION
 .B Vimtutor
 lance le tutoriel
@@ -17,6 +17,10 @@
 .B Vim
 \.
 .PP
+L'argument optionnel -g lance vimtutor avec gvim plutôt qu'avec vim, si l'IHM
+graphique de vim est disponible, ou le lance avec vim si gvim n'est pas
+disponible.
+.PP
 L'argument optionnel [langue] est le nom d'une langue, spécifiée par son
 symbole à deux lettres, tels que "it" ou "es". Si l'argument [langue] est omis,
 la langue de la région linguistique actuelle sera retenue. Si le tutoriel est
diff -Nur runtime.patched/doc/vimtutor-pl.1 runtime/doc/vimtutor-pl.1
--- runtime.patched/doc/vimtutor-pl.1	2006-03-26 06:57:05.000000000 -0800
+++ runtime/doc/vimtutor-pl.1	2009-09-18 03:31:20.000000000 -0700
@@ -3,10 +3,10 @@
 vimtutor \- nauczyciel Vima
 .SH SYNOPSIS
 .br
-.B vimtutor [j�zyk]
+.B vimtutor -g [j�zyk]
 .SH OPIS
 .B Vimtutor
-uruchamia nauczycie
+uruchamia nauczyciela
 .B Vima.
 Najpierw kopiuje w�a�ciwy plik, dzi�ki temu mo�na go zmienia� bez obaw
 utraty tre�ci.
@@ -15,6 +15,9 @@
 przyda si� ludziom, kt�rzy chc� si� nauczy� pierwszych polece�
 .B Vima
 .PP
+Opcjonalny argument \-g uruchamia vimtutor w gvimie a nie w Vimie je�li
+graficzna wersja Vima jest dost�pna, je�li nie zostanie uruchomiony Vim.
+.PP
 Opcjonalny argument [j�zyk] jest dwu literowym kodem j�zyka, tak jak
 "it" lub "es".
 Je�li brak argumentu [j�zyk] zostanie u�yty j�zyk bie��cej
@@ -26,7 +29,7 @@
 jest uruchamiany zawsze w trybie kompatybilno�ci z Vi
 .SH PLIKI
 .TP 15
-/usr/local/lib/vim/tutor/tutor[.languague]
+/usr/local/lib/vim/tutor/tutor[.j�zyk]
 Tekstowe pliki
 .B Vimtutora.
 .TP 15
@@ -35,7 +38,7 @@
 .B Vimtutora.
 .SH AUTOR
 .B Vimtutor
-zosta� pocz�tkowo napisany dla Vim przez Michaela C. Pierce'a
+zosta� pocz�tkowo napisany dla Vi przez Michaela C. Pierce'a
 i Roberta K. Ware'a z Colorado School of Mines zainspirowani przez
 Charlesa Smitha z Colorado State University.
 E-mail: [email protected]
diff -Nur runtime.patched/doc/vimtutor-pl.UTF-8.1 runtime/doc/vimtutor-pl.UTF-8.1
--- runtime.patched/doc/vimtutor-pl.UTF-8.1	2006-03-26 09:01:45.000000000 -0800
+++ runtime/doc/vimtutor-pl.UTF-8.1	2009-09-18 03:26:13.000000000 -0700
@@ -3,10 +3,10 @@
 vimtutor \- nauczyciel Vima
 .SH SYNOPSIS
 .br
-.B vimtutor [język]
+.B vimtutor -g [język]
 .SH OPIS
 .B Vimtutor
-uruchamia nauczycie
+uruchamia nauczyciela
 .B Vima.
 Najpierw kopiuje właściwy plik, dzięki temu można go zmieniać bez obaw
 utraty treści.
@@ -15,6 +15,9 @@
 przyda się ludziom, którzy chcą się nauczyć pierwszych poleceń
 .B Vima
 .PP
+Opcjonalny argument \-g uruchamia vimtutor w gvimie a nie w Vimie jeśli
+graficzna wersja Vima jest dostępna, jeśli nie zostanie uruchomiony Vim.
+.PP
 Opcjonalny argument [język] jest dwu literowym kodem języka, tak jak
 "it" lub "es".
 Jeśli brak argumentu [język] zostanie użyty język bieżącej
@@ -26,7 +29,7 @@
 jest uruchamiany zawsze w trybie kompatybilności z Vi
 .SH PLIKI
 .TP 15
-/usr/local/lib/vim/tutor/tutor[.languague]
+/usr/local/lib/vim/tutor/tutor[.język]
 Tekstowe pliki
 .B Vimtutora.
 .TP 15
@@ -35,7 +38,7 @@
 .B Vimtutora.
 .SH AUTOR
 .B Vimtutor
-został początkowo napisany dla Vim przez Michaela C. Pierce'a
+został początkowo napisany dla Vi przez Michaela C. Pierce'a
 i Roberta K. Ware'a z Colorado School of Mines zainspirowani przez
 Charlesa Smitha z Colorado State University.
 E-mail: [email protected]
diff -Nur runtime.patched/doc/vimtutor.1 runtime/doc/vimtutor.1
--- runtime.patched/doc/vimtutor.1	2008-04-05 03:21:11.000000000 -0700
+++ runtime/doc/vimtutor.1	2009-09-18 03:28:54.000000000 -0700
@@ -3,7 +3,7 @@
 vimtutor \- the Vim tutor
 .SH SYNOPSIS
 .br
-.B vimtutor [-g] [language]
+.B vimtutor [\-g] [language]
 .SH DESCRIPTION
 .B Vimtutor
 starts the
@@ -18,7 +18,7 @@
 .B Vim
 commands.
 .PP
-The optional argument -g starts vimtutor with gvim rather than vim, if the
+The optional argument \-g starts vimtutor with gvim rather than vim, if the
 GUI version of vim is available, or falls back to Vim if gvim is not found.
 .PP
 The optional [language] argument is the two-letter name of a language, like
diff -Nur runtime.patched/doc/visual.txt runtime/doc/visual.txt
--- runtime.patched/doc/visual.txt	2008-08-09 07:23:01.000000000 -0700
+++ runtime/doc/visual.txt	2009-10-28 13:58:52.000000000 -0700
@@ -1,4 +1,4 @@
-*visual.txt*    For Vim version 7.2.  Last change: 2006 Sep 26
+*visual.txt*    For Vim version 7.2.  Last change: 2009 Oct 14
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -217,7 +217,7 @@
 	i[	inner [] block					|v_i[|
 
 Additionally the following commands can be used:
-	:	start ex command for highlighted lines (1)	|v_:|
+	:	start Ex command for highlighted lines (1)	|v_:|
 	r	change (4)					|v_r|
 	s	change						|v_s|
 	C	change (2)(4)					|v_C|
@@ -309,8 +309,6 @@
 LHS of the block determines the point from which to apply a right shift, and
 padding includes TABs optimally according to 'ts' and 'et'.  The LHS of the
 block determines the point upto which to shift left.
-    Note: v_< padding is buggy if the Visual Block starts and ends in the same
-    TAB. (Vim 5.4c)
 See |v_b_>_example|.
 See |v_b_<_example|.
 
@@ -465,6 +463,10 @@
 mode Vim automatically switches to Visual mode, so that the same behavior as
 in Visual mode is effective.  If you don't want this use |:xmap| or |:smap|.
 
+Users will expect printable characters to replace the selected area.
+Therefore avoid mapping printable characters in Select mode.  Or use
+|:sunmap|  after |:map| and |:vmap| to remove it for Select mode.
+
 After the mapping or menu finishes, the selection is enabled again and Select
 mode entered, unless the selected area was deleted, another buffer became
 the current one or the window layout was changed.
diff -Nur runtime.patched/doc/windows.txt runtime/doc/windows.txt
--- runtime.patched/doc/windows.txt	2008-08-09 07:23:02.000000000 -0700
+++ runtime/doc/windows.txt	2009-10-08 14:17:02.000000000 -0700
@@ -1,4 +1,4 @@
-*windows.txt*   For Vim version 7.2.  Last change: 2008 Aug 09
+*windows.txt*   For Vim version 7.2.  Last change: 2009 Sep 23
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -35,6 +35,11 @@
 ==============================================================================
 1. Introduction					*windows-intro* *window*
 
+Summary:
+   A buffer is the in-memory text of a file.
+   A window is a viewport on a buffer.
+   A tab page is a collection of windows.
+
 A window is a viewport onto a buffer.  You can use multiple windows on one
 buffer, or several windows on different buffers.
 
@@ -342,13 +347,13 @@
 		top-left window.
 		With count: go to Nth window (windows are numbered from
 		top-left to bottom-right).  To obtain the window number see
-		|bufwinnr()| and |winnr()|.
+		|bufwinnr()| and |winnr()|.  When N is larger than the number
+		of windows go to the last window.
 
 						*CTRL-W_W*
 CTRL-W W	Without count: move cursor to window above/left of current
 		one.  If there is no window above or left, go to bottom-right
-		window.  With count: go to Nth window (windows are numbered
-		from top-left to bottom-right).
+		window.  With count: go to Nth window, like with CTRL-W w.
 
 CTRL-W t					*CTRL-W_t* *CTRL-W_CTRL-T*
 CTRL-W CTRL-T	Move cursor to top-left window.
@@ -1175,7 +1180,8 @@
 			:setlocal buftype=nofile
 			:setlocal bufhidden=hide
 			:setlocal noswapfile
-<		The buffer name can be used to identify the buffer.
+<		The buffer name can be used to identify the buffer, if you
+		give it a meaningful name.
 
 						*unlisted-buffer*
 unlisted	The buffer is not in the buffer list.  It is not used for
diff -Nur runtime.patched/doc/xxd-fr.1 runtime/doc/xxd-fr.1
--- runtime.patched/doc/xxd-fr.1	2006-04-30 09:20:38.000000000 -0700
+++ runtime/doc/xxd-fr.1	2008-12-08 13:08:46.000000000 -0800
@@ -135,7 +135,7 @@
 D�bute au
 .RI < d�calage >
 absolu ou relatif dans fichier_entree.
-\fI+ fRindique que le d�calage est relatif � la position courante dans
+\fI+ \fRindique que le d�calage est relatif � la position courante dans
 l'entr�e standard (sans effet si la lecture n'a pas lieu sur l'entr�e
 standard). \fI\- \fRindique un d�calage en caract�res depuis la fin de
 l'entr�e (utilis� avec \fI+\fR, d�signe la position avant la position
@@ -308,7 +308,7 @@
 .PP
 Cr�er un fichier d'un octet, contenant seulement le caract�re 'A'.
 Les nombres apr�s '\-r \-s' s'ajoutent au num�ros de lignes trouv�es dans le
-fichier ; XXX in effects, les octets initiaux sont supprim�s.
+fichier ; les octets initiaux sont supprim�s.
 .br
 \fI% echo '010000: 41' | xxd \-r \-s \-0x10000 \> fichier\fR
 .PP
diff -Nur runtime.patched/doc/xxd-fr.UTF-8.1 runtime/doc/xxd-fr.UTF-8.1
--- runtime.patched/doc/xxd-fr.UTF-8.1	2006-04-30 09:20:45.000000000 -0700
+++ runtime/doc/xxd-fr.UTF-8.1	2008-12-08 13:08:57.000000000 -0800
@@ -135,7 +135,7 @@
 Débute au
 .RI < décalage >
 absolu ou relatif dans fichier_entree.
-\fI+ fRindique que le décalage est relatif à la position courante dans
+\fI+ \fRindique que le décalage est relatif à la position courante dans
 l'entrée standard (sans effet si la lecture n'a pas lieu sur l'entrée
 standard). \fI\- \fRindique un décalage en caractères depuis la fin de
 l'entrée (utilisé avec \fI+\fR, désigne la position avant la position
@@ -308,7 +308,7 @@
 .PP
 Créer un fichier d'un octet, contenant seulement le caractère 'A'.
 Les nombres après '\-r \-s' s'ajoutent au numéros de lignes trouvées dans le
-fichier ; XXX in effects, les octets initiaux sont supprimés.
+fichier ; les octets initiaux sont supprimés.
 .br
 \fI% echo '010000: 41' | xxd \-r \-s \-0x10000 \> fichier\fR
 .PP
diff -Nur runtime.patched/doc/xxd-pl.1 runtime/doc/xxd-pl.1
--- runtime.patched/doc/xxd-pl.1	2006-09-26 13:17:26.000000000 -0700
+++ runtime/doc/xxd-pl.1	2009-09-18 03:29:11.000000000 -0700
@@ -18,7 +18,7 @@
 \-r[evert] [opcje] [plik_we [plik_wy]]
 .SH OPIS
 .I xxd
-tworzy zrzut heksowy podanego pliku na standardowe wyj�cie.
+tworzy zrzut heksowy podanego pliku lub standardowego wej�cia.
 Mo�e tak�e przetworzy� zrzut heksowy z powrotem do oryginalnej,
 binarnej formy.
 Podobnie jak
@@ -27,13 +27,13 @@
 .BR uudecode (1)
 pozwala na przekazanie danych binarnych w bezpiecznej w poczcie formie
 ASCII, ale ma zalety dekodowania na standardowe wyj�cie.
-Ponadto mo�na go u�y� do przeprowadzenia �atania plik�w binarnych.
+Ponadto mo�na go u�y� do binarnego �atania plik�w.
 .SH OPCJE
 Je�li nie podano
 .I plik_we
-xxd czyta ze standardowego wej�cie.
+xxd czyta ze standardowego wej�cia.
 Je�li okre�lono
-.I plik_wy
+.I plik_we
 jako znak
 .RB \` \- '
 wtedy dane wej�ciowe czytane s� ze standardowego wej�cia.
@@ -63,9 +63,9 @@
 .TP
 .IR \-b " | " \-bits
 Prze��cza do zrzutu bitowego (cyfr binarnych) zamiast heksowego.
-Opcja ta zapisuje oktety ajko osiem cyfr 1 lub 0 zamias normalnego
+Opcja ta zapisuje oktety jako osiem cyfr 1 lub 0 zamiast normalnego
 zrzutu heksowego. Ka�da linia jest poprzedzona przez
-heksadecymalny numer linii a za nim jego reprezentacja w ascii (lub
+heksadecymalny numer linii a po nim jego reprezentacj� w ascii (lub
 ebcdic). Opcje linii polece� \-r, \-p, \-i nie dzia�aj� w tym
 trybie.
 .TP
@@ -103,7 +103,7 @@
 .TP
 .IR "\-l len " | "\-len len"
 zako�cz po wypisaniu
-.RI < len>
+.RI < len >
 oktet�w.
 .TP
 .IR \-p " | " \-ps " | " \-postscript " | " \-plain
@@ -117,7 +117,7 @@
 .I \-r \-p
 by odczyta� zwyk�y zrzut heksadecymalny bez numer�w linii
 i okre�lonego uk�adu kolumn. Dodatkowe bia�e znaki i �amanie wierszy
-s� dozwolone wsz�dzie.
+s� wsz�dzie dozwolone.
 .TP
 .I \-seek offset
 Kiedy u�yty po
@@ -129,11 +129,11 @@
 .I \-s [+][\-]seek
 zaczyna na
 .RI < seek >
-bajt�w abs. (lub wzg.) offsecie pliku wej�ciowego.
-\fI+ fRwskazuje, �e seek jest wzgl�dne do bie��cej pozycji pliku (bez
+bajt�w bezwgl�dnego (lub wzgl�dnego) offsetu pliku wej�ciowego.
+\fI+ \fRwskazuje, �e seek jest wzgl�dne do bie��cej pozycji pliku (bez
 znaczenia je�li nie wczytuje ze standardowego wej�cia). \fI\- \fRwskazuje
 �e seek powinno by� o tyle znak�w od ko�ca wej�cia (lub je�li
-po��czone z \fI+\fR: przezhd bie��c� pozycj� pliku na standardowym
+po��czone z \fI+\fR: przed bie��c� pozycj� pliku na standardowym
 wej�ciu).
 Bez opcji \-s xxd zaczyna od bie��cej pozycji w pliku.
 .TP
@@ -153,7 +153,7 @@
 s� tylko przerwy, kt�re zostan� wype�nione bajtami null.
 .PP
 .I xxd \-r
-nigdy nie podaje b��d�w analizy. �mieci s� ignorowane.
+nigdy nie podaje b��d�w analizy. �mieci s� po cichu ignorowane.
 .PP
 W czasie edycji zrzut�w heksowych, prosz� zauwa�y� �e
 .I xxd \-r
@@ -161,8 +161,8 @@
 kolumn danych heksadecymalnych (zobacz opcj� \-c). Oznacza to tak�e,
 �e zmiany w drukowanych kolumnach ascii (lub ebcdic) s� zawsze
 ignorowane. Odwr�cenie zwyk�ego (lub postscriptowego) stylu zrzutu
-poprzez xxd \-r \-p nie zale�y od kolejno�ci kolumn. Tutaj cokolwiej
-co wygl�da jak para cyfr heks jest interpretowane.
+poprzez xxd \-r \-p nie zale�y od kolejno�ci kolumn. Tutaj cokolwiek
+co wygl�da jak para znak�w heks jest interpretowane.
 .PP
 Zauwa� r�nic� mi�dzy
 .br
@@ -175,7 +175,7 @@
 .I xxd \-s \+seek
 mo�e by� r�ne od
 .IR "xxd \-s seek" ,
-poniewa� lseek(2) jest u�yty do "przewini�cie" wej�cia. '+' robi
+poniewa� lseek(2) jest u�yty do "przewini�cie" wej�cia. '+' stanowi
 r�nic� je�li �r�d�em wej�cia jest standardowe wej�cie i je�li pozycja
 w pliku ze standardowego wej�cia nie jest pocz�tkiem pliku w chwili
 uruchomienia xxd. Nast�puj�ce przyk�ady mog� wyja�ni� (lub bardziej
@@ -184,17 +184,17 @@
 Przewi� standardowe wej�cie przed przeczytaniem; potrzebne poniewa�
 `cat' ju� odczyta� do ko�ca standardowego wej�cia.
 .br
-\fI% sh \-c 'cat > zwyk�a_kopia; xxd \-s 0 > hex_kopia' < plik
+\fI% sh \-c 'cat > zwyk�a_kopia; xxd \-s 0 > hex_kopia' < plik\fR
 .PP
 Zrzut heksowy od pozycji pliku 0x480 (=1024+128) w prz�d.
 Znak `+' oznacza "wzgl�dny wobec bie��cej pozycji", st�d `128' dodaje
 do 1k gdzie zako�czy� dd.
 .br
-\fI% sh \-c 'dd of=plain_snippet bs=1k count=1; xxd \-s +128 > hex_snippet' < file
+\fI% sh \-c 'dd of=plain_snippet bs=1k count=1; xxd \-s +128 > hex_snippet' < file\fR
 .PP
 Zrzut heksowy od pozycji pliku 0x100 ( = 1024\-768) dalej.
 .br
-\fI% sh \-c 'dd of=plain_snippet bs=1k count=1; xxd \-s +-768 > hex_snippet' < file
+\fI% sh \-c 'dd of=plain_snippet bs=1k count=1; xxd \-s +-768 > hex_snippet' < file\fR
 .PP
 Jakkolwiek, jest to rzadka sytuacja i u�ycie `+' jest rzadko
 potrzebne.
@@ -206,14 +206,14 @@
 .B pliku
 \.
 .br
-\fI% xxd \-s 0x30 plik
+\fI% xxd \-s 0x30 plik\fR
 .PP
 .br
 Wypisz trzy linie (heksowe 0x30 bajt�w) z ko�ca
 .B pliku
 \.
 .br
-\fI% xxd \-s \-0x30 plik
+\fI% xxd \-s \-0x30 plik\fR
 .PP
 .br
 Wypisz 120 bajt�w jako ci�g�y zrzut heksowy z 20 oktetami na lini�.
diff -Nur runtime.patched/doc/xxd-pl.UTF-8.1 runtime/doc/xxd-pl.UTF-8.1
--- runtime.patched/doc/xxd-pl.UTF-8.1	2006-09-26 13:17:31.000000000 -0700
+++ runtime/doc/xxd-pl.UTF-8.1	2009-09-18 03:26:13.000000000 -0700
@@ -18,7 +18,7 @@
 \-r[evert] [opcje] [plik_we [plik_wy]]
 .SH OPIS
 .I xxd
-tworzy zrzut heksowy podanego pliku na standardowe wyjście.
+tworzy zrzut heksowy podanego pliku lub standardowego wejścia.
 Może także przetworzyć zrzut heksowy z powrotem do oryginalnej,
 binarnej formy.
 Podobnie jak
@@ -27,13 +27,13 @@
 .BR uudecode (1)
 pozwala na przekazanie danych binarnych w bezpiecznej w poczcie formie
 ASCII, ale ma zalety dekodowania na standardowe wyjście.
-Ponadto można go użyć do przeprowadzenia łatania plików binarnych.
+Ponadto można go użyć do binarnego łatania plików.
 .SH OPCJE
 Jeśli nie podano
 .I plik_we
-xxd czyta ze standardowego wejście.
+xxd czyta ze standardowego wejścia.
 Jeśli określono
-.I plik_wy
+.I plik_we
 jako znak
 .RB \` \- '
 wtedy dane wejściowe czytane są ze standardowego wejścia.
@@ -63,9 +63,9 @@
 .TP
 .IR \-b " | " \-bits
 Przełącza do zrzutu bitowego (cyfr binarnych) zamiast heksowego.
-Opcja ta zapisuje oktety ajko osiem cyfr 1 lub 0 zamias normalnego
+Opcja ta zapisuje oktety jako osiem cyfr 1 lub 0 zamiast normalnego
 zrzutu heksowego. Każda linia jest poprzedzona przez
-heksadecymalny numer linii a za nim jego reprezentacja w ascii (lub
+heksadecymalny numer linii a po nim jego reprezentacją w ascii (lub
 ebcdic). Opcje linii poleceń \-r, \-p, \-i nie działają w tym
 trybie.
 .TP
@@ -103,7 +103,7 @@
 .TP
 .IR "\-l len " | "\-len len"
 zakończ po wypisaniu
-.RI < len>
+.RI < len >
 oktetów.
 .TP
 .IR \-p " | " \-ps " | " \-postscript " | " \-plain
@@ -117,7 +117,7 @@
 .I \-r \-p
 by odczytać zwykły zrzut heksadecymalny bez numerów linii
 i określonego układu kolumn. Dodatkowe białe znaki i łamanie wierszy
-są dozwolone wszędzie.
+są wszędzie dozwolone.
 .TP
 .I \-seek offset
 Kiedy użyty po
@@ -129,11 +129,11 @@
 .I \-s [+][\-]seek
 zaczyna na
 .RI < seek >
-bajtów abs. (lub wzg.) offsecie pliku wejściowego.
-\fI+ fRwskazuje, że seek jest względne do bieżącej pozycji pliku (bez
+bajtów bezwględnego (lub względnego) offsetu pliku wejściowego.
+\fI+ \fRwskazuje, że seek jest względne do bieżącej pozycji pliku (bez
 znaczenia jeśli nie wczytuje ze standardowego wejścia). \fI\- \fRwskazuje
 że seek powinno być o tyle znaków od końca wejścia (lub jeśli
-połączone z \fI+\fR: przezhd bieżącą pozycją pliku na standardowym
+połączone z \fI+\fR: przed bieżącą pozycją pliku na standardowym
 wejściu).
 Bez opcji \-s xxd zaczyna od bieżącej pozycji w pliku.
 .TP
@@ -153,7 +153,7 @@
 są tylko przerwy, które zostaną wypełnione bajtami null.
 .PP
 .I xxd \-r
-nigdy nie podaje błędów analizy. Śmieci są ignorowane.
+nigdy nie podaje błędów analizy. Śmieci są po cichu ignorowane.
 .PP
 W czasie edycji zrzutów heksowych, proszę zauważyć że
 .I xxd \-r
@@ -161,8 +161,8 @@
 kolumn danych heksadecymalnych (zobacz opcję \-c). Oznacza to także,
 że zmiany w drukowanych kolumnach ascii (lub ebcdic) są zawsze
 ignorowane. Odwrócenie zwykłego (lub postscriptowego) stylu zrzutu
-poprzez xxd \-r \-p nie zależy od kolejności kolumn. Tutaj cokolwiej
-co wygląda jak para cyfr heks jest interpretowane.
+poprzez xxd \-r \-p nie zależy od kolejności kolumn. Tutaj cokolwiek
+co wygląda jak para znaków heks jest interpretowane.
 .PP
 Zauważ różnicę między
 .br
@@ -175,7 +175,7 @@
 .I xxd \-s \+seek
 może być różne od
 .IR "xxd \-s seek" ,
-ponieważ lseek(2) jest użyty do "przewinięcie" wejścia. '+' robi
+ponieważ lseek(2) jest użyty do "przewinięcie" wejścia. '+' stanowi
 różnicę jeśli źródłem wejścia jest standardowe wejście i jeśli pozycja
 w pliku ze standardowego wejścia nie jest początkiem pliku w chwili
 uruchomienia xxd. Następujące przykłady mogą wyjaśnić (lub bardziej
@@ -184,17 +184,17 @@
 Przewiń standardowe wejście przed przeczytaniem; potrzebne ponieważ
 `cat' już odczytał do końca standardowego wejścia.
 .br
-\fI% sh \-c 'cat > zwykła_kopia; xxd \-s 0 > hex_kopia' < plik
+\fI% sh \-c 'cat > zwykła_kopia; xxd \-s 0 > hex_kopia' < plik\fR
 .PP
 Zrzut heksowy od pozycji pliku 0x480 (=1024+128) w przód.
 Znak `+' oznacza "względny wobec bieżącej pozycji", stąd `128' dodaje
 do 1k gdzie zakończył dd.
 .br
-\fI% sh \-c 'dd of=plain_snippet bs=1k count=1; xxd \-s +128 > hex_snippet' < file
+\fI% sh \-c 'dd of=plain_snippet bs=1k count=1; xxd \-s +128 > hex_snippet' < file\fR
 .PP
 Zrzut heksowy od pozycji pliku 0x100 ( = 1024\-768) dalej.
 .br
-\fI% sh \-c 'dd of=plain_snippet bs=1k count=1; xxd \-s +-768 > hex_snippet' < file
+\fI% sh \-c 'dd of=plain_snippet bs=1k count=1; xxd \-s +-768 > hex_snippet' < file\fR
 .PP
 Jakkolwiek, jest to rzadka sytuacja i użycie `+' jest rzadko
 potrzebne.
@@ -206,14 +206,14 @@
 .B pliku
 \.
 .br
-\fI% xxd \-s 0x30 plik
+\fI% xxd \-s 0x30 plik\fR
 .PP
 .br
 Wypisz trzy linie (heksowe 0x30 bajtów) z końca
 .B pliku
 \.
 .br
-\fI% xxd \-s \-0x30 plik
+\fI% xxd \-s \-0x30 plik\fR
 .PP
 .br
 Wypisz 120 bajtów jako ciągły zrzut heksowy z 20 oktetami na linię.
diff -Nur runtime.patched/filetype.vim runtime/filetype.vim
--- runtime.patched/filetype.vim	2008-08-03 12:38:46.000000000 -0700
+++ runtime/filetype.vim	2009-10-08 14:19:48.000000000 -0700
@@ -1,7 +1,7 @@
 " Vim support file to detect file types
 "
 " Maintainer:	Bram Moolenaar <[email protected]>
-" Last Change:	2008 Aug 03
+" Last Change:	2009 Sep 18
 
 " Listen very carefully, I will say this only once
 if exists("did_load_filetypes")
@@ -110,12 +110,15 @@
 au BufNewFile,BufRead proftpd.conf*		call s:StarSetf('apachestyle')
 
 " Apache config file
-au BufNewFile,BufRead .htaccess			 setf apache
-au BufNewFile,BufRead httpd.conf*,srm.conf*,access.conf*,apache.conf*,apache2.conf*,/etc/apache2/*.conf* call s:StarSetf('apache')
+au BufNewFile,BufRead .htaccess,/etc/httpd/*.conf		 setf apache
+au BufNewFile,BufRead httpd.conf*,srm.conf*,access.conf*,apache.conf*,apache2.conf*,/etc/apache2/*.conf*,/etc/httpd/conf.d/*.conf* call s:StarSetf('apache')
 
 " XA65 MOS6510 cross assembler
 au BufNewFile,BufRead *.a65			setf a65
 
+" Applescript
+au BufNewFile,BufRead *.scpt			setf applescript
+
 " Applix ELF
 au BufNewFile,BufRead *.am
 	\ if expand("<afile>") !~? 'Makefile.am\>' | setf elf | endif
@@ -350,10 +353,9 @@
 	\ if exists("cynlib_syntax_for_cpp")|setf cynlib|else|setf cpp|endif
 
 " C++
+au BufNewFile,BufRead *.cxx,*.c++,*.hh,*.hxx,*.hpp,*.ipp,*.moc,*.tcc,*.inl setf cpp
 if has("fname_case")
-  au BufNewFile,BufRead *.cxx,*.c++,*.C,*.H,*.hh,*.hxx,*.hpp,*.moc,*.tcc,*.inl setf cpp
-else
-  au BufNewFile,BufRead *.cxx,*.c++,*.hh,*.hxx,*.hpp,*.moc,*.tcc,*.inl setf cpp
+  au BufNewFile,BufRead *.C,*.H setf cpp
 endif
 
 " .h files can be C, Ch C++, ObjC or ObjC++.
@@ -364,9 +366,9 @@
 func! s:FTheader()
   if match(getline(1, min([line("$"), 200])), '^@\(interface\|end\|class\)') > -1
     setf objc
-  elseif exists("c_syntax_for_h")
+  elseif exists("g:c_syntax_for_h")
     setf c
-  elseif exists("ch_syntax_for_h")
+  elseif exists("g:ch_syntax_for_h")
     setf ch
   else
     setf cpp
@@ -669,8 +671,9 @@
 " Fetchmail RC file
 au BufNewFile,BufRead .fetchmailrc		setf fetchmail
 
-" FlexWiki
-au BufNewFile,BufRead *.wiki			setf flexwiki
+" FlexWiki - disabled, because it has side effects when a .wiki file
+" is not actually FlexWiki
+"au BufNewFile,BufRead *.wiki			setf flexwiki
 
 " Focus Executable
 au BufNewFile,BufRead *.fex,*.focexec		setf focexec
@@ -704,7 +707,7 @@
 au BufNewFile,BufRead *.mo,*.gdmo		setf gdmo
 
 " Gedcom
-au BufNewFile,BufRead *.ged			setf gedcom
+au BufNewFile,BufRead *.ged,lltxxxxx.txt	setf gedcom
 
 " Git
 autocmd BufNewFile,BufRead *.git/COMMIT_EDITMSG    setf gitcommit
@@ -896,7 +899,7 @@
 au BufNewFile,BufRead *.jj,*.jjt		setf javacc
 
 " JavaScript, ECMAScript
-au BufNewFile,BufRead *.js,*.javascript,*.es	setf javascript
+au BufNewFile,BufRead *.js,*.javascript,*.es,*.jsx	setf javascript
 
 " Java Server Pages
 au BufNewFile,BufRead *.jsp			setf jsp
@@ -1043,7 +1046,7 @@
   let n = 1
   while n < 10
     let line = getline(n)
-    if line =~ '^\s*\(#\s*\(include\|import\)\>\|/\*\)'
+    if line =~ '^\s*\(#\s*\(include\|import\)\>\|/\*\|//\)'
       setf objc
       return
     endif
@@ -1070,6 +1073,9 @@
 " Maya Extension Language
 au BufNewFile,BufRead *.mel			setf mel
 
+" Mercurial config (looks like generic config file)
+au BufNewFile,BufRead *.hgrc,*hgrc		setf cfg
+
 " Messages
 au BufNewFile,BufRead /var/log/messages,/var/log/messages.*[0-9]  setf messages
 
@@ -1260,7 +1266,7 @@
 else
   au BufNewFile,BufRead *.pl			call s:FTpl()
 endif
-au BufNewFile,BufRead *.plx			setf perl
+au BufNewFile,BufRead *.plx,*.al		setf perl
 
 func! s:FTpl()
   if exists("g:filetype_pl")
@@ -1552,6 +1558,7 @@
 
 " Remind
 au BufNewFile,BufRead .reminders*		call s:StarSetf('remind')
+au BufNewFile,BufRead *.remind,*.rem		setf remind
 
 " Resolv.conf
 au BufNewFile,BufRead resolv.conf		setf resolv
@@ -1685,7 +1692,15 @@
   if expand("<amatch>") =~ g:ft_ignore_pat
     return
   endif
-  if a:name =~ '\<ksh\>'
+  if a:name =~ '\<csh\>'
+    " Some .sh scripts contain #!/bin/csh.
+    call SetFileTypeShell("csh")
+    return
+  elseif a:name =~ '\<tcsh\>'
+    " Some .sh scripts contain #!/bin/tcsh.
+    call SetFileTypeShell("tcsh")
+    return
+  elseif a:name =~ '\<ksh\>'
     let b:is_kornshell = 1
     if exists("b:is_bash")
       unlet b:is_bash
@@ -1823,10 +1838,15 @@
 
 let s:ft_rules_udev_rules_pattern = '^\s*\cudev_rules\s*=\s*"\([^"]\{-1,}\)/*".*'
 func! s:FTRules()
-  if expand('<amatch>:p') =~ '^/etc/udev/\%(rules\.d/\)\=.*\.rules$'
+  let path = expand('<amatch>:p')
+  if path =~ '^/etc/udev/\%(rules\.d/\)\=.*\.rules$'
     setf udevrules
     return
   endif
+  if path =~ '^/etc/ufw/'
+    setf conf  " Better than hog
+    return
+  endif
   try
     let config_lines = readfile('/etc/udev/udev.conf')
   catch /^Vim\%((\a\+)\)\=:E484/
@@ -1909,6 +1929,9 @@
 " Sysctl
 au BufNewFile,BufRead /etc/sysctl.conf		setf sysctl
 
+" Synopsys Design Constraints
+au BufNewFile,BufRead *.sdc			setf sdc
+
 " Sudoers
 au BufNewFile,BufRead /etc/sudoers,sudoers.tmp	setf sudoers
 
@@ -1944,6 +1967,10 @@
 " TAK
 au BufNewFile,BufRead *.tak			setf tak
 
+" Task
+au BufRead,BufNewFile {pending,completed,undo}.data  setf taskdata
+au BufRead,BufNewFile *.task                    setf taskedit
+
 " Tcl (JACL too)
 au BufNewFile,BufRead *.tcl,*.tk,*.itcl,*.itk,*.jacl	setf tcl
 
@@ -2079,8 +2106,13 @@
 " Viminfo file
 au BufNewFile,BufRead .viminfo,_viminfo		setf viminfo
 
-" Virata Config Script File
-au BufRead,BufNewFile *.hw,*.module,*.pkg	setf virata
+" Virata Config Script File or Drupal module
+au BufRead,BufNewFile *.hw,*.module,*.pkg
+	\ if getline(1) =~ '<?php' |
+	\   setf php |
+	\ else |
+	\   setf virata |
+	\ endif
 
 " Visual Basic (also uses *.bas) or FORM
 au BufNewFile,BufRead *.frm			call s:FTVB("form")
@@ -2325,6 +2357,9 @@
 	\|  let b:fvwm_version = 2 | call s:StarSetf('fvwm')
 	\|endif
 
+" Gedcom
+au BufNewFile,BufRead /tmp/lltmp*		call s:StarSetf('gedcom')
+
 " GTK RC
 au BufNewFile,BufRead .gtkrc*,gtkrc*		call s:StarSetf('gtkrc')
 
diff -Nur runtime.patched/ftplugin/abaqus.vim runtime/ftplugin/abaqus.vim
--- runtime.patched/ftplugin/abaqus.vim	2004-07-06 11:28:08.000000000 -0700
+++ runtime/ftplugin/abaqus.vim	2008-11-06 08:04:48.000000000 -0800
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:     Abaqus finite element input file (www.abaqus.com)
 " Maintainer:   Carl Osterwisch <[email protected]>
-" Last Change:  2004 Jul 06
+" Last Change:  2008 Oct 5
 
 " Only do this when not done yet for this buffer
 if exists("b:did_ftplugin") | finish | endif
@@ -13,13 +13,6 @@
 let s:cpo_save = &cpoptions
 set cpoptions&vim
 
-" Folding
-if version >= 600
-    " Fold all lines that do not begin with *
-    setlocal foldexpr=getline(v:lnum)[0]!=\"\*\"
-    setlocal foldmethod=expr
-endif
-
 " Set the format of the include file specification for Abaqus
 " Used in :check gf ^wf [i and other commands
 setlocal include=\\<\\cINPUT\\s*=
@@ -42,29 +35,43 @@
 " Abaqus keywords and identifiers may include a - character
 setlocal iskeyword+=-
 
+let b:undo_ftplugin = "setlocal include< includeexpr< isfname<"
+    \ . " comments< commentstring< define< iskeyword<"
+
+if has("folding")
+    " Fold all lines that do not begin with *
+    setlocal foldexpr=getline(v:lnum)[0]!=\"\*\"
+    setlocal foldmethod=expr
+    let b:undo_ftplugin .= " foldexpr< foldmethod<"
+endif
+
 " Set the file browse filter (currently only supported under Win32 gui)
 if has("gui_win32") && !exists("b:browsefilter")
     let b:browsefilter = "Abaqus Input Files (*.inp *.inc)\t*.inp;*.inc\n" .
     \ "Abaqus Results (*.dat)\t*.dat\n" .
     \ "Abaqus Messages (*.pre *.msg *.sta)\t*.pre;*.msg;*.sta\n" .
     \ "All Files (*.*)\t*.*\n"
+    let b:undo_ftplugin .= "|unlet b:browsefilter"
 endif
 
-" Define keys used to move [count] sections backward or forward.
-" TODO: Make this do something intelligent in visual mode.
-nnoremap <silent> <buffer> [[ :call <SID>Abaqus_Jump('?^\*\a?')<CR>
-nnoremap <silent> <buffer> ]] :call <SID>Abaqus_Jump('/^\*\a/')<CR>
-function! <SID>Abaqus_Jump(motion) range
-    let s:count = v:count1
-    mark '
-    while s:count > 0
-        silent! execute a:motion
-        let s:count = s:count - 1
-    endwhile
-endfunction
+" Define patterns for the matchit plugin
+if exists("loaded_matchit") && !exists("b:match_words")
+    let b:match_ignorecase = 1
+    let b:match_words = 
+    \ '\*part:\*end\s*part,' .
+    \ '\*assembly:\*end\s*assembly,' .
+    \ '\*instance:\*end\s*instance,' .
+    \ '\*step:\*end\s*step'
+    let b:undo_ftplugin .= "|unlet b:match_ignorecase b:match_words"
+endif
+
+" Define keys used to move [count] keywords backward or forward.
+noremap <silent><buffer> [[ ?^\*\a<CR>:nohlsearch<CR>
+noremap <silent><buffer> ]] /^\*\a<CR>:nohlsearch<CR>
 
 " Define key to toggle commenting of the current line or range
-noremap <silent> <buffer> <m-c> :call <SID>Abaqus_ToggleComment()<CR>j
+noremap <silent><buffer> <LocalLeader><LocalLeader> 
+    \ :call <SID>Abaqus_ToggleComment()<CR>j
 function! <SID>Abaqus_ToggleComment() range
     if strpart(getline(a:firstline), 0, 2) == "**"
         " Un-comment all lines in range
@@ -75,5 +82,8 @@
     endif
 endfunction
 
+let b:undo_ftplugin .= "|unmap <buffer> [[|unmap <buffer> ]]"
+    \ . "|unmap <buffer> <LocalLeader><LocalLeader>"
+
 " Restore saved compatibility options
 let &cpoptions = s:cpo_save
diff -Nur runtime.patched/ftplugin/ant.vim runtime/ftplugin/ant.vim
--- runtime.patched/ftplugin/ant.vim	2004-06-07 07:32:41.000000000 -0700
+++ runtime/ftplugin/ant.vim	2009-01-28 08:23:42.000000000 -0800
@@ -1,8 +1,8 @@
 " Vim filetype plugin file
 " Language:	ant
-" Maintainer:	Dan Sharp <dwsharp at hotmail dot com>
-" Last Changed: 2003 Sep 29
-" URL:		http://mywebpage.netscape.com/sharppeople/vim/ftplugin
+" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Last Changed: 20 Jan 2009
+" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif
 
diff -Nur runtime.patched/ftplugin/aspvbs.vim runtime/ftplugin/aspvbs.vim
--- runtime.patched/ftplugin/aspvbs.vim	2004-06-28 08:27:17.000000000 -0700
+++ runtime/ftplugin/aspvbs.vim	2009-01-28 08:23:28.000000000 -0800
@@ -1,8 +1,8 @@
 " Vim filetype plugin file
 " Language:	aspvbs
-" Maintainer:	Dan Sharp <dwsharp at hotmail dot com>
-" Last Changed: 2004 Jun 28
-" URL:		http://mywebpage.netscape.com/sharppeople/vim/ftplugin
+" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Last Changed: 20 Jan 2009
+" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif
 
diff -Nur runtime.patched/ftplugin/changelog.vim runtime/ftplugin/changelog.vim
--- runtime.patched/ftplugin/changelog.vim	2007-05-21 11:25:11.000000000 -0700
+++ runtime/ftplugin/changelog.vim	2009-07-02 11:06:02.000000000 -0700
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         generic Changelog file
 " Maintainer:       Nikolai Weibull <[email protected]>
-" Latest Revision:  2007-05-21
+" Latest Revision:  2009-05-25
 " Variables:
 "   g:changelog_timeformat (deprecated: use g:changelog_dateformat instead) -
 "       description: the timeformat used in ChangeLog entries.
@@ -46,73 +46,78 @@
     endif
   endif
 
-  " Try to figure out a reasonable username of the form:
-  "   Full Name <user@host>.
-  if !exists('g:changelog_username')
-    if exists('$EMAIL') && $EMAIL != ''
-      let g:changelog_username = $EMAIL
-    elseif exists('$EMAIL_ADDRESS') && $EMAIL_ADDRESS != ''
-      " This is some Debian junk if I remember correctly.
-      let g:changelog_username = $EMAIL_ADDRESS
-    else
-      " Get the users login name.
-      let login = system('whoami')
-      if v:shell_error
-        let login = 'unknown'
-      else
-        let newline = stridx(login, "\n")
-        if newline != -1
-          let login = strpart(login, 0, newline)
-        endif
-      endif
+  function! s:username()
+    if exists('g:changelog_username')
+      return g:changelog_username
+    elseif $EMAIL != ""
+      return $EMAIL
+    elseif $EMAIL_ADDRESS != ""
+      return $EMAIL_ADDRESS
+    endif
+    
+    let login = s:login()
+    return printf('%s <%s@%s>', s:name(login), login, s:hostname())
+  endfunction
 
-      " Try to get the full name from gecos field in /etc/passwd.
-      if filereadable('/etc/passwd')
-        for line in readfile('/etc/passwd')
-          if line =~ '^' . login
-            let name = substitute(line,'^\%([^:]*:\)\{4}\([^:]*\):.*$','\1','')
-            " Only keep stuff before the first comma.
-            let comma = stridx(name, ',')
-            if comma != -1
-              let name = strpart(name, 0, comma)
-            endif
-            " And substitute & in the real name with the login of our user.
-            let amp = stridx(name, '&')
-            if amp != -1
-              let name = strpart(name, 0, amp) . toupper(login[0]) .
-                       \ strpart(login, 1) . strpart(name, amp + 1)
-            endif
-          endif
-        endfor
-      endif
+  function! s:login()
+    return s:trimmed_system_with_default('whoami', 'unknown')
+  endfunction
 
-      " If we haven't found a name, try to gather it from other places.
-      if !exists('name')
-        " Maybe the environment has something of interest.
-        if exists("$NAME")
-          let name = $NAME
-        else
-          " No? well, use the login name and capitalize first
-          " character.
-          let name = toupper(login[0]) . strpart(login, 1)
-        endif
+  function! s:trimmed_system_with_default(command, default)
+    return s:first_line(s:system_with_default(a:command, a:default))
+  endfunction
+
+  function! s:system_with_default(command, default)
+    let output = system(a:command)
+    if v:shell_error
+      return default
+    endif
+    return output
+  endfunction
+
+  function! s:first_line(string)
+    return substitute(a:string, '\n.*$', "", "")
+  endfunction
+
+  function! s:name(login)
+    for name in [s:gecos_name(a:login), $NAME, s:capitalize(a:login)]
+      if name != ""
+        return name
       endif
+    endfor
+  endfunction
 
-      " Get our hostname.
-      let hostname = system('hostname')
-      if v:shell_error
-        let hostname = 'localhost'
-      else
-        let newline = stridx(hostname, "\n")
-        if newline != -1
-          let hostname = strpart(hostname, 0, newline)
-        endif
+  function! s:gecos_name(login)
+    for line in s:try_reading_file('/etc/passwd')
+      if line =~ '^' . a:login . ':'
+        return substitute(s:passwd_field(line, 5), '&', s:capitalize(a:login), "")
       endif
+    endfor
+    return ""
+  endfunction
 
-      " And finally set the username.
-      let g:changelog_username = name . '  <' . login . '@' . hostname . '>'
+  function! s:try_reading_file(path)
+    try
+      return readfile(a:path)
+    endtry
+    return []
+  endfunction
+
+  function! s:passwd_field(line, field)
+    let fields = split(a:line, ':', 1)
+    if len(fields) < field
+      return ""
     endif
-  endif
+    return fields[field - 1]
+  endfunction
+
+  function! s:capitalize(word)
+    return toupper(a:word[0]) . strpart(a:word, 1)
+  endfunction
+
+  function! s:hostname()
+    return s:trimmed_system_with_default('hostname', 'localhost')
+  endfunction
 
   " Format used for new date entries.
   if !exists('g:changelog_new_date_format')
@@ -178,7 +183,7 @@
       " Ok, now we look for the end of the date entry, and add an entry.
       call cursor(nextnonblank(line('.') + 1), 1)
       if search(g:changelog_date_end_entry_search, 'W') > 0
-        let p = line('.') - 1
+	let p = (line('.') == line('$')) ? line('.') : line('.') - 1
       else
         let p = line('.')
       endif
@@ -217,7 +222,7 @@
   endfunction
 
   if exists(":NewChangelogEntry") != 2
-    map <buffer> <silent> <Leader>o <Esc>:call <SID>new_changelog_entry()<CR>
+    noremap <buffer> <silent> <Leader>o <Esc>:call <SID>new_changelog_entry()<CR>
     command! -nargs=0 NewChangelogEntry call s:new_changelog_entry()
   endif
 
@@ -236,14 +241,48 @@
   let &cpo = s:cpo_save
   unlet s:cpo_save
 else
+  let s:cpo_save = &cpo
+  set cpo&vim
+
   " Add the Changelog opening mapping
-  nmap <silent> <Leader>o :call <SID>open_changelog()<CR>
+  nnoremap <silent> <Leader>o :call <SID>open_changelog()<CR>
 
   function! s:open_changelog()
-    if !filereadable('ChangeLog')
+    let path = expand('%:p:h')
+    if exists('b:changelog_path')
+      let changelog = b:changelog_path
+    else
+      if exists('b:changelog_name')
+        let name = b:changelog_name
+      else
+        let name = 'ChangeLog'
+      endif
+      while isdirectory(path)
+        let changelog = path . '/' . name
+        if filereadable(changelog)
+          break
+        endif
+        let parent = substitute(path, '/\+[^/]*$', "", "")
+        if path == parent
+          break
+        endif
+        let path = parent
+      endwhile
+    endif
+    if !filereadable(changelog)
       return
     endif
-    let buf = bufnr('ChangeLog')
+
+    if exists('b:changelog_entry_prefix')
+      let prefix = call(b:changelog_entry_prefix, [])
+    else
+      let prefix = substitute(strpart(expand('%:p'), strlen(path)), '^/\+', "", "") . ':'
+    endif
+    if !empty(prefix)
+      let prefix = ' ' . prefix
+    endif
+
+    let buf = bufnr(changelog)
     if buf != -1
       if bufwinnr(buf) != -1
         execute bufwinnr(buf) . 'wincmd w'
@@ -251,9 +290,12 @@
         execute 'sbuffer' buf
       endif
     else
-      split ChangeLog
+      execute 'split' fnameescape(changelog)
     endif
 
-    call s:new_changelog_entry()
+    call s:new_changelog_entry(prefix)
   endfunction
+
+  let &cpo = s:cpo_save
+  unlet s:cpo_save
 endif
diff -Nur runtime.patched/ftplugin/config.vim runtime/ftplugin/config.vim
--- runtime.patched/ftplugin/config.vim	2004-07-09 11:26:18.000000000 -0700
+++ runtime/ftplugin/config.vim	2009-01-28 08:23:51.000000000 -0800
@@ -1,8 +1,8 @@
 " Vim filetype plugin file
 " Language:	config
-" Maintainer:	Dan Sharp <dwsharp at hotmail dot com>
-" Last Changed: 2004 Jul 08
-" URL:		http://mywebpage.netscape.com/sharppeople/vim/ftplugin
+" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Last Changed: 20 Jan 2009
+" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif
 
diff -Nur runtime.patched/ftplugin/csc.vim runtime/ftplugin/csc.vim
--- runtime.patched/ftplugin/csc.vim	2004-06-07 07:32:41.000000000 -0700
+++ runtime/ftplugin/csc.vim	2009-01-28 08:23:56.000000000 -0800
@@ -1,8 +1,8 @@
 " Vim filetype plugin file
 " Language:	csc
-" Maintainer:	Dan Sharp <dwsharp at hotmail dot com>
-" Last Changed: 2003 Sep 29
-" URL:		http://mywebpage.netscape.com/sharppeople/vim/ftplugin
+" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Last Changed: 20 Jan 2009
+" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif
 let b:did_ftplugin = 1
diff -Nur runtime.patched/ftplugin/csh.vim runtime/ftplugin/csh.vim
--- runtime.patched/ftplugin/csh.vim	2004-06-07 07:32:41.000000000 -0700
+++ runtime/ftplugin/csh.vim	2009-01-28 08:23:52.000000000 -0800
@@ -1,8 +1,8 @@
 " Vim filetype plugin file
 " Language:	csh
-" Maintainer:	Dan Sharp <dwsharp at hotmail dot com>
-" Last Changed: 2003 Sep 29
-" URL:		http://mywebpage.netscape.com/sharppeople/vim/ftplugin
+" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Last Changed: 20 Jan 2009
+" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif
 let b:did_ftplugin = 1
diff -Nur runtime.patched/ftplugin/dosbatch.vim runtime/ftplugin/dosbatch.vim
--- runtime.patched/ftplugin/dosbatch.vim	2004-07-06 09:39:15.000000000 -0700
+++ runtime/ftplugin/dosbatch.vim	2009-06-03 03:05:59.000000000 -0700
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:    MS-DOS .bat files
 " Maintainer:  Mike Williams <[email protected]>
-" Last Change: 5th February 2003
+" Last Change: 27th May 2009
 
 " Only do this when not done yet for this buffer
 if exists("b:did_ftplugin")
@@ -12,10 +12,10 @@
 let b:did_ftplugin = 1
 
 " BAT comment formatting
-setlocal comments=b:rem,b:@rem,b:REM,b:@REM,b:::
+setlocal comments=b:rem,b:@rem,b:REM,b:@REM,:::
 setlocal formatoptions-=t formatoptions+=rol
 
 " Define patterns for the browse file filter
 if has("gui_win32") && !exists("b:browsefilter")
-  let b:browsefilter = "DOS Batch Files (*.bat, *.btm, *.cmd)\t*.bat;*.btm;*.cmd\nAll Files (*.*)\t*.*\n"
+  let b:browsefilter = "DOS Batch Files (*.bat, *.cmd)\t*.bat;*.cmd\nAll Files (*.*)\t*.*\n"
 endif
diff -Nur runtime.patched/ftplugin/dtd.vim runtime/ftplugin/dtd.vim
--- runtime.patched/ftplugin/dtd.vim	2008-07-18 04:28:26.000000000 -0700
+++ runtime/ftplugin/dtd.vim	2009-01-28 08:23:52.000000000 -0800
@@ -1,8 +1,8 @@
 " Vim filetype plugin file
 " Language:	dtd
-" Maintainer:	Dan Sharp <dwsharp at hotmail dot com>
-" Last Changed: 30 Jun 2008
-" URL:		http://mywebpage.netscape.com/sharppeople/vim/ftplugin
+" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Last Changed: 20 Jan 2009
+" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif
 let b:did_ftplugin = 1
diff -Nur runtime.patched/ftplugin/html.vim runtime/ftplugin/html.vim
--- runtime.patched/ftplugin/html.vim	2008-07-18 04:29:43.000000000 -0700
+++ runtime/ftplugin/html.vim	2009-01-28 08:23:42.000000000 -0800
@@ -1,8 +1,8 @@
 " Vim filetype plugin file
 " Language:	html
-" Maintainer:	Dan Sharp <dwsharp at hotmail dot com>
-" Last Changed: 2007 Nov 20
-" URL:		http://mywebpage.netscape.com/sharppeople/vim/ftplugin
+" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Last Changed: 20 Jan 2009
+" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif
 let b:did_ftplugin = 1
diff -Nur runtime.patched/ftplugin/java.vim runtime/ftplugin/java.vim
--- runtime.patched/ftplugin/java.vim	2005-03-28 10:41:45.000000000 -0800
+++ runtime/ftplugin/java.vim	2009-01-28 08:23:52.000000000 -0800
@@ -1,8 +1,8 @@
 " Vim filetype plugin file
 " Language:	Java
-" Maintainer:	Dan Sharp <dwsharp at hotmail dot com>
-" Last Change:  2005 Mar 28
-" URL:		http://mywebpage.netscape.com/sharppeople/vim/ftplugin
+" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Last Change:  20 Jan 2009
+" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif
 let b:did_ftplugin = 1
diff -Nur runtime.patched/ftplugin/jsp.vim runtime/ftplugin/jsp.vim
--- runtime.patched/ftplugin/jsp.vim	2005-10-11 02:24:29.000000000 -0700
+++ runtime/ftplugin/jsp.vim	2009-01-28 08:23:56.000000000 -0800
@@ -1,8 +1,8 @@
 " Vim filetype plugin file
 " Language:	jsp
-" Maintainer:	Dan Sharp <dwsharp at hotmail dot com>
-" Last Changed: 2005 Oct 10
-" URL:		http://mywebpage.netscape.com/sharppeople/vim/ftplugin
+" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Last Changed: 20 Jan 2009
+" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif
 
diff -Nur runtime.patched/ftplugin/mail.vim runtime/ftplugin/mail.vim
--- runtime.patched/ftplugin/mail.vim	2007-04-30 13:27:38.000000000 -0700
+++ runtime/ftplugin/mail.vim	2009-06-13 05:39:46.000000000 -0700
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:	Mail
 " Maintainer:	Bram Moolenaar <[email protected]>
-" Last Change:	2007 Apr 30
+" Last Change:	2009 Jun 03
 
 " Only do this when not done yet for this buffer
 if exists("b:did_ftplugin")
@@ -23,7 +23,7 @@
 " Set 'formatoptions' to break text lines and keep the comment leader ">".
 setlocal fo+=tcql
 
-" Add mappings, unless the user didn't want this.
+" Add mappings, unless the user doesn't want this.
 if !exists("no_plugin_maps") && !exists("no_mail_maps")
   " Quote text by inserting "> "
   if !hasmapto('<Plug>MailQuote')
diff -Nur runtime.patched/ftplugin/man.vim runtime/ftplugin/man.vim
--- runtime.patched/ftplugin/man.vim	2007-11-30 11:52:58.000000000 -0800
+++ runtime/ftplugin/man.vim	2008-09-18 11:56:45.000000000 -0700
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:	man
-" Maintainer:	Nam SungHyun <[email protected]>
-" Last Change:	2007 Nov 30
+" Maintainer:	SungHyun Nam <[email protected]>
+" Last Change:	2008 Sep 17
 
 " To make the ":Man" command available before editing a manual page, source
 " this script from your startup vimrc file.
diff -Nur runtime.patched/ftplugin/pascal.vim runtime/ftplugin/pascal.vim
--- runtime.patched/ftplugin/pascal.vim	2005-09-06 01:24:59.000000000 -0700
+++ runtime/ftplugin/pascal.vim	2009-01-28 08:23:28.000000000 -0800
@@ -1,8 +1,8 @@
 " Vim filetype plugin file
 " Language:	pascal
-" Maintainer:	Dan Sharp <dwsharp at hotmail dot com>
-" Last Changed: 2005 Sep 05
-" URL:		http://mywebpage.netscape.com/sharppeople/vim/ftplugin
+" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Last Changed: 20 Jan 2009
+" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif
 let b:did_ftplugin = 1
diff -Nur runtime.patched/ftplugin/perl.vim runtime/ftplugin/perl.vim
--- runtime.patched/ftplugin/perl.vim	2008-07-18 04:29:05.000000000 -0700
+++ runtime/ftplugin/perl.vim	2009-01-28 08:23:42.000000000 -0800
@@ -1,8 +1,8 @@
 " Vim filetype plugin file
 " Language:	Perl
-" Maintainer:	Dan Sharp <dwsharp at hotmail dot com>
-" Last Change:  17 Jul 2008
-" URL:		http://mywebpage.netscape.com/sharppeople/vim/ftplugin
+" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Last Change:  20 Jan 2009
+" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif
 let b:did_ftplugin = 1
diff -Nur runtime.patched/ftplugin/php.vim runtime/ftplugin/php.vim
--- runtime.patched/ftplugin/php.vim	2007-11-11 13:23:33.000000000 -0800
+++ runtime/ftplugin/php.vim	2009-01-28 08:23:28.000000000 -0800
@@ -1,8 +1,8 @@
 " Vim filetype plugin file
 " Language:	php
-" Maintainer:	Dan Sharp <dwsharp at hotmail dot com>
-" Last Changed: 2007 Nov 10
-" URL:		http://mywebpage.netscape.com/sharppeople/vim/ftplugin
+" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Last Changed: 20 Jan 2009
+" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif
 
diff -Nur runtime.patched/ftplugin/sgml.vim runtime/ftplugin/sgml.vim
--- runtime.patched/ftplugin/sgml.vim	2004-06-07 07:32:41.000000000 -0700
+++ runtime/ftplugin/sgml.vim	2009-01-28 08:23:42.000000000 -0800
@@ -1,8 +1,8 @@
 " Vim filetype plugin file
 " Language:	sgml
-" Maintainer:	Dan Sharp <dwsharp at hotmail dot com>
-" Last Changed: 2003 Sep 30
-" URL:		http://mywebpage.netscape.com/sharppeople/vim/ftplugin
+" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Last Changed: 20 Jan 2009
+" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif
 
diff -Nur runtime.patched/ftplugin/sh.vim runtime/ftplugin/sh.vim
--- runtime.patched/ftplugin/sh.vim	2004-06-07 07:32:41.000000000 -0700
+++ runtime/ftplugin/sh.vim	2009-01-28 08:23:28.000000000 -0800
@@ -1,8 +1,8 @@
 " Vim filetype plugin file
 " Language:	sh
-" Maintainer:	Dan Sharp <dwsharp at hotmail dot com>
-" Last Changed: 2003 Sep 29
-" URL:		http://mywebpage.netscape.com/sharppeople/vim/ftplugin
+" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Last Changed: 20 Jan 2009
+" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif
 let b:did_ftplugin = 1
diff -Nur runtime.patched/ftplugin/sql.vim runtime/ftplugin/sql.vim
--- runtime.patched/ftplugin/sql.vim	2008-02-27 08:35:22.000000000 -0800
+++ runtime/ftplugin/sql.vim	2009-10-08 14:18:41.000000000 -0700
@@ -1,8 +1,8 @@
 " SQL filetype plugin file
 " Language:    SQL (Common for Oracle, Microsoft SQL Server, Sybase)
-" Version:     4.0
+" Version:     6.0
 " Maintainer:  David Fishburn <fishburn at ianywhere dot com>
-" Last Change: Wed 27 Feb 2008 04:35:21 PM Eastern Standard Time
+" Last Change: 2009 Aug 04
 " Download:    http://vim.sourceforge.net/script.php?script_id=454
 
 " For more details please use:
@@ -29,6 +29,27 @@
 "
 " To change the default dialect, add the following to your vimrc:
 "    let g:sql_type_default = 'sqlanywhere'
+"
+" This file also creates a command, SQLGetType, which allows you to 
+" determine what the current dialect is in use.
+"     :SQLGetType
+"
+" History
+"
+" Version 6.0
+" 
+" NF: Adds the command SQLGetType
+"
+" Version 5.0
+" 
+" NF: Adds the ability to choose the keys to control SQL completion, just add 
+"     the following to your .vimrc:
+"    let g:ftplugin_sql_omni_key       = '<C-C>'
+"    let g:ftplugin_sql_omni_key_right = '<Right>'
+"    let g:ftplugin_sql_omni_key_left  = '<Left>'
+"
+" BF: format-options - Auto-wrap comments using textwidth was turned off 
+"                      by mistake.
 
 
 " Only do this when not done yet for this buffer
@@ -44,7 +65,7 @@
 " c     Auto-wrap comments using textwidth, inserting the current comment
 "       leader automatically.
 setlocal formatoptions-=t
-setlocal formatoptions-=c
+setlocal formatoptions+=c
 
 " Functions/Commands to allow the user to change SQL syntax dialects
 " through the use of :SQLSetType <tab> for completion.
@@ -154,6 +175,20 @@
 
 endif
 
+" Functions/Commands to allow the user determine current SQL syntax dialect
+" This works with both Vim 6 and 7.
+
+if !exists("*SQL_GetType")
+    function SQL_GetType()
+        if exists('b:sql_type_override') 
+            echomsg "Current SQL dialect in use:".b:sql_type_override
+        else
+            echomsg "Current SQL dialect in use:".g:sql_type_default        
+        endif
+    endfunction
+    command! -nargs=0 SQLGetType :call SQL_GetType()
+endif
+
 if exists("b:sql_type_override")
     " echo 'sourcing buffer ftplugin/'.b:sql_type_override.'.vim'
     if globpath(&runtimepath, 'ftplugin/'.b:sql_type_override.'.vim') != ''
@@ -311,6 +346,19 @@
                 \ ',index,subscription,synchronization,view,variable'
 endif
 
+" Key to trigger SQL completion
+if !exists('g:ftplugin_sql_omni_key')
+    let g:ftplugin_sql_omni_key = '<C-C>'
+endif
+" Key to trigger drill into column list
+if !exists('g:ftplugin_sql_omni_key_right')
+    let g:ftplugin_sql_omni_key_right = '<Right>'
+endif
+" Key to trigger drill out of column list
+if !exists('g:ftplugin_sql_omni_key_left')
+    let g:ftplugin_sql_omni_key_left = '<Left>'
+endif
+
 " Replace all ,'s with bars, except ones with numbers after them.
 " This will most likely be a \{,1} string.
 let s:ftplugin_sql_objects = 
@@ -382,32 +430,32 @@
     if !exists('g:omni_sql_no_default_maps')
         " Static maps which use populate the completion list
         " using Vim's syntax highlighting rules
-        imap <buffer> <c-c>a <C-\><C-O>:call sqlcomplete#Map('syntax')<CR><C-X><C-O>
-        imap <buffer> <c-c>k <C-\><C-O>:call sqlcomplete#Map('sqlKeyword')<CR><C-X><C-O>
-        imap <buffer> <c-c>f <C-\><C-O>:call sqlcomplete#Map('sqlFunction')<CR><C-X><C-O>
-        imap <buffer> <c-c>o <C-\><C-O>:call sqlcomplete#Map('sqlOption')<CR><C-X><C-O>
-        imap <buffer> <c-c>T <C-\><C-O>:call sqlcomplete#Map('sqlType')<CR><C-X><C-O>
-        imap <buffer> <c-c>s <C-\><C-O>:call sqlcomplete#Map('sqlStatement')<CR><C-X><C-O>
+        exec 'imap <buffer> '.g:ftplugin_sql_omni_key.'a <C-\><C-O>:call sqlcomplete#Map("syntax")<CR><C-X><C-O>'
+        exec 'imap <buffer> '.g:ftplugin_sql_omni_key.'k <C-\><C-O>:call sqlcomplete#Map("sqlKeyword")<CR><C-X><C-O>'
+        exec 'imap <buffer> '.g:ftplugin_sql_omni_key.'f <C-\><C-O>:call sqlcomplete#Map("sqlFunction")<CR><C-X><C-O>'
+        exec 'imap <buffer> '.g:ftplugin_sql_omni_key.'o <C-\><C-O>:call sqlcomplete#Map("sqlOption")<CR><C-X><C-O>'
+        exec 'imap <buffer> '.g:ftplugin_sql_omni_key.'T <C-\><C-O>:call sqlcomplete#Map("sqlType")<CR><C-X><C-O>'
+        exec 'imap <buffer> '.g:ftplugin_sql_omni_key.'s <C-\><C-O>:call sqlcomplete#Map("sqlStatement")<CR><C-X><C-O>'
         " Dynamic maps which use populate the completion list
         " using the dbext.vim plugin
-        imap <buffer> <c-c>t <C-\><C-O>:call sqlcomplete#Map('table')<CR><C-X><C-O>
-        imap <buffer> <c-c>p <C-\><C-O>:call sqlcomplete#Map('procedure')<CR><C-X><C-O>
-        imap <buffer> <c-c>v <C-\><C-O>:call sqlcomplete#Map('view')<CR><C-X><C-O>
-        imap <buffer> <c-c>c <C-\><C-O>:call sqlcomplete#Map('column')<CR><C-X><C-O>
-        imap <buffer> <c-c>l <C-\><C-O>:call sqlcomplete#Map('column_csv')<CR><C-X><C-O>
+        exec 'imap <buffer> '.g:ftplugin_sql_omni_key.'t <C-\><C-O>:call sqlcomplete#Map("table")<CR><C-X><C-O>'
+        exec 'imap <buffer> '.g:ftplugin_sql_omni_key.'p <C-\><C-O>:call sqlcomplete#Map("procedure")<CR><C-X><C-O>'
+        exec 'imap <buffer> '.g:ftplugin_sql_omni_key.'v <C-\><C-O>:call sqlcomplete#Map("view")<CR><C-X><C-O>'
+        exec 'imap <buffer> '.g:ftplugin_sql_omni_key.'c <C-\><C-O>:call sqlcomplete#Map("column")<CR><C-X><C-O>'
+        exec 'imap <buffer> '.g:ftplugin_sql_omni_key.'l <C-\><C-O>:call sqlcomplete#Map("column_csv")<CR><C-X><C-O>'
         " The next 3 maps are only to be used while the completion window is
         " active due to the <CR> at the beginning of the map
-        imap <buffer> <c-c>L <C-Y><C-\><C-O>:call sqlcomplete#Map('column_csv')<CR><C-X><C-O>
+        exec 'imap <buffer> '.g:ftplugin_sql_omni_key.'L <C-Y><C-\><C-O>:call sqlcomplete#Map("column_csv")<CR><C-X><C-O>'
         " <C-Right> is not recognized on most Unix systems, so only create
         " these additional maps on the Windows platform.
         " If you would like to use these maps, choose a different key and make
         " the same map in your vimrc.
-        if has('win32')
-            imap <buffer> <c-right>  <C-R>=sqlcomplete#DrillIntoTable()<CR>
-            imap <buffer> <c-left>  <C-R>=sqlcomplete#DrillOutOfColumns()<CR>
-        endif
+        " if has('win32')
+        exec 'imap <buffer> '.g:ftplugin_sql_omni_key_right.' <C-R>=sqlcomplete#DrillIntoTable()<CR>'
+        exec 'imap <buffer> '.g:ftplugin_sql_omni_key_left.'  <C-R>=sqlcomplete#DrillOutOfColumns()<CR>'
+        " endif
         " Remove any cached items useful for schema changes
-        imap <buffer> <c-c>R <C-\><C-O>:call sqlcomplete#Map('resetCache')<CR><C-X><C-O>
+        exec 'imap <buffer> '.g:ftplugin_sql_omni_key.'R <C-\><C-O>:call sqlcomplete#Map("resetCache")<CR><C-X><C-O>'
     endif
 
     if b:sql_compl_savefunc != ""
diff -Nur runtime.patched/ftplugin/svg.vim runtime/ftplugin/svg.vim
--- runtime.patched/ftplugin/svg.vim	2004-06-07 07:32:41.000000000 -0700
+++ runtime/ftplugin/svg.vim	2009-01-28 08:23:52.000000000 -0800
@@ -1,8 +1,8 @@
 " Vim filetype plugin file
 " Language:	svg
-" Maintainer:	Dan Sharp <dwsharp at hotmail dot com>
-" Last Changed: 2003 Sep 29
-" URL:		http://mywebpage.netscape.com/sharppeople/vim/ftplugin
+" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Last Changed: 20 Jan 2009
+" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif
 
diff -Nur runtime.patched/ftplugin/tcl.vim runtime/ftplugin/tcl.vim
--- runtime.patched/ftplugin/tcl.vim	1969-12-31 16:00:00.000000000 -0800
+++ runtime/ftplugin/tcl.vim	2009-05-05 11:27:56.000000000 -0700
@@ -0,0 +1,36 @@
+" Vim filetype plugin file
+" Language:         Tcl
+" Maintainer:       Robert L Hicks <[email protected]>
+" Latest Revision:  2009-05-01
+
+if exists("b:did_ftplugin")
+  finish
+endif
+let b:did_ftplugin = 1
+
+" Make sure the continuation lines below do not cause problems in
+" compatibility mode.
+let s:cpo_save = &cpo
+set cpo-=C
+
+setlocal comments=:#
+setlocal commentstring=#%s
+setlocal formatoptions+=croql
+
+" Change the browse dialog on Windows to show mainly Tcl-related files
+if has("gui_win32")
+    let b:browsefilter = "Tcl Source Files (.tcl)\t*.tcl\n" .
+                \ "Tcl Test Files (.test)\t*.test\n" .
+                \ "All Files (*.*)\t*.*\n"
+endif
+
+"-----------------------------------------------------------------------------
+
+" Undo the stuff we changed.
+let b:undo_ftplugin = "setlocal fo< com< cms< inc< inex< def< isf< kp<" .
+	    \	      " | unlet! b:browsefilter"
+
+" Restore the saved compatibility options.
+let &cpo = s:cpo_save
+
+" vim: set et ts=4 sw=4 tw=78:
diff -Nur runtime.patched/ftplugin/tcsh.vim runtime/ftplugin/tcsh.vim
--- runtime.patched/ftplugin/tcsh.vim	2004-06-07 07:32:41.000000000 -0700
+++ runtime/ftplugin/tcsh.vim	2009-01-28 08:23:56.000000000 -0800
@@ -1,8 +1,8 @@
 " Vim filetype plugin file
 " Language:	tcsh
-" Maintainer:	Dan Sharp <dwsharp at hotmail dot com>
-" Last Changed: 2003 Sep 29
-" URL:		http://mywebpage.netscape.com/sharppeople/vim/ftplugin
+" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Last Changed: 20 Jan 2009
+" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif
 
diff -Nur runtime.patched/ftplugin/verilog.vim runtime/ftplugin/verilog.vim
--- runtime.patched/ftplugin/verilog.vim	2006-04-30 14:41:53.000000000 -0700
+++ runtime/ftplugin/verilog.vim	2008-09-06 05:20:21.000000000 -0700
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:	Verilog HDL
 " Maintainer:	Chih-Tsun Huang <[email protected]>
-" Last Change:	Mon Sep  5 11:05:54 CST 2005 and 2006 April 30
+" Last Change:	Wed Sep  3 15:24:49 CST 2008
 " URL:		http://larc.ee.nthu.edu.tw/~cthuang/vim/ftplugin/verilog.vim
 
 " Only do this when not done yet for this buffer
@@ -12,6 +12,10 @@
 " Don't load another plugin for this buffer
 let b:did_ftplugin = 1
 
+" Set 'cpoptions' to allow line continuations
+let s:cpo_save = &cpo
+set cpo&vim
+
 " Undo the plugin effect
 let b:undo_ftplugin = "setlocal fo< com< tw<"
     \ . "| unlet! b:browsefilter b:match_ignorecase b:match_words"
@@ -28,8 +32,6 @@
   setlocal tw=78
 endif
 
-set cpo-=C
-
 " Win32 can filter files in the browse dialog
 if has("gui_win32") && !exists("b:browsefilter")
   let b:browsefilter = "Verilog Source Files (*.v)\t*.v\n" .
@@ -49,3 +51,7 @@
     \ '\<task\>:\<endtask\>,' .
     \ '\<specify\>:\<endspecify\>'
 endif
+
+" Reset 'cpoptions' back to the user's setting
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff -Nur runtime.patched/ftplugin/vim.vim runtime/ftplugin/vim.vim
--- runtime.patched/ftplugin/vim.vim	2008-02-27 07:36:46.000000000 -0800
+++ runtime/ftplugin/vim.vim	2009-01-28 08:23:56.000000000 -0800
@@ -1,7 +1,7 @@
 " Vim filetype plugin
 " Language:	Vim
 " Maintainer:	Bram Moolenaar <[email protected]>
-" Last Change:	2008 Feb 27
+" Last Change:	2009 Jan 22
 
 " Only do this when not done yet for this buffer
 if exists("b:did_ftplugin")
@@ -11,16 +11,20 @@
 " Don't load another plugin for this buffer
 let b:did_ftplugin = 1
 
-let cpo_save = &cpo
+let s:cpo_save = &cpo
 set cpo-=C
 
-let b:undo_ftplugin = "setl fo< com< tw< commentstring<"
+let b:undo_ftplugin = "setl fo< isk< com< tw< commentstring<"
 	\ . "| unlet! b:match_ignorecase b:match_words b:match_skip"
 
 " Set 'formatoptions' to break comment lines but not other lines,
 " and insert the comment leader when hitting <CR> or using "o".
 setlocal fo-=t fo+=croql
 
+" To allow tag lookup via CTRL-] for autoload functions, '#' must be a
+" keyword character.  E.g., for netrw#Nread().
+setlocal isk+=#
+
 " Set 'comments' to format dashed lists in comments
 setlocal com=sO:\"\ -,mO:\"\ \ ,eO:\"\",:\"
 
@@ -53,8 +57,7 @@
   let b:match_ignorecase = 0
   let b:match_words =
 	\ '\<fu\%[nction]\>:\<retu\%[rn]\>:\<endf\%[unction]\>,' .
-	\ '\<wh\%[ile]\>:\<brea\%[k]\>:\<con\%[tinue]\>:\<endw\%[hile]\>,' .
-	\ '\<for\>:\<brea\%[k]\>:\<con\%[tinue]\>:\<endfo\%[r]\>,' .
+ 	\ '\<\(wh\%[ile]\|for\)\>:\<brea\%[k]\>:\<con\%[tinue]\>:\<end\(w\%[hile]\|fo\%[r]\)\>,' .
 	\ '\<if\>:\<el\%[seif]\>:\<en\%[dif]\>,' .
 	\ '\<try\>:\<cat\%[ch]\>:\<fina\%[lly]\>:\<endt\%[ry]\>,' .
 	\ '\<aug\%[roup]\s\+\%(END\>\)\@!\S:\<aug\%[roup]\s\+END\>,' .
@@ -64,7 +67,8 @@
 	\ synIDattr(synID(line("."),col("."),1),"name") =~? "comment\\|string"'
 endif
 
-let &cpo = cpo_save
+let &cpo = s:cpo_save
+unlet s:cpo_save
 
 " removed this, because 'cpoptions' is a global option.
 " setlocal cpo+=M		" makes \%( match \)
diff -Nur runtime.patched/ftplugin/xhtml.vim runtime/ftplugin/xhtml.vim
--- runtime.patched/ftplugin/xhtml.vim	2005-09-13 06:25:56.000000000 -0700
+++ runtime/ftplugin/xhtml.vim	2009-01-28 08:23:52.000000000 -0800
@@ -1,8 +1,8 @@
 " Vim filetype plugin file
 " Language:	xhtml
-" Maintainer:	Dan Sharp <dwsharp at hotmail dot com>
-" Last Changed: 2004 Jul 08
-" URL:		http://mywebpage.netscape.com/sharppeople/vim/ftplugin
+" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Last Changed: 20 Jan 2009
+" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif
 
diff -Nur runtime.patched/ftplugin/xml.vim runtime/ftplugin/xml.vim
--- runtime.patched/ftplugin/xml.vim	2008-07-18 04:27:49.000000000 -0700
+++ runtime/ftplugin/xml.vim	2009-01-28 08:23:42.000000000 -0800
@@ -1,8 +1,8 @@
 " Vim filetype plugin file
 " Language:	xml
-" Maintainer:	Dan Sharp <dwsharp at hotmail dot com>
-" Last Changed: 30 Jun 2008
-" URL:		http://mywebpage.netscape.com/sharppeople/vim/ftplugin
+" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Last Changed: 20 Jan 2009
+" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif
 let b:did_ftplugin = 1
diff -Nur runtime.patched/ftplugin/xsd.vim runtime/ftplugin/xsd.vim
--- runtime.patched/ftplugin/xsd.vim	2004-06-07 07:32:41.000000000 -0700
+++ runtime/ftplugin/xsd.vim	2009-01-28 08:23:28.000000000 -0800
@@ -1,8 +1,8 @@
 " Vim filetype plugin file
 " Language:	xsd
-" Maintainer:	Dan Sharp <dwsharp at hotmail dot com>
-" Last Changed: 2003 Sep 29
-" URL:		http://mywebpage.netscape.com/sharppeople/vim/ftplugin
+" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Last Changed: 20 Jan 2009
+" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif
 
diff -Nur runtime.patched/ftplugin/xslt.vim runtime/ftplugin/xslt.vim
--- runtime.patched/ftplugin/xslt.vim	2004-07-09 11:27:53.000000000 -0700
+++ runtime/ftplugin/xslt.vim	2009-01-28 08:23:56.000000000 -0800
@@ -1,8 +1,8 @@
 " Vim filetype plugin file
 " Language:	xslt
-" Maintainer:	Dan Sharp <dwsharp at hotmail dot com>
-" Last Changed: 2004 Jul 08
-" URL:		http://mywebpage.netscape.com/sharppeople/vim/ftplugin
+" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Last Changed: 20 Jan 2009
+" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif
 
diff -Nur runtime.patched/indent/cpp.vim runtime/indent/cpp.vim
--- runtime.patched/indent/cpp.vim	2004-06-07 07:32:33.000000000 -0700
+++ runtime/indent/cpp.vim	2008-12-01 12:32:47.000000000 -0800
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:	C++
 " Maintainer:	Bram Moolenaar <[email protected]>
-" Last Change:	2001 Jun 12
+" Last Change:	2008 Nov 29
 
 " Only load this indent file when no other was loaded.
 if exists("b:did_indent")
@@ -11,3 +11,5 @@
 
 " C++ indenting is built-in, thus this is very simple
 setlocal cindent
+
+let b:undo_indent = "setl cin<"
diff -Nur runtime.patched/indent/cuda.vim runtime/indent/cuda.vim
--- runtime.patched/indent/cuda.vim	1969-12-31 16:00:00.000000000 -0800
+++ runtime/indent/cuda.vim	2008-12-01 12:32:47.000000000 -0800
@@ -0,0 +1,15 @@
+" Vim indent file
+" Language:	CUDA
+" Maintainer:	Bram Moolenaar <[email protected]>
+" Last Change:	2008 Nov 29
+
+" Only load this indent file when no other was loaded.
+if exists("b:did_indent")
+   finish
+endif
+let b:did_indent = 1
+
+" It's just like C indenting
+setlocal cindent
+
+let b:undo_indent = "setl cin<"
diff -Nur runtime.patched/indent/mail.vim runtime/indent/mail.vim
--- runtime.patched/indent/mail.vim	1969-12-31 16:00:00.000000000 -0800
+++ runtime/indent/mail.vim	2009-06-13 05:40:02.000000000 -0700
@@ -0,0 +1,13 @@
+" Vim indent file
+" Language:	Mail
+" Maintainer:	Bram Moolenaar
+" Last Change:	2009 Jun 03
+
+if exists("b:did_indent")
+  finish
+endif
+let b:did_indent = 1
+
+" What works best is auto-indenting, disable other indenting.
+" For formatting see the ftplugin.
+setlocal autoindent nosmartindent nocindent indentexpr=
diff -Nur runtime.patched/indent/php.vim runtime/indent/php.vim
--- runtime.patched/indent/php.vim	2008-06-25 14:10:32.000000000 -0700
+++ runtime/indent/php.vim	2009-01-28 08:23:55.000000000 -0800
@@ -2,17 +2,10 @@
 " Language:	PHP
 " Author:	John Wellesz <John.wellesz (AT) teaser (DOT) fr>
 " URL:		http://www.2072productions.com/vim/indent/php.vim
-" Last Change:  2008 June 7th
+" Last Change:  2008 November 22nd
 " Newsletter:   http://www.2072productions.com/?to=php-indent-for-vim-newsletter.php
-" Version:	1.28
+" Version:	1.30
 "
-"  If you find a bug, please e-mail me at John.wellesz (AT) teaser (DOT) fr
-"  with an example of code that breaks the algorithm.
-"
-"  ---> The change log and all the comments have been removed from this file.
-"
-"  For a complete change log and fully commented code, download the script on
-"  2072productions.com at the URI provided above.
 "
 "  If you find a bug, please e-mail me at John.wellesz (AT) teaser (DOT) fr
 "  with an example of code that breaks the algorithm.
@@ -24,7 +17,7 @@
 " NOTE: This script must be used with PHP syntax ON and with the php syntax
 "	script by Lutz Eymers (http://www.isp.de/data/php.vim ) or with the
 "	script by Peter Hodge (http://www.vim.org/scripts/script.php?script_id=1571 )
-"	the later is bunbdled by default with vim 7.
+"	the later is bunbdled by default with Vim 7.
 "
 "
 "	In the case you have syntax errors in your script such as HereDoc end
@@ -33,50 +26,19 @@
 "	they are followed by a ';').
 "
 "
-" NOTE: If you are editing file in Unix file format and that (by accident)
-" there are '\r' before new lines, this script won't be able to proceed
-" correctly and will make many mistakes because it won't be able to match
-" '\s*$' correctly.
-" So you have to remove those useless characters first with a command like:
-"
-" :%s /\r$//g
-"
-" or simply 'let' the option PHP_removeCRwhenUnix to 1 and the script will
-" silently remove them when VIM load this script (at each bufread).
-"
-"
-" Options: PHP_autoformatcomment = 0 to not enable autoformating of comment by
-"		    default, if set to 0, this script will let the 'formatoptions' setting intact.
-"
-" Options: PHP_default_indenting = # of sw (default is 0), # of sw will be
-"		   added to the indent of each line of PHP code.
-"
-" Options: PHP_removeCRwhenUnix = 1 to make the script automatically remove CR
-"		   at end of lines (by default this option is unset), NOTE that you
-"		   MUST remove CR when the fileformat is UNIX else the indentation
-"		   won't be correct!
-"
-" Options: PHP_BracesAtCodeLevel = 1 to indent the '{' and '}' at the same
-"		   level than the code they contain.
-"		   Exemple:
-"			Instead of:
-"				if ($foo)
-"				{
-"					foo();
-"				}
-"
-"			You will write:
-"				if ($foo)
-"					{
-"					foo();
-"					}
+" NOTE: If you are editing files in Unix file format and that (by accident)
+"	there are '\r' before new lines, this script won't be able to proceed
+"	correctly and will make many mistakes because it won't be able to match
+"	'\s*$' correctly.
+"	So you have to remove those useless characters first with a command like:
 "
-"			NOTE: The script will be a bit slower if you use this option because
-"			some optimizations won't be available.
+"	:%s /\r$//g
 "
-" Options: PHP_vintage_case_default_indent = 1 (defaults to 0) to add a meaningless indent
-"		    befaore 'case:' and 'default":' statement in switch block
+"	or simply 'let' the option PHP_removeCRwhenUnix to 1 and the script will
+"	silently remove them when VIM load this script (at each bufread).
 "
+" Options: See :help php-indent for available options.
+
 
 if exists("b:did_indent")
     finish
@@ -145,6 +107,7 @@
 endif
 
 if exists("*GetPhpIndent")
+    call ResetPhpOptions()
     finish " XXX
 endif
 
@@ -317,14 +280,13 @@
 let s:notPhpHereDoc = '\%(break\|return\|continue\|exit\|else\)'
 let s:blockstart = '\%(\%(\%(}\s*\)\=else\%(\s\+\)\=\)\=if\>\|else\>\|while\>\|switch\>\|for\%(each\)\=\>\|declare\>\|class\>\|interface\>\|abstract\>\|try\>\|catch\>\)'
 
-let s:autorestoptions = 0
-if ! s:autorestoptions
-    au BufWinEnter,Syntax	*.php,*.php3,*.php4,*.php5	call ResetOptions()
-    let s:autorestoptions = 1
+let s:autoresetoptions = 0
+if ! s:autoresetoptions
+    let s:autoresetoptions = 1
 endif
 
-function! ResetOptions()
-    if ! b:optionsset
+function! ResetPhpOptions()
+    if ! b:optionsset && &filetype == "php" 
 	if b:PHP_autoformatcomment
 
 	    setlocal comments=s1:/*,mb:*,ex:*/,://,:#
@@ -341,6 +303,8 @@
     endif
 endfunc
 
+call ResetPhpOptions()
+
 function! GetPhpIndent()
 
     let b:GetLastRealCodeLNum_ADD = 0
@@ -360,7 +324,7 @@
     if !b:PHP_indentinghuge && b:PHP_lastindented > b:PHP_indentbeforelast
 	if b:PHP_indentbeforelast
 	    let b:PHP_indentinghuge = 1
-	    echom 'Large indenting detected, speed optimizations engaged (v1.28)'
+	    echom 'Large indenting detected, speed optimizations engaged (v1.30)'
 	endif
 	let b:PHP_indentbeforelast = b:PHP_lastindented
     endif
@@ -693,6 +657,7 @@
 
     if !LastLineClosed
 
+
 	if last_line =~# '[{(]'.endline || last_line =~? '\h\w*\s*(.*,$' && pline !~ '[,(]'.endline
 
 	    if !b:PHP_BracesAtCodeLevel || last_line !~# '^\s*{'
@@ -715,11 +680,11 @@
 	elseif last_line =~ '^\s*'.s:blockstart
 	    let ind = ind + &sw
 
-	elseif last_line =~# defaultORcase
+	elseif last_line =~# defaultORcase && cline !~# defaultORcase
 	    let ind = ind + &sw
 
 
-	elseif pline =~ '\%(;\%(\s*?>\)\=\|<<<''\=\a\w*''\=$\|^\s*}\|{\)'.endline . '\|' . defaultORcase
+	elseif pline =~ '\%(;\%(\s*?>\)\=\|<<<''\=\a\w*''\=$\|^\s*}\|{\)'.endline . '\|' . defaultORcase && cline !~# defaultORcase
 
 	    let ind = ind + &sw
 	endif
diff -Nur runtime.patched/indent/xml.vim runtime/indent/xml.vim
--- runtime.patched/indent/xml.vim	2004-06-07 07:32:33.000000000 -0700
+++ runtime/indent/xml.vim	2009-06-03 03:05:10.000000000 -0700
@@ -1,10 +1,11 @@
 " Language:	xml
 " Maintainer:	Johannes Zellner <[email protected]>
-" Last Change:	Tue, 27 Apr 2004 14:54:59 CEST
+" Last Change:	2009-05-26 00:17:25
 " Notes:	1) does not indent pure non-xml code (e.g. embedded scripts)
 "		2) will be confused by unbalanced tags in comments
 "		or CDATA sections.
-" TODO:		implement pre-like tags, see xml_indent_open / xml_indent_close
+"		2009-05-26 patch by Nikolai Weibull
+" TODO: 	implement pre-like tags, see xml_indent_open / xml_indent_close
 
 " Only load this indent file when no other was loaded.
 if exists("b:did_indent")
@@ -46,6 +47,9 @@
 	if '' != syn1 && syn1 !~ 'xml' && '' != syn2 && syn2 !~ 'xml'
 	    " don't indent pure non-xml code
 	    return 0
+	elseif syn1 =~ '^xmlComment' && syn2 =~ '^xmlComment'
+	    " indent comments specially
+	    return -1
 	endif
     endif
     return 1
@@ -74,8 +78,12 @@
     endif
 
     if a:use_syntax_check
-	if 0 == <SID>XmlIndentSynCheck(lnum) || 0 == <SID>XmlIndentSynCheck(a:lnum)
+	let check_lnum = <SID>XmlIndentSynCheck(lnum)
+	let check_alnum = <SID>XmlIndentSynCheck(a:lnum)
+	if 0 == check_lnum || 0 == check_alnum
 	    return indent(a:lnum)
+	elseif -1 == check_lnum || -1 == check_alnum
+	    return -1
 	endif
     endif
 
diff -Nur runtime.patched/keymap/dvorak.vim runtime/keymap/dvorak.vim
--- runtime.patched/keymap/dvorak.vim	1969-12-31 16:00:00.000000000 -0800
+++ runtime/keymap/dvorak.vim	2009-07-26 04:42:45.000000000 -0700
@@ -0,0 +1,82 @@
+" Maintainer:   Ashish SHUKLA <[email protected]>
+" Last Changed: 2009 Jul 04
+"
+" All characters are ASCII, conversion to another encoding (e.g., UTF-8)
+" should work.
+
+let b:keymap_name = "en-dv"
+
+loadkeymap
+q	'
+w	,
+e	.
+r	p
+t	y
+y	f
+u	g
+i	c
+o	r
+p	l
+[	/
+]	=
+\\	\\
+a	a
+s	o
+d	e
+f	u
+g	i
+h	d
+j	h
+k	t
+l	n
+;	s
+'	-
+z	;
+x	q
+c	j
+v	k
+b	x
+n	b
+m	m
+,	w
+.	v
+/	z
+Z	:
+X	Q
+C	J
+V	K
+B	X
+N	B
+M	M
+<	W
+>	V
+?	Z
+A	A
+S	O
+D	E
+F	U
+G	I
+H	D
+J	H
+K	T
+L	N
+:	S
+\"	_
+Q	"
+W	<
+E	>
+R	P
+T	Y
+Y	F
+U	G
+I	C
+O	R
+P	L
+{	?
+}	+
+|	|
+-	[
+_	{
+=	]
++	}
+
diff -Nur runtime.patched/lang/menu_es_es.latin1.vim runtime/lang/menu_es_es.latin1.vim
--- runtime.patched/lang/menu_es_es.latin1.vim	2005-12-01 08:21:29.000000000 -0800
+++ runtime/lang/menu_es_es.latin1.vim	2009-09-18 03:27:34.000000000 -0700
@@ -1,7 +1,8 @@
 " Menu Translations:	Espa�ol
-" Maintainer:		Alejandro L�pez-Valencia <[email protected]>
-" Version:		6.4.p0-1
-" Last Change:		2005 Dec 01
+" Previous translator:	Alejandro L�pez-Valencia <[email protected]>
+" Last translator:	Omar Campagne Polaino <[email protected]>
+" Version:		7.2.245
+" Last Change:		2009 Sep 03
 "
 
 " Quit when menu translations have already been done.
@@ -28,13 +29,14 @@
 menutrans Co&pying		&T�rminos\ de\ Licencia
 menutrans Sponsor/Register	Benefactor/Reg�strese
 menutrans &Version		&Versi�n\ e\ \informaci�n\ de\ configuraci�n
-menutrans &About		&Acerca\ de\ Vim.
+menutrans &About		&Acerca\ de\ Vim
 
 " File menu
 menutrans &File				&Archivo
 menutrans &Open\.\.\.<Tab>:e		&Abrir\.\.\.<Tab>:e
 menutrans Sp&lit-Open\.\.\.<Tab>:sp	A&brir\ en\ otra\ ventana\.\.\.<Tab>:sp
 menutrans &New<Tab>:enew		&Nuevo<Tab>:enew
+menutrans Open\ Tab\.\.\.<Tab>:tabnew	Abrir\ pes&ta�a\.\.\.<Tab>:tabnew
 menutrans &Close<Tab>:close		&Cerrar<Tab>:close
 menutrans &Save<Tab>:w			&Guardar<Tab>:w
 menutrans Save\ &As\.\.\.<Tab>:sav	Guardar\ &como\.\.\.<Tab>:sav
@@ -65,11 +67,12 @@
 menutrans Find\ and\ Rep&lace		Buscar\ y\ R&eemplazar
 menutrans Find\ and\ Rep&lace<Tab>:s	Buscar\ y\ R&eemplazar<Tab>:s
 menutrans Settings\ &Window		&Ventana\ de\ opciones
+menutrans Startup\ &Settings		Opciones\ de\ arranque	 
 
 " Edit/Global Settings
 menutrans &Global\ Settings		Opciones\ &globales
 
-menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls!	Activar/Desactivar\ &realzado\ de\ sintaxis<Tab>:set\ hls!
+menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls!	Activar/Desactivar\ &resaltado\ de\ sintaxis<Tab>:set\ hls!
 menutrans Toggle\ &Ignore-case<Tab>:set\ ic!		Activar/Desactivar\ &ignorar\ may�sculas\ y\ min�sculas<Tab>:set\ ic!
 menutrans Toggle\ &Showmatch<Tab>:set\ sm!		Activar/Desactivar\ &mostrar\ coincidencias<Tab>:set\ sm!
 
@@ -95,11 +98,11 @@
 menutrans Toggle\ &Left\ Scrollbar	Ocultar/Mostrar\ barra\ de\ desplazamiento\ i&zquierda
 menutrans Toggle\ &Right\ Scrollbar	Ocultar/Mostrar\ barra\ de\ desplazamiento\ &derecha
 
-let g:menutrans_path_dialog = "Introduzca la ruta de b�squeda para los ficheros.\nSepare los nombres de los directorios con una coma."
-let g:menutrans_tags_dialog = "Introduzca los nombres de los fichero de tags.\nSepare los nombres con una coma."
+let g:menutrans_path_dialog = "Introduzca la ruta de b�squeda para los archivos.\nSepare los nombres de los directorios con una coma."
+let g:menutrans_tags_dialog = "Introduzca los nombres de los archivos de tags.\nSepare los nombres con una coma."
 
 " Edit/File Settings
-menutrans F&ile\ Settings		Opciones\ del\ &fichero
+menutrans F&ile\ Settings		Opciones\ del\ &archivo
 
 " Boolean options
 menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!	Activar/Desactivar\ &numeraci�n\ de\ l�neas<Tab>:set\ nu!
@@ -118,8 +121,8 @@
 menutrans Te&xt\ Width\.\.\.		Anchura\ del\ te&xto\.\.\.
 let g:menutrans_textwidth_dialog = "Introduzca el nuevo ancho del texto (0 para desactivar el quiebre de l�nea): "
 
-menutrans &File\ Format\.\.\.		&Formato\ del\ fichero\.\.\.
-let g:menutrans_fileformat_dialog = "Seleccione el formato para escribir el fichero"
+menutrans &File\ Format\.\.\.		&Formato\ del\ archivo\.\.\.
+let g:menutrans_fileformat_dialog = "Seleccione el formato para escribir el archivo"
 
 menutrans C&olor\ Scheme		Esquema\ de\ c&olores
 menutrans blue		azul
@@ -154,7 +157,7 @@
 menutrans &Tools			&Herramientas
 menutrans &Jump\ to\ this\ tag<Tab>g^]	&Saltar\ a\ este\ etiqueta<Tab>g^]
 menutrans Jump\ &back<Tab>^T		Saltar\ &atr�s<Tab>^T
-menutrans Build\ &Tags\ File		Crear\ fichero\ de\ &etiquetas\
+menutrans Build\ &Tags\ File		Crear\ archivo\ de\ &etiquetas\
 menutrans &Diff				Modo\ de\ &diferencias
 menutrans &Folding			&Plegado
 menutrans &Make<Tab>:make		Ejecutar\ �&Make�<Tab>:make
@@ -169,6 +172,24 @@
 menutrans &Convert\ to\ HEX<Tab>:%!xxd	Convertir\ a\ formato\ &hexadecimal<Tab>:%!xxd
 menutrans Conve&rt\ back<Tab>:%!xxd\ -r	&Convertir\ al\ formato\ original<Tab>:%!xxd\ -r
 
+" Tools.Spelling Menu
+menutrans &Spelling				Correcci�n\ ortogr�fica
+menutrans &Spell\ Check\ On			&Activar\ correcci�n\ ortogr�fica
+menutrans Spell\ Check\ &Off			&Desactivar\ correcci�n\ ortogr�fica
+menutrans To\ &Next\ error<Tab>]s		&Siguiente\ error<Tab>]s
+menutrans To\ &Previous\ error<Tab>[s  		Error\ &precedente<Tab>[s 
+menutrans Suggest\ &Corrections<Tab>z=		Sugerir\ &correcci�n<Tab>z=
+menutrans &Repeat\ correction<Tab>:spellrepall	&Repetir\ correcci�n<Tab>:spellrepall
+an 40.335.205 &Tools.&Spelling.Castellano\ (es)	:set spl=es spell<CR>
+menutrans Set\ language\ to\ "en"		Ingl�s
+menutrans Set\ language\ to\ "en_au"		Ingl�s\ (en_au)
+menutrans Set\ language\ to\ "en_ca"		Ingl�s\ (en_ca)
+menutrans Set\ language\ to\ "en_gb"		Ingl�s\ (en_gb)
+menutrans Set\ language\ to\ "en_nz"		Ingl�s\ (en_nz)
+menutrans Set\ language\ to\ "en_us"		Ingl�s\ (en_us)
+
+menutrans &Find\ More\ Languages		&Buscar\ otras\ lenguas
+
 " Tools.Fold Menu
 menutrans &Enable/Disable\ folds<Tab>zi		&Activar/Desactivar\ pliegues<Tab>zi
 menutrans &View\ Cursor\ Line<Tab>zv		&Ver\ l�nea\ del\ cursor<Tab>zv
@@ -182,7 +203,7 @@
 " create and delete folds
 menutrans Create\ &Fold<Tab>zf			Crear\ &pliegue<Tab>zf
 menutrans &Delete\ Fold<Tab>zd			&Suprimir\ pliegue<Tab>zd
-menutrans Delete\ &All\ Folds<Tab>zD		Suprimir\ &todos\ los\ pligues<Tab>zD
+menutrans Delete\ &All\ Folds<Tab>zD		Suprimir\ &todos\ los\ pliegues<Tab>zD
 " moving around in folds
 menutrans Fold\ col&umn\ width			A&nchura\ de\ columna\ del\ pliegue
 
@@ -203,7 +224,7 @@
 menutrans &Alternate		&Alternar
 menutrans &Next			Si&guiente
 menutrans &Previous		&Previo
-let g:menutrans_no_file = "[Sin fichero]"
+let g:menutrans_no_file = "[Sin archivo]"
 
 " Window menu
 menutrans &Window			&Ventana
@@ -211,7 +232,7 @@
 menutrans S&plit<Tab>^Ws		&Dividir\ la\ ventana<Tab>^Ws
 menutrans Sp&lit\ To\ #<Tab>^W^^	D&ividir\ en\ el\ marcador\ (#)<Tab>^W^^
 menutrans Split\ &Vertically<Tab>^Wv    Dividir\ &verticalmente<Tab>^Wv
-menutrans Split\ File\ E&xplorer	&Abrir\ el\ �Explorador\ de\ ficheros�
+menutrans Split\ File\ E&xplorer	&Abrir\ el\ �Explorador\ de\ archivos�
 menutrans &Close<Tab>^Wc		&Cerrar\ esta\ ventana<Tab>^Wc
 menutrans Close\ &Other(s)<Tab>^Wo	Cerrar\ &otra(s)\ ventana(s)<Tab>^Wo
 menutrans Move\ &To			Mov&er\ a
@@ -245,9 +266,9 @@
     delfun Do_toolbar_tmenu
   endif
   fun Do_toolbar_tmenu()
-    tmenu ToolBar.Open		Abrir fichero
-    tmenu ToolBar.Save		Guardar fichero
-    tmenu ToolBar.SaveAll	Guardar todos los ficheros
+    tmenu ToolBar.Open		Abrir archivo
+    tmenu ToolBar.Save		Guardar archivo
+    tmenu ToolBar.SaveAll	Guardar todos los archivos
     tmenu ToolBar.Print		Imprimir
     tmenu ToolBar.Undo		Deshacer
     tmenu ToolBar.Redo		Rehacer
@@ -273,7 +294,7 @@
     tmenu ToolBar.RunScript	Ejecutar un archivo de �rdenes
     tmenu ToolBar.Make		Ejecutar �Make�
     tmenu ToolBar.Shell		Abrir un int�rprete de comandos
-    tmenu ToolBar.RunCtags	Generar un fichero de etiquetas
+    tmenu ToolBar.RunCtags	Generar un archivo de etiquetas
     tmenu ToolBar.TagJump	Saltar a una etiqueta
     tmenu ToolBar.Help		Ayuda
     tmenu ToolBar.FindHelp	Buscar en la ayuda...
@@ -282,15 +303,15 @@
 
 " Syntax menu
 menutrans &Syntax			&Sintaxis
-menutrans &Show\ filetypes\ in\ menu	&Mostrar\ listas\ de\ �tipo\ de\ fichero�
+menutrans &Show\ filetypes\ in\ menu	&Mostrar\ listas\ de\ �tipo\ de\ archivo�
 menutrans Set\ '&syntax'\ only		Activar\ s�lo\ sintaxis
-menutrans Set\ '&filetype'\ too		Activar\ tambi�n\ �tipo\ de\ fichero�
+menutrans Set\ '&filetype'\ too		Activar\ tambi�n\ �tipo\ de\ archivo�
 menutrans &Off				&Desactivar\ sintaxis
-menutrans &Manual			sintaxis\ &manual
-menutrans A&utomatic			sintaxis\ a&utom�tica
-menutrans on/off\ for\ &This\ file	Activar/Desactivar\ en\ es&te\ fichero
+menutrans &Manual			Sintaxis\ &manual
+menutrans A&utomatic			Sintaxis\ a&utom�tica
+menutrans on/off\ for\ &This\ file	Activar/Desactivar\ en\ es&te\ archivo
 menutrans Co&lor\ test			&Prueba\ de\ colores
-menutrans &Highlight\ test		Prueba\ de\ &realzado
+menutrans &Highlight\ test		Prueba\ de\ &resaltado
 menutrans &Convert\ to\ HTML		&Convertir\ a\ HTML
 
 " Find Help dialog text
diff -Nur runtime.patched/lang/menu_ko_kr.euckr.vim runtime/lang/menu_ko_kr.euckr.vim
--- runtime.patched/lang/menu_ko_kr.euckr.vim	2005-03-20 09:44:04.000000000 -0800
+++ runtime/lang/menu_ko_kr.euckr.vim	2008-09-18 11:56:27.000000000 -0700
@@ -1,6 +1,6 @@
 " Menu Translations:	Korean
-" Maintainer:		Nam SungHyun <[email protected]>
-" Last Change:		2003 Apr 25
+" Maintainer:		SungHyun Nam <[email protected]>
+" Last Change:		2008 Sep 17
 
 " Quit when menu translations have already been done.
 if exists("did_menu_trans")
diff -Nur runtime.patched/lang/menu_ko_kr.utf-8.vim runtime/lang/menu_ko_kr.utf-8.vim
--- runtime.patched/lang/menu_ko_kr.utf-8.vim	2005-03-20 09:43:37.000000000 -0800
+++ runtime/lang/menu_ko_kr.utf-8.vim	2008-09-18 11:56:27.000000000 -0700
@@ -1,6 +1,6 @@
 " Menu Translations:	Korean
-" Maintainer:		Nam SungHyun <[email protected]>
-" Last Change:		2003 Apr 25
+" Maintainer:		SungHyun Nam <[email protected]>
+" Last Change:		2008 Sep 17
 
 " Quit when menu translations have already been done.
 if exists("did_menu_trans")
diff -Nur runtime.patched/lang/menu_ko_kr.vim runtime/lang/menu_ko_kr.vim
--- runtime.patched/lang/menu_ko_kr.vim	2004-06-07 07:32:35.000000000 -0700
+++ runtime/lang/menu_ko_kr.vim	2008-09-18 11:56:44.000000000 -0700
@@ -1,5 +1,5 @@
 " Menu Translations:	Korean
-" Translated By:	Nam SungHyun <[email protected]>
-" Last Change:		2003 Feb 24
+" Translated By:	SungHyun Nam <[email protected]>
+" Last Change:		2008 Sep 17
 
 source <sfile>:p:h/menu_ko_kr.euckr.vim
diff -Nur runtime.patched/macros/matchit.vim runtime/macros/matchit.vim
--- runtime.patched/macros/matchit.vim	2008-02-06 12:53:04.000000000 -0800
+++ runtime/macros/matchit.vim	2008-11-16 03:58:58.000000000 -0800
@@ -357,7 +357,7 @@
       execute s:Ref(ini, d, "start", "len")
       let ini = strpart(ini, 0, start) . backref . strpart(ini, start+len)
       let tailBR = substitute(tailBR, s:notslash . '\zs\\' . d,
-	\ escape(backref, '\\'), 'g')
+	\ escape(backref, '\\&'), 'g')
     endif
     let d = d-1
   endwhile
diff -Nur runtime.patched/menu.vim runtime/menu.vim
--- runtime.patched/menu.vim	2008-06-30 13:54:27.000000000 -0700
+++ runtime/menu.vim	2009-03-22 12:39:49.000000000 -0700
@@ -2,7 +2,7 @@
 " You can also use this as a start for your own set of menus.
 "
 " Maintainer:	Bram Moolenaar <[email protected]>
-" Last Change:	2008 Jun 30
+" Last Change:	2009 Feb 26
 
 " Note that ":an" (short for ":anoremenu") is often used to make a menu work
 " in all modes and avoid side effects from mappings defined by the user.
@@ -138,6 +138,7 @@
 func! s:FnameEscape(fname)
   if exists('*fnameescape')
     return fnameescape(a:fname)
+  endif
   return escape(a:fname, " \t\n*?[{`$\\%#'\"|!<")
 endfunc
 
@@ -1016,10 +1017,9 @@
   tmenu ToolBar.Copy		Copy to clipboard
   tmenu ToolBar.Paste		Paste from Clipboard
   if !has("gui_athena")
-    tmenu ToolBar.Find		Find...
+    tmenu ToolBar.Replace	Find / Replace...
     tmenu ToolBar.FindNext	Find Next
     tmenu ToolBar.FindPrev	Find Previous
-    tmenu ToolBar.Replace		Find / Replace...
   endif
   tmenu ToolBar.LoadSesn	Choose a session to load
   tmenu ToolBar.SaveSesn	Save current session
diff -Nur runtime.patched/plugin/gzip.vim runtime/plugin/gzip.vim
--- runtime.patched/plugin/gzip.vim	2005-07-26 06:17:59.000000000 -0700
+++ runtime/plugin/gzip.vim	2009-07-02 11:05:13.000000000 -0700
@@ -1,6 +1,6 @@
 " Vim plugin for editing compressed files.
 " Maintainer: Bram Moolenaar <[email protected]>
-" Last Change: 2005 Jul 26
+" Last Change: 2009 Jul 01
 
 " Exit quickly when:
 " - this plugin was already loaded
@@ -20,17 +20,21 @@
   "
   " Set binary mode before reading the file.
   " Use "gzip -d", gunzip isn't always available.
-  autocmd BufReadPre,FileReadPre	*.gz,*.bz2,*.Z setlocal bin
+  autocmd BufReadPre,FileReadPre	*.gz,*.bz2,*.Z,*.lzma setlocal bin
   autocmd BufReadPost,FileReadPost	*.gz  call gzip#read("gzip -dn")
   autocmd BufReadPost,FileReadPost	*.bz2 call gzip#read("bzip2 -d")
   autocmd BufReadPost,FileReadPost	*.Z   call gzip#read("uncompress")
+  autocmd BufReadPost,FileReadPost	*.lzma call gzip#read("lzma -d")
   autocmd BufWritePost,FileWritePost	*.gz  call gzip#write("gzip")
   autocmd BufWritePost,FileWritePost	*.bz2 call gzip#write("bzip2")
   autocmd BufWritePost,FileWritePost	*.Z   call gzip#write("compress -f")
+  autocmd BufWritePost,FileWritePost	*.lzma call gzip#write("lzma -z")
   autocmd FileAppendPre			*.gz  call gzip#appre("gzip -dn")
   autocmd FileAppendPre			*.bz2 call gzip#appre("bzip2 -d")
   autocmd FileAppendPre			*.Z   call gzip#appre("uncompress")
+  autocmd FileAppendPre			*.lzma call gzip#appre("lzma -d")
   autocmd FileAppendPost		*.gz  call gzip#write("gzip")
   autocmd FileAppendPost		*.bz2 call gzip#write("bzip2")
   autocmd FileAppendPost		*.Z   call gzip#write("compress -f")
+  autocmd FileAppendPost		*.lzma call gzip#write("lzma -z")
 augroup END
diff -Nur runtime.patched/plugin/matchparen.vim runtime/plugin/matchparen.vim
--- runtime.patched/plugin/matchparen.vim	2008-02-27 13:39:32.000000000 -0800
+++ runtime/plugin/matchparen.vim	2008-09-06 05:19:39.000000000 -0700
@@ -1,6 +1,6 @@
 " Vim plugin for showing matching parens
 " Maintainer:  Bram Moolenaar <[email protected]>
-" Last Change: 2008 Feb 27
+" Last Change: 2008 Sep 03
 
 " Exit quickly when:
 " - this plugin was already loaded (or disabled)
@@ -21,7 +21,7 @@
   finish
 endif
 
-let cpo_save = &cpo
+let s:cpo_save = &cpo
 set cpo-=C
 
 " The function that is invoked (very often) to define a ":match" highlighting
@@ -147,4 +147,5 @@
 	  \ au! matchparen
 command! DoMatchParen runtime plugin/matchparen.vim | windo doau CursorMoved
 
-let &cpo = cpo_save
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff -Nur runtime.patched/plugin/netrwPlugin.vim runtime/plugin/netrwPlugin.vim
--- runtime.patched/plugin/netrwPlugin.vim	2008-08-08 14:17:56.000000000 -0700
+++ runtime/plugin/netrwPlugin.vim	2009-01-14 12:14:45.000000000 -0800
@@ -1,6 +1,6 @@
 " netrwPlugin.vim: Handles file transfer and remote directory listing across a network
 "            PLUGIN SECTION
-" Date:		Aug 01, 2008
+" Date:		Aug 10, 2008
 " Maintainer:	Charles E Campbell, Jr <[email protected]>
 " GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim
 " Copyright:    Copyright (C) 1999-2008 Charles E. Campbell, Jr. {{{1
@@ -16,19 +16,16 @@
 "  But be doers of the Word, and not only hearers, deluding your own selves {{{1
 "  (James 1:22 RSV)
 " =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-
-" ---------------------------------------------------------------------
 " Load Once: {{{1
 if &cp || exists("g:loaded_netrwPlugin")
  finish
 endif
-let g:loaded_netrwPlugin = "v132"
-let s:keepcpo            = &cpo
-if v:version < 700
- echohl WarningMsg | echo "***netrw*** you need vim version 7.0 for this version of netrw" | echohl None
+let g:loaded_netrwPlugin = "v135"
+if v:version < 702
+ echohl WarningMsg | echo "***netrw*** you need vim version 7.2 for this version of netrw" | echohl None
  finish
 endif
-let s:keepcpo= &cpo
+let s:keepcpo = &cpo
 set cpo&vim
 
 " ---------------------------------------------------------------------
@@ -52,8 +49,8 @@
   au BufReadCmd  file://*		exe "silent doau BufReadPre ".fnameescape(netrw#RFC2396(expand("<amatch>")))|exe 'e '.fnameescape(substitute(netrw#RFC2396(expand("<amatch>")),'file://\(.*\)','\1',""))|exe "bwipe ".fnameescape(expand("<amatch>"))|exe "silent doau BufReadPost ".fnameescape(netrw#RFC2396(expand("<amatch>")))
   au BufReadCmd  file://localhost/*	exe "silent doau BufReadPre ".fnameescape(netrw#RFC2396(expand("<amatch>")))|exe 'e '.fnameescape(substitute(netrw#RFC2396(expand("<amatch>")),'file://localhost/\(.*\)','\1',""))|exe "bwipe ".fnameescape(substitute(expand("<amatch>"),'file://\(\k\+@\)\=','',''))|exe "silent doau BufReadPost ".fnameescape(netrw#RFC2396(expand("<amatch>")))
  endif
- au BufReadCmd   ftp://*,rcp://*,scp://*,http://*,dav://*,davs://*,rsync://*,sftp://*	exe "silent doau BufReadPre ".fnameescape(expand("<amatch>"))|exe '2Nread '.fnameescape(expand("<amatch>"))|exe "silent doau BufReadPost ".fnameescape(expand("<amatch>"))
- au FileReadCmd  ftp://*,rcp://*,scp://*,http://*,dav://*,davs://*,rsync://*,sftp://*	exe "silent doau FileReadPre ".fnameescape(expand("<amatch>"))|exe 'Nread '.fnameescape(expand("<amatch>"))|exe "silent doau FileReadPost ".fnameescape(expand("<amatch>"))
+ au BufReadCmd   ftp://*,rcp://*,scp://*,http://*,dav://*,davs://*,rsync://*,sftp://*	exe "silent doau BufReadPre ".fnameescape(expand("<amatch>"))|call netrw#Nread(2,expand("<amatch>"))|exe "silent doau BufReadPost ".fnameescape(expand("<amatch>"))
+ au FileReadCmd  ftp://*,rcp://*,scp://*,http://*,dav://*,davs://*,rsync://*,sftp://*	exe "silent doau FileReadPre ".fnameescape(expand("<amatch>"))|call netrw#Nread(1,expand("<amatch>"))|exe "silent doau FileReadPost ".fnameescape(expand("<amatch>"))
  au BufWriteCmd  ftp://*,rcp://*,scp://*,dav://*,davs://*,rsync://*,sftp://*		exe "silent doau BufWritePre ".fnameescape(expand("<amatch>"))|exe 'Nwrite '.fnameescape(expand("<amatch>"))|exe "silent doau BufWritePost ".fnameescape(expand("<amatch>"))
  au FileWriteCmd ftp://*,rcp://*,scp://*,dav://*,davs://*,rsync://*,sftp://*		exe "silent doau FileWritePre ".fnameescape(expand("<amatch>"))|exe "'[,']".'Nwrite '.fnameescape(expand("<amatch>"))|exe "silent doau FileWritePost ".fnameescape(expand("<amatch>"))
  try
@@ -156,24 +153,6 @@
 endfun
 
 " ------------------------------------------------------------------------
-" NetReadFixup: this sort of function is typically written by the user {{{1
-"               to handle extra junk that their system's ftp dumps
-"               into the transfer.  This function is provided as an
-"               example and as a fix for a Windows 95 problem: in my
-"               experience, win95's ftp always dumped four blank lines
-"               at the end of the transfer.
-if has("win95") && exists("g:netrw_win95ftp") && g:netrw_win95ftp
- fun! NetReadFixup(method, line1, line2)
-"   call Dfunc("NetReadFixup(method<".a:method."> line1=".a:line1." line2=".a:line2.")")
-   if method == 3   " ftp (no <.netrc>)
-    let fourblanklines= line2 - 3
-    silent fourblanklines.",".line2."g/^\s*/d"
-   endif
-"   call Dret("NetReadFixup")
- endfun
-endif
-
-" ------------------------------------------------------------------------
 " Modelines And Restoration: {{{1
 let &cpo= s:keepcpo
 unlet s:keepcpo
diff -Nur runtime.patched/scripts.vim runtime/scripts.vim
--- runtime.patched/scripts.vim	2009-11-20 13:52:19.789078744 -0800
+++ runtime/scripts.vim	2008-09-06 05:20:23.000000000 -0700
@@ -1,7 +1,7 @@
 " Vim support file to detect file types in scripts
 "
 " Maintainer:	Bram Moolenaar <[email protected]>
-" Last change:	2008 Aug 09
+" Last change:	2008 Sep 05
 
 " This file is called by an autocommand for every file that has just been
 " loaded into a buffer.  It checks if the type of file can be recognized by
@@ -323,25 +323,26 @@
 
   " CVS diff
   else
-    let lnum = 1
-    while getline(lnum) =~ "^? " && lnum < line("$")
-      let lnum = lnum + 1
+    let s:lnum = 1
+    while getline(s:lnum) =~ "^? " && s:lnum < line("$")
+      let s:lnum += 1
     endwhile
-    if getline(lnum) =~ '^Index:\s\+\f\+$'
+    if getline(s:lnum) =~ '^Index:\s\+\f\+$'
       set ft=diff
 
       " locale input files: Formal Definitions of Cultural Conventions
       " filename must be like en_US, fr_FR@euro or en_US.UTF-8
     elseif expand("%") =~ '\a\a_\a\a\($\|[.@]\)\|i18n$\|POSIX$\|translit_'
-      let lnum = 1
-      while lnum < 100 && lnum < line("$")
-	if getline(lnum) =~ '^LC_\(IDENTIFICATION\|CTYPE\|COLLATE\|MONETARY\|NUMERIC\|TIME\|MESSAGES\|PAPER\|TELEPHONE\|MEASUREMENT\|NAME\|ADDRESS\)$'
+      let s:lnum = 1
+      while s:lnum < 100 && s:lnum < line("$")
+	if getline(s:lnum) =~ '^LC_\(IDENTIFICATION\|CTYPE\|COLLATE\|MONETARY\|NUMERIC\|TIME\|MESSAGES\|PAPER\|TELEPHONE\|MEASUREMENT\|NAME\|ADDRESS\)$'
 	  setf fdcc
 	  break
 	endif
-	let lnum = lnum + 1
+	let s:lnum += 1
       endwhile
     endif
+    unlet s:lnum
 
   endif
 
diff -Nur runtime.patched/spell/README.txt runtime/spell/README.txt
--- runtime.patched/spell/README.txt	2005-09-30 05:15:16.000000000 -0700
+++ runtime/spell/README.txt	2008-12-01 12:32:34.000000000 -0800
@@ -72,7 +72,7 @@
    change too much, the OpenOffice people are not stupid.  However, you may
    want to remove obvious mistakes.  And remove single-letter words that
    aren't really words, they mess up the suggestions (English has this
-   problem).  You can use the "fixdup" Vim script to find duplicate words.
+   problem).  You can use the "fixdup.vim" Vim script to find duplicate words.
 
 3. Make the diff file.  "aap diff" will do this for you.  If a diff would be
    too big you might consider writing a Vim script to do systematic changes.
Files runtime.patched/spell/af.latin1.spl and runtime/spell/af.latin1.spl differ
Files runtime.patched/spell/af.latin1.sug and runtime/spell/af.latin1.sug differ
Files runtime.patched/spell/af.utf-8.spl and runtime/spell/af.utf-8.spl differ
Files runtime.patched/spell/af.utf-8.sug and runtime/spell/af.utf-8.sug differ
Files runtime.patched/spell/am.utf-8.spl and runtime/spell/am.utf-8.spl differ
Files runtime.patched/spell/bg.cp1251.spl and runtime/spell/bg.cp1251.spl differ
Files runtime.patched/spell/bg.cp1251.sug and runtime/spell/bg.cp1251.sug differ
Files runtime.patched/spell/bg.utf-8.spl and runtime/spell/bg.utf-8.spl differ
Files runtime.patched/spell/bg.utf-8.sug and runtime/spell/bg.utf-8.sug differ
Files runtime.patched/spell/ca.latin1.spl and runtime/spell/ca.latin1.spl differ
Files runtime.patched/spell/ca.latin1.sug and runtime/spell/ca.latin1.sug differ
Files runtime.patched/spell/ca.utf-8.spl and runtime/spell/ca.utf-8.spl differ
Files runtime.patched/spell/ca.utf-8.sug and runtime/spell/ca.utf-8.sug differ
Files runtime.patched/spell/cs.cp1250.spl and runtime/spell/cs.cp1250.spl differ
Files runtime.patched/spell/cs.iso-8859-2.spl and runtime/spell/cs.iso-8859-2.spl differ
Files runtime.patched/spell/cs.utf-8.spl and runtime/spell/cs.utf-8.spl differ
Files runtime.patched/spell/cy.iso-8859-14.spl and runtime/spell/cy.iso-8859-14.spl differ
Files runtime.patched/spell/cy.utf-8.spl and runtime/spell/cy.utf-8.spl differ
Files runtime.patched/spell/da.latin1.spl and runtime/spell/da.latin1.spl differ
Files runtime.patched/spell/da.latin1.sug and runtime/spell/da.latin1.sug differ
Files runtime.patched/spell/da.utf-8.spl and runtime/spell/da.utf-8.spl differ
Files runtime.patched/spell/da.utf-8.sug and runtime/spell/da.utf-8.sug differ
Files runtime.patched/spell/de.latin1.spl and runtime/spell/de.latin1.spl differ
Files runtime.patched/spell/de.latin1.sug and runtime/spell/de.latin1.sug differ
Files runtime.patched/spell/de.utf-8.spl and runtime/spell/de.utf-8.spl differ
Files runtime.patched/spell/de.utf-8.sug and runtime/spell/de.utf-8.sug differ
Files runtime.patched/spell/el.iso-8859-7.spl and runtime/spell/el.iso-8859-7.spl differ
Files runtime.patched/spell/el.iso-8859-7.sug and runtime/spell/el.iso-8859-7.sug differ
Files runtime.patched/spell/el.utf-8.spl and runtime/spell/el.utf-8.spl differ
Files runtime.patched/spell/el.utf-8.sug and runtime/spell/el.utf-8.sug differ
Files runtime.patched/spell/eo.iso-8859-3.spl and runtime/spell/eo.iso-8859-3.spl differ
Files runtime.patched/spell/eo.utf-8.spl and runtime/spell/eo.utf-8.spl differ
Files runtime.patched/spell/es.latin1.spl and runtime/spell/es.latin1.spl differ
Files runtime.patched/spell/es.latin1.sug and runtime/spell/es.latin1.sug differ
Files runtime.patched/spell/es.utf-8.spl and runtime/spell/es.utf-8.spl differ
Files runtime.patched/spell/es.utf-8.sug and runtime/spell/es.utf-8.sug differ
diff -Nur runtime.patched/spell/fixdup.vim runtime/spell/fixdup.vim
--- runtime.patched/spell/fixdup.vim	1969-12-31 16:00:00.000000000 -0800
+++ runtime/spell/fixdup.vim	2008-12-01 12:32:34.000000000 -0800
@@ -0,0 +1,27 @@
+" Vim script to fix duplicate words in a .dic file  vim: set ft=vim:
+"
+" Usage: Edit the .dic file and source this script.
+
+let deleted = 0
+
+" Start below the word count.
+let lnum = 2
+while lnum <= line('$')
+  let word = getline(lnum)
+  if word !~ '/'
+    if search('^' . word . '/', 'w') != 0
+      let deleted += 1
+      exe lnum . "d"
+      continue		" don't increment lnum, it's already at the next word
+    endif
+  endif
+  let lnum += 1
+endwhile
+
+if deleted == 0
+  echomsg "No duplicate words found"
+elseif deleted == 1
+  echomsg "Deleted 1 duplicate word"
+else
+  echomsg printf("Deleted %d duplicate words", deleted)
+endif
Files runtime.patched/spell/fo.latin1.spl and runtime/spell/fo.latin1.spl differ
Files runtime.patched/spell/fo.latin1.sug and runtime/spell/fo.latin1.sug differ
Files runtime.patched/spell/fo.utf-8.spl and runtime/spell/fo.utf-8.spl differ
Files runtime.patched/spell/fo.utf-8.sug and runtime/spell/fo.utf-8.sug differ
Files runtime.patched/spell/fr.latin1.spl and runtime/spell/fr.latin1.spl differ
Files runtime.patched/spell/fr.latin1.sug and runtime/spell/fr.latin1.sug differ
Files runtime.patched/spell/fr.utf-8.spl and runtime/spell/fr.utf-8.spl differ
Files runtime.patched/spell/fr.utf-8.sug and runtime/spell/fr.utf-8.sug differ
Files runtime.patched/spell/ga.latin1.spl and runtime/spell/ga.latin1.spl differ
Files runtime.patched/spell/ga.latin1.sug and runtime/spell/ga.latin1.sug differ
Files runtime.patched/spell/ga.utf-8.spl and runtime/spell/ga.utf-8.spl differ
Files runtime.patched/spell/ga.utf-8.sug and runtime/spell/ga.utf-8.sug differ
Files runtime.patched/spell/gd.latin1.spl and runtime/spell/gd.latin1.spl differ
Files runtime.patched/spell/gd.latin1.sug and runtime/spell/gd.latin1.sug differ
Files runtime.patched/spell/gd.utf-8.spl and runtime/spell/gd.utf-8.spl differ
Files runtime.patched/spell/gd.utf-8.sug and runtime/spell/gd.utf-8.sug differ
Files runtime.patched/spell/gl.latin1.spl and runtime/spell/gl.latin1.spl differ
Files runtime.patched/spell/gl.latin1.sug and runtime/spell/gl.latin1.sug differ
Files runtime.patched/spell/gl.utf-8.spl and runtime/spell/gl.utf-8.spl differ
Files runtime.patched/spell/gl.utf-8.sug and runtime/spell/gl.utf-8.sug differ
Files runtime.patched/spell/he.iso-8859-8.spl and runtime/spell/he.iso-8859-8.spl differ
Files runtime.patched/spell/he.utf-8.spl and runtime/spell/he.utf-8.spl differ
Files runtime.patched/spell/hr.cp1250.spl and runtime/spell/hr.cp1250.spl differ
Files runtime.patched/spell/hr.iso-8859-2.spl and runtime/spell/hr.iso-8859-2.spl differ
Files runtime.patched/spell/hr.utf-8.spl and runtime/spell/hr.utf-8.spl differ
Files runtime.patched/spell/hu.cp1250.spl and runtime/spell/hu.cp1250.spl differ
Files runtime.patched/spell/hu.iso-8859-2.spl and runtime/spell/hu.iso-8859-2.spl differ
Files runtime.patched/spell/hu.utf-8.spl and runtime/spell/hu.utf-8.spl differ
Files runtime.patched/spell/id.latin1.spl and runtime/spell/id.latin1.spl differ
Files runtime.patched/spell/id.latin1.sug and runtime/spell/id.latin1.sug differ
Files runtime.patched/spell/id.utf-8.spl and runtime/spell/id.utf-8.spl differ
Files runtime.patched/spell/id.utf-8.sug and runtime/spell/id.utf-8.sug differ
Files runtime.patched/spell/it.latin1.spl and runtime/spell/it.latin1.spl differ
Files runtime.patched/spell/it.utf-8.spl and runtime/spell/it.utf-8.spl differ
Files runtime.patched/spell/ku.iso-8859-9.spl and runtime/spell/ku.iso-8859-9.spl differ
Files runtime.patched/spell/ku.utf-8.spl and runtime/spell/ku.utf-8.spl differ
Files runtime.patched/spell/la.latin1.spl and runtime/spell/la.latin1.spl differ
Files runtime.patched/spell/la.utf-8.spl and runtime/spell/la.utf-8.spl differ
Files runtime.patched/spell/lt.iso-8859-13.spl and runtime/spell/lt.iso-8859-13.spl differ
Files runtime.patched/spell/lt.utf-8.spl and runtime/spell/lt.utf-8.spl differ
Files runtime.patched/spell/lv.iso-8859-13.spl and runtime/spell/lv.iso-8859-13.spl differ
Files runtime.patched/spell/lv.utf-8.spl and runtime/spell/lv.utf-8.spl differ
Files runtime.patched/spell/mg.latin1.spl and runtime/spell/mg.latin1.spl differ
Files runtime.patched/spell/mg.latin1.sug and runtime/spell/mg.latin1.sug differ
Files runtime.patched/spell/mg.utf-8.spl and runtime/spell/mg.utf-8.spl differ
Files runtime.patched/spell/mg.utf-8.sug and runtime/spell/mg.utf-8.sug differ
Files runtime.patched/spell/mi.iso-8859-4.spl and runtime/spell/mi.iso-8859-4.spl differ
Files runtime.patched/spell/mi.utf-8.spl and runtime/spell/mi.utf-8.spl differ
Files runtime.patched/spell/ms.latin1.spl and runtime/spell/ms.latin1.spl differ
Files runtime.patched/spell/ms.latin1.sug and runtime/spell/ms.latin1.sug differ
Files runtime.patched/spell/ms.utf-8.spl and runtime/spell/ms.utf-8.spl differ
Files runtime.patched/spell/ms.utf-8.sug and runtime/spell/ms.utf-8.sug differ
Files runtime.patched/spell/nb.latin1.spl and runtime/spell/nb.latin1.spl differ
Files runtime.patched/spell/nb.latin1.sug and runtime/spell/nb.latin1.sug differ
Files runtime.patched/spell/nb.utf-8.spl and runtime/spell/nb.utf-8.spl differ
Files runtime.patched/spell/nb.utf-8.sug and runtime/spell/nb.utf-8.sug differ
Files runtime.patched/spell/nl.latin1.spl and runtime/spell/nl.latin1.spl differ
Files runtime.patched/spell/nl.latin1.sug and runtime/spell/nl.latin1.sug differ
Files runtime.patched/spell/nl.utf-8.spl and runtime/spell/nl.utf-8.spl differ
Files runtime.patched/spell/nl.utf-8.sug and runtime/spell/nl.utf-8.sug differ
Files runtime.patched/spell/nn.latin1.spl and runtime/spell/nn.latin1.spl differ
Files runtime.patched/spell/nn.latin1.sug and runtime/spell/nn.latin1.sug differ
Files runtime.patched/spell/nn.utf-8.spl and runtime/spell/nn.utf-8.spl differ
Files runtime.patched/spell/nn.utf-8.sug and runtime/spell/nn.utf-8.sug differ
Files runtime.patched/spell/ny.ascii.spl and runtime/spell/ny.ascii.spl differ
Files runtime.patched/spell/ny.iso-8859-14.spl and runtime/spell/ny.iso-8859-14.spl differ
Files runtime.patched/spell/ny.utf-8.spl and runtime/spell/ny.utf-8.spl differ
Files runtime.patched/spell/pl.cp1250.spl and runtime/spell/pl.cp1250.spl differ
Files runtime.patched/spell/pl.iso-8859-2.spl and runtime/spell/pl.iso-8859-2.spl differ
Files runtime.patched/spell/pl.utf-8.spl and runtime/spell/pl.utf-8.spl differ
Files runtime.patched/spell/pt.latin1.spl and runtime/spell/pt.latin1.spl differ
Files runtime.patched/spell/pt.utf-8.spl and runtime/spell/pt.utf-8.spl differ
Files runtime.patched/spell/ro.cp1250.spl and runtime/spell/ro.cp1250.spl differ
Files runtime.patched/spell/ro.iso-8859-2.spl and runtime/spell/ro.iso-8859-2.spl differ
Files runtime.patched/spell/ro.utf-8.spl and runtime/spell/ro.utf-8.spl differ
Files runtime.patched/spell/ru.cp1251.spl and runtime/spell/ru.cp1251.spl differ
Files runtime.patched/spell/ru.cp1251.sug and runtime/spell/ru.cp1251.sug differ
Files runtime.patched/spell/ru.koi8-r.spl and runtime/spell/ru.koi8-r.spl differ
Files runtime.patched/spell/ru.koi8-r.sug and runtime/spell/ru.koi8-r.sug differ
Files runtime.patched/spell/ru.utf-8.spl and runtime/spell/ru.utf-8.spl differ
Files runtime.patched/spell/ru.utf-8.sug and runtime/spell/ru.utf-8.sug differ
Files runtime.patched/spell/rw.latin1.spl and runtime/spell/rw.latin1.spl differ
Files runtime.patched/spell/rw.latin1.sug and runtime/spell/rw.latin1.sug differ
Files runtime.patched/spell/rw.utf-8.spl and runtime/spell/rw.utf-8.spl differ
Files runtime.patched/spell/rw.utf-8.sug and runtime/spell/rw.utf-8.sug differ
Files runtime.patched/spell/sk.cp1250.spl and runtime/spell/sk.cp1250.spl differ
Files runtime.patched/spell/sk.iso-8859-2.spl and runtime/spell/sk.iso-8859-2.spl differ
Files runtime.patched/spell/sk.utf-8.spl and runtime/spell/sk.utf-8.spl differ
Files runtime.patched/spell/sl.cp1250.spl and runtime/spell/sl.cp1250.spl differ
Files runtime.patched/spell/sl.iso-8859-2.spl and runtime/spell/sl.iso-8859-2.spl differ
Files runtime.patched/spell/sl.utf-8.spl and runtime/spell/sl.utf-8.spl differ
Files runtime.patched/spell/sv.latin1.spl and runtime/spell/sv.latin1.spl differ
Files runtime.patched/spell/sv.latin1.sug and runtime/spell/sv.latin1.sug differ
Files runtime.patched/spell/sv.utf-8.spl and runtime/spell/sv.utf-8.spl differ
Files runtime.patched/spell/sv.utf-8.sug and runtime/spell/sv.utf-8.sug differ
Files runtime.patched/spell/sw.latin1.spl and runtime/spell/sw.latin1.spl differ
Files runtime.patched/spell/sw.latin1.sug and runtime/spell/sw.latin1.sug differ
Files runtime.patched/spell/sw.utf-8.spl and runtime/spell/sw.utf-8.spl differ
Files runtime.patched/spell/sw.utf-8.sug and runtime/spell/sw.utf-8.sug differ
diff -Nur runtime.patched/spell/tet/main.aap runtime/spell/tet/main.aap
--- runtime.patched/spell/tet/main.aap	1969-12-31 16:00:00.000000000 -0800
+++ runtime/spell/tet/main.aap	2008-02-13 06:13:42.000000000 -0800
@@ -0,0 +1,79 @@
+# Aap recipe for Tetum Vim spell files.
+
+# Use a freshly compiled Vim if it exists.
+@if os.path.exists('../../../src/vim'):
+    VIM = ../../../src/vim
+@else:
+    :progsearch VIM vim
+
+SPELLDIR = ..
+FILES    = tet_ID.aff tet_ID.dic
+
+# I don't hava a Tetum locale, use the Dutch one instead.
+all: $SPELLDIR/tet.latin1.spl $SPELLDIR/tet.utf-8.spl ../README_tet.txt
+
+$SPELLDIR/tet.latin1.spl : $FILES
+        :sys env LANG=nl_NL.ISO8859-1
+		$VIM -u NONE -e -c "mkspell! $SPELLDIR/tet tet_ID" -c q
+
+$SPELLDIR/tet.utf-8.spl : $FILES
+        :sys env LANG=nl_NL.UTF-8
+		$VIM -u NONE -e -c "mkspell! $SPELLDIR/tet tet_ID" -c q
+
+../README_tet.txt : README_tet_ID.txt
+        :copy $source $target
+
+#
+# Fetching the files from OpenOffice.org.
+#
+OODIR = http://ftp.services.openoffice.org/pub/OpenOffice.org/contrib/dictionaries
+:attr {fetch = $OODIR/%file%} tet_ID.zip
+
+# The files don't depend on the .zip file so that we can delete it.
+# Only download the zip file if the targets don't exist.
+tet_ID.aff tet_ID.dic: {buildcheck=}
+        :assertpkg unzip patch
+        :fetch tet_ID.zip
+        :sys $UNZIP tet_ID.zip
+        :delete tet_ID.zip
+        @if not os.path.exists('tet_ID.orig.aff'):
+            :copy tet_ID.aff tet_ID.orig.aff
+        @if not os.path.exists('tet_ID.orig.dic'):
+            :copy tet_ID.dic tet_ID.orig.dic
+        @if os.path.exists('tet_ID.diff'):
+            :sys patch <tet_ID.diff
+
+
+# Generate diff files, so that others can get the OpenOffice files and apply
+# the diffs to get the Vim versions.
+
+diff:
+        :assertpkg diff
+        :sys {force} diff -a -C 1 tet_ID.orig.aff tet_ID.aff >tet_ID.diff
+        :sys {force} diff -a -C 1 tet_ID.orig.dic tet_ID.dic >>tet_ID.diff
+
+
+# Check for updated OpenOffice spell files.  When there are changes the
+# ".new.aff" and ".new.dic" files are left behind for manual inspection.
+
+check:
+        :assertpkg unzip diff
+        :fetch tet_ID.zip
+        :mkdir tmp
+        :cd tmp
+        @try:
+            @import stat
+            :sys $UNZIP ../tet_ID.zip
+            :sys {force} diff ../tet_ID.orig.aff tet_ID.aff >d
+            @if os.stat('d')[stat.ST_SIZE] > 0:
+                :copy tet_ID.aff ../tet_ID.new.aff
+            :sys {force} diff ../tet_ID.orig.dic tet_ID.dic >d
+            @if os.stat('d')[stat.ST_SIZE] > 0:
+                :copy tet_ID.dic ../tet_ID.new.dic
+        @finally:
+            :cd ..
+            :delete {r}{f}{q} tmp
+            :delete tet_ID.zip
+
+
+# vim: set sts=4 sw=4 :
diff -Nur runtime.patched/spell/tet/tet_ID.diff runtime/spell/tet/tet_ID.diff
--- runtime.patched/spell/tet/tet_ID.diff	1969-12-31 16:00:00.000000000 -0800
+++ runtime/spell/tet/tet_ID.diff	2008-02-13 06:13:04.000000000 -0800
@@ -0,0 +1,26 @@
+*** tet_ID.orig.aff	Wed Aug 31 21:14:37 2005
+--- tet_ID.aff	Wed Aug 31 21:15:15 2005
+***************
+*** 19 ****
+--- 19,39 ----
+  TRY aineousrthlkmdbp'fTvgzLAINjSPEM�D-KH��FRUBGJ�Oc�wxCWXV���q��Z�Qy��
++ 
++ FOL  ��������������������������������
++ LOW  ��������������������������������
++ UPP  ��������������������������������
++ 
++ SOFOFROM abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ�������������������������������������������������������������޿
++ SOFOTO   ebctefghejklnnepkrstevvkesebctefghejklnnepkrstevvkeseeeeeeeceeeeeeeedneeeeeeeeeeepseeeeeeeeceeeeeeeedneeeeeeeeeeep?
++ 
++ MIDWORD	'-
++ 
++ MAP 9
++ MAP a������
++ MAP e����
++ MAP i����
++ MAP o�����
++ MAP u����
++ MAP n�
++ MAP c�
++ MAP y��
++ MAP s�
Files runtime.patched/spell/tet.latin1.spl and runtime/spell/tet.latin1.spl differ
Files runtime.patched/spell/tet.latin1.sug and runtime/spell/tet.latin1.sug differ
Files runtime.patched/spell/tet.utf-8.spl and runtime/spell/tet.utf-8.spl differ
Files runtime.patched/spell/tet.utf-8.sug and runtime/spell/tet.utf-8.sug differ
Files runtime.patched/spell/th.utf-8.spl and runtime/spell/th.utf-8.spl differ
Files runtime.patched/spell/tl.latin1.spl and runtime/spell/tl.latin1.spl differ
Files runtime.patched/spell/tl.latin1.sug and runtime/spell/tl.latin1.sug differ
Files runtime.patched/spell/tl.utf-8.spl and runtime/spell/tl.utf-8.spl differ
Files runtime.patched/spell/tl.utf-8.sug and runtime/spell/tl.utf-8.sug differ
Files runtime.patched/spell/tn.cp1250.spl and runtime/spell/tn.cp1250.spl differ
Files runtime.patched/spell/tn.iso-8859-2.spl and runtime/spell/tn.iso-8859-2.spl differ
Files runtime.patched/spell/tn.utf-8.spl and runtime/spell/tn.utf-8.spl differ
Files runtime.patched/spell/uk.koi8-u.spl and runtime/spell/uk.koi8-u.spl differ
Files runtime.patched/spell/uk.utf-8.spl and runtime/spell/uk.utf-8.spl differ
Files runtime.patched/spell/yi-tr.utf-8.spl and runtime/spell/yi-tr.utf-8.spl differ
Files runtime.patched/spell/yi.latin1.spl and runtime/spell/yi.latin1.spl differ
Files runtime.patched/spell/yi.utf-8.spl and runtime/spell/yi.utf-8.spl differ
Files runtime.patched/spell/zu.ascii.spl and runtime/spell/zu.ascii.spl differ
Files runtime.patched/spell/zu.latin1.spl and runtime/spell/zu.latin1.spl differ
Files runtime.patched/spell/zu.utf-8.spl and runtime/spell/zu.utf-8.spl differ
diff -Nur runtime.patched/syntax/2html.vim runtime/syntax/2html.vim
--- runtime.patched/syntax/2html.vim	2008-07-17 14:03:05.000000000 -0700
+++ runtime/syntax/2html.vim	2009-07-26 04:44:10.000000000 -0700
@@ -1,13 +1,18 @@
 " Vim syntax support file
 " Maintainer: Bram Moolenaar <[email protected]>
-" Last Change: 2008 Jul 17
+" Last Change: 2009 Jul 14
 "	       (modified by David Ne\v{c}as (Yeti) <[email protected]>)
 "	       (XHTML support by Panagiotis Issaris <[email protected]>)
 "	       (made w3 compliant by Edd Barrett <[email protected]>)
 "	       (added html_font. Edd Barrett <[email protected]>)
+"	       (dynamic folding by Ben Fritz <[email protected]>)
 
 " Transform a file into HTML, using the current syntax highlighting.
 
+" this file uses line continuations
+let s:cpo_sav = &cpo
+set cpo-=C
+
 " Number lines when explicitely requested or when `number' is set
 if exists("html_number_lines")
   let s:numblines = html_number_lines
@@ -22,6 +27,37 @@
   let s:htmlfont = "monospace"
 endif
 
+" make copies of the user-defined settings that we may overrule
+if exists("html_dynamic_folds")
+  let s:html_dynamic_folds = 1
+endif
+if exists("html_hover_unfold")
+  let s:html_hover_unfold = 1
+endif
+if exists("html_use_css")
+  let s:html_use_css = 1
+endif
+
+" hover opening implies dynamic folding
+if exists("s:html_hover_unfold")
+  let s:html_dynamic_folds = 1
+endif
+
+" dynamic folding with no foldcolumn implies hover opens
+if exists("s:html_dynamic_folds") && exists("html_no_foldcolumn")
+  let s:html_hover_unfold = 1
+endif
+
+" ignore folding overrides dynamic folding
+if exists("html_ignore_folding") && exists("s:html_dynamic_folds")
+  unlet s:html_dynamic_folds
+endif
+
+" dynamic folding implies css
+if exists("s:html_dynamic_folds")
+  let s:html_use_css = 1
+endif
+
 " When not in gui we can only guess the colors.
 if has("gui_running")
   let s:whatterm = "gui"
@@ -62,7 +98,7 @@
   endfun
 endif
 
-if !exists("html_use_css")
+if !exists("s:html_use_css")
   " Return opening HTML tag for given highlight id
   function! s:HtmlOpening(id)
     let a = ""
@@ -150,6 +186,26 @@
   return a
 endfun
 
+if exists("s:html_dynamic_folds")
+
+  " compares two folds as stored in our list of folds
+  " A fold is "less" than another if it starts at an earlier line number,
+  " or ends at a later line number, ties broken by fold level
+  function! s:FoldCompare(f1, f2)
+    if a:f1.firstline != a:f2.firstline
+      " put it before if it starts earlier
+      return a:f1.firstline - a:f2.firstline
+    elseif a:f1.lastline != a:f2.lastline
+      " put it before if it ends later
+      return a:f2.lastline - a:f1.lastline
+    else
+      " if folds begin and end on the same lines, put lowest fold level first
+      return a:f1.level - a:f2.level
+    endif
+  endfunction
+
+endif
+
 " Figure out proper MIME charset from the 'encoding' option.
 if exists("html_use_encoding")
   let s:html_encoding = html_use_encoding
@@ -223,13 +279,13 @@
   let s:tag_close = '>'
 endif
 
-" Cache html_no_pre incase we have to turn it on for non-css mode
+" Cache html_no_pre in case we have to turn it on for non-css mode
 if exists("html_no_pre")
   let s:old_html_no_pre = html_no_pre
 endif
 
-if !exists("html_use_css")
-  " Cant put font tags in <pre>
+if !exists("s:html_use_css")
+  " Can't put font tags in <pre>
   let html_no_pre=1
 endif
 
@@ -251,9 +307,86 @@
   exe "normal! a<meta http-equiv=\"content-type\" content=\"text/html; charset=" . s:html_encoding . '"' . s:tag_close . "\n\e"
 endif
 
-if exists("html_use_css")
-  exe "normal! a<style type=\"text/css\">\n<!--\n-->\n</style>\n\e"
+if exists("s:html_use_css")
+  if exists("s:html_dynamic_folds")
+    if exists("s:html_hover_unfold")
+      " if we are doing hover_unfold, use css 2 with css 1 fallback for IE6
+      exe "normal! a".
+	  \ "<style type=\"text/css\">\n<!--\n".
+	  \ ".FoldColumn { text-decoration: none; white-space: pre; }\n\n".
+	  \ "body * { margin: 0; padding: 0; }\n".
+	  \ "\n".
+	  \ ".open-fold   > .Folded { display: none;  }\n".
+	  \ ".open-fold   > .fulltext { display: inline; }\n".
+	  \ ".closed-fold > .fulltext { display: none;  }\n".
+	  \ ".closed-fold > .Folded { display: inline; }\n".
+	  \ "\n".
+	  \ ".open-fold   > .toggle-open   { display: none;   }\n".
+	  \ ".open-fold   > .toggle-closed { display: inline; }\n".
+	  \ ".closed-fold > .toggle-open   { display: inline; }\n".
+	  \ ".closed-fold > .toggle-closed { display: none;   }\n"
+      exe "normal! a\n/* opening a fold while hovering won't be supported by IE6 and other\n".
+	  \ "similar browsers, but it should fail gracefully. */\n".
+	  \ ".closed-fold:hover > .fulltext { display: inline; }\n".
+	  \ ".closed-fold:hover > .toggle-filler { display: none; }\n".
+	  \ ".closed-fold:hover > .Folded { display: none; }\n"
+      exe "normal! a-->\n</style>\n"
+      exe "normal! a<!--[if lt IE 7]>".
+	  \ "<style type=\"text/css\">\n".
+	  \ ".open-fold   .Folded      { display: none; }\n".
+	  \ ".open-fold   .fulltext      { display: inline; }\n".
+	  \ ".open-fold   .toggle-open   { display: none; }\n".
+	  \ ".closed-fold .toggle-closed { display: inline; }\n".
+	  \ "\n".
+	  \ ".closed-fold .fulltext      { display: none; }\n".
+	  \ ".closed-fold .Folded      { display: inline; }\n".
+	  \ ".closed-fold .toggle-open   { display: inline; }\n".
+	  \ ".closed-fold .toggle-closed { display: none; }\n".
+	  \ "</style>\n".
+	  \ "<![endif]-->\n"
+    else
+      " if we aren't doing hover_unfold, use CSS 1 only
+      exe "normal! a<style type=\"text/css\">\n<!--\n".
+	    \ ".FoldColumn { text-decoration: none; white-space: pre; }\n\n".
+	    \ ".open-fold   .Folded      { display: none; }\n".
+	    \ ".open-fold   .fulltext      { display: inline; }\n".
+	    \ ".open-fold   .toggle-open   { display: none; }\n".
+	    \ ".closed-fold .toggle-closed { display: inline; }\n".
+	    \ "\n".
+	    \ ".closed-fold .fulltext      { display: none; }\n".
+	    \ ".closed-fold .Folded      { display: inline; }\n".
+	    \ ".closed-fold .toggle-open   { display: inline; }\n".
+	    \ ".closed-fold .toggle-closed { display: none; }\n".
+	    \ "-->\n</style>\n"
+    endif
+  else
+    " if we aren't doing any dynamic folding, no need for any special rules
+    exe "normal! a<style type=\"text/css\">\n<!--\n-->\n</style>\n\e"
+  endif
+endif
+
+" insert javascript to toggle folds open and closed
+if exists("s:html_dynamic_folds")
+  exe "normal! a\n".
+	\ "<script type='text/javascript'>\n".
+	\ "<!--\n".
+	\ "function toggleFold(objID)\n".
+	\ "{\n".
+	\ "  var fold;\n".
+	\ "  fold = document.getElementById(objID);\n".
+	\ "  if(fold.className == 'closed-fold')\n".
+	\ "  {\n".
+	\ "    fold.className = 'open-fold';\n".
+	\ "  }\n".
+	\ "  else if (fold.className == 'open-fold')\n".
+	\ "  {\n".
+	\ "    fold.className = 'closed-fold';\n".
+	\ "  }\n".
+	\ "}\n".
+	\ "-->\n".
+	\ "</script>\n\e"
 endif
+
 if exists("html_no_pre")
   exe "normal! a</head>\n<body>\n\e"
 else
@@ -265,7 +398,81 @@
 " List of all id's
 let s:idlist = ","
 
-" Loop over all lines in the original text.
+" First do some preprocessing for dynamic folding. Do this for the entire file
+" so we don't accidentally start within a closed fold or something.
+let s:allfolds = []
+
+if exists("s:html_dynamic_folds")
+  let s:lnum = 1
+  let s:end = line('$')
+  " save the fold text and set it to the default so we can find fold levels
+  let s:foldtext_save = &foldtext
+  set foldtext&
+
+  " we will set the foldcolumn in the html to the greater of the maximum fold
+  " level and the current foldcolumn setting
+  let s:foldcolumn = &foldcolumn
+
+  " get all info needed to describe currently closed folds
+  while s:lnum < s:end
+    if foldclosed(s:lnum) == s:lnum
+      " default fold text has '+-' and then a number of dashes equal to fold
+      " level, so subtract 2 from index of first non-dash after the dashes
+      " in order to get the fold level of the current fold
+      let s:level = match(foldtextresult(s:lnum), '+-*\zs[^-]') - 2
+      if s:level+1 > s:foldcolumn
+	let s:foldcolumn = s:level+1
+      endif
+      " store fold info for later use
+      let s:newfold = {'firstline': s:lnum, 'lastline': foldclosedend(s:lnum), 'level': s:level,'type': "closed-fold"}
+      call add(s:allfolds, s:newfold)
+      " open the fold so we can find any contained folds
+      execute s:lnum."foldopen"
+    else
+      let s:lnum = s:lnum + 1
+    endif
+  endwhile
+
+  " close all folds to get info for originally open folds
+  silent! %foldclose!
+  let s:lnum = 1
+
+  " the originally open folds will be all folds we encounter that aren't
+  " already in the list of closed folds
+  while s:lnum < s:end
+    if foldclosed(s:lnum) == s:lnum
+      " default fold text has '+-' and then a number of dashes equal to fold
+      " level, so subtract 2 from index of first non-dash after the dashes
+      " in order to get the fold level of the current fold
+      let s:level = match(foldtextresult(s:lnum), '+-*\zs[^-]') - 2
+      if s:level+1 > s:foldcolumn
+	let s:foldcolumn = s:level+1
+      endif
+      let s:newfold = {'firstline': s:lnum, 'lastline': foldclosedend(s:lnum), 'level': s:level,'type': "closed-fold"}
+      " only add the fold if we don't already have it
+      if empty(s:allfolds) || index(s:allfolds, s:newfold) == -1
+	let s:newfold.type = "open-fold"
+	call add(s:allfolds, s:newfold)
+      endif
+      " open the fold so we can find any contained folds
+      execute s:lnum."foldopen"
+    else
+      let s:lnum = s:lnum + 1
+    endif
+  endwhile
+
+  " sort the folds so that we only ever need to look at the first item in the
+  " list of folds
+  call sort(s:allfolds, "s:FoldCompare")
+
+  let &foldtext = s:foldtext_save
+  unlet s:foldtext_save
+
+  " close all folds again so we can get the fold text as we go
+  silent! %foldclose! 
+endif
+
+" Now loop over all lines in the original text to convert to html.
 " Use html_start_line and html_end_line if they are set.
 if exists("html_start_line")
   let s:lnum = html_start_line
@@ -284,6 +491,15 @@
   let s:end = line("$")
 endif
 
+" stack to keep track of all the folds containing the current line
+let s:foldstack = []
+
+if s:numblines
+  let s:margin = strlen(s:end) + 1
+else
+  let s:margin = 0
+endif
+
 if has('folding') && !exists('html_ignore_folding')
   let s:foldfillchar = &fillchars[matchend(&fillchars, 'fold:')]
   if s:foldfillchar == ''
@@ -295,6 +511,7 @@
   let s:difffillchar = '-'
 endif
 
+let s:foldId = 0
 
 while s:lnum <= s:end
 
@@ -303,12 +520,7 @@
   if s:filler > 0
     let s:n = s:filler
     while s:n > 0
-      if s:numblines
-	" Indent if line numbering is on
-	let s:new = repeat(s:LeadingSpace, strlen(s:end) + 1) . repeat(s:difffillchar, 3)
-      else
-	let s:new = repeat(s:difffillchar, 3)
-      endif
+      let s:new = repeat(s:difffillchar, 3)
 
       if s:n > 2 && s:n < s:filler && !exists("html_whole_filler")
 	let s:new = s:new . " " . s:filler . " inserted lines "
@@ -317,10 +529,16 @@
 
       if !exists("html_no_pre")
 	" HTML line wrapping is off--go ahead and fill to the margin
-	let s:new = s:new . repeat(s:difffillchar, &columns - strlen(s:new))
+	let s:new = s:new . repeat(s:difffillchar, &columns - strlen(s:new) - s:margin)
+      else
+	let s:new = s:new . repeat(s:difffillchar, 3)
       endif
 
       let s:new = s:HtmlFormat(s:new, "DiffDelete")
+      if s:numblines
+	" Indent if line numbering is on; must be after escaping.
+	let s:new = repeat(s:LeadingSpace, s:margin) . s:new
+      endif
       exe s:newwin . "wincmd w"
       exe "normal! a" . s:new . s:HtmlEndline . "\n\e"
       exe s:orgwin . "wincmd w"
@@ -333,16 +551,18 @@
 
   " Start the line with the line number.
   if s:numblines
-    let s:new = repeat(' ', strlen(s:end) - strlen(s:lnum)) . s:lnum . ' '
+    let s:numcol = repeat(' ', s:margin - 1 - strlen(s:lnum)) . s:lnum . ' '
   else
-    let s:new = ""
+    let s:numcol = ""
   endif
 
-  if has('folding') && !exists('html_ignore_folding') && foldclosed(s:lnum) > -1
+  let s:new = ""
+
+  if has('folding') && !exists('html_ignore_folding') && foldclosed(s:lnum) > -1 && !exists('s:html_dynamic_folds')
     "
-    " This is the beginning of a folded block
+    " This is the beginning of a folded block (with no dynamic folding)
     "
-    let s:new = s:new . foldtextresult(s:lnum)
+    let s:new = s:numcol . foldtextresult(s:lnum)
     if !exists("html_no_pre")
       " HTML line wrapping is off--go ahead and fill to the margin
       let s:new = s:new . repeat(s:foldfillchar, &columns - strlen(s:new))
@@ -355,14 +575,96 @@
 
   else
     "
-    " A line that is not folded.
+    " A line that is not folded, or doing dynamic folding.
     "
     let s:line = getline(s:lnum)
-
     let s:len = strlen(s:line)
 
+    if exists("s:html_dynamic_folds")
+      " First insert a closing for any open folds that end on this line
+      while !empty(s:foldstack) && get(s:foldstack,0).lastline == s:lnum-1
+	let s:new = s:new."</span></span>"
+	call remove(s:foldstack, 0)
+      endwhile
+
+      " Now insert an opening any new folds that start on this line
+      let s:firstfold = 1
+      while !empty(s:allfolds) && get(s:allfolds,0).firstline == s:lnum
+	let s:foldId = s:foldId + 1
+	let s:new = s:new . "<span id='fold".s:foldId."' class='".s:allfolds[0].type."'>"
+
+	" Unless disabled, add a fold column for the opening line of a fold.
+	"
+	" Note that dynamic folds require using css so we just use css to take
+	" care of the leading spaces rather than using &nbsp; in the case of
+	" html_no_pre to make it easier
+	if !exists("html_no_foldcolumn")
+	  " add fold column that can open the new fold
+	  if s:allfolds[0].level > 1 && s:firstfold
+	    let s:new = s:new . "<a class='toggle-open FoldColumn' href='javascript:toggleFold(\"fold".s:foldstack[0].id."\")'>"
+	    let s:new = s:new . repeat('|', s:allfolds[0].level - 1) . "</a>"
+	  endif
+	  let s:new = s:new . "<a class='toggle-open FoldColumn' href='javascript:toggleFold(\"fold".s:foldId."\")'>+</a>"
+	  let s:new = s:new . "<a class='toggle-open "
+	  " If this is not the last fold we're opening on this line, we need
+	  " to keep the filler spaces hidden if the fold is opened by mouse
+	  " hover. If it is the last fold to open in the line, we shouldn't hide
+	  " them, so don't apply the toggle-filler class.
+	  if get(s:allfolds, 1, {'firstline': 0}).firstline == s:lnum
+	    let s:new = s:new . "toggle-filler "
+	  endif
+	  let s:new = s:new . "FoldColumn' href='javascript:toggleFold(\"fold".s:foldId."\")'>"
+	  let s:new = s:new . repeat(" ", s:foldcolumn - s:allfolds[0].level) . "</a>"
+
+	  " add fold column that can close the new fold
+	  let s:new = s:new . "<a class='toggle-closed FoldColumn' href='javascript:toggleFold(\"fold".s:foldId."\")'>"
+	  if s:firstfold
+	    let s:new = s:new . repeat('|', s:allfolds[0].level - 1)
+	  endif
+	  let s:new = s:new . "-"
+	  " only add spaces if we aren't opening another fold on the same line
+	  if get(s:allfolds, 1, {'firstline': 0}).firstline != s:lnum
+	    let s:new = s:new . repeat(" ", s:foldcolumn - s:allfolds[0].level)
+	  endif
+	  let s:new = s:new . "</a>"
+	  let s:firstfold = 0
+	endif
+
+	" add fold text, moving the span ending to the next line so collapsing
+	" of folds works correctly
+	let s:new = s:new . substitute(s:HtmlFormat(s:numcol . foldtextresult(s:lnum), "Folded"), '</span>', s:HtmlEndline.'\r\0', '')
+	let s:new = s:new . "<span class='fulltext'>"
+
+	" open the fold now that we have the fold text to allow retrieval of
+	" fold text for subsequent folds
+	execute s:lnum."foldopen"
+	call insert(s:foldstack, remove(s:allfolds,0))
+	let s:foldstack[0].id = s:foldId
+      endwhile
+
+      " Unless disabled, add a fold column for other lines.
+      "
+      " Note that dynamic folds require using css so we just use css to take
+      " care of the leading spaces rather than using &nbsp; in the case of
+      " html_no_pre to make it easier
+      if !exists("html_no_foldcolumn")
+	if empty(s:foldstack)
+	  " add the empty foldcolumn for unfolded lines
+	  let s:new = s:new . s:HtmlFormat(repeat(' ', s:foldcolumn), "FoldColumn")
+	else
+	  " add the fold column for folds not on the opening line
+	  if get(s:foldstack, 0).firstline < s:lnum
+	    let s:new = s:new . "<a class='FoldColumn' href='javascript:toggleFold(\"fold".s:foldstack[0].id."\")'>"
+	    let s:new = s:new . repeat('|', s:foldstack[0].level)
+	    let s:new = s:new . repeat(' ', s:foldcolumn - s:foldstack[0].level) . "</a>"
+	  endif
+	endif
+      endif
+    endif
+
+    " Now continue with the unfolded line text
     if s:numblines
-      let s:new = s:HtmlFormat(s:new, "lnr")
+      let s:new = s:new . s:HtmlFormat(s:numcol, "lnr")
     endif
 
     " Get the diff attribute, if any.
@@ -380,7 +682,7 @@
 	while s:col <= s:len && s:id == diff_hlID(s:lnum, s:col) | let s:col = s:col + 1 | endwhile
 	if s:len < &columns && !exists("html_no_pre")
 	  " Add spaces at the end to mark the changed line.
-	  let s:line = s:line . repeat(' ', &columns - s:len)
+	  let s:line = s:line . repeat(' ', &columns - virtcol([s:lnum, s:len]) - s:margin)
 	  let s:len = &columns
 	endif
       else
@@ -393,11 +695,27 @@
 
       " Expand tabs
       let s:expandedtab = strpart(s:line, s:startcol - 1, s:col - s:startcol)
-      let idx = stridx(s:expandedtab, "\t")
-      while idx >= 0
-	let i = &ts - ((idx + s:startcol - 1) % &ts)
-	let s:expandedtab = substitute(s:expandedtab, '\t', repeat(' ', i), '')
-	let idx = stridx(s:expandedtab, "\t")
+      let s:offset = 0
+      let s:idx = stridx(s:expandedtab, "\t")
+      while s:idx >= 0
+	if has("multi_byte_encoding")
+	  if s:startcol + s:idx == 1
+	    let s:i = &ts
+	  else
+	    if s:idx == 0
+	      let s:prevc = matchstr(s:line, '.\%' . (s:startcol + s:idx + s:offset) . 'c')
+	    else
+	      let s:prevc = matchstr(s:expandedtab, '.\%' . (s:idx + 1) . 'c')
+	    endif
+	    let s:vcol = virtcol([s:lnum, s:startcol + s:idx + s:offset - len(s:prevc)])
+	    let s:i = &ts - (s:vcol % &ts)
+	  endif
+	  let s:offset -= s:i - 1
+	else
+	  let s:i = &ts - ((s:idx + s:startcol - 1) % &ts)
+	endif
+	let s:expandedtab = substitute(s:expandedtab, '\t', repeat(' ', s:i), '')
+	let s:idx = stridx(s:expandedtab, "\t")
       endwhile
 
       " Output the text with the same synID, with class set to {s:id_name}
@@ -415,8 +733,22 @@
 " Finish with the last line
 exe s:newwin . "wincmd w"
 
+if exists("s:html_dynamic_folds")
+  " finish off any open folds
+  while !empty(s:foldstack)
+    exe "normal! a</span></span>"
+    call remove(s:foldstack, 0)
+  endwhile
+
+  " add fold column to the style list if not already there
+  let s:id = hlID('FoldColumn')
+  if stridx(s:idlist, "," . s:id . ",") == -1
+    let s:idlist = s:idlist . s:id . ","
+  endif
+endif
+
 " Close off the font tag that encapsulates the whole <body>
-if !exists("html_use_css")
+if !exists("s:html_use_css")
   exe "normal! a</font>\e"
 endif
 
@@ -428,7 +760,7 @@
 
 
 " Now, when we finally know which, we define the colors and styles
-if exists("html_use_css")
+if exists("s:html_use_css")
   1;/<style type="text/+1
 endif
 
@@ -445,7 +777,7 @@
 " Normal/global attributes
 " For Netscape 4, set <body> attributes too, though, strictly speaking, it's
 " incorrect.
-if exists("html_use_css")
+if exists("s:html_use_css")
   if exists("html_no_pre")
     execute "normal! A\nbody { color: " . s:fgc . "; background-color: " . s:bgc . "; font-family: ". s:htmlfont ."; }\e"
   else
@@ -455,12 +787,12 @@
     execute "normal! ^cwbody\e"
   endif
 else
-    execute '%s:<body>:<body bgcolor="' . s:bgc . '" text="' . s:fgc . '"><font face="'. s:htmlfont .'">'
+  execute '%s:<body>:<body bgcolor="' . s:bgc . '" text="' . s:fgc . '"><font face="'. s:htmlfont .'">'
 endif
 
 " Line numbering attributes
 if s:numblines
-  if exists("html_use_css")
+  if exists("s:html_use_css")
     execute "normal! A\n.lnr { " . s:CSS1(hlID("LineNr")) . "}\e"
   else
     execute '%s+^<span class="lnr">\([^<]*\)</span>+' . s:HtmlOpening(hlID("LineNr")) . '\1' . s:HtmlClosing(hlID("LineNr")) . '+g'
@@ -479,14 +811,14 @@
   " If the class has some attributes, export the style, otherwise DELETE all
   " its occurences to make the HTML shorter
   if s:attr != ""
-    if exists("html_use_css")
+    if exists("s:html_use_css")
       execute "normal! A\n." . s:id_name . " { " . s:attr . "}"
     else
       execute '%s+<span class="' . s:id_name . '">\([^<]*\)</span>+' . s:HtmlOpening(s:id) . '\1' . s:HtmlClosing(s:id) . '+g'
     endif
   else
     execute '%s+<span class="' . s:id_name . '">\([^<]*\)</span>+\1+ge'
-    if exists("html_use_css")
+    if exists("s:html_use_css")
       1;/<style type="text/+1
     endif
   endif
@@ -531,16 +863,28 @@
 " Save a little bit of memory (worth doing?)
 unlet s:htmlfont
 unlet s:old_et s:old_paste s:old_icon s:old_report s:old_title s:old_search
-unlet s:whatterm s:idlist s:lnum s:end s:fgc s:bgc s:old_magic
+unlet s:whatterm s:idlist s:lnum s:end s:margin s:fgc s:bgc s:old_magic
 unlet! s:col s:id s:attr s:len s:line s:new s:expandedtab s:numblines
-unlet s:orgwin s:newwin s:orgbufnr
+unlet! s:orgwin s:newwin s:orgbufnr s:idx s:i s:offset
 if !v:profiling
   delfunc s:HtmlColor
   delfunc s:HtmlFormat
   delfunc s:CSS1
-  if !exists("html_use_css")
+  if !exists("s:html_use_css")
     delfunc s:HtmlOpening
     delfunc s:HtmlClosing
   endif
 endif
-silent! unlet s:diffattr s:difffillchar s:foldfillchar s:HtmlSpace s:LeadingSpace s:HtmlEndline
+silent! unlet s:diffattr s:difffillchar s:foldfillchar s:HtmlSpace s:LeadingSpace s:HtmlEndline s:firstfold s:foldcolumn
+unlet s:foldstack s:allfolds s:foldId s:numcol
+
+if exists("s:html_dynamic_folds")
+  delfunc s:FoldCompare
+endif
+
+silent! unlet s:html_dynamic_folds s:html_hover_unfold s:html_use_css
+
+let &cpo = s:cpo_sav
+unlet s:cpo_sav
+
+" vim: noet sw=2 sts=2
diff -Nur runtime.patched/syntax/bzr.vim runtime/syntax/bzr.vim
--- runtime.patched/syntax/bzr.vim	2008-07-30 12:47:17.000000000 -0700
+++ runtime/syntax/bzr.vim	2009-01-28 08:23:50.000000000 -0800
@@ -2,9 +2,14 @@
 " Language:     Bazaar (bzr) commit file
 " Maintainer:   Dmitry Vasiliev <dima at hlabs dot spb dot ru>
 " URL:          http://www.hlabs.spb.ru/vim/bzr.vim
-" Revision:     $Id: bzr.vim 683 2008-07-30 11:52:38Z hdima $
+" Last Change:  2009-01-27
 " Filenames:    bzr_log.*
-" Version:      1.1
+" Version:      1.2.1
+"
+" Thanks:
+"
+"    Gioele Barabucci
+"       for idea of diff highlighting
 
 " For version 5.x: Clear all syntax items.
 " For version 6.x: Quit when a syntax file was already loaded.
@@ -14,13 +19,21 @@
   finish
 endif
 
-syn region bzrRegion   start="^-\{14} This line and the following will be ignored -\{14}$" end="\%$" contains=ALL contains=@NoSpell
+if exists("bzr_highlight_diff")
+  syn include @Diff syntax/diff.vim
+endif
+
 syn match bzrRemoved   "^removed:$" contained
 syn match bzrAdded     "^added:$" contained
 syn match bzrRenamed   "^renamed:$" contained
 syn match bzrModified  "^modified:$" contained
 syn match bzrUnchanged "^unchanged:$" contained
 syn match bzrUnknown   "^unknown:$" contained
+syn cluster Statuses contains=bzrRemoved,bzrAdded,bzrRenamed,bzrModified,bzrUnchanged,bzrUnknown
+if exists("bzr_highlight_diff")
+  syn cluster Statuses add=@Diff
+endif
+syn region bzrRegion   start="^-\{14} This line and the following will be ignored -\{14}$" end="\%$" contains=@NoSpell,@Statuses
 
 " Synchronization.
 syn sync clear
@@ -37,7 +50,6 @@
     command -nargs=+ HiLink hi def link <args>
   endif
 
-  HiLink bzrRegion     Comment
   HiLink bzrRemoved    Constant
   HiLink bzrAdded      Identifier
   HiLink bzrModified   Special
diff -Nur runtime.patched/syntax/c.vim runtime/syntax/c.vim
--- runtime.patched/syntax/c.vim	2008-03-19 13:44:52.000000000 -0700
+++ runtime/syntax/c.vim	2009-06-13 05:38:40.000000000 -0700
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:	C
 " Maintainer:	Bram Moolenaar <[email protected]>
-" Last Change:	2008 Mar 19
+" Last Change:	2009 Jun 03
 
 " Quit when a (custom) syntax file was already loaded
 if exists("b:current_syntax")
@@ -16,8 +16,13 @@
 
 syn keyword	cTodo		contained TODO FIXME XXX
 
+" It's easy to accidentally add a space after a backslash that was intended
+" for line continuation.  Some compilers allow it, which makes it
+" unpredicatable and should be avoided.
+syn match	cBadContinuation contained "\\\s\+$"
+
 " cCommentGroup allows adding matches for special things in comments
-syn cluster	cCommentGroup	contains=cTodo
+syn cluster	cCommentGroup	contains=cTodo,cBadContinuation
 
 " String and Character constants
 " Highlight special characters (those which have a backslash) differently
@@ -359,6 +364,7 @@
 hi def link cComment		Comment
 hi def link cSpecial		SpecialChar
 hi def link cTodo		Todo
+hi def link cBadContinuation	Error
 hi def link cCppSkip		cCppOut
 hi def link cCppOut2		cCppOut
 hi def link cCppOut		Comment
diff -Nur runtime.patched/syntax/config.vim runtime/syntax/config.vim
--- runtime.patched/syntax/config.vim	2004-06-07 07:32:35.000000000 -0700
+++ runtime/syntax/config.vim	2008-09-06 05:19:33.000000000 -0700
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:		configure.in script: M4 with sh
 " Maintainer:	Christian Hammesr <[email protected]>
-" Last Change:	2001 May 09
+" Last Change:	2008 Sep 03
 
 " Well, I actually even do not know much about m4. This explains why there
 " is probably very much missing here, yet !
@@ -26,7 +26,7 @@
 syn keyword configkeyword   if then else fi test for in do done
 syn keyword configspecial   cat rm eval
 syn region  configstring    start=+"+ skip=+\\"+ end=+"+
-syn region  configstring    start=+`+ skip=+\\'+ end=+'+
+syn region  configstring    start=+'+ skip=+\\'+ end=+'+
 syn region  configstring    start=+`+ skip=+\\'+ end=+`+
 
 " Define the default highlighting.
diff -Nur runtime.patched/syntax/cs.vim runtime/syntax/cs.vim
--- runtime.patched/syntax/cs.vim	2006-05-03 14:20:02.000000000 -0700
+++ runtime/syntax/cs.vim	2009-09-18 03:28:22.000000000 -0700
@@ -2,7 +2,7 @@
 " Language:	C#
 " Maintainer:	Anduin Withers <[email protected]>
 " Former Maintainer:	Johannes Zellner <[email protected]>
-" Last Change:	Sun Apr 30 19:26:18 PDT 2006
+" Last Change:	Fri Aug 14 13:56:37 PDT 2009
 " Filenames:	*.cs
 " $Id: cs.vim,v 1.4 2006/05/03 21:20:02 vimboss Exp $
 "
@@ -78,8 +78,8 @@
 syn cluster xmlTagHook add=csXmlTag
 
 syn match   csXmlCommentLeader	+\/\/\/+    contained
-syn match   csXmlComment	+\/\/\/.*$+ contains=csXmlCommentLeader,@csXml
-syntax include @csXml <sfile>:p:h/xml.vim
+syn match   csXmlComment	+\/\/\/.*$+ contains=csXmlCommentLeader,@csXml,@Spell
+syntax include @csXml syntax/xml.vim
 hi def link xmlRegion Comment
 
 
@@ -100,7 +100,7 @@
 " unicode characters
 syn match   csUnicodeNumber	+\\\(u\x\{4}\|U\x\{8}\)+ contained contains=csUnicodeSpecifier
 syn match   csUnicodeSpecifier	+\\[uU]+ contained
-syn region  csVerbatimString	start=+@"+ end=+"+ end=+$+ skip=+""+ contains=csVerbatimSpec,@Spell
+syn region  csVerbatimString	start=+@"+ end=+"+ skip=+""+ contains=csVerbatimSpec,@Spell
 syn match   csVerbatimSpec	+@"+he=s+1 contained
 syn region  csString		start=+"+  end=+"+ end=+$+ contains=csSpecialChar,csSpecialError,csUnicodeNumber,@Spell
 syn match   csCharacter		"'[^']*'" contains=csSpecialChar,csSpecialCharError
diff -Nur runtime.patched/syntax/debchangelog.vim runtime/syntax/debchangelog.vim
--- runtime.patched/syntax/debchangelog.vim	2008-07-06 10:51:40.000000000 -0700
+++ runtime/syntax/debchangelog.vim	2009-09-18 03:28:22.000000000 -0700
@@ -3,7 +3,7 @@
 " Maintainer:  Debian Vim Maintainers <[email protected]>
 " Former Maintainers: Gerfried Fuchs <[email protected]>
 "                     Wichert Akkerman <[email protected]>
-" Last Change: 2008-01-16
+" Last Change: 2009 Jun 05
 " URL: http://git.debian.org/?p=pkg-vim/vim.git;a=blob_plain;f=runtime/syntax/debchangelog.vim;hb=debian
 
 " Standard syntax initialization
@@ -17,9 +17,9 @@
 syn case ignore
 
 " Define some common expressions we can use later on
-syn match debchangelogName	contained "^[[:alpha:]][[:alnum:].+-]\+ "
+syn match debchangelogName	contained "^[[:alnum:]][[:alnum:].+-]\+ "
 syn match debchangelogUrgency	contained "; urgency=\(low\|medium\|high\|critical\|emergency\)\( \S.*\)\="
-syn match debchangelogTarget	contained "\v %(%(old)=stable|frozen|unstable|%(testing-|%(old)=stable-)=proposed-updates|experimental|%(sarge|etch|lenny)-%(backports|volatile)|%(testing|%(old)=stable)-security|%(dapper|feisty|gutsy|hardy|intrepid)%(-%(security|proposed|updates|backports|commercial|partner))=)+"
+syn match debchangelogTarget	contained "\v %(frozen|unstable|%(testing|%(old)=stable)%(-proposed-updates|-security)=|experimental|%(etch|lenny)-%(backports|volatile)|%(dapper|hardy|intrepid|jaunty|karmic)%(-%(security|proposed|updates|backports|commercial|partner))=)+"
 syn match debchangelogVersion	contained "(.\{-})"
 syn match debchangelogCloses	contained "closes:\_s*\(bug\)\=#\=\_s\=\d\+\(,\_s*\(bug\)\=#\=\_s\=\d\+\)*"
 syn match debchangelogLP	contained "\clp:\s\+#\d\+\(,\s*#\d\+\)*"
diff -Nur runtime.patched/syntax/debcontrol.vim runtime/syntax/debcontrol.vim
--- runtime.patched/syntax/debcontrol.vim	2008-07-06 10:51:40.000000000 -0700
+++ runtime/syntax/debcontrol.vim	2009-09-18 03:30:48.000000000 -0700
@@ -3,7 +3,7 @@
 " Maintainer:  Debian Vim Maintainers <[email protected]>
 " Former Maintainers: Gerfried Fuchs <[email protected]>
 "                     Wichert Akkerman <[email protected]>
-" Last Change: 2008-02-23
+" Last Change: 2009 July 14
 " URL: http://git.debian.org/?p=pkg-vim/vim.git;a=blob_plain;f=runtime/ftplugin/debcontrol.vim;hb=debian
 
 " Comments are very welcome - but please make sure that you are commenting on
@@ -28,10 +28,10 @@
 syn match debControlSpace " "
 
 " Define some common expressions we can use later on
-syn match debcontrolArchitecture contained "\(all\|any\|alpha\|amd64\|arm\(e[bl]\)\=\|hppa\|i386\|ia64\|m32r\|m68k\|mipsel\|mips\|powerpc\|ppc64\|s390x\=\|sh[34]\(eb\)\=\|sh\|sparc64\|sparc\|hurd-i386\|kfreebsd-\(i386\|gnu\)\|knetbsd-i386\|netbsd-\(alpha\|i386\)\)"
+syn match debcontrolArchitecture contained "\(all\|any\|alpha\|amd64\|arm\(e[bl]\)\=\|avr32\|hppa\|i386\|ia64\|m32r\|m68k\|mipsel\|mips\|powerpc\|ppc64\|s390x\=\|sh[34]\(eb\)\=\|sh\|sparc64\|sparc\|hurd-i386\|kfreebsd-\(i386\|amd64\|gnu\)\|knetbsd-i386\|netbsd-\(alpha\|i386\)\)"
 syn match debcontrolName contained "[a-z0-9][a-z0-9+.-]\+"
 syn match debcontrolPriority contained "\(extra\|important\|optional\|required\|standard\)"
-syn match debcontrolSection contained "\(\(contrib\|non-free\|non-US/main\|non-US/contrib\|non-US/non-free\|restricted\|universe\|multiverse\)/\)\=\(admin\|base\|comm\|devel\|doc\|editors\|electronics\|embedded\|games\|gnome\|graphics\|hamradio\|interpreters\|kde\|libs\|libdevel\|mail\|math\|misc\|net\|news\|oldlibs\|otherosfs\|perl\|python\|science\|shells\|sound\|text\|tex\|utils\|web\|x11\|debian-installer\)"
+syn match debcontrolSection contained "\v((contrib|non-free|non-US/main|non-US/contrib|non-US/non-free|restricted|universe|multiverse)/)?(admin|cli-mono|comm|database|debian-installer|debug|devel|doc|editors|electronics|embedded|fonts|games|gnome|gnustep|gnu-r|graphics|hamradio|haskell|httpd|interpreters|java|kde|kernel|libs|libdevel|lisp|localization|mail|math|misc|net|news|ocaml|oldlibs|otherosfs|perl|php|python|ruby|science|shells|sound|text|tex|utils|vcs|video|web|x11|xfce|zope)"
 syn match debcontrolPackageType contained "u\?deb"
 syn match debcontrolVariable contained "\${.\{-}}"
 syn match debcontrolDmUpload contained "\cyes"
@@ -41,7 +41,7 @@
 syn match debcontrolHTTPUrl contained "\vhttps?://[[:alnum:]][-[:alnum:]]*[[:alnum:]]?(\.[[:alnum:]][-[:alnum:]]*[[:alnum:]]?)*\.[[:alpha:]][-[:alnum:]]*[[:alpha:]]?(:\d+)?(/[^[:space:]]*)?$"
 syn match debcontrolVcsSvn contained "\vsvn%(\+ssh)?://[[:alnum:]][-[:alnum:]]*[[:alnum:]]?(\.[[:alnum:]][-[:alnum:]]*[[:alnum:]]?)*\.[[:alpha:]][-[:alnum:]]*[[:alpha:]]?(:\d+)?(/[^[:space:]]*)?$"
 syn match debcontrolVcsCvs contained "\v%(\-d *)?:pserver:[^@]+\@[[:alnum:]][-[:alnum:]]*[[:alnum:]]?(\.[[:alnum:]][-[:alnum:]]*[[:alnum:]]?)*\.[[:alpha:]][-[:alnum:]]*[[:alpha:]]?:/[^[:space:]]*%( [^[:space:]]+)?$"
-syn match debcontrolVcsGit contained "\vgit://[[:alnum:]][-[:alnum:]]*[[:alnum:]]?(\.[[:alnum:]][-[:alnum:]]*[[:alnum:]]?)*\.[[:alpha:]][-[:alnum:]]*[[:alpha:]]?(:\d+)?(/[^[:space:]]*)?$"
+syn match debcontrolVcsGit contained "\v%(git|http)://[[:alnum:]][-[:alnum:]]*[[:alnum:]]?(\.[[:alnum:]][-[:alnum:]]*[[:alnum:]]?)*\.[[:alpha:]][-[:alnum:]]*[[:alpha:]]?(:\d+)?(/[^[:space:]]*)?$"
 
 " An email address
 syn match	debcontrolEmail	"[_=[:alnum:]\.+-]\+@[[:alnum:]\./\-]\+"
@@ -53,7 +53,7 @@
 syn case ignore
 
 " List of all legal keys
-syn match debcontrolKey contained "^\(Source\|Package\|Section\|Priority\|Maintainer\|Uploaders\|Build-Depends\|Build-Conflicts\|Build-Depends-Indep\|Build-Conflicts-Indep\|Standards-Version\|Pre-Depends\|Depends\|Recommends\|Suggests\|Provides\|Replaces\|Conflicts\|Essential\|Architecture\|Description\|Bugs\|Origin\|Enhances\|Homepage\|\(XS-\)\=Vcs-\(Browser\|Arch\|Bzr\|Cvs\|Darcs\|Git\|Hg\|Mtn\|Svn\)\|XC-Package-Type\|\%(XS-\)\=DM-Upload-Allowed\): *"
+syn match debcontrolKey contained "^\%(Source\|Package\|Section\|Priority\|\%(XSBC-Original-\)\=Maintainer\|Uploaders\|Build-\%(Conflicts\|Depends\)\%(-Indep\)\=\|Standards-Version\|\%(Pre-\)\=Depends\|Recommends\|Suggests\|Provides\|Replaces\|Conflicts\|Enhances\|Essential\|Architecture\|Description\|Bugs\|Origin\|X[SB]-Python-Version\|Homepage\|\(XS-\)\=Vcs-\(Browser\|Arch\|Bzr\|Cvs\|Darcs\|Git\|Hg\|Mtn\|Svn\)\|XC-Package-Type\|\%(XS-\)\=DM-Upload-Allowed\): *"
 
 " Fields for which we do strict syntax checking
 syn region debcontrolStrictField start="^Architecture" end="$" contains=debcontrolKey,debcontrolArchitecture,debcontrolSpace oneline
@@ -62,15 +62,15 @@
 syn region debcontrolStrictField start="^Section" end="$" contains=debcontrolKey,debcontrolSection oneline
 syn region debcontrolStrictField start="^XC-Package-Type" end="$" contains=debcontrolKey,debcontrolPackageType oneline
 syn region debcontrolStrictField start="^Homepage" end="$" contains=debcontrolKey,debcontrolHTTPUrl oneline keepend
-syn region debcontrolStrictField start="^\%(XS-\)\?Vcs-\%(Browser\|Arch\|Bzr\|Darcs\|Hg\)" end="$" contains=debcontrolKey,debcontrolHTTPUrl oneline keepend
-syn region debcontrolStrictField start="^\%(XS-\)\?Vcs-Svn" end="$" contains=debcontrolKey,debcontrolVcsSvn,debcontrolHTTPUrl oneline keepend
-syn region debcontrolStrictField start="^\%(XS-\)\?Vcs-Cvs" end="$" contains=debcontrolKey,debcontrolVcsCvs oneline keepend
-syn region debcontrolStrictField start="^\%(XS-\)\?Vcs-Git" end="$" contains=debcontrolKey,debcontrolVcsGit oneline keepend
-syn region debcontrolStrictField start="^\%(XS-\)\?DM-Upload-Allowed" end="$" contains=debcontrolKey,debcontrolDmUpload oneline
+syn region debcontrolStrictField start="^\%(XS-\)\=Vcs-\%(Browser\|Arch\|Bzr\|Darcs\|Hg\)" end="$" contains=debcontrolKey,debcontrolHTTPUrl oneline keepend
+syn region debcontrolStrictField start="^\%(XS-\)\=Vcs-Svn" end="$" contains=debcontrolKey,debcontrolVcsSvn,debcontrolHTTPUrl oneline keepend
+syn region debcontrolStrictField start="^\%(XS-\)\=Vcs-Cvs" end="$" contains=debcontrolKey,debcontrolVcsCvs oneline keepend
+syn region debcontrolStrictField start="^\%(XS-\)\=Vcs-Git" end="$" contains=debcontrolKey,debcontrolVcsGit oneline keepend
+syn region debcontrolStrictField start="^\%(XS-\)\=DM-Upload-Allowed" end="$" contains=debcontrolKey,debcontrolDmUpload oneline
 
 " Catch-all for the other legal fields
-syn region debcontrolField start="^\(Maintainer\|Standards-Version\|Essential\|Bugs\|Origin\|X\(S\|B\)-Python-Version\|XSBC-Original-Maintainer\|\(XS-\)\?Vcs-Mtn\):" end="$" contains=debcontrolKey,debcontrolVariable,debcontrolEmail oneline
-syn region debcontrolMultiField start="^\(Build-\(Conflicts\|Depends\)\(-Indep\)\=\|\(Pre-\)\=Depends\|Recommends\|Suggests\|Provides\|Replaces\|Conflicts\|Enhances\|Uploaders\|Description\):" skip="^ " end="^$"me=s-1 end="^[^ ]"me=s-1 contains=debcontrolKey,debcontrolEmail,debcontrolVariable
+syn region debcontrolField start="^\%(\%(XSBC-Original-\)\=Maintainer\|Standards-Version\|Essential\|Bugs\|Origin\|X[SB]-Python-Version\|\%(XS-\)\=Vcs-Mtn\):" end="$" contains=debcontrolKey,debcontrolVariable,debcontrolEmail oneline
+syn region debcontrolMultiField start="^\%(Build-\%(Conflicts\|Depends\)\%(-Indep\)\=\|\%(Pre-\)\=Depends\|Recommends\|Suggests\|Provides\|Replaces\|Conflicts\|Enhances\|Uploaders\|Description\):" skip="^ " end="^$"me=s-1 end="^[^ #]"me=s-1 contains=debcontrolKey,debcontrolEmail,debcontrolVariable,debcontrolComment
 
 " Associate our matches and regions with pretty colours
 if version >= 508 || !exists("did_debcontrol_syn_inits")
diff -Nur runtime.patched/syntax/debsources.vim runtime/syntax/debsources.vim
--- runtime.patched/syntax/debsources.vim	2008-07-06 10:51:40.000000000 -0700
+++ runtime/syntax/debsources.vim	2009-09-18 03:28:22.000000000 -0700
@@ -2,7 +2,7 @@
 " Language:     Debian sources.list
 " Maintainer:   Debian Vim Maintainers <[email protected]>
 " Former Maintainer: Matthijs Mohlmann <[email protected]>
-" Last Change: 2008-04-25
+" Last Change: 2009 Apr 17
 " URL: http://git.debian.org/?p=pkg-vim/vim.git;a=blob_plain;f=runtime/syntax/debsources.vim;hb=debian
 
 " Standard syntax initialization
@@ -19,11 +19,11 @@
 syn match debsourcesKeyword        /\(deb-src\|deb\|main\|contrib\|non-free\|restricted\|universe\|multiverse\)/
 
 " Match comments
-syn match debsourcesComment        /#.*/
+syn match debsourcesComment        /#.*/  contains=@Spell
 
 " Match uri's
 syn match debsourcesUri            +\(http://\|ftp://\|[rs]sh://\|debtorrent://\|\(cdrom\|copy\|file\):\)[^' 	<>"]\++
-syn match debsourcesDistrKeyword   +\([[:alnum:]_./]*\)\(sarge\|etch\|lenny\|\(old\)\=stable\|testing\|unstable\|sid\|experimental\|dapper\|feisty\|gutsy\|hardy\|intrepid\)\([-[:alnum:]_./]*\)+
+syn match debsourcesDistrKeyword   +\([[:alnum:]_./]*\)\(etch\|lenny\|squeeze\|\(old\)\=stable\|testing\|unstable\|sid\|experimental\|dapper\|hardy\|intrepid\|jaunty\|karmic\)\([-[:alnum:]_./]*\)+
 
 " Associate our matches and regions with pretty colours
 hi def link debsourcesLine            Error
diff -Nur runtime.patched/syntax/django.vim runtime/syntax/django.vim
--- runtime.patched/syntax/django.vim	2007-05-06 03:32:18.000000000 -0700
+++ runtime/syntax/django.vim	2009-01-14 12:15:05.000000000 -0800
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:	Django template
 " Maintainer:	Dave Hodder <[email protected]>
-" Last Change:	2007 Apr 21
+" Last Change:	2008 Dec 18
 
 " For version 5.x: Clear all syntax items
 " For version 6.x: Quit when a syntax file was already loaded
@@ -18,8 +18,9 @@
 
 " Django template built-in tags and parameters
 " 'comment' doesn't appear here because it gets special treatment
+syn keyword djangoStatement contained autoescape on off endautoescape
 syn keyword djangoStatement contained and as block endblock by cycle debug else
-syn keyword djangoStatement contained extends filter endfilter firstof for
+syn keyword djangoStatement contained extends filter endfilter firstof for empty
 syn keyword djangoStatement contained endfor if endif ifchanged endifchanged
 syn keyword djangoStatement contained ifequal endifequal ifnotequal
 syn keyword djangoStatement contained endifnotequal in include load not now or
@@ -35,15 +36,15 @@
 " Django templete built-in filters
 syn keyword djangoFilter contained add addslashes capfirst center cut date
 syn keyword djangoFilter contained default default_if_none dictsort
-syn keyword djangoFilter contained dictsortreversed divisibleby escape
+syn keyword djangoFilter contained dictsortreversed divisibleby escape escapejs
 syn keyword djangoFilter contained filesizeformat first fix_ampersands
-syn keyword djangoFilter contained floatformat get_digit join length length_is
+syn keyword djangoFilter contained floatformat force_escape get_digit iriencode join last length length_is
 syn keyword djangoFilter contained linebreaks linebreaksbr linenumbers ljust
 syn keyword djangoFilter contained lower make_list phone2numeric pluralize
-syn keyword djangoFilter contained pprint random removetags rjust slice slugify
+syn keyword djangoFilter contained pprint random removetags rjust safe slice slugify
 syn keyword djangoFilter contained stringformat striptags
 syn keyword djangoFilter contained time timesince timeuntil title
-syn keyword djangoFilter contained truncatewords unordered_list upper urlencode
+syn keyword djangoFilter contained truncatewords truncatewords_html unordered_list upper urlencode
 syn keyword djangoFilter contained urlize urlizetrunc wordcount wordwrap yesno
 
 " Keywords to highlight within comments
diff -Nur runtime.patched/syntax/dosbatch.vim runtime/syntax/dosbatch.vim
--- runtime.patched/syntax/dosbatch.vim	2008-05-10 13:38:38.000000000 -0700
+++ runtime/syntax/dosbatch.vim	2009-09-18 03:28:22.000000000 -0700
@@ -2,7 +2,7 @@
 " Language:	MSDOS batch file (with NT command extensions)
 " Maintainer:	Mike Williams <[email protected]>
 " Filenames:    *.bat
-" Last Change:	10th May 2008
+" Last Change:	6th September 2009
 " Web Page:     http://www.eandem.co.uk/mrw/vim
 "
 " Options Flags:
@@ -36,7 +36,7 @@
 syn case match
 syn keyword dosbatchOperator    EQU NEQ LSS LEQ GTR GEQ
 syn case ignore
-syn match dosbatchOperator      "\s[-+\*/%]\s"
+syn match dosbatchOperator      "\s[-+\*/%!~]\s"
 syn match dosbatchOperator      "="
 syn match dosbatchOperator      "[-+\*/%]="
 syn match dosbatchOperator      "\s\(&\||\|^\|<<\|>>\)=\=\s"
@@ -51,10 +51,10 @@
 syn match dosbatchCmd		"(\s*'[^']*'"lc=1 contains=dosbatchString,dosbatchVariable,dosBatchArgument,@dosbatchNumber,dosbatchImplicit,dosbatchStatement,dosbatchConditional,dosbatchRepeat,dosbatchOperator
 
 " Numbers - surround with ws to not include in dir and filenames
-syn match dosbatchInteger       "[[:space:]=(/:]\d\+"lc=1
-syn match dosbatchHex		"[[:space:]=(/:]0x\x\+"lc=1
-syn match dosbatchBinary	"[[:space:]=(/:]0b[01]\+"lc=1
-syn match dosbatchOctal		"[[:space:]=(/:]0\o\+"lc=1
+syn match dosbatchInteger       "[[:space:]=(/:,!~-]\d\+"lc=1
+syn match dosbatchHex		"[[:space:]=(/:,!~-]0x\x\+"lc=1
+syn match dosbatchBinary	"[[:space:]=(/:,!~-]0b[01]\+"lc=1
+syn match dosbatchOctal		"[[:space:]=(/:,!~-]0\o\+"lc=1
 syn cluster dosbatchNumber      contains=dosbatchInteger,dosbatchHex,dosbatchBinary,dosbatchOctal
 
 " Command line switches
@@ -69,15 +69,15 @@
 syn match dosbatchIdentifier    contained "\s\h\w*\>"
 syn match dosbatchVariable	"%\h\w*%"
 syn match dosbatchVariable	"%\h\w*:\*\=[^=]*=[^%]*%"
-syn match dosbatchVariable	"%\h\w*:\~\d\+,\d\+%" contains=dosbatchInteger
+syn match dosbatchVariable	"%\h\w*:\~[-]\=\d\+\(,[-]\=\d\+\)\=%" contains=dosbatchInteger
 syn match dosbatchVariable	"!\h\w*!"
-syn match dosbatchVariable	"!\h\w*:\*\=[^=]*=[^%]*!"
-syn match dosbatchVariable	"!\h\w*:\~\d\+,\d\+!" contains=dosbatchInteger
+syn match dosbatchVariable	"!\h\w*:\*\=[^=]*=[^!]*!"
+syn match dosbatchVariable	"!\h\w*:\~[-]\=\d\+\(,[-]\=\d\+\)\=!" contains=dosbatchInteger
 syn match dosbatchSet		"\s\h\w*[+-]\==\{-1}" contains=dosbatchIdentifier,dosbatchOperator
 
 " Args to bat files and for loops, etc
 syn match dosbatchArgument	"%\(\d\|\*\)"
-syn match dosbatchArgument	"%%[a-z]\>"
+syn match dosbatchArgument	"%[a-z]\>"
 if dosbatch_cmdextversion == 1
   syn match dosbatchArgument	"%\~[fdpnxs]\+\(\($PATH:\)\=[a-z]\|\d\)\>"
 else
@@ -92,7 +92,9 @@
 
 " Comments - usual rem but also two colons as first non-space is an idiom
 syn match dosbatchComment	"^rem\($\|\s.*$\)"lc=3 contains=dosbatchTodo,dosbatchSpecialChar,@dosbatchNumber,dosbatchVariable,dosbatchArgument,@Spell
+syn match dosbatchComment	"^@rem\($\|\s.*$\)"lc=4 contains=dosbatchTodo,@dosbatchNumber,dosbatchVariable,dosbatchArgument,@Spell
 syn match dosbatchComment	"\srem\($\|\s.*$\)"lc=4 contains=dosbatchTodo,dosbatchSpecialChar,@dosbatchNumber,dosbatchVariable,dosbatchArgument,@Spell
+syn match dosbatchComment	"\s@rem\($\|\s.*$\)"lc=5 contains=dosbatchTodo,@dosbatchNumber,dosbatchVariable,dosbatchArgument,@Spell
 syn match dosbatchComment	"\s*:\s*:.*$" contains=dosbatchTodo,dosbatchSpecialChar,@dosbatchNumber,dosbatchVariable,dosbatchArgument,@Spell
 
 " Comments in ()'s - still to handle spaces before rem
diff -Nur runtime.patched/syntax/doxygen.vim runtime/syntax/doxygen.vim
--- runtime.patched/syntax/doxygen.vim	2008-07-22 11:41:00.000000000 -0700
+++ runtime/syntax/doxygen.vim	2009-01-28 08:23:36.000000000 -0800
@@ -2,8 +2,8 @@
 " Language:     doxygen on top of c, cpp, idl, java, php
 " Maintainer:   Michael Geddes <[email protected]>
 " Author:       Michael Geddes
-" Last Change:  July 2008
-" Version:      1.22
+" Last Change:  Jan 2009
+" Version:      1.23
 "
 " Copyright 2004-2008 Michael Geddes
 " Please feel free to use, modify & distribute all or part of this script,
@@ -239,7 +239,7 @@
   " #Link hilighting.
   syn match doxygenHashLink /\([a-zA-Z_][0-9a-zA-Z_]*\)\?#\(\.[0-9a-zA-Z_]\@=\|[a-zA-Z0-9_]\+\|::\|()\)\+/ contained contains=doxygenHashSpecial
   syn match doxygenHashSpecial /#/ contained
-  syn match doxygenHyperLink /\(\s\|^\s*\*\?\)\@<=\(http\|https\|ftp\):\/\/[-0-9a-zA-Z_?&=+#%/.!':;@]\+/ contained
+  syn match doxygenHyperLink /\(\s\|^\s*\*\?\)\@<=\(http\|https\|ftp\):\/\/[-0-9a-zA-Z_?&=+#%/.!':;@~]\+/ contained
 
   " Handle \page.  This does not use doxygenBrief.
   syn match doxygenPage "[\\@]page\>"me=s+1 contained skipwhite nextgroup=doxygenPagePage
diff -Nur runtime.patched/syntax/fortran.vim runtime/syntax/fortran.vim
--- runtime.patched/syntax/fortran.vim	2006-04-22 04:22:12.000000000 -0700
+++ runtime/syntax/fortran.vim	2008-11-06 08:05:04.000000000 -0800
@@ -2,7 +2,7 @@
 " Language:	Fortran95 (and Fortran90, Fortran77, F and elf90)
 " Version:	0.88
 " URL:		http://www.unb.ca/chem/ajit/syntax/fortran.vim
-" Last Change:	2006 Apr. 22
+" Last Change:	2008 Nov 01
 " Maintainer:	Ajit J. Thakkar (ajit AT unb.ca); <http://www.unb.ca/chem/ajit/>
 " Usage:	Do :help fortran-syntax from Vim
 " Credits:
@@ -300,7 +300,7 @@
     syn match fortranLabelError	"^.\{-,4}[^0-9 ]" contains=fortranTab
     syn match fortranLabelError	"^.\{4}\d\S"
   endif
-  syn match fortranComment		excludenl "^[!c*].*$" contains=@fortranCommentGroup
+  syn match fortranComment		excludenl "^[!c*].*$" contains=@fortranCommentGroup,@spell
   syn match fortranLeftMargin		transparent "^ \{5}"
   syn match fortranContinueMark		display "^.\{5}\S"lc=5
 else
diff -Nur runtime.patched/syntax/fstab.vim runtime/syntax/fstab.vim
--- runtime.patched/syntax/fstab.vim	2008-01-16 12:52:16.000000000 -0800
+++ runtime/syntax/fstab.vim	2009-02-12 14:23:26.000000000 -0800
@@ -2,14 +2,15 @@
 " Language: fstab file
 " Maintaner: Radu Dineiu <[email protected]>
 " URL: http://ld.yi.org/vim/fstab.vim
-" Last Change: 2008 Jan 16
-" Version: 0.92
+" Last Change: 2009 Feb 04
+" Version: 0.93
 "
 " Credits:
 "   David Necas (Yeti) <[email protected]>
 "   Stefano Zacchiroli <[email protected]>
 "   Georgi Georgiev <[email protected]>
 "   James Vega <[email protected]>
+"   Elias Probst <[email protected]>
 "
 " Options:
 "   let fstab_unknown_fs_errors = 1
@@ -46,7 +47,7 @@
 " Type
 syn cluster fsTypeCluster contains=fsTypeKeyword,fsTypeUnknown
 syn match fsTypeUnknown /\s\+\zs\w\+/ contained
-syn keyword fsTypeKeyword contained adfs ados affs atfs audiofs auto autofs befs bfs cd9660 cfs cifs coda cramfs devfs devpts e2compr efs ext2 ext2fs ext3 fdesc ffs filecore fuse hfs hpfs iso9660 jffs jffs2 jfs kernfs lfs linprocfs mfs minix msdos ncpfs nfs none ntfs null nwfs overlay ovlfs portal proc procfs ptyfs qnx4 reiserfs romfs shm smbfs sshfs std subfs swap sysfs sysv tcfs tmpfs udf ufs umap umsdos union usbfs userfs vfat vs3fs vxfs wrapfs wvfs xfs zisofs
+syn keyword fsTypeKeyword contained adfs ados affs atfs audiofs auto autofs befs bfs cd9660 cfs cifs coda cramfs devfs devpts e2compr efs ext2 ext2fs ext3 ext4 fdesc ffs filecore fuse hfs hpfs iso9660 jffs jffs2 jfs kernfs lfs linprocfs mfs minix msdos ncpfs nfs none ntfs null nwfs overlay ovlfs portal proc procfs ptyfs qnx4 reiserfs romfs shm smbfs sshfs std subfs swap sysfs sysv tcfs tmpfs udf ufs umap umsdos union usbfs userfs vfat vs3fs vxfs wrapfs wvfs xfs zisofs
 
 " Options
 " -------
@@ -91,7 +92,21 @@
 syn match fsOptionsKeywords contained /\<commit=/ nextgroup=fsOptionsNumber
 syn keyword fsOptionsExt3Journal contained update inum
 syn keyword fsOptionsExt3Data contained journal ordered writeback
-syn keyword fsOptionsKeywords contained noload
+syn keyword fsOptionsKeywords contained noload user_xattr nouser_xattr acl noacl
+
+" Options: ext4
+syn match fsOptionsKeywords contained /\<journal=/ nextgroup=fsOptionsExt4Journal
+syn match fsOptionsKeywords contained /\<data=/ nextgroup=fsOptionsExt4Data
+syn match fsOptionsKeywords contained /\<barrier=/ nextgroup=fsOptionsExt4Barrier
+syn match fsOptionsKeywords contained /\<journal_dev=/ nextgroup=fsOptionsNumber
+syn match fsOptionsKeywords contained /\<resuid=/ nextgroup=fsOptionsNumber
+syn match fsOptionsKeywords contained /\<resgid=/ nextgroup=fsOptionsNumber
+syn match fsOptionsKeywords contained /\<sb=/ nextgroup=fsOptionsNumber
+syn match fsOptionsKeywords contained /\<commit=/ nextgroup=fsOptionsNumber
+syn keyword fsOptionsExt4Journal contained update inum
+syn keyword fsOptionsExt4Data contained journal ordered writeback
+syn match fsOptionsExt4Barrier /[0-1]/
+syn keyword fsOptionsKeywords contained noload extents orlov oldalloc user_xattr nouser_xattr acl noacl reservation noreservation bsddf minixdf check=none nocheck debug grpid nogroupid sysvgroups bsdgroups quota noquota grpquota usrquota bh nobh
 
 " Options: fat
 syn match fsOptionsKeywords contained /\<blocksize=/ nextgroup=fsOptionsSize
@@ -241,6 +256,9 @@
 	HiLink fsOptionsExt2Errors String
 	HiLink fsOptionsExt3Journal String
 	HiLink fsOptionsExt3Data String
+	HiLink fsOptionsExt4Journal String
+	HiLink fsOptionsExt4Data String
+	HiLink fsOptionsExt4Barrier Number
 	HiLink fsOptionsFatCheck String
 	HiLink fsOptionsConv String
 	HiLink fsOptionsFatType Number
diff -Nur runtime.patched/syntax/gdb.vim runtime/syntax/gdb.vim
--- runtime.patched/syntax/gdb.vim	2004-06-07 07:32:35.000000000 -0700
+++ runtime/syntax/gdb.vim	2009-06-03 03:05:43.000000000 -0700
@@ -2,7 +2,7 @@
 " Language:	GDB command files
 " Maintainer:	Claudio Fleiner <[email protected]>
 " URL:		http://www.fleiner.com/vim/syntax/gdb.vim
-" Last Change:	2003 Jan 04
+" Last Change:	2009 May 25
 
 " For version 5.x: Clear all syntax items
 " For version 6.x: Quit when a syntax file was already loaded
@@ -35,7 +35,7 @@
 " some commonly used abreviations
 syn keyword gdbStatement c disp undisp disas p
 
-syn region gdbDocument matchgroup=gdbFuncDef start="\<document\>.*$" matchgroup=gdbFuncDef end="^end$"
+syn region gdbDocument matchgroup=gdbFuncDef start="\<document\>.*$" matchgroup=gdbFuncDef end="^end\s*$"
 
 syn match gdbStatement "\<add-shared-symbol-files\>"
 syn match gdbStatement "\<add-symbol-file\>"
diff -Nur runtime.patched/syntax/haskell.vim runtime/syntax/haskell.vim
--- runtime.patched/syntax/haskell.vim	2004-06-07 07:32:35.000000000 -0700
+++ runtime/syntax/haskell.vim	2009-01-14 12:15:20.000000000 -0800
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:		Haskell
 " Maintainer:		Haskell Cafe mailinglist <[email protected]>
-" Last Change:		2004 Feb 23
+" Last Change:		2008 Dec 15
 " Original Author:	John Williams <[email protected]>
 "
 " Thanks to Ryan Crumley for suggestions and John Meacham for
@@ -30,6 +30,7 @@
 "	       in eol comment character class
 " 2004 Feb 23: Made the leading comments somewhat clearer where it comes
 "	       to attribution of work.
+" 2008 Dec 15: Added comments as contained element in import statements
 
 " Remove any old syntax stuff hanging around
 if version < 600
@@ -67,7 +68,7 @@
 " because otherwise they would match as keywords at the start of a
 " "literate" comment (see lhs.vim).
 syn match hsModule		"\<module\>"
-syn match hsImport		"\<import\>.*"he=s+6 contains=hsImportMod
+syn match hsImport		"\<import\>.*"he=s+6 contains=hsImportMod,hsLineComment,hsBlockComment
 syn match hsImportMod		contained "\<\(as\|qualified\|hiding\)\>"
 syn match hsInfix		"\<\(infix\|infixl\|infixr\)\>"
 syn match hsStructure		"\<\(class\|data\|deriving\|instance\|default\|where\)\>"
diff -Nur runtime.patched/syntax/help.vim runtime/syntax/help.vim
--- runtime.patched/syntax/help.vim	2006-05-12 23:42:22.000000000 -0700
+++ runtime/syntax/help.vim	2009-06-03 03:07:39.000000000 -0700
@@ -1,14 +1,14 @@
 " Vim syntax file
 " Language:	Vim help file
 " Maintainer:	Bram Moolenaar ([email protected])
-" Last Change:	2006 May 13
+" Last Change:	2009 May 18
 
 " Quit when a (custom) syntax file was already loaded
 if exists("b:current_syntax")
   finish
 endif
 
-syn match helpHeadline		"^[-A-Z .]\+[ \t]\+\*"me=e-1
+syn match helpHeadline		"^[-A-Z .][-A-Z0-9 .()]*[ \t]\+\*"me=e-1
 syn match helpSectionDelim	"^=\{3,}.*===$"
 syn match helpSectionDelim	"^-\{3,}.*--$"
 syn region helpExample		matchgroup=helpIgnore start=" >$" start="^>$" end="^[^ \t]"me=e-1 end="^<"
diff -Nur runtime.patched/syntax/java.vim runtime/syntax/java.vim
--- runtime.patched/syntax/java.vim	2007-12-20 15:14:48.000000000 -0800
+++ runtime/syntax/java.vim	2009-03-22 12:39:44.000000000 -0700
@@ -2,7 +2,7 @@
 " Language:     Java
 " Maintainer:   Claudio Fleiner <[email protected]>
 " URL:		http://www.fleiner.com/vim/syntax/java.vim
-" Last Change:  2007 Dec 21
+" Last Change:  2009 Mar 14
 
 " Please check :help java.vim for comments on some of the options available.
 
@@ -15,6 +15,7 @@
   endif
   " we define it here so that included files can test for it
   let main_syntax='java'
+  syn region javaFold start="{" end="}" transparent fold
 endif
 
 " don't use standard HiLink, it will not work with included syntax files
@@ -58,7 +59,7 @@
 syn keyword javaClassDecl	enum
 syn match   javaClassDecl	"^class\>"
 syn match   javaClassDecl	"[^.]\s*\<class\>"ms=s+1
-syn match   javaAnnotation      "@[_$a-zA-Z][_$a-zA-Z0-9_]*\>"
+syn match   javaAnnotation      "@\([_$a-zA-Z][_$a-zA-Z0-9]*\.\)*[_$a-zA-Z][_$a-zA-Z0-9]*\>"
 syn match   javaClassDecl       "@interface\>"
 syn keyword javaBranch		break continue nextgroup=javaUserLabelRef skipwhite
 syn match   javaUserLabelRef	"\k\+" contained
@@ -121,11 +122,6 @@
 syn keyword javaLabel		default
 
 if !exists("java_allow_cpp_keywords")
-  " The default used to be to highlight C++ keywords.  But several people
-  " don't like that, so default to not highlighting these.
-  let java_allow_cpp_keywords = 1
-endif
-if !java_allow_cpp_keywords
   syn keyword javaError auto delete extern friend inline redeclared
   syn keyword javaError register signed sizeof struct template typedef union
   syn keyword javaError unsigned operator
@@ -161,6 +157,11 @@
   " syntax coloring for javadoc comments (HTML)
   syntax include @javaHtml <sfile>:p:h/html.vim
   unlet b:current_syntax
+  " HTML enables spell checking for all text that is not in a syntax item. This
+  " is wrong for Java (all identifiers would be spell-checked), so it's undone
+  " here.
+  syntax spell default
+
   syn region  javaDocComment    start="/\*\*"  end="\*/" keepend contains=javaCommentTitle,@javaHtml,javaDocTags,javaDocSeeTag,javaTodo,@Spell
   syn region  javaCommentTitle  contained matchgroup=javaDocComment start="/\*\*"   matchgroup=javaCommentTitle keepend end="\.$" end="\.[ \t\r<&]"me=e-1 end="[^{]@"me=s-2,he=s-1 end="\*/"me=s-1,he=s-1 contains=@javaHtml,javaCommentStar,javaTodo,@Spell,javaDocTags,javaDocSeeTag
 
@@ -179,7 +180,7 @@
 " Strings and constants
 syn match   javaSpecialError     contained "\\."
 syn match   javaSpecialCharError contained "[^']"
-syn match   javaSpecialChar      contained "\\\([4-9]\d\|[0-3]\d\d\|[\"\\'ntbrf]\|u\x\{4\}\)"
+syn match   javaSpecialChar      contained "\\\([4-9]\d\|[0-3]\d\d\|[\"\\'ntbrf]\|u\+\x\{4\}\)"
 syn region  javaString		start=+"+ end=+"+ end=+$+ contains=javaSpecialChar,javaSpecialError,@Spell
 " next line disabled, it can cause a crash for a long line
 "syn match   javaStringError	  +"\([^"\\]\|\\.\)*$+
@@ -192,7 +193,7 @@
 syn match   javaNumber		 "\<\d\+\([eE][-+]\=\d\+\)\=[fFdD]\>"
 
 " unicode characters
-syn match   javaSpecial "\\u\d\{4\}"
+syn match   javaSpecial "\\u\+\d\{4\}"
 
 syn cluster javaTop add=javaString,javaCharacter,javaNumber,javaSpecial,javaStringError
 
diff -Nur runtime.patched/syntax/kconfig.vim runtime/syntax/kconfig.vim
--- runtime.patched/syntax/kconfig.vim	2006-04-19 13:49:04.000000000 -0700
+++ runtime/syntax/kconfig.vim	2009-06-03 03:05:43.000000000 -0700
@@ -1,6 +1,6 @@
 " Vim syntax file
 " Maintainer:       Nikolai Weibull <[email protected]>
-" Latest Revision:  2006-04-14
+" Latest Revision:  2009-05-25
 
 if exists("b:current_syntax")
   finish
@@ -666,9 +666,9 @@
 
 syn match   kconfigComment            display '#.*$' contains=kconfigTodo
 
-syn keyword kconfigKeyword            config menuconfig comment menu mainmenu
+syn keyword kconfigKeyword            config menuconfig comment mainmenu
 
-syn keyword kconfigConditional        choice endchoice if endif
+syn keyword kconfigConditional        menu endmenu choice endchoice if endif
 
 syn keyword kconfigPreProc            source
                                       \ nextgroup=kconfigPath
diff -Nur runtime.patched/syntax/lex.vim runtime/syntax/lex.vim
--- runtime.patched/syntax/lex.vim	2005-09-06 10:27:26.000000000 -0700
+++ runtime/syntax/lex.vim	2009-10-08 14:18:57.000000000 -0700
@@ -1,8 +1,8 @@
 " Vim syntax file
 " Language:	Lex
-" Maintainer:	Dr. Charles E. Campbell, Jr. <[email protected]>
-" Last Change:	Sep 06, 2005
-" Version:	7
+" Maintainer:	Charles E. Campbell, Jr. <[email protected]>
+" Last Change:	Sep 11, 2009
+" Version:	10
 " URL:	http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax
 "
 " Option:
@@ -16,7 +16,7 @@
   finish
 endif
 
-" Read the C syntax to start with
+" Read the C/C++ syntax to start with
 if version >= 600
   if exists("lex_uses_cpp")
     runtime! syntax/cpp.vim
@@ -36,32 +36,60 @@
 " --- Lex stuff ---
 " --- ========= ---
 
-"I'd prefer to use lex.* , but it doesn't handle forward definitions yet
+"I'd prefer to use lex.* , but vim doesn't handle forward definitions yet
 syn cluster lexListGroup		contains=lexAbbrvBlock,lexAbbrv,lexAbbrv,lexAbbrvRegExp,lexInclude,lexPatBlock,lexPat,lexBrace,lexPatString,lexPatTag,lexPatTag,lexPatComment,lexPatCodeLine,lexMorePat,lexPatSep,lexSlashQuote,lexPatCode,cInParen,cUserLabel,cOctalZero,cCppSkip,cErrInBracket,cErrInParen,cOctalError,cCppOut2,cCommentStartError,cParenError
-syn cluster lexListPatCodeGroup	contains=lexAbbrvBlock,lexAbbrv,lexAbbrv,lexAbbrvRegExp,lexInclude,lexPatBlock,lexPat,lexBrace,lexPatTag,lexPatTag,lexPatComment,lexPatCodeLine,lexMorePat,lexPatSep,lexSlashQuote,cInParen,cUserLabel,cOctalZero,cCppSkip,cErrInBracket,cErrInParen,cOctalError,cCppOut2,cCommentStartError,cParenError
+syn cluster lexListPatCodeGroup	contains=lexAbbrvBlock,lexAbbrv,lexAbbrv,lexAbbrvRegExp,lexInclude,lexPatBlock,lexPat,lexBrace,lexPatTag,lexPatTag,lexPatTagZoneStart,lexPatComment,lexPatCodeLine,lexMorePat,lexPatSep,lexSlashQuote,cInParen,cUserLabel,cOctalZero,cCppSkip,cErrInBracket,cErrInParen,cOctalError,cCppOut2,cCommentStartError,cParenError
 
 " Abbreviations Section
-syn region lexAbbrvBlock	start="^\(\h\+\s\|%{\)" end="^\ze%%$"	skipnl	nextgroup=lexPatBlock contains=lexAbbrv,lexInclude,lexAbbrvComment,lexStartState
+if has("folding")
+ syn region lexAbbrvBlock	fold start="^\(\h\+\s\|%{\)"	end="^\ze%%$"	skipnl	nextgroup=lexPatBlock contains=lexAbbrv,lexInclude,lexAbbrvComment,lexStartState
+else
+ syn region lexAbbrvBlock	start="^\(\h\+\s\|%{\)"	end="^\ze%%$"	skipnl	nextgroup=lexPatBlock contains=lexAbbrv,lexInclude,lexAbbrvComment,lexStartState
+endif
 syn match  lexAbbrv		"^\I\i*\s"me=e-1			skipwhite	contained nextgroup=lexAbbrvRegExp
 syn match  lexAbbrv		"^%[sx]"					contained
 syn match  lexAbbrvRegExp	"\s\S.*$"lc=1				contained nextgroup=lexAbbrv,lexInclude
-syn region lexInclude	matchgroup=lexSep	start="^%{" end="%}"	contained	contains=ALLBUT,@lexListGroup
-syn region lexAbbrvComment	start="^\s\+/\*"	end="\*/"			contains=@Spell
-syn region lexStartState	matchgroup=lexAbbrv	start="^%\a\+"	end="$"			contained
+if has("folding")
+ syn region lexInclude	fold matchgroup=lexSep	start="^%{"	end="%}"	contained	contains=ALLBUT,@lexListGroup
+ syn region lexAbbrvComment	fold			start="^\s\+/\*"	end="\*/"	contains=@Spell
+ syn region lexStartState	fold matchgroup=lexAbbrv	start="^%\a\+"	end="$"	contained
+else
+ syn region lexInclude	matchgroup=lexSep		start="^%{"	end="%}"	contained	contains=ALLBUT,@lexListGroup
+ syn region lexAbbrvComment				start="^\s\+/\*"	end="\*/"	contains=@Spell
+ syn region lexStartState	matchgroup=lexAbbrv		start="^%\a\+"	end="$"	contained
+endif
 
 "%% : Patterns {Actions}
-syn region lexPatBlock	matchgroup=Todo	start="^%%$" matchgroup=Todo end="^%%$"	skipnl skipwhite contains=lexPat,lexPatTag,lexPatComment
-syn region lexPat		start=+\S+ skip="\\\\\|\\."	end="\s"me=e-1	contained nextgroup=lexMorePat,lexPatSep contains=lexPatString,lexSlashQuote,lexBrace
-syn region lexBrace	start="\[" skip=+\\\\\|\\+		end="]"		contained
-syn region lexPatString	matchgroup=String start=+"+	skip=+\\\\\|\\"+	matchgroup=String end=+"+	contained
-syn match  lexPatTag	"^<\I\i*\(,\I\i*\)*>*"			contained nextgroup=lexPat,lexPatTag,lexMorePat,lexPatSep
+if has("folding")
+ syn region lexPatBlock	fold matchgroup=Todo	start="^%%$" matchgroup=Todo	end="^%%$"	skipnl skipwhite	contains=lexPatTag,lexPatTagZone,lexPatComment,lexPat
+ syn region lexPat		fold			start=+\S+ skip="\\\\\|\\."	end="\s"me=e-1		contained nextgroup=lexMorePat,lexPatSep contains=lexPatTag,lexPatString,lexSlashQuote,lexBrace
+ syn region lexBrace	fold			start="\[" skip=+\\\\\|\\+	end="]"			contained
+ syn region lexPatString	fold matchgroup=String	start=+"+	skip=+\\\\\|\\"+	matchgroup=String end=+"+	contained
+else
+ syn region lexPatBlock	matchgroup=Todo		start="^%%$" matchgroup=Todo	end="^%%$"	skipnl skipwhite	contains=lexPatTag,lexPatTagZone,lexPatComment,lexPat
+ syn region lexPat					start=+\S+ skip="\\\\\|\\."	end="\s"me=e-1		contained nextgroup=lexMorePat,lexPatSep contains=lexPatTag,lexPatString,lexSlashQuote,lexBrace
+ syn region lexBrace				start="\[" skip=+\\\\\|\\+	end="]"			contained
+ syn region lexPatString	matchgroup=String		start=+"+	skip=+\\\\\|\\"+	matchgroup=String end=+"+	contained
+endif
+syn match  lexPatTag	"^<\I\i*\(,\I\i*\)*>"			contained nextgroup=lexPat,lexPatTag,lexMorePat,lexPatSep
+syn match  lexPatTagZone	"^<\I\i*\(,\I\i*\)*>\s*\ze{"		contained nextgroup=lexPatTagZoneStart
 syn match  lexPatTag	+^<\I\i*\(,\I\i*\)*>*\(\\\\\)*\\"+		contained nextgroup=lexPat,lexPatTag,lexMorePat,lexPatSep
-syn region lexPatComment	start="^\s*/\*" end="\*/"		skipnl	contained contains=cTodo skipwhite nextgroup=lexPatComment,lexPat,@Spell
+if has("folding")
+ syn region  lexPatTagZoneStart matchgroup=lexPatTag	fold	start='{' end='}'	contained contains=lexPat,lexPatComment
+ syn region lexPatComment	start="\s\+/\*" end="\*/"	fold	skipnl	contained contains=cTodo skipwhite nextgroup=lexPatComment,lexPat,@Spell
+else
+ syn region  lexPatTagZoneStart matchgroup=lexPatTag		start='{' end='}'	contained contains=lexPat,lexPatComment
+ syn region lexPatComment	start="\s\+/\*" end="\*/"		skipnl	contained contains=cTodo skipwhite nextgroup=lexPatComment,lexPat,@Spell
+endif
 syn match  lexPatCodeLine	".*$"					contained contains=ALLBUT,@lexListGroup
 syn match  lexMorePat	"\s*|\s*$"			skipnl	contained nextgroup=lexPat,lexPatTag,lexPatComment
 syn match  lexPatSep	"\s\+"					contained nextgroup=lexMorePat,lexPatCode,lexPatCodeLine
 syn match  lexSlashQuote	+\(\\\\\)*\\"+				contained
-syn region lexPatCode matchgroup=Delimiter start="{" matchgroup=Delimiter end="}"	skipnl contained contains=ALLBUT,@lexListPatCodeGroup
+if has("folding")
+ syn region lexPatCode matchgroup=Delimiter start="{" end="}"	fold	skipnl contained contains=ALLBUT,@lexListPatCodeGroup
+else
+ syn region lexPatCode matchgroup=Delimiter start="{" end="}"		skipnl contained contains=ALLBUT,@lexListPatCodeGroup
+endif
 
 syn keyword lexCFunctions	BEGIN	input	unput	woutput	yyleng	yylook	yytext
 syn keyword lexCFunctions	ECHO	output	winput	wunput	yyless	yymore	yywrap
@@ -80,9 +108,10 @@
 syn sync match lexSyncPat	groupthere lexPatBlock	"^%%$"
 
 " The default highlighting.
-hi def link lexSlashQuote	lexPat
-hi def link lexBrace	lexPat
 hi def link lexAbbrvComment	lexPatComment
+hi def link lexBrace	lexPat
+hi def link lexPatTagZone	lexPatTag
+hi def link lexSlashQuote	lexPat
 
 hi def link lexAbbrvRegExp	Macro
 hi def link lexAbbrv	SpecialChar
diff -Nur runtime.patched/syntax/lhaskell.vim runtime/syntax/lhaskell.vim
--- runtime.patched/syntax/lhaskell.vim	2008-07-01 10:47:29.000000000 -0700
+++ runtime/syntax/lhaskell.vim	2009-05-14 11:53:07.000000000 -0700
@@ -4,8 +4,8 @@
 "			\begin{code} \end{code} blocks
 " Maintainer:		Haskell Cafe mailinglist <[email protected]>
 " Original Author:	Arthur van Leeuwen <[email protected]>
-" Last Change:		2008 Jul 01
-" Version:		1.02
+" Last Change:		2009 May 08
+" Version:		1.04
 "
 " Thanks to Ian Lynagh for thoughtful comments on initial versions and
 " for the inspiration for writing this in the first place.
@@ -29,8 +29,10 @@
 " 2004 February 20: Cleaned up the guessing and overriding a bit
 " 2004 February 23: Cleaned up syntax highlighting for \begin{code} and
 "		    \end{code}, added some clarification to the attributions
-" 2008 July 1:      Removed % from guess list, as it totally breaks  plain
-"		    text markup guessing
+" 2008 July 1:      Removed % from guess list, as it totally breaks plain
+"                   text markup guessing
+" 2009 April 29:    Fixed highlighting breakage in TeX mode, 
+"                   thanks to Kalman Noel
 "
 
 
@@ -73,14 +75,14 @@
 "   - \begin{env}       (for env != code)
 "   - \part, \chapter, \section, \subsection, \subsubsection, etc
 if b:lhs_markup == "unknown"
-    if search('\\documentclass\|\\begin{\(code}\)\@!\|\\\(sub \)*section\|\\chapter|\\part','W') != 0
+    if search('\\documentclass\|\\begin{\(code}\)\@!\|\\\(sub\)*section\|\\chapter|\\part','W') != 0
 	let b:lhs_markup = "tex"
     else
 	let b:lhs_markup = "plain"
     endif
 endif
 
-" If user wants us to highlight TeX syntax or guess thinks it's TeX,  read it.
+" If user wants us to highlight TeX syntax or guess thinks it's TeX, read it.
 if b:lhs_markup == "tex"
     if version < 600
 	source <sfile>:p:h/tex.vim
@@ -91,6 +93,9 @@
 	" Tex.vim removes "_" from 'iskeyword', but we need it for Haskell.
 	setlocal isk+=_
     endif
+    syntax cluster lhsTeXContainer contains=tex.*Zone,texAbstract
+else
+    syntax cluster lhsTeXContainer contains=.*
 endif
 
 " Literate Haskell is Haskell in between text, so at least read Haskell
@@ -101,8 +106,8 @@
     syntax include @haskellTop syntax/haskell.vim
 endif
 
-syntax region lhsHaskellBirdTrack start="^>" end="\%(^[^>]\)\@=" contains=@haskellTop,lhsBirdTrack
-syntax region lhsHaskellBeginEndBlock start="^\\begin{code}\s*$" matchgroup=NONE end="\%(^\\end{code}.*$\)\@=" contains=@haskellTop,@beginCode
+syntax region lhsHaskellBirdTrack start="^>" end="\%(^[^>]\)\@=" contains=@haskellTop,lhsBirdTrack containedin=@lhsTeXContainer
+syntax region lhsHaskellBeginEndBlock start="^\\begin{code}\s*$" matchgroup=NONE end="\%(^\\end{code}.*$\)\@=" contains=@haskellTop,@beginCode containedin=@lhsTeXContainer
 
 syntax match lhsBirdTrack "^>" contained
 
diff -Nur runtime.patched/syntax/lilo.vim runtime/syntax/lilo.vim
--- runtime.patched/syntax/lilo.vim	2004-07-20 10:53:05.000000000 -0700
+++ runtime/syntax/lilo.vim	2009-01-28 08:24:01.000000000 -0800
@@ -1,10 +1,8 @@
 " Vim syntax file
-" This is a GENERATED FILE. Please always refer to source file at the URI below.
 " Language: lilo configuration (lilo.conf)
-" Maintainer: David Ne\v{c}as (Yeti) <[email protected]>
-" Last Change: 2004-07-20
-" URL: http://trific.ath.cx/Ftp/vim/syntax/lilo.vim
-
+" Maintainer: help wanted!
+" Previous Maintainer: David Necas (Yeti) <[email protected]>
+" Last Change: 2009-01-27
 
 " Setup
 if version >= 600
@@ -64,7 +62,7 @@
 
 " String
 syn keyword liloOption menu-title nextgroup=liloEqString,liloEqStringComment,liloError skipwhite skipempty
-syn keyword liloKernelOpt append nextgroup=liloEqString,liloEqStringComment,liloError skipwhite skipempty
+syn keyword liloKernelOpt append addappend nextgroup=liloEqString,liloEqStringComment,liloError skipwhite skipempty
 syn keyword liloImageOpt fallback literal nextgroup=liloEqString,liloEqStringComment,liloError skipwhite skipempty
 
 " Hex number
diff -Nur runtime.patched/syntax/lisp.vim runtime/syntax/lisp.vim
--- runtime.patched/syntax/lisp.vim	2007-11-14 08:37:14.000000000 -0800
+++ runtime/syntax/lisp.vim	2009-03-22 12:39:57.000000000 -0700
@@ -1,8 +1,8 @@
 " Vim syntax file
 " Language:    Lisp
 " Maintainer:  Dr. Charles E. Campbell, Jr. <[email protected]>
-" Last Change: Oct 19, 2007
-" Version:     20
+" Last Change: Mar 05, 2009
+" Version:     21
 " URL:	       http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax
 "
 "  Thanks to F Xavier Noria for a list of 978 Common Lisp symbols
@@ -534,7 +534,8 @@
 
 " ---------------------------------------------------------------------
 " Numbers: supporting integers and floating point numbers {{{1
-syn match lispNumber		"-\=\(\.\d\+\|\d\+\(\.\d*\)\=\)\(e[-+]\=\d\+\)\="
+syn match lispNumber		"-\=\(\.\d\+\|\d\+\(\.\d*\)\=\)\([dDeEfFlL][-+]\=\d\+\)\="
+syn match lispNumber		"-\=\(\d\+/\d\+\)"
 
 syn match lispSpecial		"\*\w[a-z_0-9-]*\*"
 syn match lispSpecial		!#|[^()'`,"; \t]\+|#!
diff -Nur runtime.patched/syntax/logtalk.vim runtime/syntax/logtalk.vim
--- runtime.patched/syntax/logtalk.vim	2008-07-06 11:09:17.000000000 -0700
+++ runtime/syntax/logtalk.vim	2008-11-06 08:05:14.000000000 -0800
@@ -2,7 +2,7 @@
 "
 " Language:	Logtalk
 " Maintainer:	Paulo Moura <[email protected]>
-" Last Change:	June 16, 2008
+" Last Change:	Oct 31, 2008
 
 
 " Quit when a syntax file was already loaded:
@@ -51,9 +51,9 @@
 
 " Logtalk opening entity directives
 
-syn region	logtalkOpenEntityDir	matchgroup=logtalkOpenEntityDirTag	start=":- object("	matchgroup=logtalkOpenEntityDirTag	end=")\."	contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator,logtalkString,logtalkAtom,logtalkEntityRel
-syn region	logtalkOpenEntityDir	matchgroup=logtalkOpenEntityDirTag	start=":- protocol("	matchgroup=logtalkOpenEntityDirTag	end=")\."	contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator,logtalkEntityRel
-syn region	logtalkOpenEntityDir	matchgroup=logtalkOpenEntityDirTag	start=":- category("	matchgroup=logtalkOpenEntityDirTag	end=")\."	contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator,logtalkEntityRel
+syn region	logtalkOpenEntityDir	matchgroup=logtalkOpenEntityDirTag	start=":- object("	matchgroup=logtalkOpenEntityDirTag	end=")\."	contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator,logtalkString,logtalkAtom,logtalkEntityRel,logtalkLineComment
+syn region	logtalkOpenEntityDir	matchgroup=logtalkOpenEntityDirTag	start=":- protocol("	matchgroup=logtalkOpenEntityDirTag	end=")\."	contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator,logtalkEntityRel,logtalkLineComment
+syn region	logtalkOpenEntityDir	matchgroup=logtalkOpenEntityDirTag	start=":- category("	matchgroup=logtalkOpenEntityDirTag	end=")\."	contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator,logtalkEntityRel,logtalkLineComment
 
 
 " Logtalk closing entity directives
diff -Nur runtime.patched/syntax/mail.vim runtime/syntax/mail.vim
--- runtime.patched/syntax/mail.vim	2008-01-18 04:28:18.000000000 -0800
+++ runtime/syntax/mail.vim	2008-11-09 05:12:28.000000000 -0800
@@ -2,7 +2,7 @@
 " Language:		Mail file
 " Previous Maintainer:	Felix von Leitner <[email protected]>
 " Maintainer:		Gautam Iyer <[email protected]>
-" Last Change:		Thu 17 Jan 2008 11:25:44 AM PST
+" Last Change:		Thu 06 Nov 2008 10:10:55 PM PST
 
 " Quit when a syntax file was already loaded
 if exists("b:current_syntax")
@@ -24,28 +24,35 @@
 " emails
 " According to RFC 2822 any printable ASCII character can appear in a field
 " name, except ':'.
-syn region	mailHeader	contains=@mailHeaderFields,@NoSpell start="^From .*\d\d\d\d$" skip="^\s" end="\v^[!-9;-~]*([^!-~]|$)"me=s-1
+syn region	mailHeader	contains=@mailHeaderFields,@NoSpell start="^From .*\d\d\d\d$" skip="^\s" end="\v^[!-9;-~]*([^!-~]|$)"me=s-1 fold
 syn match	mailHeaderKey	contained contains=mailEmail,@NoSpell "^From\s.*\d\d\d\d$"
+
+" Nothing else depends on case. 
+syn case ignore
+
+" Headers in properly quoted (with "> " or ">") emails are matched
+syn region	mailHeader	keepend contains=@mailHeaderFields,@mailQuoteExps,@NoSpell start="^\z(\(> \?\)*\)\v(newsgroups|x-([a-z\-])*|path|xref|message-id|from|((in-)?reply-)?to|b?cc|subject|return-path|received|date|replied):" skip="^\z1\s" end="\v^\z1[!-9;-~]*([^!-~]|$)"me=s-1 end="\v^\z1@!"me=s-1 end="\v^\z1(\> ?)+"me=s-1 fold
+
 " Usenet headers
 syn match	mailHeaderKey	contained contains=mailHeaderEmail,mailEmail,@NoSpell "\v(^(\> ?)*)@<=(Newsgroups|Followup-To|Message-ID|Supersedes|Control):.*$"
 
-syn case ignore
-" Nothing else depends on case. Headers in properly quoted (with "> " or ">")
-" emails are matched
-syn region	mailHeader	keepend contains=@mailHeaderFields,@mailQuoteExps,@NoSpell start="^\z(\(> \?\)*\)\v(newsgroups|x-([a-z\-])*|path|xref|message-id|from|((in-)?reply-)?to|b?cc|subject|return-path|received|date|replied):" skip="^\z1\s" end="\v^\z1[!-9;-~]*([^!-~]|$)"me=s-1 end="\v^\z1@!"me=s-1 end="\v^\z1(\> ?)+"me=s-1
 
 syn region	mailHeaderKey	contained contains=mailHeaderEmail,mailEmail,@mailQuoteExps,@NoSpell start="\v(^(\> ?)*)@<=(to|b?cc):" skip=",$" end="$"
-syn match	mailHeaderKey	contained contains=mailHeaderEmail,mailEmail,@NoSpell "\v(^(\> ?)*)@<=(from|reply-to):.*$"
+syn match	mailHeaderKey	contained contains=mailHeaderEmail,mailEmail,@NoSpell "\v(^(\> ?)*)@<=(from|reply-to):.*$" fold
 syn match	mailHeaderKey	contained contains=@NoSpell "\v(^(\> ?)*)@<=date:"
-syn match	mailSubject	contained "\v^subject:.*$"
+syn match	mailSubject	contained "\v^subject:.*$" fold
 syn match	mailSubject	contained contains=@NoSpell "\v(^(\> ?)+)@<=subject:.*$"
 
 " Anything in the header between < and > is an email address
 syn match	mailHeaderEmail	contained contains=@NoSpell "<.\{-}>"
 
 " Mail Signatures. (Begin with "-- ", end with change in quote level)
-syn region	mailSignature	keepend contains=@mailLinks,@mailQuoteExps start="^--\s$" end="^$" end="^\(> \?\)\+"me=s-1
-syn region	mailSignature	keepend contains=@mailLinks,@mailQuoteExps,@NoSpell start="^\z(\(> \?\)\+\)--\s$" end="^\z1$" end="^\z1\@!"me=s-1 end="^\z1\(> \?\)\+"me=s-1
+syn region	mailSignature	keepend contains=@mailLinks,@mailQuoteExps start="^--\s$" end="^$" end="^\(> \?\)\+"me=s-1 fold
+syn region	mailSignature	keepend contains=@mailLinks,@mailQuoteExps,@NoSpell start="^\z(\(> \?\)\+\)--\s$" end="^\z1$" end="^\z1\@!"me=s-1 end="^\z1\(> \?\)\+"me=s-1 fold
+
+" Treat verbatim Text special.
+syn region	mailVerbatim	contains=@NoSpell keepend start="^#v+$" end="^#v-$" fold 
+syn region	mailVerbatim	contains=@mailQuoteExps,@NoSpell start="^\z(\(> \?\)\+\)#v+$" end="\z1#v-$" fold 
 
 " URLs start with a known protocol or www,web,w3.
 syn match mailURL contains=@NoSpell `\v<(((https?|ftp|gopher)://|(mailto|file|news):)[^' 	<>"]+|(www|web|w3)[a-z0-9_-]*\.[a-z0-9._-]+\.[^' 	<>"]+)[a-z0-9/]`
@@ -59,13 +66,13 @@
 syn match mailQuoteExp5	contained "\v^(\> ?){5}"
 syn match mailQuoteExp6	contained "\v^(\> ?){6}"
 
-" Even and odd quoted lines. order is imporant here!
-syn match mailQuoted1	contains=mailHeader,@mailLinks,mailSignature,@NoSpell "^\([a-z]\+>\|[]|}>]\).*$"
-syn match mailQuoted2	contains=mailHeader,@mailLinks,mailSignature,@NoSpell "^\(\([a-z]\+>\|[]|}>]\)[ \t]*\)\{2}.*$"
-syn match mailQuoted3	contains=mailHeader,@mailLinks,mailSignature,@NoSpell "^\(\([a-z]\+>\|[]|}>]\)[ \t]*\)\{3}.*$"
-syn match mailQuoted4	contains=mailHeader,@mailLinks,mailSignature,@NoSpell "^\(\([a-z]\+>\|[]|}>]\)[ \t]*\)\{4}.*$"
-syn match mailQuoted5	contains=mailHeader,@mailLinks,mailSignature,@NoSpell "^\(\([a-z]\+>\|[]|}>]\)[ \t]*\)\{5}.*$"
-syn match mailQuoted6	contains=mailHeader,@mailLinks,mailSignature,@NoSpell "^\(\([a-z]\+>\|[]|}>]\)[ \t]*\)\{6}.*$"
+" Even and odd quoted lines. Order is important here!
+syn region	mailQuoted6	keepend contains=mailVerbatim,mailHeader,@mailLinks,mailSignature,@NoSpell start="^\z(\(\([a-z]\+>\|[]|}>]\)[ \t]*\)\{5}\([a-z]\+>\|[]|}>]\)\)" end="^\z1\@!" fold
+syn region	mailQuoted5	keepend contains=mailQuoted6,mailVerbatim,mailHeader,@mailLinks,mailSignature,@NoSpell start="^\z(\(\([a-z]\+>\|[]|}>]\)[ \t]*\)\{4}\([a-z]\+>\|[]|}>]\)\)" end="^\z1\@!" fold
+syn region	mailQuoted4	keepend contains=mailQuoted5,mailQuoted6,mailVerbatim,mailHeader,@mailLinks,mailSignature,@NoSpell start="^\z(\(\([a-z]\+>\|[]|}>]\)[ \t]*\)\{3}\([a-z]\+>\|[]|}>]\)\)" end="^\z1\@!" fold
+syn region	mailQuoted3	keepend contains=mailQuoted4,mailQuoted5,mailQuoted6,mailVerbatim,mailHeader,@mailLinks,mailSignature,@NoSpell start="^\z(\(\([a-z]\+>\|[]|}>]\)[ \t]*\)\{2}\([a-z]\+>\|[]|}>]\)\)" end="^\z1\@!" fold
+syn region	mailQuoted2	keepend contains=mailQuoted3,mailQuoted4,mailQuoted5,mailQuoted6,mailVerbatim,mailHeader,@mailLinks,mailSignature,@NoSpell start="^\z(\(\([a-z]\+>\|[]|}>]\)[ \t]*\)\{1}\([a-z]\+>\|[]|}>]\)\)" end="^\z1\@!" fold
+syn region	mailQuoted1	keepend contains=mailQuoted2,mailQuoted3,mailQuoted4,mailQuoted5,mailQuoted6,mailVerbatim,mailHeader,@mailLinks,mailSignature,@NoSpell start="^\z([a-z]\+>\|[]|}>]\)" end="^\z1\@!" fold
 
 " Need to sync on the header. Assume we can do that within 100 lines
 if exists("mail_minlines")
@@ -75,6 +82,7 @@
 endif
 
 " Define the default highlighting.
+hi def link mailVerbatim	Special
 hi def link mailHeader		Statement
 hi def link mailHeaderKey	Type
 hi def link mailSignature	PreProc
diff -Nur runtime.patched/syntax/man.vim runtime/syntax/man.vim
--- runtime.patched/syntax/man.vim	2007-12-30 05:19:15.000000000 -0800
+++ runtime/syntax/man.vim	2008-09-18 11:56:38.000000000 -0700
@@ -1,9 +1,9 @@
 " Vim syntax file
 " Language:	Man page
-" Maintainer:	Nam SungHyun <[email protected]>
+" Maintainer:	SungHyun Nam <[email protected]>
 " Previous Maintainer:	Gautam H. Mudunuri <[email protected]>
 " Version Info:
-" Last Change:	2007 Dec 30
+" Last Change:	2008 Sep 17
 
 " Additional highlighting by Johannes Tanzler <[email protected]>:
 "	* manSubHeading
diff -Nur runtime.patched/syntax/matlab.vim runtime/syntax/matlab.vim
--- runtime.patched/syntax/matlab.vim	2004-06-07 07:32:35.000000000 -0700
+++ runtime/syntax/matlab.vim	2009-09-18 03:30:32.000000000 -0700
@@ -1,8 +1,15 @@
 " Vim syntax file
 " Language:	Matlab
-" Maintainer:	Preben 'Peppe' Guldberg <[email protected]>
+" Maintainer:	Maurizio Tranchero - [email protected]
+" Credits:	Preben 'Peppe' Guldberg <[email protected]>
 "		Original author: Mario Eusebio
-" Last Change:	30 May 2003
+" Change History:
+" 		Sat Jul 25 16:14:55 CEST 2009
+"		- spell check enabled only for comments (thanks to James Vega)
+"
+" 		Tue Apr 21 10:03:31 CEST 2009
+"		- added object oriented support
+"		- added multi-line comments %{ ...\n... %}
 
 " For version 5.x: Clear all syntax items
 " For version 6.x: Quit when a syntax file was already loaded
@@ -16,6 +23,9 @@
 syn keyword matlabLabel			case switch
 syn keyword matlabConditional		else elseif end if otherwise
 syn keyword matlabRepeat		do for while
+" MT_ADDON - added exception-specific keywords
+syn keyword matlabExceptions		try catch
+syn keyword matlabOO			classdef properties events methods
 
 syn keyword matlabTodo			contained  TODO
 
@@ -31,7 +41,8 @@
 "syn match matlabIdentifier		"\<\a\w*\>"
 
 " String
-syn region matlabString			start=+'+ end=+'+	oneline
+" MT_ADDON - added 'skip' in order to deal with 'tic' escaping sequence 
+syn region matlabString			start=+'+ end=+'+	oneline skip=+''+ contains=@Spell
 
 " If you don't like tabs
 syn match matlabTab			"\t"
@@ -50,7 +61,10 @@
 
 syn match matlabSemicolon		";"
 
-syn match matlabComment			"%.*$"	contains=matlabTodo,matlabTab
+syn match matlabComment			"%.*$"	contains=matlabTodo,matlabTab,@Spell
+" MT_ADDON - correctly highlights words after '...' as comments
+syn match matlabComment			"\.\.\..*$"	contains=matlabTodo,matlabTab,@Spell
+syn region matlabMultilineComment	start=+%{+ end=+%}+ contains=matlabTodo,matlabTab,@Spell
 
 syn keyword matlabOperator		break zeros default margin round ones rand
 syn keyword matlabOperator		ceil floor size clear zeros eye mean std cov
@@ -75,10 +89,11 @@
   endif
 
   HiLink matlabTransposeOperator	matlabOperator
-  HiLink matlabOperator		Operator
-  HiLink matlabLineContinuation	Special
+  HiLink matlabOperator			Operator
+  HiLink matlabLineContinuation		Special
   HiLink matlabLabel			Label
   HiLink matlabConditional		Conditional
+  HiLink matlabExceptions		Conditional
   HiLink matlabRepeat			Repeat
   HiLink matlabTodo			Todo
   HiLink matlabString			String
@@ -86,12 +101,14 @@
   HiLink matlabTransposeOther		Identifier
   HiLink matlabNumber			Number
   HiLink matlabFloat			Float
-  HiLink matlabFunction		Function
+  HiLink matlabFunction			Function
   HiLink matlabError			Error
-  HiLink matlabImplicit		matlabStatement
+  HiLink matlabImplicit			matlabStatement
   HiLink matlabStatement		Statement
+  HiLink matlabOO			Statement
   HiLink matlabSemicolon		SpecialChar
   HiLink matlabComment			Comment
+  HiLink matlabMultilineComment		Comment
 
   HiLink matlabArithmeticOperator	matlabOperator
   HiLink matlabRelationalOperator	matlabOperator
diff -Nur runtime.patched/syntax/mysql.vim runtime/syntax/mysql.vim
--- runtime.patched/syntax/mysql.vim	2007-12-19 20:09:52.000000000 -0800
+++ runtime/syntax/mysql.vim	2009-07-02 11:05:29.000000000 -0700
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:     mysql
 " Maintainer:   Kenneth J. Pronovici <[email protected]>
-" Last Change:  $LastChangedDate: 2007-12-19 10:59:39 -0600 (Wed, 19 Dec 2007) $
+" Last Change:  $LastChangedDate: 2009-06-29 23:08:37 -0500 (Mon, 29 Jun 2009) $
 " Filenames:    *.mysql
 " URL:          ftp://cedar-solutions.com/software/mysql.vim
 " Note:         The definitions below are taken from the mysql user manual as of April 2002, for version 3.23
@@ -36,7 +36,7 @@
 syn keyword mysqlKeyword         natural no
 syn keyword mysqlKeyword         on optimize option optionally order outer outfile
 syn keyword mysqlKeyword         pack_keys partial password primary privileges procedure process processlist
-syn keyword mysqlKeyword         read references reload rename replace restrict returns revoke row rows
+syn keyword mysqlKeyword         read references reload rename replace restrict returns revoke right row rows
 syn keyword mysqlKeyword         second select show shutdown soname sql_big_result sql_big_selects sql_big_tables sql_log_off
 syn keyword mysqlKeyword         sql_log_update sql_low_priority_updates sql_select_limit sql_small_result sql_warnings starting
 syn keyword mysqlKeyword         status straight_join string
@@ -57,7 +57,7 @@
 " Numbers and hexidecimal values
 syn match mysqlNumber            "-\=\<[0-9]*\>"
 syn match mysqlNumber            "-\=\<[0-9]*\.[0-9]*\>"
-syn match mysqlNumber            "-\=\<[0-9]*e[+-]\=[0-9]*\>"
+syn match mysqlNumber            "-\=\<[0-9][0-9]*e[+-]\=[0-9]*\>"
 syn match mysqlNumber            "-\=\<[0-9]*\.[0-9]*e[+-]\=[0-9]*\>"
 syn match mysqlNumber            "\<0x[abcdefABCDEF0-9]*\>"
 
diff -Nur runtime.patched/syntax/netrw.vim runtime/syntax/netrw.vim
--- runtime.patched/syntax/netrw.vim	2008-03-28 11:35:41.000000000 -0700
+++ runtime/syntax/netrw.vim	2009-01-14 12:14:39.000000000 -0800
@@ -1,7 +1,7 @@
 " Language   : Netrw Remote-Directory Listing Syntax
 " Maintainer : Charles E. Campbell, Jr.
-" Last change: Feb 06, 2008
-" Version    : 12
+" Last change: Jan 13, 2009
+" Version    : 15
 " ---------------------------------------------------------------------
 
 " Syntax Clearing: {{{1
@@ -16,13 +16,14 @@
 syn cluster NetrwGroup		contains=netrwHide,netrwSortBy,netrwSortSeq,netrwQuickHelp,netrwVersion,netrwCopyTgt
 syn cluster NetrwTreeGroup	contains=netrwDir,netrwSymLink,netrwExe
 
-syn match  netrwSpecial		"\%(\S\+ \)*\S\+[*|=]\ze\%(\s\{2,}\|$\)"		contains=netrwClassify
-syn match  netrwDir		"\.\{1,2}/"						contains=netrwClassify
-syn match  netrwDir		"\%(\S\+ \)*\S\+/"					contains=netrwClassify
-syn match  netrwSizeDate	"\<\d\+\s\d\{1,2}/\d\{1,2}/\d\{4}\s"			contains=netrwDateSep skipwhite nextgroup=netrwTime
-syn match  netrwSymLink		"\%(\S\+ \)*\S\+@\ze\%(\s\{2,}\|$\)"  			contains=netrwClassify
-syn match  netrwExe		"\%(\S\+ \)*\S\+\*\ze\%(\s\{2,}\|$\)" 			contains=netrwClassify
-syn match  netrwTreeBar		"^\%(| \)*"						contains=netrwTreeBarSpace	nextgroup=@netrwTreeGroup
+syn match  netrwPlain		"\(\S\+ \)*\S\+"					contains=@NoSpell
+syn match  netrwSpecial		"\%(\S\+ \)*\S\+[*|=]\ze\%(\s\{2,}\|$\)"		contains=netrwClassify,@NoSpell
+syn match  netrwDir		"\.\{1,2}/"						contains=netrwClassify,@NoSpell
+syn match  netrwDir		"\%(\S\+ \)*\S\+/"					contains=netrwClassify,@NoSpell
+syn match  netrwSizeDate	"\<\d\+\s\d\{1,2}/\d\{1,2}/\d\{4}\s"	skipwhite		contains=netrwDateSep,@NoSpell	nextgroup=netrwTime
+syn match  netrwSymLink		"\%(\S\+ \)*\S\+@\ze\%(\s\{2,}\|$\)"  			contains=netrwClassify,@NoSpell
+syn match  netrwExe		"\%(\S\+ \)*\S\+\*\ze\%(\s\{2,}\|$\)" 			contains=netrwClassify,@NoSpell
+syn match  netrwTreeBar		"^\%([-+|] \)*"						contains=netrwTreeBarSpace	nextgroup=@netrwTreeGroup
 syn match  netrwTreeBarSpace	" "				contained
 
 syn match  netrwClassify	"[*=|@/]\ze\%(\s\{2,}\|$\)"	contained
@@ -30,71 +31,76 @@
 syn match  netrwTime		"\d\{1,2}:\d\{2}:\d\{2}"	contained		contains=netrwTimeSep
 syn match  netrwTimeSep		":"
 
-syn match  netrwComment		'".*\%(\t\|$\)'						contains=@NetrwGroup
-syn match  netrwHide		'^"\s*\(Hid\|Show\)ing:'	skipwhite nextgroup=netrwHidePat
+syn match  netrwComment		'".*\%(\t\|$\)'						contains=@NetrwGroup,@NoSpell
+syn match  netrwHide		'^"\s*\(Hid\|Show\)ing:'	skipwhite		contains=@NoSpell		nextgroup=netrwHidePat
 syn match  netrwSlash		"/"				contained
-syn match  netrwHidePat		"[^,]\+"			contained skipwhite nextgroup=netrwHideSep
-syn match  netrwHideSep		","				contained transparent skipwhite nextgroup=netrwHidePat
+syn match  netrwHidePat		"[^,]\+"			contained skipwhite	contains=@NoSpell		nextgroup=netrwHideSep
+syn match  netrwHideSep		","				contained skipwhite nextgroup=netrwHidePat
 syn match  netrwSortBy		"Sorted by"			contained transparent skipwhite nextgroup=netrwList
 syn match  netrwSortSeq		"Sort sequence:"		contained transparent skipwhite nextgroup=netrwList
 syn match  netrwCopyTgt		"Copy/Move Tgt:"		contained transparent skipwhite nextgroup=netrwList
-syn match  netrwList		".*$"				contained		contains=netrwComma
+syn match  netrwList		".*$"				contained		contains=netrwComma,@NoSpell
 syn match  netrwComma		","				contained
-syn region netrwQuickHelp	matchgroup=Comment start="Quick Help:\s\+" end="$"	contains=netrwHelpCmd keepend contained
-syn match  netrwHelpCmd		"\S\ze:"			contained skipwhite nextgroup=netrwCmdSep
+syn region netrwQuickHelp	matchgroup=Comment start="Quick Help:\s\+" end="$"	contains=netrwHelpCmd,@NoSpell	keepend contained
+syn match  netrwHelpCmd		"\S\ze:"			contained skipwhite	contains=@NoSpell		nextgroup=netrwCmdSep
 syn match  netrwCmdSep		":"				contained nextgroup=netrwCmdNote
-syn match  netrwCmdNote		".\{-}\ze  "			contained
-syn match  netrwVersion		"(netrw.*)"			contained
+syn match  netrwCmdNote		".\{-}\ze  "			contained		contains=@NoSpell
+syn match  netrwVersion		"(netrw.*)"			contained		contains=@NoSpell
 
 " -----------------------------
 " Special filetype highlighting {{{1
 " -----------------------------
 if exists("g:netrw_special_syntax") && netrw_special_syntax
- syn match netrwBak		"\(\S\+ \)*\S\+\.bak\>"				contains=netrwTreeBar
- syn match netrwCompress	"\(\S\+ \)*\S\+\.\%(gz\|bz2\|Z\|zip\)\>"	contains=netrwTreeBar
- syn match netrwData		"\(\S\+ \)*\S\+\.dat\>"				contains=netrwTreeBar
- syn match netrwHdr		"\(\S\+ \)*\S\+\.h\>"				contains=netrwTreeBar
- syn match netrwLib		"\(\S\+ \)*\S*\.\%(a\|so\|lib\|dll\)\>"		contains=netrwTreeBar
- syn match netrwMakeFile	"\<[mM]akefile\>\|\(\S\+ \)*\S\+\.mak\>"	contains=netrwTreeBar
- syn match netrwObj		"\(\S\+ \)*\S*\.\%(o\|obj\)\>"			contains=netrwTreeBar
- syn match netrwTags    	"\<tags\>"					contains=netrwTreeBar
- syn match netrwTags		"\<\(ANmenu\|ANtags\)\>"			contains=netrwTreeBar
- syn match netrwTilde		"\(\S\+ \)*\S\+\~\>"				contains=netrwTreeBar
- syn match netrwTmp		"\<tmp\(\S\+ \)*\S\+\>\|\(\S\+ \)*\S*tmp\>"	contains=netrwTreeBar
+ syn match netrwBak		"\(\S\+ \)*\S\+\.bak\>"				contains=netrwTreeBar,@NoSpell
+ syn match netrwCompress	"\(\S\+ \)*\S\+\.\%(gz\|bz2\|Z\|zip\)\>"	contains=netrwTreeBar,@NoSpell
+ if has("unix")
+  syn match netrwCoreDump	"\<core\%(\.\d\+\)\=\>"				contains=netrwTreeBar,@NoSpell
+ endif
+ syn match netrwData		"\(\S\+ \)*\S\+\.dat\>"				contains=netrwTreeBar,@NoSpell
+ syn match netrwHdr		"\(\S\+ \)*\S\+\.h\>"				contains=netrwTreeBar,@NoSpell
+ syn match netrwLib		"\(\S\+ \)*\S*\.\%(a\|so\|lib\|dll\)\>"		contains=netrwTreeBar,@NoSpell
+ syn match netrwMakeFile	"\<[mM]akefile\>\|\(\S\+ \)*\S\+\.mak\>"	contains=netrwTreeBar,@NoSpell
+ syn match netrwObj		"\(\S\+ \)*\S*\.\%(o\|obj\)\>"			contains=netrwTreeBar,@NoSpell
+ syn match netrwTags    	"\<tags\>"					contains=netrwTreeBar,@NoSpell
+ syn match netrwTags		"\<\(ANmenu\|ANtags\)\>"			contains=netrwTreeBar,@NoSpell
+ syn match netrwTilde		"\(\S\+ \)*\S\+\~\>"				contains=netrwTreeBar,@NoSpell
+ syn match netrwTmp		"\<tmp\(\S\+ \)*\S\+\>\|\(\S\+ \)*\S*tmp\>"	contains=netrwTreeBar,@NoSpell
 endif
 
 " ---------------------------------------------------------------------
 " Highlighting Links: {{{1
 if !exists("did_drchip_netrwlist_syntax")
  let did_drchip_netrwlist_syntax= 1
- hi link netrwClassify	Function
- hi link netrwCmdSep	Delimiter
- hi link netrwComment	Comment
- hi link netrwDir	Directory
- hi link netrwHelpCmd	Function
- hi link netrwHidePat	Statement
- hi link netrwList	Statement
- hi link netrwVersion	Identifier
- hi link netrwSymLink	Question
- hi link netrwExe	PreProc
- hi link netrwDateSep	Delimiter
-
- hi link netrwTreeBar	Special
- hi link netrwTimeSep	netrwDateSep
- hi link netrwComma	netrwComment
- hi link netrwHide	netrwComment
- hi link netrwMarkFile	Identifier
+ hi default link netrwClassify	Function
+ hi default link netrwCmdSep	Delimiter
+ hi default link netrwComment	Comment
+ hi default link netrwDir	Directory
+ hi default link netrwHelpCmd	Function
+ hi default link netrwHidePat	Statement
+ hi default link netrwHideSep	netrwComment
+ hi default link netrwList	Statement
+ hi default link netrwVersion	Identifier
+ hi default link netrwSymLink	Question
+ hi default link netrwExe	PreProc
+ hi default link netrwDateSep	Delimiter
+
+ hi default link netrwTreeBar	Special
+ hi default link netrwTimeSep	netrwDateSep
+ hi default link netrwComma	netrwComment
+ hi default link netrwHide	netrwComment
+ hi default link netrwMarkFile	Identifier
 
  " special syntax highlighting (see :he g:netrw_special_syntax)
- hi link netrwBak	NonText
- hi link netrwCompress	Folded
- hi link netrwData	DiffChange
- hi link netrwLib	DiffChange
- hi link netrwMakefile	DiffChange
- hi link netrwObj	Folded
- hi link netrwTilde	Folded
- hi link netrwTmp	Folded
- hi link netrwTags	Folded
+ hi default link netrwBak	NonText
+ hi default link netrwCompress	Folded
+ hi default link netrwCoreDump	WarningMsg
+ hi default link netrwData	DiffChange
+ hi default link netrwLib	DiffChange
+ hi default link netrwMakefile	DiffChange
+ hi default link netrwObj	Folded
+ hi default link netrwTilde	Folded
+ hi default link netrwTmp	Folded
+ hi default link netrwTags	Folded
 endif
 
 " Current Syntax: {{{1
diff -Nur runtime.patched/syntax/po.vim runtime/syntax/po.vim
--- runtime.patched/syntax/po.vim	2008-06-15 04:29:12.000000000 -0700
+++ runtime/syntax/po.vim	2008-09-18 11:56:38.000000000 -0700
@@ -1,10 +1,10 @@
 " Vim syntax file
 " Language:	po (gettext)
 " Maintainer:	Dwayne Bailey <[email protected]>
-" Last Change:	2008 Jan 08
+" Last Change:	2008 Sep 17
 " Contributors: Dwayne Bailey (Most advanced syntax highlighting)
 "               Leonardo Fontenelle (Spell checking)
-"               Nam SungHyun <[email protected]> (Original maintainer)
+"               SungHyun Nam <[email protected]> (Original maintainer)
 
 " For version 5.x: Clear all syntax items
 " For version 6.x: Quit when a syntax file was already loaded
diff -Nur runtime.patched/syntax/prolog.vim runtime/syntax/prolog.vim
--- runtime.patched/syntax/prolog.vim	2008-05-04 12:21:09.000000000 -0700
+++ runtime/syntax/prolog.vim	2009-04-22 14:26:14.000000000 -0700
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:    PROLOG
 " Maintainers: Thomas Koehler <[email protected]>
-" Last Change: 2008 April 5
+" Last Change: 2009 Apr 22
 " URL:	       http://gott-gehabt/800_wer_wir_sind/thomas/Homepage/Computer/vim/syntax/prolog.vim
 
 " There are two sets of highlighting in here:
@@ -63,7 +63,7 @@
   syn match   prologOperator "=\\=\|=:=\|\\==\|=<\|==\|>=\|\\=\|\\+\|<\|>\|="
   syn match   prologAsIs     "===\|\\===\|<=\|=>"
 
-  syn match   prologNumber	      "\<[0123456789]*\>"
+  syn match   prologNumber	      "\<[0123456789]*\>'\@!"
   syn match   prologCommentError      "\*/"
   syn match   prologSpecialCharacter  ";"
   syn match   prologSpecialCharacter  "!"
diff -Nur runtime.patched/syntax/pyrex.vim runtime/syntax/pyrex.vim
--- runtime.patched/syntax/pyrex.vim	2004-06-07 07:32:36.000000000 -0700
+++ runtime/syntax/pyrex.vim	2009-10-28 13:56:59.000000000 -0700
@@ -2,7 +2,7 @@
 " Language:	Pyrex
 " Maintainer:	Marco Barisione <[email protected]>
 " URL:		http://marcobari.altervista.org/pyrex_vim.html
-" Last Change:	2004 May 16
+" Last Change:	2009 Oct 28
 
 " For version 5.x: Clear all syntax items
 " For version 6.x: Quit when a syntax file was already loaded
@@ -35,9 +35,9 @@
 
 " This deletes "from" from the keywords and re-adds it as a
 " match with lower priority than pyrexForFrom
-syn clear   pythonPreCondit
-syn keyword pythonPreCondit     import
-syn match   pythonPreCondit     "from"
+syn clear   pythonInclude
+syn keyword pythonInclude     import
+syn match   pythonInclude     "from"
 
 " With "for[^:]*\zsfrom" VIM does not match "for" anymore, so
 " I used the slower "\@<=" form
diff -Nur runtime.patched/syntax/python.vim runtime/syntax/python.vim
--- runtime.patched/syntax/python.vim	2006-10-15 14:04:19.000000000 -0700
+++ runtime/syntax/python.vim	2009-10-28 13:56:59.000000000 -0700
@@ -1,143 +1,252 @@
 " Vim syntax file
 " Language:	Python
 " Maintainer:	Neil Schemenauer <[email protected]>
-" Updated:	2006-10-15
-"		Added Python 2.4 features 2006 May 4 (Dmitry Vasiliev)
+" Last Change:	2009-10-13
+" Credits:	Zvezdan Petkovic <[email protected]>
+"		Neil Schemenauer <[email protected]>
+"		Dmitry Vasiliev
 "
-" Options to control Python syntax highlighting:
+"		This version is a major rewrite by Zvezdan Petkovic.
 "
-" For highlighted numbers:
+"		- introduced highlighting of doctests
+"		- updated keywords, built-ins, and exceptions
+"		- corrected regular expressions for
 "
-"    let python_highlight_numbers = 1
+"		  * functions
+"		  * decorators
+"		  * strings
+"		  * escapes
+"		  * numbers
+"		  * space error
 "
-" For highlighted builtin functions:
+"		- corrected synchronization
+"		- more highlighting is ON by default, except
+"		- space error highlighting is OFF by default
 "
-"    let python_highlight_builtins = 1
+" Optional highlighting can be controlled using these variables.
 "
-" For highlighted standard exceptions:
+"   let python_no_builtin_highlight = 1
+"   let python_no_doctest_code_highlight = 1
+"   let python_no_doctest_highlight = 1
+"   let python_no_exception_highlight = 1
+"   let python_no_number_highlight = 1
+"   let python_space_error_highlight = 1
 "
-"    let python_highlight_exceptions = 1
+" All the options above can be switched on together.
 "
-" Highlight erroneous whitespace:
-"
-"    let python_highlight_space_errors = 1
-"
-" If you want all possible Python highlighting (the same as setting the
-" preceding options):
-"
-"    let python_highlight_all = 1
+"   let python_highlight_all = 1
 "
 
-" For version 5.x: Clear all syntax items
-" For version 6.x: Quit when a syntax file was already loaded
+" For version 5.x: Clear all syntax items.
+" For version 6.x: Quit when a syntax file was already loaded.
 if version < 600
   syntax clear
 elseif exists("b:current_syntax")
   finish
 endif
 
-
-syn keyword pythonStatement	break continue del
-syn keyword pythonStatement	except exec finally
-syn keyword pythonStatement	pass print raise
-syn keyword pythonStatement	return try with
-syn keyword pythonStatement	global assert
-syn keyword pythonStatement	lambda yield
-syn keyword pythonStatement	def class nextgroup=pythonFunction skipwhite
-syn match   pythonFunction	"[a-zA-Z_][a-zA-Z0-9_]*" contained
+" Keep Python keywords in alphabetical order inside groups for easy
+" comparison with the table in the 'Python Language Reference'
+" http://docs.python.org/reference/lexical_analysis.html#keywords.
+" Groups are in the order presented in NAMING CONVENTIONS in syntax.txt.
+" Exceptions come last at the end of each group (class and def below).
+"
+" Keywords 'with' and 'as' are new in Python 2.6
+" (use 'from __future__ import with_statement' in Python 2.5).
+"
+" Some compromises had to be made to support both Python 3.0 and 2.6.
+" We include Python 3.0 features, but when a definition is duplicated,
+" the last definition takes precedence.
+"
+" - 'False', 'None', and 'True' are keywords in Python 3.0 but they are
+"   built-ins in 2.6 and will be highlighted as built-ins below.
+" - 'exec' is a built-in in Python 3.0 and will be highlighted as
+"   built-in below.
+" - 'nonlocal' is a keyword in Python 3.0 and will be highlighted.
+" - 'print' is a built-in in Python 3.0 and will be highlighted as
+"   built-in below (use 'from __future__ import print_function' in 2.6)
+"
+syn keyword pythonStatement	False, None, True
+syn keyword pythonStatement	as assert break continue del exec global
+syn keyword pythonStatement	lambda nonlocal pass print return with yield
+syn keyword pythonStatement	class def nextgroup=pythonFunction skipwhite
+syn keyword pythonConditional	elif else if
 syn keyword pythonRepeat	for while
-syn keyword pythonConditional	if elif else
 syn keyword pythonOperator	and in is not or
-" AS will be a keyword in Python 3
-syn keyword pythonPreCondit	import from as
-syn match   pythonComment	"#.*$" contains=pythonTodo,@Spell
-syn keyword pythonTodo		TODO FIXME XXX contained
+syn keyword pythonException	except finally raise try
+syn keyword pythonInclude	from import
 
 " Decorators (new in Python 2.4)
 syn match   pythonDecorator	"@" display nextgroup=pythonFunction skipwhite
+" The zero-length non-grouping match before the function name is
+" extremely important in pythonFunction.  Without it, everything is
+" interpreted as a function inside the contained environment of
+" doctests.
+" A dot must be allowed because of @MyClass.myfunc decorators.
+syn match   pythonFunction
+      \ "\%(\%(def\s\|class\s\|@\)\s*\)\@<=\h\%(\w\|\.\)*" contained
+
+syn match   pythonComment	"#.*$" contains=pythonTodo,@Spell
+syn keyword pythonTodo		FIXME NOTE NOTES TODO XXX contained
 
-" strings
-syn region pythonString		matchgroup=Normal start=+[uU]\='+ end=+'+ skip=+\\\\\|\\'+ contains=pythonEscape,@Spell
-syn region pythonString		matchgroup=Normal start=+[uU]\="+ end=+"+ skip=+\\\\\|\\"+ contains=pythonEscape,@Spell
-syn region pythonString		matchgroup=Normal start=+[uU]\="""+ end=+"""+ contains=pythonEscape,@Spell
-syn region pythonString		matchgroup=Normal start=+[uU]\='''+ end=+'''+ contains=pythonEscape,@Spell
-syn region pythonRawString	matchgroup=Normal start=+[uU]\=[rR]'+ end=+'+ skip=+\\\\\|\\'+ contains=@Spell
-syn region pythonRawString	matchgroup=Normal start=+[uU]\=[rR]"+ end=+"+ skip=+\\\\\|\\"+ contains=@Spell
-syn region pythonRawString	matchgroup=Normal start=+[uU]\=[rR]"""+ end=+"""+ contains=@Spell
-syn region pythonRawString	matchgroup=Normal start=+[uU]\=[rR]'''+ end=+'''+ contains=@Spell
-syn match  pythonEscape		+\\[abfnrtv'"\\]+ contained
-syn match  pythonEscape		"\\\o\{1,3}" contained
-syn match  pythonEscape		"\\x\x\{2}" contained
-syn match  pythonEscape		"\(\\u\x\{4}\|\\U\x\{8}\)" contained
-syn match  pythonEscape		"\\$"
+" Triple-quoted strings can contain doctests.
+syn region  pythonString
+      \ start=+[uU]\=\z(['"]\)+ end="\z1" skip="\\\\\|\\\z1"
+      \ contains=pythonEscape,@Spell
+syn region  pythonString
+      \ start=+[uU]\=\z('''\|"""\)+ end="\z1" keepend
+      \ contains=pythonEscape,pythonSpaceError,pythonDoctest,@Spell
+syn region  pythonRawString
+      \ start=+[uU]\=[rR]\z(['"]\)+ end="\z1" skip="\\\\\|\\\z1"
+      \ contains=@Spell
+syn region  pythonRawString
+      \ start=+[uU]\=[rR]\z('''\|"""\)+ end="\z1" keepend
+      \ contains=pythonSpaceError,pythonDoctest,@Spell
+
+syn match   pythonEscape	+\\[abfnrtv'"\\]+ contained
+syn match   pythonEscape	"\\\o\{1,3}" contained
+syn match   pythonEscape	"\\x\x\{2}" contained
+syn match   pythonEscape	"\%(\\u\x\{4}\|\\U\x\{8}\)" contained
+" Python allows case-insensitive Unicode IDs: http://www.unicode.org/charts/
+syn match   pythonEscape	"\\N{\a\+\%(\s\a\+\)*}" contained
+syn match   pythonEscape	"\\$"
 
 if exists("python_highlight_all")
-  let python_highlight_numbers = 1
-  let python_highlight_builtins = 1
-  let python_highlight_exceptions = 1
-  let python_highlight_space_errors = 1
+  if exists("python_no_builtin_highlight")
+    unlet python_no_builtin_highlight
+  endif
+  if exists("python_no_doctest_code_highlight")
+    unlet python_no_doctest_code_highlight
+  endif
+  if exists("python_no_doctest_highlight")
+    unlet python_no_doctest_highlight
+  endif
+  if exists("python_no_exception_highlight")
+    unlet python_no_exception_highlight
+  endif
+  if exists("python_no_number_highlight")
+    unlet python_no_number_highlight
+  endif
+  let python_space_error_highlight = 1
 endif
 
-if exists("python_highlight_numbers")
+" It is very important to understand all details before changing the
+" regular expressions below or their order.
+" The word boundaries are *not* the floating-point number boundaries
+" because of a possible leading or trailing decimal point.
+" The expressions below ensure that all valid number literals are
+" highlighted, and invalid number literals are not.  For example,
+"
+" - a decimal point in '4.' at the end of a line is highlighted,
+" - a second dot in 1.0.0 is not highlighted,
+" - 08 is not highlighted,
+" - 08e0 or 08j are highlighted,
+"
+" and so on, as specified in the 'Python Language Reference'.
+" http://docs.python.org/reference/lexical_analysis.html#numeric-literals
+if !exists("python_no_number_highlight")
   " numbers (including longs and complex)
-  syn match   pythonNumber	"\<0x\x\+[Ll]\=\>"
-  syn match   pythonNumber	"\<\d\+[LljJ]\=\>"
-  syn match   pythonNumber	"\.\d\+\([eE][+-]\=\d\+\)\=[jJ]\=\>"
-  syn match   pythonNumber	"\<\d\+\.\([eE][+-]\=\d\+\)\=[jJ]\=\>"
-  syn match   pythonNumber	"\<\d\+\.\d\+\([eE][+-]\=\d\+\)\=[jJ]\=\>"
-endif
-
-if exists("python_highlight_builtins")
-  " builtin functions, types and objects, not really part of the syntax
-  syn keyword pythonBuiltin	True False bool enumerate set frozenset help
-  syn keyword pythonBuiltin	reversed sorted sum
-  syn keyword pythonBuiltin	Ellipsis None NotImplemented __import__ abs
-  syn keyword pythonBuiltin	apply buffer callable chr classmethod cmp
-  syn keyword pythonBuiltin	coerce compile complex delattr dict dir divmod
-  syn keyword pythonBuiltin	eval execfile file filter float getattr globals
-  syn keyword pythonBuiltin	hasattr hash hex id input int intern isinstance
-  syn keyword pythonBuiltin	issubclass iter len list locals long map max
-  syn keyword pythonBuiltin	min object oct open ord pow property range
-  syn keyword pythonBuiltin	raw_input reduce reload repr round setattr
-  syn keyword pythonBuiltin	slice staticmethod str super tuple type unichr
-  syn keyword pythonBuiltin	unicode vars xrange zip
-endif
-
-if exists("python_highlight_exceptions")
-  " builtin exceptions and warnings
-  syn keyword pythonException	ArithmeticError AssertionError AttributeError
-  syn keyword pythonException	DeprecationWarning EOFError EnvironmentError
-  syn keyword pythonException	Exception FloatingPointError IOError
-  syn keyword pythonException	ImportError IndentationError IndexError
-  syn keyword pythonException	KeyError KeyboardInterrupt LookupError
-  syn keyword pythonException	MemoryError NameError NotImplementedError
-  syn keyword pythonException	OSError OverflowError OverflowWarning
-  syn keyword pythonException	ReferenceError RuntimeError RuntimeWarning
-  syn keyword pythonException	StandardError StopIteration SyntaxError
-  syn keyword pythonException	SyntaxWarning SystemError SystemExit TabError
-  syn keyword pythonException	TypeError UnboundLocalError UnicodeError
-  syn keyword pythonException	UnicodeEncodeError UnicodeDecodeError
-  syn keyword pythonException	UnicodeTranslateError
-  syn keyword pythonException	UserWarning ValueError Warning WindowsError
-  syn keyword pythonException	ZeroDivisionError
+  syn match   pythonNumber	"\<0[oO]\=\o\+[Ll]\=\>"
+  syn match   pythonNumber	"\<0[xX]\x\+[Ll]\=\>"
+  syn match   pythonNumber	"\<0[bB][01]\+[Ll]\=\>"
+  syn match   pythonNumber	"\<\%([1-9]\d*\|0\)[Ll]\=\>"
+  syn match   pythonNumber	"\<\d\+[jJ]\>"
+  syn match   pythonNumber	"\<\d\+[eE][+-]\=\d\+[jJ]\=\>"
+  syn match   pythonNumber
+	\ "\<\d\+\.\%([eE][+-]\=\d\+\)\=[jJ]\=\%(\W\|$\)\@="
+  syn match   pythonNumber
+	\ "\%(^\|\W\)\@<=\d*\.\d\+\%([eE][+-]\=\d\+\)\=[jJ]\=\>"
+endif
+
+" Group the built-ins in the order in the 'Python Library Reference' for
+" easier comparison.
+" http://docs.python.org/library/constants.html
+" http://docs.python.org/library/functions.html
+" http://docs.python.org/library/functions.html#non-essential-built-in-functions
+" Python built-in functions are in alphabetical order.
+if !exists("python_no_builtin_highlight")
+  " built-in constants
+  " 'False', 'True', and 'None' are also reserved words in Python 3.0
+  syn keyword pythonBuiltin	False True None
+  syn keyword pythonBuiltin	NotImplemented Ellipsis __debug__
+  " built-in functions
+  syn keyword pythonBuiltin	abs all any bin bool chr classmethod
+  syn keyword pythonBuiltin	compile complex delattr dict dir divmod
+  syn keyword pythonBuiltin	enumerate eval filter float format
+  syn keyword pythonBuiltin	frozenset getattr globals hasattr hash
+  syn keyword pythonBuiltin	help hex id input int isinstance
+  syn keyword pythonBuiltin	issubclass iter len list locals map max
+  syn keyword pythonBuiltin	min next object oct open ord pow print
+  syn keyword pythonBuiltin	property range repr reversed round set
+  syn keyword pythonBuiltin	setattr slice sorted staticmethod str
+  syn keyword pythonBuiltin	sum super tuple type vars zip __import__
+  " Python 2.6 only
+  syn keyword pythonBuiltin	basestring callable cmp execfile file
+  syn keyword pythonBuiltin	long raw_input reduce reload unichr
+  syn keyword pythonBuiltin	unicode xrange
+  " Python 3.0 only
+  syn keyword pythonBuiltin	ascii bytearray bytes exec memoryview
+  " non-essential built-in functions; Python 2.6 only
+  syn keyword pythonBuiltin	apply buffer coerce intern
+endif
+
+" From the 'Python Library Reference' class hierarchy at the bottom.
+" http://docs.python.org/library/exceptions.html
+if !exists("python_no_exception_highlight")
+  " builtin base exceptions (only used as base classes for other exceptions)
+  syn keyword pythonExceptions	BaseException Exception
+  syn keyword pythonExceptions	ArithmeticError EnvironmentError
+  syn keyword pythonExceptions	LookupError
+  " builtin base exception removed in Python 3.0
+  syn keyword pythonExceptions	StandardError
+  " builtin exceptions (actually raised)
+  syn keyword pythonExceptions	AssertionError AttributeError BufferError
+  syn keyword pythonExceptions	EOFError FloatingPointError GeneratorExit
+  syn keyword pythonExceptions	IOError ImportError IndentationError
+  syn keyword pythonExceptions	IndexError KeyError KeyboardInterrupt
+  syn keyword pythonExceptions	MemoryError NameError NotImplementedError
+  syn keyword pythonExceptions	OSError OverflowError ReferenceError
+  syn keyword pythonExceptions	RuntimeError StopIteration SyntaxError
+  syn keyword pythonExceptions	SystemError SystemExit TabError TypeError
+  syn keyword pythonExceptions	UnboundLocalError UnicodeError
+  syn keyword pythonExceptions	UnicodeDecodeError UnicodeEncodeError
+  syn keyword pythonExceptions	UnicodeTranslateError ValueError VMSError
+  syn keyword pythonExceptions	WindowsError ZeroDivisionError
+  " builtin warnings
+  syn keyword pythonExceptions	BytesWarning DeprecationWarning FutureWarning
+  syn keyword pythonExceptions	ImportWarning PendingDeprecationWarning
+  syn keyword pythonExceptions	RuntimeWarning SyntaxWarning UnicodeWarning
+  syn keyword pythonExceptions	UserWarning Warning
 endif
 
-if exists("python_highlight_space_errors")
+if exists("python_space_error_highlight")
   " trailing whitespace
-  syn match   pythonSpaceError   display excludenl "\S\s\+$"ms=s+1
+  syn match   pythonSpaceError	display excludenl "\s\+$"
   " mixed tabs and spaces
-  syn match   pythonSpaceError   display " \+\t"
-  syn match   pythonSpaceError   display "\t\+ "
+  syn match   pythonSpaceError	display " \+\t"
+  syn match   pythonSpaceError	display "\t\+ "
 endif
 
-" This is fast but code inside triple quoted strings screws it up. It
-" is impossible to fix because the only way to know if you are inside a
-" triple quoted string is to start from the beginning of the file. If
-" you have a fast machine you can try uncommenting the "sync minlines"
-" and commenting out the rest.
-syn sync match pythonSync grouphere NONE "):$"
-syn sync maxlines=200
-"syn sync minlines=2000
+" Do not spell doctests inside strings.
+" Notice that the end of a string, either ''', or """, will end the contained
+" doctest too.  Thus, we do *not* need to have it as an end pattern.
+if !exists("python_no_doctest_highlight")
+  if !exists("python_no_doctest_code_higlight")
+    syn region pythonDoctest
+	  \ start="^\s*>>>\s" end="^\s*$"
+	  \ contained contains=ALLBUT,pythonDoctest,@Spell
+    syn region pythonDoctestValue
+	  \ start=+^\s*\%(>>>\s\|\.\.\.\s\|"""\|'''\)\@!\S\++ end="$"
+	  \ contained
+  else
+    syn region pythonDoctest
+	  \ start="^\s*>>>" end="^\s*$"
+	  \ contained contains=@NoSpell
+  endif
+endif
+
+" Sync at the beginning of class, function, or method definition.
+syn sync match pythonSync grouphere NONE "^\s*\%(def\|class\)\s\+\h\w*\s*("
 
 if version >= 508 || !exists("did_python_syn_inits")
   if version <= 508
@@ -147,35 +256,40 @@
     command -nargs=+ HiLink hi def link <args>
   endif
 
-  " The default methods for highlighting.  Can be overridden later
+  " The default highlight links.  Can be overridden later.
   HiLink pythonStatement	Statement
-  HiLink pythonFunction		Function
   HiLink pythonConditional	Conditional
   HiLink pythonRepeat		Repeat
-  HiLink pythonString		String
-  HiLink pythonRawString	String
-  HiLink pythonEscape		Special
   HiLink pythonOperator		Operator
-  HiLink pythonPreCondit	PreCondit
+  HiLink pythonException	Exception
+  HiLink pythonInclude		Include
+  HiLink pythonDecorator	Define
+  HiLink pythonFunction		Function
   HiLink pythonComment		Comment
   HiLink pythonTodo		Todo
-  HiLink pythonDecorator	Define
-  if exists("python_highlight_numbers")
-    HiLink pythonNumber	Number
+  HiLink pythonString		String
+  HiLink pythonRawString	String
+  HiLink pythonEscape		Special
+  if !exists("python_no_number_highlight")
+    HiLink pythonNumber		Number
   endif
-  if exists("python_highlight_builtins")
+  if !exists("python_no_builtin_highlight")
     HiLink pythonBuiltin	Function
   endif
-  if exists("python_highlight_exceptions")
-    HiLink pythonException	Exception
+  if !exists("python_no_exception_highlight")
+    HiLink pythonExceptions	Structure
   endif
-  if exists("python_highlight_space_errors")
+  if exists("python_space_error_highlight")
     HiLink pythonSpaceError	Error
   endif
+  if !exists("python_no_doctest_highlight")
+    HiLink pythonDoctest	Special
+    HiLink pythonDoctestValue	Define
+  endif
 
   delcommand HiLink
 endif
 
 let b:current_syntax = "python"
 
-" vim: ts=8
+" vim:set sw=2 sts=2 ts=8 noet:
diff -Nur runtime.patched/syntax/readline.vim runtime/syntax/readline.vim
--- runtime.patched/syntax/readline.vim	2007-06-17 08:03:20.000000000 -0700
+++ runtime/syntax/readline.vim	2009-06-13 05:38:40.000000000 -0700
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         readline(3) configuration file
 " Maintainer:       Nikolai Weibull <[email protected]>
-" Latest Revision:  2007-06-17
+" Latest Revision:  2009-05-25
 "   readline_has_bash - if defined add support for bash specific
 "                       settings/functions
 
@@ -128,6 +128,7 @@
                                 \ arrow-key-prefix vi-back-to-indent vi-bword
                                 \ vi-bWord vi-eword vi-eWord vi-fword vi-fWord
                                 \ vi-next-word
+                                \ vi-movement-mode
 
 if exists("readline_has_bash")
   syn keyword readlineFunctions contained
diff -Nur runtime.patched/syntax/remind.vim runtime/syntax/remind.vim
--- runtime.patched/syntax/remind.vim	2006-05-12 10:55:59.000000000 -0700
+++ runtime/syntax/remind.vim	2009-10-08 14:18:08.000000000 -0700
@@ -1,12 +1,13 @@
 " Vim syntax file
 " Language:	Remind
 " Maintainer:	Davide Alberani <[email protected]>
-" Last Change:	10 May 2006
-" Version:	0.3
+" Last Change:	18 Sep 2009
+" Version:	0.5
 " URL:		http://erlug.linux.it/~da/vim/syntax/remind.vim
 "
-" remind is a sophisticated reminder service; you can download remind from:
-" http://www.roaringpenguin.com/penguin/open_source_remind.php
+" remind is a sophisticated reminder service
+" you can download remind from:
+"   http://www.roaringpenguin.com/penguin/open_source_remind.php
 
 if version < 600
   syntax clear
@@ -14,24 +15,30 @@
   finish
 endif
 
-" shut case off
+" shut case off.
 syn case ignore
 
 syn keyword remindCommands	REM OMIT SET FSET UNSET
-syn keyword remindExpiry	UNTIL SCANFROM SCAN WARN SCHED
+syn keyword remindExpiry	UNTIL FROM SCANFROM SCAN WARN SCHED
 syn keyword remindTag		PRIORITY TAG
 syn keyword remindTimed		AT DURATION
 syn keyword remindMove		ONCE SKIP BEFORE AFTER
-syn keyword remindSpecial	INCLUDE INC BANNER PUSH-OMIT-CONTEXT PUSH CLEAR-OMIT-CONTEXT CLEAR POP-OMIT-CONTEXT POP
+syn keyword remindSpecial	INCLUDE INC BANNER PUSH-OMIT-CONTEXT PUSH CLEAR-OMIT-CONTEXT CLEAR POP-OMIT-CONTEXT POP COLOR
 syn keyword remindRun		MSG MSF RUN CAL SATISFY SPECIAL PS PSFILE SHADE MOON
 syn keyword remindConditional	IF ELSE ENDIF IFTRIG
+syn keyword remindDebug		DEBUG DUMPVARS DUMP ERRMSG FLUSH PRESERVE
 syn match remindComment		"#.*$"
 syn region remindString		start=+'+ end=+'+ skip=+\\\\\|\\'+ oneline
 syn region remindString		start=+"+ end=+"+ skip=+\\\\\|\\"+ oneline
-syn keyword remindDebug		DEBUG DUMPVARS DUMP ERRMSG FLUSH PRESERVE
 syn match remindVar		"\$[_a-zA-Z][_a-zA-Z0-9]*"
 syn match remindSubst		"%[^ ]"
 syn match remindAdvanceNumber	"\(\*\|+\|-\|++\|--\)[0-9]\+"
+" XXX: use different separators for dates and times?
+syn match remindDateSeparators	"[/:@\.-]" contained
+syn match remindTimes		"[0-9]\{1,2}[:\.][0-9]\{1,2}" contains=remindDateSeparators
+" XXX: why not match only valid dates?  Ok, checking for 'Feb the 30' would
+"       be impossible, but at least check for valid months and times.
+syn match remindDates		"'[0-9]\{4}[/-][0-9]\{1,2}[/-][0-9]\{1,2}\(@[0-9]\{1,2}[:\.][0-9]\{1,2}\)\?'" contains=remindDateSeparators
 " This will match trailing whitespaces that seem to break rem2ps.
 " Courtesy of Michael Dunn.
 syn match remindWarning		display excludenl "\S\s\+$"ms=s+1
@@ -54,11 +61,14 @@
   HiLink remindRun		Function
   HiLink remindConditional	Conditional
   HiLink remindComment		Comment
+  HiLink remindTimes		String
   HiLink remindString		String
   HiLink remindDebug		Debug
   HiLink remindVar		Identifier
   HiLink remindSubst		Constant
   HiLink remindAdvanceNumber	Number
+  HiLink remindDateSeparators	Comment
+  HiLink remindDates		String
   HiLink remindWarning		Error
 
   delcommand HiLink
diff -Nur runtime.patched/syntax/rhelp.vim runtime/syntax/rhelp.vim
--- runtime.patched/syntax/rhelp.vim	2008-04-10 12:24:17.000000000 -0700
+++ runtime/syntax/rhelp.vim	2009-05-14 11:53:07.000000000 -0700
@@ -1,13 +1,14 @@
 " Vim syntax file
 " Language:    R Help File
 " Maintainer:  Johannes Ranke <[email protected]>
-" Last Change: 2008 Apr 10
-" Version:     0.7.1
-" SVN:		   $Id: rhelp.vim 81 2008-04-10 08:30:11Z ranke $
+" Last Change: 2009 Mai 12
+" Version:     0.7.2
+" SVN:		   $Id: rhelp.vim 86 2009-05-12 19:23:47Z ranke $
 " Remarks:     - Now includes R syntax highlighting in the appropriate
 "                sections if an r.vim file is in the same directory or in the
 "                default debian location.
 "              - There is no Latex markup in equations
+"              - Thanks to Will Gray for finding and fixing a bug
 
 " Version Clears: {{{1
 " For version 5.x: Clear all syntax items
@@ -57,7 +58,7 @@
 
 " Links {{{1
 syn region rhelpLink matchgroup=rhelpSection start="\\link{" end="}" contained keepend
-syn region rhelpLink matchgroup=rhelpSection start="\\link\[.*\]{" end="}" contained keepend
+syn region rhelpLink matchgroup=rhelpSection start="\\link\[.\{-}\]{" end="}" contained keepend
 syn region rhelpLink matchgroup=rhelpSection start="\\linkS4class{" end="}" contained keepend
 
 " Type Styles {{{1
diff -Nur runtime.patched/syntax/rnoweb.vim runtime/syntax/rnoweb.vim
--- runtime.patched/syntax/rnoweb.vim	2007-05-05 10:55:31.000000000 -0700
+++ runtime/syntax/rnoweb.vim	2009-05-05 12:48:52.000000000 -0700
@@ -1,9 +1,9 @@
 " Vim syntax file
 " Language:    R noweb Files
 " Maintainer:  Johannes Ranke <[email protected]>
-" Last Change: 2007 M�r 30
-" Version:     0.8
-" SVN:	       $Id: rnoweb.vim,v 1.3 2007/05/05 17:55:31 vimboss Exp $
+" Last Change: 2009 May 05
+" Version:     0.9
+" SVN:	       $Id: rnoweb.vim 84 2009-05-03 19:52:47Z ranke $
 " Remarks:     - This file is inspired by the proposal of 
 "				 Fernando Henrique Ferraz Pereira da Rosa <[email protected]>
 "			     http://www.ime.usp.br/~feferraz/en/sweavevim.html
@@ -25,6 +25,7 @@
 unlet b:current_syntax
 
 syn cluster texMatchGroup add=@rnoweb
+syn cluster texMathMatchGroup add=rnowebSexpr
 syn cluster texEnvGroup add=@rnoweb
 syn cluster texFoldGroup add=@rnoweb
 syn cluster texDocGroup		add=@rnoweb
diff -Nur runtime.patched/syntax/rst.vim runtime/syntax/rst.vim
--- runtime.patched/syntax/rst.vim	2006-07-03 16:49:39.000000000 -0700
+++ runtime/syntax/rst.vim	2009-06-13 05:38:40.000000000 -0700
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         reStructuredText documentation format
 " Maintainer:       Nikolai Weibull <[email protected]>
-" Latest Revision:  2006-07-04
+" Latest Revision:  2009-05-25
 
 if exists("b:current_syntax")
   finish
@@ -12,12 +12,9 @@
 
 syn case ignore
 
-" FIXME: The problem with these two is that Vim doesn’t seem to like
-" matching across line boundaries.
-"
-" syn match   rstSections /^.*\n[=`:.'"~^_*+#-]\+$/
+syn match   rstSections "^\%(\([=`:.'"~^_*+#-]\)\1\+\n\)\=.\+\n\([=`:.'"~^_*+#-]\)\2\+$"
 
-" syn match   rstTransition  /^\s*[=`:.'"~^_*+#-]\{4,}\s*$/
+syn match   rstTransition  /^[=`:.'"~^_*+#-]\{4,}\s*$/
 
 syn cluster rstCruft                contains=rstEmphasis,rstStrongEmphasis,
       \ rstInterpretedText,rstInlineLiteral,rstSubstitutionReference,
@@ -144,8 +141,8 @@
 
 hi def link rstTodo                         Todo
 hi def link rstComment                      Comment
-"hi def link rstSections                     Type
-"hi def link rstTransition                   Type
+hi def link rstSections                     Type
+hi def link rstTransition                   Type
 hi def link rstLiteralBlock                 String
 hi def link rstQuotedLiteralBlock           String
 hi def link rstDoctestBlock                 PreProc
diff -Nur runtime.patched/syntax/samba.vim runtime/syntax/samba.vim
--- runtime.patched/syntax/samba.vim	2004-09-21 02:51:35.000000000 -0700
+++ runtime/syntax/samba.vim	2009-09-18 03:27:18.000000000 -0700
@@ -2,8 +2,10 @@
 " Language:	samba configuration files (smb.conf)
 " Maintainer:	Rafael Garcia-Suarez <[email protected]>
 " URL:		http://rgarciasuarez.free.fr/vim/syntax/samba.vim
-" Last change:	2004 September 21
-
+" Last change:	2009 Aug 06
+"
+"               New maintainer wanted!
+"
 " Don't forget to run your config file through testparm(1)!
 
 " For version 5.x: Clear all syntax items
@@ -51,7 +53,7 @@
 syn keyword sambaKeyword contained netbios nis notify nt null offset ok ole
 syn keyword sambaKeyword contained only open oplock oplocks options order os
 syn keyword sambaKeyword contained output packet page panic passwd password
-syn keyword sambaKeyword contained passwords path permissions pipe port
+syn keyword sambaKeyword contained passwords path permissions pipe port ports
 syn keyword sambaKeyword contained postexec postscript prediction preexec
 syn keyword sambaKeyword contained prefered preferred preload preserve print
 syn keyword sambaKeyword contained printable printcap printer printers
diff -Nur runtime.patched/syntax/scheme.vim runtime/syntax/scheme.vim
--- runtime.patched/syntax/scheme.vim	2007-06-16 13:09:14.000000000 -0700
+++ runtime/syntax/scheme.vim	2009-04-14 12:16:56.000000000 -0700
@@ -1,6 +1,6 @@
 " Vim syntax file
-" Language:	Scheme (R5RS)
-" Last Change:	2007 Jun 16
+" Language:	Scheme (R5RS + some R6RS extras)
+" Last Change:	2009 Apr 12
 " Maintainer:	Sergey Khorev <[email protected]>
 " Original author:	Dirk van Deun <[email protected]>
 
@@ -26,8 +26,8 @@
 
 " Fascist highlighting: everything that doesn't fit the rules is an error...
 
-syn match	schemeError	oneline    ![^ \t()\[\]";]*!
-syn match	schemeError	oneline    ")"
+syn match	schemeError	![^ \t()\[\]";]*!
+syn match	schemeError	")"
 
 " Quoted and backquoted stuff
 
@@ -71,6 +71,8 @@
 syn keyword schemeSyntax begin do delay set! else =>
 syn keyword schemeSyntax quote quasiquote unquote unquote-splicing
 syn keyword schemeSyntax define-syntax let-syntax letrec-syntax syntax-rules
+" R6RS
+syn keyword schemeSyntax define-record-type fields protocol
 
 syn keyword schemeFunc not boolean? eq? eqv? equal? pair? cons car cdr set-car!
 syn keyword schemeFunc set-cdr! caar cadr cdar cddr caaar caadr cadar caddr
@@ -109,30 +111,39 @@
 syn keyword schemeFunc dynamic-wind port? values call-with-values
 syn keyword schemeFunc scheme-report-environment null-environment
 syn keyword schemeFunc interaction-environment
+" R6RS
+syn keyword schemeFunc make-eq-hashtable make-eqv-hashtable make-hashtable
+syn keyword schemeFunc hashtable? hashtable-size hashtable-ref hashtable-set!
+syn keyword schemeFunc hashtable-delete! hashtable-contains? hashtable-update!
+syn keyword schemeFunc hashtable-copy hashtable-clear! hashtable-keys
+syn keyword schemeFunc hashtable-entries hashtable-equivalence-function hashtable-hash-function
+syn keyword schemeFunc hashtable-mutable? equal-hash string-hash string-ci-hash symbol-hash 
+syn keyword schemeFunc find for-all exists filter partition fold-left fold-right
+syn keyword schemeFunc remp remove remv remq memp assp cons*
 
 " ... so that a single + or -, inside a quoted context, would not be
 " interpreted as a number (outside such contexts, it's a schemeFunc)
 
-syn match	schemeDelimiter	oneline    !\.[ \t\[\]()";]!me=e-1
-syn match	schemeDelimiter	oneline    !\.$!
+syn match	schemeDelimiter	!\.[ \t\[\]()";]!me=e-1
+syn match	schemeDelimiter	!\.$!
 " ... and a single dot is not a number but a delimiter
 
 " This keeps all other stuff unhighlighted, except *stuff* and <stuff>:
 
-syn match	schemeOther	oneline    ,[a-z!$%&*/:<=>?^_~+@#%-][-a-z!$%&*/:<=>?^_~0-9+.@#%]*,
-syn match	schemeError	oneline    ,[a-z!$%&*/:<=>?^_~+@#%-][-a-z!$%&*/:<=>?^_~0-9+.@#%]*[^-a-z!$%&*/:<=>?^_~0-9+.@ \t\[\]()";]\+[^ \t\[\]()";]*,
+syn match	schemeOther	,[a-z!$%&*/:<=>?^_~+@#%-][-a-z!$%&*/:<=>?^_~0-9+.@#%]*,
+syn match	schemeError	,[a-z!$%&*/:<=>?^_~+@#%-][-a-z!$%&*/:<=>?^_~0-9+.@#%]*[^-a-z!$%&*/:<=>?^_~0-9+.@ \t\[\]()";]\+[^ \t\[\]()";]*,
 
-syn match	schemeOther	oneline    "\.\.\."
-syn match	schemeError	oneline    !\.\.\.[^ \t\[\]()";]\+!
+syn match	schemeOther	"\.\.\."
+syn match	schemeError	!\.\.\.[^ \t\[\]()";]\+!
 " ... a special identifier
 
-syn match	schemeConstant	oneline    ,\*[-a-z!$%&*/:<=>?^_~0-9+.@]*\*[ \t\[\]()";],me=e-1
-syn match	schemeConstant	oneline    ,\*[-a-z!$%&*/:<=>?^_~0-9+.@]*\*$,
-syn match	schemeError	oneline    ,\*[-a-z!$%&*/:<=>?^_~0-9+.@]*\*[^-a-z!$%&*/:<=>?^_~0-9+.@ \t\[\]()";]\+[^ \t\[\]()";]*,
-
-syn match	schemeConstant	oneline    ,<[-a-z!$%&*/:<=>?^_~0-9+.@]*>[ \t\[\]()";],me=e-1
-syn match	schemeConstant	oneline    ,<[-a-z!$%&*/:<=>?^_~0-9+.@]*>$,
-syn match	schemeError	oneline    ,<[-a-z!$%&*/:<=>?^_~0-9+.@]*>[^-a-z!$%&*/:<=>?^_~0-9+.@ \t\[\]()";]\+[^ \t\[\]()";]*,
+syn match	schemeConstant	,\*[-a-z!$%&*/:<=>?^_~0-9+.@]\+\*[ \t\[\]()";],me=e-1
+syn match	schemeConstant	,\*[-a-z!$%&*/:<=>?^_~0-9+.@]\+\*$,
+syn match	schemeError	,\*[-a-z!$%&*/:<=>?^_~0-9+.@]*\*[^-a-z!$%&*/:<=>?^_~0-9+.@ \t\[\]()";]\+[^ \t\[\]()";]*,
+
+syn match	schemeConstant	,<[-a-z!$%&*/:<=>?^_~0-9+.@]*>[ \t\[\]()";],me=e-1
+syn match	schemeConstant	,<[-a-z!$%&*/:<=>?^_~0-9+.@]*>$,
+syn match	schemeError	,<[-a-z!$%&*/:<=>?^_~0-9+.@]*>[^-a-z!$%&*/:<=>?^_~0-9+.@ \t\[\]()";]\+[^ \t\[\]()";]*,
 
 " Non-quoted lists, and strings:
 
@@ -153,23 +164,27 @@
 " Writing out the complete description of Scheme numerals without
 " using variables is a day's work for a trained secretary...
 
-syn match	schemeOther	oneline    ![+-][ \t\[\]()";]!me=e-1
-syn match	schemeOther	oneline    ![+-]$!
+syn match	schemeOther	![+-][ \t\[\]()";]!me=e-1
+syn match	schemeOther	![+-]$!
 "
 " This is a useful lax approximation:
-syn match	schemeNumber	oneline    "[-#+0-9.][-#+/[email protected]]*"
-syn match	schemeError	oneline    ![-#+0-9.][-#+/[email protected]]*[^-#+/[email protected] \t\[\]()";][^ \t\[\]()";]*!
+syn match	schemeNumber	"[-#+.]\=[0-9][-#+/[email protected]]*"
+syn match	schemeError	![-#+0-9.][-#+/[email protected]]*[^-#+/[email protected] \t\[\]()";][^ \t\[\]()";]*!
 
-syn match	schemeBoolean	oneline    "#[tf]"
-syn match	schemeError	oneline    !#[tf][^ \t\[\]()";]\+!
+syn match	schemeBoolean	"#[tf]"
+syn match	schemeError	!#[tf][^ \t\[\]()";]\+!
+
+syn match	schemeChar	"#\\"
+syn match	schemeChar	"#\\."
+syn match       schemeError	!#\\.[^ \t\[\]()";]\+!
+syn match	schemeChar	"#\\space"
+syn match	schemeError	!#\\space[^ \t\[\]()";]\+!
+syn match	schemeChar	"#\\newline"
+syn match	schemeError	!#\\newline[^ \t\[\]()";]\+!
+
+" R6RS
+syn match schemeChar "#\\x[0-9a-fA-F]\+"
 
-syn match	schemeChar	oneline    "#\\"
-syn match	schemeChar	oneline    "#\\."
-syn match       schemeError	oneline    !#\\.[^ \t\[\]()";]\+!
-syn match	schemeChar	oneline    "#\\space"
-syn match	schemeError	oneline    !#\\space[^ \t\[\]()";]\+!
-syn match	schemeChar	oneline    "#\\newline"
-syn match	schemeError	oneline    !#\\newline[^ \t\[\]()";]\+!
 
 if exists("b:is_mzscheme") || exists("is_mzscheme")
     " MzScheme extensions
@@ -177,11 +192,11 @@
     syn region	schemeComment start="#|" end="|#"
 
     " #%xxx are the special MzScheme identifiers
-    syn match schemeOther oneline    "#%[-a-z!$%&*/:<=>?^_~0-9+.@#%]\+"
+    syn match schemeOther "#%[-a-z!$%&*/:<=>?^_~0-9+.@#%]\+"
     " anything limited by |'s is identifier
-    syn match schemeOther oneline    "|[^|]\+|"
+    syn match schemeOther "|[^|]\+|"
 
-    syn match	schemeChar	oneline    "#\\\%(return\|tab\)"
+    syn match	schemeChar	"#\\\%(return\|tab\)"
 
     " Modules require stmt
     syn keyword schemeExtSyntax module require dynamic-require lib prefix all-except prefix-all-except rename
@@ -234,8 +249,8 @@
     " multiline comment
     syntax region schemeMultilineComment start=/#|/ end=/|#/ contains=schemeMultilineComment
 
-    syn match schemeOther oneline    "##[-a-z!$%&*/:<=>?^_~0-9+.@#%]\+"
-    syn match schemeExtSyntax oneline    "#:[-a-z!$%&*/:<=>?^_~0-9+.@#%]\+"
+    syn match schemeOther "##[-a-z!$%&*/:<=>?^_~0-9+.@#%]\+"
+    syn match schemeExtSyntax "#:[-a-z!$%&*/:<=>?^_~0-9+.@#%]\+"
 
     syn keyword schemeExtSyntax unit uses declare hide foreign-declare foreign-parse foreign-parse/spec
     syn keyword schemeExtSyntax foreign-lambda foreign-lambda* define-external define-macro load-library
@@ -266,7 +281,7 @@
     endif
 
     " suggested by Alex Queiroz
-    syn match schemeExtSyntax oneline    "#![-a-z!$%&*/:<=>?^_~0-9+.@#%]\+"
+    syn match schemeExtSyntax "#![-a-z!$%&*/:<=>?^_~0-9+.@#%]\+"
     syn region schemeString start=+#<#\s*\z(.*\)+ end=+^\z1$+ 
 endif
 
diff -Nur runtime.patched/syntax/sdc.vim runtime/syntax/sdc.vim
--- runtime.patched/syntax/sdc.vim	1969-12-31 16:00:00.000000000 -0800
+++ runtime/syntax/sdc.vim	2009-05-05 11:28:48.000000000 -0700
@@ -0,0 +1,41 @@
+" Vim syntax file
+" Language:     SDC - Synopsys Design Constraints
+" Maintainer:   Maurizio Tranchero - [email protected]
+" Last Change:  Thu Mar  25 17:35:16 CET 2009
+" Credits:      based on TCL Vim syntax file
+" Version:	0.3
+
+" Quit when a syntax file was already loaded
+if exists("b:current_syntax")
+  finish
+endif
+
+" Read the TCL syntax to start with
+runtime! syntax/tcl.vim
+
+" SDC-specific keywords
+syn keyword sdcCollections	foreach_in_collection
+syn keyword sdcObjectsQuery	get_clocks get_ports
+syn keyword sdcObjectsInfo	get_point_info get_node_info get_path_info
+syn keyword sdcObjectsInfo	get_timing_paths set_attribute
+syn keyword sdcConstraints	set_false_path
+syn keyword sdcNonIdealities	set_min_delay set_max_delay
+syn keyword sdcNonIdealities	set_input_delay set_output_delay
+syn keyword sdcNonIdealities	set_load set_min_capacitance set_max_capacitance
+syn keyword sdcCreateOperations	create_clock create_timing_netlist update_timing_netlist
+
+" command flags highlighting
+syn match sdcFlags		"[[:space:]]-[[:alpha:]]*\>"
+
+" Define the default highlighting.
+hi def link sdcCollections      Repeat
+hi def link sdcObjectsInfo      Operator
+hi def link sdcCreateOperations	Operator
+hi def link sdcObjectsQuery	Operator
+hi def link sdcConstraints	Operator
+hi def link sdcNonIdealities	Operator
+hi def link sdcFlags		Special
+
+let b:current_syntax = "sdc"
+
+" vim: ts=8
diff -Nur runtime.patched/syntax/sgmllnx.vim runtime/syntax/sgmllnx.vim
--- runtime.patched/syntax/sgmllnx.vim	2004-06-07 07:32:35.000000000 -0700
+++ runtime/syntax/sgmllnx.vim	2008-09-18 11:56:21.000000000 -0700
@@ -1,8 +1,8 @@
 " Vim syntax file
 " Language:	SGML-linuxdoc (supported by old sgmltools-1.x)
 "		(for more information, visit www.sgmltools.org)
-" Maintainer:	Nam SungHyun <[email protected]>
-" Last Change:	2001 Apr 26
+" Maintainer:	SungHyun Nam <[email protected]>
+" Last Change:	2008 Sep 17
 
 " For version 5.x: Clear all syntax items
 " For version 6.x: Quit when a syntax file was already loaded
diff -Nur runtime.patched/syntax/sh.vim runtime/syntax/sh.vim
--- runtime.patched/syntax/sh.vim	2008-07-14 13:23:42.000000000 -0700
+++ runtime/syntax/sh.vim	2009-10-08 14:18:57.000000000 -0700
@@ -2,8 +2,8 @@
 " Language:		shell (sh) Korn shell (ksh) bash (sh)
 " Maintainer:		Dr. Charles E. Campbell, Jr.  <[email protected]>
 " Previous Maintainer:	Lennart Schultz <[email protected]>
-" Last Change:		Jul 11, 2008
-" Version:		102
+" Last Change:		Sep 01, 2009
+" Version:		109
 " URL:		http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax
 " For options and settings, please use:      :help ft-sh-syntax
 " This file includes many ideas from �ric Brunet ([email protected])
@@ -67,13 +67,13 @@
 
 " Clusters: contains=@... clusters {{{1
 "==================================
-syn cluster shErrorList	contains=shDoError,shIfError,shInError,shCaseError,shEsacError,shCurlyError,shParenError,shTestError
+syn cluster shErrorList	contains=shDoError,shIfError,shInError,shCaseError,shEsacError,shCurlyError,shParenError,shTestError,shOK
 if exists("b:is_kornshell")
  syn cluster ErrorList add=shDTestError
 endif
-syn cluster shArithParenList	contains=shArithmetic,shDeref,shDerefSimple,shEscape,shNumber,shOperator,shPosnParm,shExSingleQuote,shSingleQuote,shDoubleQuote,shStatement,shVariable,shAlias,shTest,shCtrlSeq,shSpecial,shParen
+syn cluster shArithParenList	contains=shArithmetic,shDeref,shDerefSimple,shEcho,shEscape,shNumber,shOperator,shPosnParm,shExSingleQuote,shRedir,shSingleQuote,shDoubleQuote,shStatement,shVariable,shAlias,shTest,shCtrlSeq,shSpecial,shParen,bashSpecialVariables,bashStatement
 syn cluster shArithList	contains=@shArithParenList,shParenError
-syn cluster shCaseEsacList	contains=shCaseStart,shCase,shCaseBar,shCaseIn,shComment,shDeref,shDerefSimple,shCaseCommandSub,shCaseExSingleQuote,shCaseSingleQuote,shCaseDoubleQuote,shCtrlSeq,@shErrorList,shStringSpecial
+syn cluster shCaseEsacList	contains=shCaseStart,shCase,shCaseBar,shCaseIn,shComment,shDeref,shDerefSimple,shCaseCommandSub,shCaseExSingleQuote,shCaseSingleQuote,shCaseDoubleQuote,shCtrlSeq,@shErrorList,shStringSpecial,shExpr
 syn cluster shCaseList	contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shCommandSub,shComment,shDo,shEcho,shExpr,shFor,shHereDoc,shIf,shRedir,shSetList,shSource,shStatement,shVariable,shCtrlSeq
 syn cluster shColonList	contains=@shCaseList
 syn cluster shCommandSubList	contains=shArithmetic,shDeref,shDerefSimple,shEscape,shNumber,shOperator,shPosnParm,shExSingleQuote,shSingleQuote,shDoubleQuote,shStatement,shVariable,shSubSh,shAlias,shTest,shCtrlSeq,shSpecial
@@ -84,7 +84,7 @@
 syn cluster shEchoList	contains=shArithmetic,shCommandSub,shDeref,shDerefSimple,shExpr,shExSingleQuote,shSingleQuote,shDoubleQuote,shCtrlSeq,shEchoQuote
 syn cluster shExprList1	contains=shCharClass,shNumber,shOperator,shExSingleQuote,shSingleQuote,shDoubleQuote,shExpr,shDblBrace,shDeref,shDerefSimple,shCtrlSeq
 syn cluster shExprList2	contains=@shExprList1,@shCaseList,shTest
-syn cluster shFunctionList	contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shCommandSub,shComment,shDo,shEcho,shExpr,shFor,shHereDoc,shIf,shRedir,shSetList,shSource,shStatement,shVariable,shOperator,shCtrlSeq
+syn cluster shFunctionList	contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shCommandSub,shComment,shDo,shEcho,shExpr,shFor,shHereDoc,shIf,shOption,shRedir,shSetList,shSource,shStatement,shVariable,shOperator,shCtrlSeq
 if exists("b:is_kornshell") || exists("b:is_bash")
  syn cluster shFunctionList	add=shRepeat
  syn cluster shFunctionList	add=shDblBrace,shDblParen
@@ -94,19 +94,19 @@
 syn cluster shHereListDQ	contains=shBeginHere,@shDblQuoteList,shHerePayload
 syn cluster shIdList	contains=shCommandSub,shWrapLineOperator,shSetOption,shDeref,shDerefSimple,shRedir,shExSingleQuote,shSingleQuote,shDoubleQuote,shExpr,shCtrlSeq,shStringSpecial
 syn cluster shLoopList	contains=@shCaseList,shTestOpr,shExpr,shDblBrace,shConditional,shCaseEsac,shTest,@shErrorList,shSet
-syn cluster shSubShList	contains=@shCaseList,shOperator
+syn cluster shSubShList	contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shCommandSub,shComment,shDo,shEcho,shExpr,shFor,shIf,shRedir,shSetList,shSource,shStatement,shVariable,shCtrlSeq,shOperator
 syn cluster shTestList	contains=shCharClass,shComment,shCommandSub,shDeref,shDerefSimple,shDoubleQuote,shExpr,shExpr,shNumber,shOperator,shExSingleQuote,shSingleQuote,shTestOpr,shTest,shCtrlSeq
 
 
 " Echo: {{{1
 " ====
 " This one is needed INSIDE a CommandSub, so that `echo bla` be correct
-syn region shEcho matchgroup=shStatement start="\<echo\>"  skip="\\$" matchgroup=shOperator end="$" matchgroup=NONE end="[<>;&|()]"me=e-1 end="\d[<>]"me=e-2 end="#"me=e-1 contains=@shEchoList skipwhite nextgroup=shQuickComment
-syn region shEcho matchgroup=shStatement start="\<print\>" skip="\\$" matchgroup=shOperator end="$" matchgroup=NONE end="[<>;&|()]"me=e-1 end="\d[<>]"me=e-2 end="#"me=e-1 contains=@shEchoList skipwhite nextgroup=shQuickComment
+syn region shEcho matchgroup=shStatement start="\<echo\>"  skip="\\$" matchgroup=shOperator end="$" matchgroup=NONE end="[<>;&|()]"me=e-1 end="\d[<>]"me=e-2 end="\s#"me=e-2 contains=@shEchoList skipwhite nextgroup=shQuickComment
+syn region shEcho matchgroup=shStatement start="\<print\>" skip="\\$" matchgroup=shOperator end="$" matchgroup=NONE end="[<>;&|()]"me=e-1 end="\d[<>]"me=e-2 end="\s#"me=e-2 contains=@shEchoList skipwhite nextgroup=shQuickComment
 syn match  shEchoQuote contained	'\%(\\\\\)*\\["`']'
 
 " This must be after the strings, so that ... \" will be correct
-syn region shEmbeddedEcho contained matchgroup=shStatement start="\<print\>" skip="\\$" matchgroup=shOperator end="$" matchgroup=NONE end="[<>;&|`)]"me=e-1 end="\d[<>]"me=e-2 end="#"me=e-1 contains=shNumber,shExSingleQuote,shSingleQuote,shDeref,shDerefSimple,shSpecialVar,shOperator,shDoubleQuote,shCharClass,shCtrlSeq
+syn region shEmbeddedEcho contained matchgroup=shStatement start="\<print\>" skip="\\$" matchgroup=shOperator end="$" matchgroup=NONE end="[<>;&|`)]"me=e-1 end="\d[<>]"me=e-2 end="\s#"me=e-2 contains=shNumber,shExSingleQuote,shSingleQuote,shDeref,shDerefSimple,shSpecialVar,shOperator,shDoubleQuote,shCharClass,shCtrlSeq
 
 " Alias: {{{1
 " =====
@@ -125,6 +125,7 @@
 syn match   shEsacError "\<esac\>"
 syn match   shCurlyError "}"
 syn match   shParenError ")"
+syn match   shOK	'\.\(done\|fi\|in\|esac\)'
 if exists("b:is_kornshell")
  syn match     shDTestError "]]"
 endif
@@ -152,13 +153,12 @@
 
 " Subshells: {{{1
 " ==========
-syn region shExpr  transparent matchgroup=shExprRegion  start="{" end="}"	contains=@shExprList2
-syn region shSubSh transparent matchgroup=shSubShRegion start="(" end=")"	contains=@shSubShList
+syn region shExpr  transparent matchgroup=shExprRegion  start="{" end="}"	contains=@shExprList2 nextgroup=shMoreSpecial
+syn region shSubSh transparent matchgroup=shSubShRegion start="(" end=")"	contains=@shSubShList nextgroup=shMoreSpecial
 
 " Tests: {{{1
 "=======
-"syn region  shExpr transparent matchgroup=shRange start="\[" skip=+\\\\\|\\$+ end="\]" contains=@shTestList
-syn region shExpr	matchgroup=shRange start="\[" skip=+\\\\\|\\$+ end="\]" contains=@shTestList
+syn region shExpr	matchgroup=shRange start="\[" skip=+\\\\\|\\$+ end="\]" contains=@shTestList,shSpecial
 syn region shTest	transparent matchgroup=shStatement start="\<test\>" skip=+\\\\\|\\$+ matchgroup=NONE end="[;&|]"me=e-1 end="$" contains=@shExprList1
 syn match  shTestOpr	contained	"<=\|>=\|!=\|==\|-.\>\|-\(nt\|ot\|ef\|eq\|ne\|lt\|le\|gt\|ge\)\>\|[!<>]"
 syn match  shTestOpr	contained	'=' skipwhite nextgroup=shTestDoubleQuote,shTestSingleQuote,shTestPattern
@@ -203,10 +203,11 @@
 " ====
 syn match   shCaseBar	contained skipwhite "\(^\|[^\\]\)\(\\\\\)*\zs|"		nextgroup=shCase,shCaseStart,shCaseBar,shComment,shCaseExSingleQuote,shCaseSingleQuote,shCaseDoubleQuote
 syn match   shCaseStart	contained skipwhite skipnl "("			nextgroup=shCase,shCaseBar
-syn region  shCase	contained skipwhite skipnl matchgroup=shSnglCase start="\%(\\.\|[^#$()'" \t]\)\{-}\zs)"  end=";;" end="esac"me=s-1 contains=@shCaseList nextgroup=shCaseStart,shCase,shComment
 if (g:sh_fold_enabled % (s:sh_fold_ifdofor * 2))/s:sh_fold_ifdofor
+ syn region  shCase	fold contained skipwhite skipnl matchgroup=shSnglCase start="\%(\\.\|[^#$()'" \t]\)\{-}\zs)"  end=";;" end="esac"me=s-1 contains=@shCaseList nextgroup=shCaseStart,shCase,shComment
  syn region  shCaseEsac	fold matchgroup=shConditional start="\<case\>" end="\<esac\>"	contains=@shCaseEsacList
 else
+ syn region  shCase	contained skipwhite skipnl matchgroup=shSnglCase start="\%(\\.\|[^#$()'" \t]\)\{-}\zs)"  end=";;" end="esac"me=s-1 contains=@shCaseList nextgroup=shCaseStart,shCase,shComment
  syn region  shCaseEsac	matchgroup=shConditional start="\<case\>" end="\<esac\>"	contains=@shCaseEsacList
 endif
 syn keyword shCaseIn	contained skipwhite skipnl in			nextgroup=shCase,shCaseStart,shCaseBar,shComment,shCaseExSingleQuote,shCaseSingleQuote,shCaseDoubleQuote
@@ -256,7 +257,7 @@
 
 syn match   shSource	"^\.\s"
 syn match   shSource	"\s\.\s"
-syn region  shColon	start="^\s*:" end="$\|" end="#"me=e-1 contains=@shColonList
+syn region  shColon	start="^\s*:" end="$\|" end="\s#"me=e-2 contains=@shColonList
 
 " String And Character Constants: {{{1
 "================================
@@ -274,8 +275,9 @@
 syn region  shDoubleQuote	matchgroup=shOperator start=+"+ skip=+\\"+ end=+"+	contains=@shDblQuoteList,shStringSpecial,@Spell
 syn match   shStringSpecial	"[^[:print:] \t]"	contained
 syn match   shStringSpecial	"\%(\\\\\)*\\[\\"'`$()#]"
-syn match   shSpecial	"[^\\]\zs\%(\\\\\)*\\[\\"'`$()#]"
+syn match   shSpecial	"[^\\]\zs\%(\\\\\)*\\[\\"'`$()#]" nextgroup=shMoreSpecial
 syn match   shSpecial	"^\%(\\\\\)*\\[\\"'`$()#]"
+syn match   shMoreSpecial	"\%(\\\\\)*\\[\\"'`$()#]" nextgroup=shMoreSpecial contained
 
 " Comments: {{{1
 "==========
@@ -338,13 +340,13 @@
 syn match  shVariable	"\<\([bwglsav]:\)\=[a-zA-Z0-9.!@_%+,]*\ze="	nextgroup=shSetIdentifier
 syn match  shSetIdentifier	"="		contained	nextgroup=shPattern,shDeref,shDerefSimple,shDoubleQuote,shSingleQuote,shExSingleQuote
 if exists("b:is_bash")
- syn region shSetList oneline matchgroup=shSet start="\<\(declare\|typeset\|local\|export\|unset\)\>\ze[^/]" end="$"	matchgroup=shOperator end="\ze[}|);&]" matchgroup=NONE end="\ze#\|=" contains=@shIdList
- syn region shSetList oneline matchgroup=shSet start="\<set\>\ze[^/]" end="\ze[;|)]\|$"			matchgroup=shOperator end="\ze[}|);&]" matchgroup=NONE end="\ze[#=]" contains=@shIdList
+ syn region shSetList oneline matchgroup=shSet start="\<\(declare\|typeset\|local\|export\|unset\)\>\ze[^/]" end="$"	matchgroup=shOperator end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+#\|=" contains=@shIdList
+ syn region shSetList oneline matchgroup=shSet start="\<set\>\ze[^/]" end="\ze[;|)]\|$"			matchgroup=shOperator end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+[#=]" contains=@shIdList
 elseif exists("b:is_kornshell")
- syn region shSetList oneline matchgroup=shSet start="\<\(typeset\|export\|unset\)\>\ze[^/]" end="$"		matchgroup=shOperator end="\ze[}|);&]" matchgroup=NONE end="\ze[#=]" contains=@shIdList
- syn region shSetList oneline matchgroup=shSet start="\<set\>\ze[^/]" end="$"				matchgroup=shOperator end="\ze[}|);&]" matchgroup=NONE end="\ze[#=]" contains=@shIdList
+ syn region shSetList oneline matchgroup=shSet start="\<\(typeset\|export\|unset\)\>\ze[^/]" end="$"		matchgroup=shOperator end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+[#=]" contains=@shIdList
+ syn region shSetList oneline matchgroup=shSet start="\<set\>\ze[^/]" end="$"				matchgroup=shOperator end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+[#=]" contains=@shIdList
 else
- syn region shSetList oneline matchgroup=shSet start="\<\(set\|export\|unset\)\>\ze[^/]" end="$"		matchgroup=shOperator end="\ze[}|);&]" matchgroup=NONE end="\ze[#=]" contains=@shIdList
+ syn region shSetList oneline matchgroup=shSet start="\<\(set\|export\|unset\)\>\ze[^/]" end="$"		matchgroup=shOperator end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+[#=]" contains=@shIdList
 endif
 
 " Functions: {{{1
@@ -511,6 +513,7 @@
 hi def link shHereDoc	shString
 hi def link shHerePayload	shHereDoc
 hi def link shLoop	shStatement
+hi def link shMoreSpecial	shSpecial
 hi def link shOption	shCommandSub
 hi def link shPattern	shString
 hi def link shParen	shArithmetic
diff -Nur runtime.patched/syntax/sisu.vim runtime/syntax/sisu.vim
--- runtime.patched/syntax/sisu.vim	2008-05-27 12:24:19.000000000 -0700
+++ runtime/syntax/sisu.vim	2008-11-09 05:12:28.000000000 -0800
@@ -1,6 +1,6 @@
 "SiSU Vim syntax file
 "SiSU Maintainer: Ralph Amissah <[email protected]>
-"SiSU Markup:     SiSU (sisu-0.66.0, 2008-02-24)
+"SiSU Markup:     SiSU (sisu-0.69.0, 2008-09-16)
 "(originally looked at Ruby Vim by Mirko Nasato)
 
 if version < 600
@@ -81,6 +81,7 @@
 syn region sisu_comment matchgroup=sisu_comment start="^%\{1,2\} " end="$"
 "font face curly brackets
 "syn region sisu_identifier contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_sem start="\S\+:{" end="}:[^<>,.!?:; ]\+" oneline
+syn region sisu_index matchgroup=sisu_index_block start="^={" end="}"
 syn region sisu_control contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_fontface start="\*{" end="}\*"
 syn region sisu_control contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_fontface start="!{" end="}!"
 syn region sisu_underline contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_fontface start="_{" end="}_"
@@ -162,7 +163,6 @@
 hi def link sisu_fontface         Include
 hi def link sisu_strikeout        DiffDelete
 hi def link sisu_content_alt      Special
-hi def link sisu_sem_content      String
 hi def link sisu_sem_content      SpecialKey
 hi def link sisu_sem_block        Special
 hi def link sisu_sem_marker       Visual
@@ -173,6 +173,8 @@
 hi def link sisu_sem_ex_content   Comment
 "hi def link sisu_sem_ex_content   SpecialKey
 hi def link sisu_sem_ex_block     Comment
+hi def link sisu_index            SpecialKey
+hi def link sisu_index_block      Visual
 hi def link sisu_content_endnote  Special
 hi def link sisu_control          Define
 hi def link sisu_ocn              Include
diff -Nur runtime.patched/syntax/sqlanywhere.vim runtime/syntax/sqlanywhere.vim
--- runtime.patched/syntax/sqlanywhere.vim	2008-02-06 12:32:21.000000000 -0800
+++ runtime/syntax/sqlanywhere.vim	2009-10-08 14:18:57.000000000 -0700
@@ -2,10 +2,11 @@
 " Vim syntax file
 " Language:    SQL, Adaptive Server Anywhere
 " Maintainer:  David Fishburn <fishburn at ianywhere dot com>
-" Last Change: Tue 29 Jan 2008 12:54:19 PM Eastern Standard Time
-" Version:     10.0.1
+" Last Change: 2009 Mar 15
+" Version:     11.0.1
 
-" Description: Updated to Adaptive Server Anywhere 10.0.1
+" Description: Updated to Adaptive Server Anywhere 11.0.1
+"              Updated to Adaptive Server Anywhere 10.0.1
 "              Updated to Adaptive Server Anywhere  9.0.2
 "              Updated to Adaptive Server Anywhere  9.0.1
 "              Updated to Adaptive Server Anywhere  9.0.0
@@ -54,20 +55,24 @@
 syn keyword sqlFunction	 strtouuid varexists
 
 " 9.0.1 functions
-syn keyword sqlFunction	 acos asin atan atn2 cast ceiling convert cos cot 
+syn keyword sqlFunction	 acos asin atan atn2 cast ceiling convert cos cot
 syn keyword sqlFunction	 char_length coalesce dateformat datetime degrees exp
-syn keyword sqlFunction	 floor getdate insertstr 
+syn keyword sqlFunction	 floor getdate insertstr
 syn keyword sqlFunction	 log log10 lower mod pi power
-syn keyword sqlFunction	 property radians replicate round sign sin 
+syn keyword sqlFunction	 property radians replicate round sign sin
 syn keyword sqlFunction	 sqldialect tan truncate truncnum
 syn keyword sqlFunction	 base64_encode base64_decode
 syn keyword sqlFunction	 hash compress decompress encrypt decrypt
 
+" 11.0.1 functions
+syn keyword sqlFunction	 connection_extended_property text_handle_vector_match
+syn keyword sqlFunction	 read_client_file write_client_file
+
 " string functions
 syn keyword sqlFunction	 ascii char left ltrim repeat
 syn keyword sqlFunction	 space right rtrim trim lcase ucase
 syn keyword sqlFunction	 locate charindex patindex replace
-syn keyword sqlFunction	 errormsg csconvert 
+syn keyword sqlFunction	 errormsg csconvert
 
 " property functions
 syn keyword sqlFunction	 db_id db_name property_name
@@ -358,125 +363,135 @@
 syn keyword sqlFunction	 sa_set_http_header sa_set_http_option
 syn keyword sqlFunction	 sa_http_variable_info sa_http_header_info
 
-" http functions 9.0.1 
+" http functions 9.0.1
 syn keyword sqlFunction	 http_encode http_decode
 syn keyword sqlFunction	 html_encode html_decode
 
 " keywords
-syn keyword sqlKeyword	 absolute accent action activ add address after
-syn keyword sqlKeyword	 algorithm allow_dup_row
-syn keyword sqlKeyword	 alter and any as append asc ascii ase at atomic
-syn keyword sqlKeyword	 attach attended audit authorization 
+syn keyword sqlKeyword	 absolute accent action active add address aes_decrypt
+syn keyword sqlKeyword	 after aggregate algorithm allow_dup_row allowed
+syn keyword sqlKeyword	 alter and ansi_substring any as append apply asc ascii ase
+syn keyword sqlKeyword	 assign at atan2 atomic attach attended audit authorization
 syn keyword sqlKeyword	 autoincrement autostop batch bcp before
-syn keyword sqlKeyword	 between blank blanks block
-syn keyword sqlKeyword	 both bottom unbounded break bufferpool
+syn keyword sqlKeyword	 between bit_and bit_length bit_or bit_substr bit_xor
+syn keyword sqlKeyword	 blank blanks block
+syn keyword sqlKeyword	 both bottom unbounded break breaker bufferpool
 syn keyword sqlKeyword	 build bulk by byte bytes cache calibrate calibration
 syn keyword sqlKeyword	 cancel capability cascade cast
-syn keyword sqlKeyword	 catalog changes char char_convert check checksum
+syn keyword sqlKeyword	 catalog ceil changes char char_convert check checksum
 syn keyword sqlKeyword	 class classes client cmp
-syn keyword sqlKeyword	 cluster clustered collation column columns
+syn keyword sqlKeyword	 cluster clustered collation
+syn keyword sqlKeyword	 column columns
 syn keyword sqlKeyword	 command comment committed comparisons
 syn keyword sqlKeyword	 compatible component compressed compute computes
-syn keyword sqlKeyword	 concat confirm conflict connection
+syn keyword sqlKeyword	 concat configuration confirm conflict connection
 syn keyword sqlKeyword	 console consolidate consolidated
-syn keyword sqlKeyword	 constraint constraints continue
-syn keyword sqlKeyword	 convert copy count crc cross cube
+syn keyword sqlKeyword	 constraint constraints content continue
+syn keyword sqlKeyword	 convert coordinator copy count count_set_bits
+syn keyword sqlKeyword	 crc createtime cross cube cume_dist
 syn keyword sqlKeyword	 current cursor data data database
 syn keyword sqlKeyword	 current_timestamp current_user
-syn keyword sqlKeyword	 datatype dba dbfile
-syn keyword sqlKeyword	 dbspace dbspacename debug decoupled
-syn keyword sqlKeyword	 decrypted default defaults deferred definition
+syn keyword sqlKeyword	 databases datatype dba dbfile
+syn keyword sqlKeyword	 dbspace dbspaces dbspacename debug decoupled
+syn keyword sqlKeyword	 decrypted default defaults default_dbspace deferred
+syn keyword sqlKeyword	 definer definition
 syn keyword sqlKeyword	 delay deleting delimited dependencies desc
 syn keyword sqlKeyword	 description detach deterministic directory
-syn keyword sqlKeyword	 disable disabled distinct do domain download
+syn keyword sqlKeyword	 disable disabled distinct do domain download duplicate
 syn keyword sqlKeyword	 dsetpass dttm dynamic each editproc ejb
-syn keyword sqlKeyword	 else elseif enable encapsulated encrypted end 
-syn keyword sqlKeyword	 encoding endif engine erase error escape escapes event
-syn keyword sqlKeyword	 every except exception exclude exclusive exec 
-syn keyword sqlKeyword	 existing exists expanded express
+syn keyword sqlKeyword	 else elseif empty enable encapsulated encrypted end
+syn keyword sqlKeyword	 encoding endif engine environment erase error escape escapes event
+syn keyword sqlKeyword	 event_parameter every except exception exclude excluded exclusive exec
+syn keyword sqlKeyword	 existing exists expanded expiry express exprtype extended_property
 syn keyword sqlKeyword	 external externlogin factor failover false
-syn keyword sqlKeyword	 fastfirstrow fieldproc file filler
-syn keyword sqlKeyword	 fillfactor finish first first_keyword 
-syn keyword sqlKeyword	 following force foreign format 
-syn keyword sqlKeyword	 freepage french fresh full function go global
-syn keyword sqlKeyword	 group handler hash having header hexadecimal 
-syn keyword sqlKeyword	 hidden high history hold holdlock
-syn keyword sqlKeyword	 hours id identified identity ignore
+syn keyword sqlKeyword	 fastfirstrow fieldproc file files filler
+syn keyword sqlKeyword	 fillfactor finish first first_keyword first_value
+syn keyword sqlKeyword	 following force foreign format forxml forxml_sep fp frame
+syn keyword sqlKeyword	 freepage french fresh full function gb get_bit go global
+syn keyword sqlKeyword	 group handler hash having header hexadecimal
+syn keyword sqlKeyword	 hidden high history hg hng hold holdlock host
+syn keyword sqlKeyword	 hours http_body http_session_timeout id identified identity ignore
 syn keyword sqlKeyword	 ignore_dup_key ignore_dup_row immediate
-syn keyword sqlKeyword	 in inactive inactivity incremental index info 
+syn keyword sqlKeyword	 in inactiv inactive inactivity included incremental
+syn keyword sqlKeyword	 index index_enabled index_lparen indexonly info
 syn keyword sqlKeyword	 inline inner inout insensitive inserting
 syn keyword sqlKeyword	 instead integrated
-syn keyword sqlKeyword	 internal into introduced iq is isolation jar java
+syn keyword sqlKeyword	 internal intersection into introduced invoker iq is isolation
+syn keyword sqlKeyword	 jar java java_location java_main_userid java_vm_options
 syn keyword sqlKeyword	 jconnect jdk join kb key keep kerberos language last
-syn keyword sqlKeyword	 last_keyword lateral left level like
-syn keyword sqlKeyword	 limit local location log 
-syn keyword sqlKeyword	 logging login logscan long low lru main
-syn keyword sqlKeyword	 match materialized max maximum membership 
-syn keyword sqlKeyword	 minutes mirror mode modify monitor  mru
-syn keyword sqlKeyword	 name named national native natural new next no
+syn keyword sqlKeyword	 last_keyword last_value lateral ld left len lf ln level like
+syn keyword sqlKeyword	 limit local location log
+syn keyword sqlKeyword	 logging login logscan long low lru main manual mark
+syn keyword sqlKeyword	 match matched materialized max maximum mb membership
+syn keyword sqlKeyword	 merge metadata methods minimum minutes mirror mode modify monitor move mru
+syn keyword sqlKeyword	 multiplex name named national native natural new next no
 syn keyword sqlKeyword	 noholdlock nolock nonclustered none not
-syn keyword sqlKeyword	 notify null nulls of off old on
-syn keyword sqlKeyword	 only optimization optimizer option
+syn keyword sqlKeyword	 notify null nullable_constant nulls object oem_string of off offline
+syn keyword sqlKeyword	 old on online only openstring optimization optimizer option
 syn keyword sqlKeyword	 or order others out outer over
 syn keyword sqlKeyword	 package packetsize padding page pages
-syn keyword sqlKeyword	 paglock parallel part partition partner password path
-syn keyword sqlKeyword	 pctfree plan preceding precision prefetch prefix
-syn keyword sqlKeyword	 preserve preview primary 
-syn keyword sqlKeyword	 prior priqty private privileges procedure profile
-syn keyword sqlKeyword	 public publication publish publisher
-syn keyword sqlKeyword	 quote quotes range readcommitted readonly
+syn keyword sqlKeyword	 paglock parallel part partial partition partitions partner password path
+syn keyword sqlKeyword	 pctfree plan policy populate port postfilter preceding precision
+syn keyword sqlKeyword	 prefetch prefilter prefix preserve preview primary
+syn keyword sqlKeyword	 prior priority priqty private privileges procedure profile
+syn keyword sqlKeyword	 property_is_cumulative property_is_numeric public publication publish publisher
+syn keyword sqlKeyword	 quiesce quote quotes range readclientfile readcommitted reader readfile readonly
 syn keyword sqlKeyword	 readpast readuncommitted readwrite rebuild
 syn keyword sqlKeyword	 received recompile recover recursive references
-syn keyword sqlKeyword	 referencing refresh relative relocate
+syn keyword sqlKeyword	 referencing refresh regex regexp regexp_substr relative relocate
 syn keyword sqlKeyword	 rename repeatable repeatableread
-syn keyword sqlKeyword	 replicate rereceive resend reserve reset
+syn keyword sqlKeyword	 replicate request_timeout required rereceive resend reserve reset
 syn keyword sqlKeyword	 resizing resolve resource respect
 syn keyword sqlKeyword	 restrict result retain
-syn keyword sqlKeyword	 returns right 
-syn keyword sqlKeyword	 rollup root row rowlock rows save 
-syn keyword sqlKeyword	 schedule schema scripted scroll seconds secqty
+syn keyword sqlKeyword	 returns reverse right role
+syn keyword sqlKeyword	 rollup root row row_number rowlock rows save
+syn keyword sqlKeyword	 sa_index_hash sa_internal_fk_verify sa_internal_termbreak
+syn keyword sqlKeyword	 sa_order_preserving_hash sa_order_preserving_hash_big sa_order_preserving_hash_prefix
+syn keyword sqlKeyword	 schedule schema scope scripted scroll seconds secqty security
 syn keyword sqlKeyword	 send sensitive sent serializable
-syn keyword sqlKeyword	 server server session sets 
+syn keyword sqlKeyword	 server server session set_bit set_bits sets
 syn keyword sqlKeyword	 share simple since site size skip
-syn keyword sqlKeyword	 snapshot soapheader some sorted_data 
-syn keyword sqlKeyword	 sqlcode sqlid sqlstate stacker stale statement
-syn keyword sqlKeyword	 statistics status stogroup store
-syn keyword sqlKeyword	 strip subpages subscribe subscription
-syn keyword sqlKeyword	 subtransaction synchronization
+syn keyword sqlKeyword	 snapshot soapheader soap_header split some sorted_data
+syn keyword sqlKeyword	 sqlcode sqlid sqlflagger sqlstate sqrt square
+syn keyword sqlKeyword	 stacker stale statement statistics status stddev_pop stddev_samp
+syn keyword sqlKeyword	 stemmer stogroup stoplist store
+syn keyword sqlKeyword	 strip stripesizekb striping subpages subscribe subscription
+syn keyword sqlKeyword	 subtransaction suser_id suser_name synchronization
 syn keyword sqlKeyword	 syntax_error table tablock
-syn keyword sqlKeyword	 tablockx tb temp template temporary then
-syn keyword sqlKeyword	 ties timezone to top tracing
-syn keyword sqlKeyword	 transaction transactional tries true 
+syn keyword sqlKeyword	 tablockx tb temp template temporary term then
+syn keyword sqlKeyword	 ties timezone to to_char to_nchar top traced_plan tracing
+syn keyword sqlKeyword	 transfer transaction transactional tries true
 syn keyword sqlKeyword	 tsequal type tune uncommitted unconditionally
-syn keyword sqlKeyword	 unenforced unique union unknown unload 
-syn keyword sqlKeyword	 updating updlock upgrade upload use user
+syn keyword sqlKeyword	 unenforced unicode unique union unistr unknown unlimited unload
+syn keyword sqlKeyword	 unpartition unquiesce updatetime updating updlock upgrade upload
+syn keyword sqlKeyword	 upper use user
 syn keyword sqlKeyword	 using utc utilities validproc
 syn keyword sqlKeyword	 value values varchar variable
-syn keyword sqlKeyword	 varying vcat verify view virtual wait 
-syn keyword sqlKeyword	 warning web when where window with with_auto
+syn keyword sqlKeyword	 varying var_pop var_samp vcat verify versions view virtual wait
+syn keyword sqlKeyword	 warning wd web when where window with with_auto
 syn keyword sqlKeyword	 with_auto with_cube with_rollup without
-syn keyword sqlKeyword	 with_lparen within word work workload writefile 
-syn keyword sqlKeyword	 writers writeserver xlock zeros
+syn keyword sqlKeyword	 with_lparen within word work workload write writefile
+syn keyword sqlKeyword	 writeclientfile writer writers writeserver xlock zeros
 " XML function support
-syn keyword sqlFunction	 openxml xmlelement xmlforest xmlgen xmlconcat xmlagg 
-syn keyword sqlFunction	 xmlattributes 
+syn keyword sqlFunction	 openxml xmlelement xmlforest xmlgen xmlconcat xmlagg
+syn keyword sqlFunction	 xmlattributes
 syn keyword sqlKeyword	 raw auto elements explicit
 " HTTP support
-syn keyword sqlKeyword	 authorization secure url service
+syn keyword sqlKeyword	 authorization secure url service next_soap_header
 " HTTP 9.0.2 new procedure keywords
 syn keyword sqlKeyword	 namespace certificate clientport proxy
 " OLAP support 9.0.0
-syn keyword sqlKeyword	 covar_pop covar_samp corr regr_slope regr_intercept 
+syn keyword sqlKeyword	 covar_pop covar_samp corr regr_slope regr_intercept
 syn keyword sqlKeyword	 regr_count regr_r2 regr_avgx regr_avgy
 syn keyword sqlKeyword	 regr_sxx regr_syy regr_sxy
 
 " Alternate keywords
 syn keyword sqlKeyword	 character dec options proc reference
-syn keyword sqlKeyword	 subtrans tran syn keyword 
+syn keyword sqlKeyword	 subtrans tran syn keyword
 
 
 syn keyword sqlOperator	 in any some all between exists
-syn keyword sqlOperator	 like escape not is and or 
+syn keyword sqlOperator	 like escape not is and or
 syn keyword sqlOperator  intersect minus
 syn keyword sqlOperator  prior distinct
 
@@ -496,43 +511,38 @@
 
 
 syn keyword sqlType	 char long varchar text
-syn keyword sqlType	 bigint decimal double float int integer numeric 
+syn keyword sqlType	 bigint decimal double float int integer numeric
 syn keyword sqlType	 smallint tinyint real
 syn keyword sqlType	 money smallmoney
-syn keyword sqlType	 bit 
-syn keyword sqlType	 date datetime smalldate time timestamp 
+syn keyword sqlType	 bit
+syn keyword sqlType	 date datetime smalldate time timestamp
 syn keyword sqlType	 binary image varbinary uniqueidentifier
 syn keyword sqlType	 xml unsigned
 " New types 10.0.0
 syn keyword sqlType	 varbit nchar nvarchar
 
 syn keyword sqlOption    Allow_nulls_by_default
+syn keyword sqlOption    Allow_read_client_file
+syn keyword sqlOption    Allow_snapshot_isolation
+syn keyword sqlOption    Allow_write_client_file
 syn keyword sqlOption    Ansi_blanks
 syn keyword sqlOption    Ansi_close_cursors_on_rollback
-syn keyword sqlOption    Ansi_integer_overflow
 syn keyword sqlOption    Ansi_permissions
+syn keyword sqlOption    Ansi_substring
 syn keyword sqlOption    Ansi_update_constraints
 syn keyword sqlOption    Ansinull
-syn keyword sqlOption    Assume_distinct_servers
 syn keyword sqlOption    Auditing
 syn keyword sqlOption    Auditing_options
-syn keyword sqlOption    Auto_commit
-syn keyword sqlOption    Auto_refetch
-syn keyword sqlOption    Automatic_timestamp
 syn keyword sqlOption    Background_priority
-syn keyword sqlOption    Bell
-syn keyword sqlOption    Blob_threshold
 syn keyword sqlOption    Blocking
 syn keyword sqlOption    Blocking_timeout
 syn keyword sqlOption    Chained
-syn keyword sqlOption    Char_OEM_Translation
 syn keyword sqlOption    Checkpoint_time
 syn keyword sqlOption    Cis_option
 syn keyword sqlOption    Cis_rowset_size
 syn keyword sqlOption    Close_on_endtrans
-syn keyword sqlOption    Command_delimiter
-syn keyword sqlOption    Commit_on_exit
-syn keyword sqlOption    Compression
+syn keyword sqlOption    Collect_statistics_on_dml_updates
+syn keyword sqlOption    Conn_auditing
 syn keyword sqlOption    Connection_authentication
 syn keyword sqlOption    Continue_after_raiserror
 syn keyword sqlOption    Conversion_error
@@ -543,125 +553,90 @@
 syn keyword sqlOption    Date_order
 syn keyword sqlOption    Debug_messages
 syn keyword sqlOption    Dedicated_task
+syn keyword sqlOption    Default_dbspace
 syn keyword sqlOption    Default_timestamp_increment
 syn keyword sqlOption    Delayed_commit_timeout
 syn keyword sqlOption    Delayed_commits
-syn keyword sqlOption    Delete_old_logs
-syn keyword sqlOption    Describe_Java_Format
-syn keyword sqlOption    Divide_by_zero_error
-syn keyword sqlOption    Echo
 syn keyword sqlOption    Escape_character
 syn keyword sqlOption    Exclude_operators
 syn keyword sqlOption    Extended_join_syntax
-syn keyword sqlOption    External_remote_options
 syn keyword sqlOption    Fire_triggers
 syn keyword sqlOption    First_day_of_week
-syn keyword sqlOption    Float_as_double
 syn keyword sqlOption    For_xml_null_treatment
 syn keyword sqlOption    Force_view_creation
 syn keyword sqlOption    Global_database_id
-syn keyword sqlOption    Headings
-syn keyword sqlOption    Input_format
+syn keyword sqlOption    Http_session_timeout
 syn keyword sqlOption    Integrated_server_name
 syn keyword sqlOption    Isolation_level
-syn keyword sqlOption    ISQL_command_timing
-syn keyword sqlOption    ISQL_escape_character
-syn keyword sqlOption    ISQL_field_separator
-syn keyword sqlOption    ISQL_log
-syn keyword sqlOption    ISQL_plan
-syn keyword sqlOption    ISQL_plan_cursor_sensitivity
-syn keyword sqlOption    ISQL_plan_cursor_writability
-syn keyword sqlOption    ISQL_quote
-syn keyword sqlOption    Java_heap_size
-syn keyword sqlOption    Java_input_output
-syn keyword sqlOption    Java_namespace_size
-syn keyword sqlOption    Java_page_buffer_size
+syn keyword sqlOption    Java_location
+syn keyword sqlOption    Java_main_userid
+syn keyword sqlOption    Java_vm_options
 syn keyword sqlOption    Lock_rejected_rows
 syn keyword sqlOption    Log_deadlocks
-syn keyword sqlOption    Log_detailed_plans
-syn keyword sqlOption    Log_max_requests
 syn keyword sqlOption    Login_mode
 syn keyword sqlOption    Login_procedure
+syn keyword sqlOption    Materialized_view_optimization
+syn keyword sqlOption    Max_client_statements_cached
 syn keyword sqlOption    Max_cursor_count
 syn keyword sqlOption    Max_hash_size
 syn keyword sqlOption    Max_plans_cached
+syn keyword sqlOption    Max_priority
+syn keyword sqlOption    Max_query_tasks
 syn keyword sqlOption    Max_recursive_iterations
 syn keyword sqlOption    Max_statement_count
-syn keyword sqlOption    Max_work_table_hash_size
+syn keyword sqlOption    Max_temp_space
 syn keyword sqlOption    Min_password_length
 syn keyword sqlOption    Nearest_century
 syn keyword sqlOption    Non_keywords
-syn keyword sqlOption    NULLS
-syn keyword sqlOption    ODBC_describe_binary_as_varbinary
-syn keyword sqlOption    ODBC_distinguish_char_and_varchar
-syn keyword sqlOption    On_Charset_conversion_failure
-syn keyword sqlOption    On_error
+syn keyword sqlOption    Odbc_describe_binary_as_varbinary
+syn keyword sqlOption    Odbc_distinguish_char_and_varchar
+syn keyword sqlOption    Oem_string
+syn keyword sqlOption    On_charset_conversion_failure
 syn keyword sqlOption    On_tsql_error
-syn keyword sqlOption    Optimistic_wait_for_commit
 syn keyword sqlOption    Optimization_goal
 syn keyword sqlOption    Optimization_level
-syn keyword sqlOption    Optimization_logging
 syn keyword sqlOption    Optimization_workload
-syn keyword sqlOption    Output_format
-syn keyword sqlOption    Output_length
-syn keyword sqlOption    Output_nulls
-syn keyword sqlOption    Percent_as_comment
 syn keyword sqlOption    Pinned_cursor_percent_of_cache
+syn keyword sqlOption    Post_login_procedure
 syn keyword sqlOption    Precision
 syn keyword sqlOption    Prefetch
 syn keyword sqlOption    Preserve_source_format
 syn keyword sqlOption    Prevent_article_pkey_update
-syn keyword sqlOption    Qualify_owners
-syn keyword sqlOption    Query_plan_on_open
-syn keyword sqlOption    Quiet
-syn keyword sqlOption    Quote_all_identifiers
+syn keyword sqlOption    Priority
+syn keyword sqlOption    Query_mem_timeout
 syn keyword sqlOption    Quoted_identifier
 syn keyword sqlOption    Read_past_deleted
 syn keyword sqlOption    Recovery_time
 syn keyword sqlOption    Remote_idle_timeout
 syn keyword sqlOption    Replicate_all
-syn keyword sqlOption    Replication_error
-syn keyword sqlOption    Replication_error_piece
+syn keyword sqlOption    Request_timeout
 syn keyword sqlOption    Return_date_time_as_string
-syn keyword sqlOption    Return_java_as_string
-syn keyword sqlOption    RI_Trigger_time
 syn keyword sqlOption    Rollback_on_deadlock
 syn keyword sqlOption    Row_counts
-syn keyword sqlOption    Save_remote_passwords
 syn keyword sqlOption    Scale
-syn keyword sqlOption    Screen_format
-syn keyword sqlOption    Sort_Collation
-syn keyword sqlOption    SQL_flagger_error_level
-syn keyword sqlOption    SQL_flagger_warning_level
-syn keyword sqlOption    SQLConnect
-syn keyword sqlOption    SQLStart
-syn keyword sqlOption    SR_Date_Format
-syn keyword sqlOption    SR_Time_Format
-syn keyword sqlOption    SR_TimeStamp_Format
-syn keyword sqlOption    Statistics
+syn keyword sqlOption    Secure_feature_key
+syn keyword sqlOption    Sort_collation
+syn keyword sqlOption    Sql_flagger_error_level
+syn keyword sqlOption    Sql_flagger_warning_level
 syn keyword sqlOption    String_rtruncation
-syn keyword sqlOption    Subscribe_by_remote
 syn keyword sqlOption    Subsume_row_locks
-syn keyword sqlOption    Suppress_TDS_debugging
-syn keyword sqlOption    TDS_Empty_string_is_null
+syn keyword sqlOption    Suppress_tds_debugging
+syn keyword sqlOption    Synchronize_mirror_on_commit
+syn keyword sqlOption    Tds_empty_string_is_null
 syn keyword sqlOption    Temp_space_limit_check
-syn keyword sqlOption    Thread_count
-syn keyword sqlOption    Thread_stack
-syn keyword sqlOption    Thread_swaps
 syn keyword sqlOption    Time_format
 syn keyword sqlOption    Time_zone_adjustment
 syn keyword sqlOption    Timestamp_format
-syn keyword sqlOption    Truncate_date_values
 syn keyword sqlOption    Truncate_timestamp_values
-syn keyword sqlOption    Truncate_with_auto_commit
-syn keyword sqlOption    Truncation_length
-syn keyword sqlOption    Tsql_hex_constant
+syn keyword sqlOption    Tsql_outer_joins
 syn keyword sqlOption    Tsql_variables
+syn keyword sqlOption    Updatable_statement_isolation
 syn keyword sqlOption    Update_statistics
+syn keyword sqlOption    Upgrade_database_capability
 syn keyword sqlOption    User_estimates
-syn keyword sqlOption    Verify_all_columns
-syn keyword sqlOption    Verify_threshold
+syn keyword sqlOption    Verify_password_function
 syn keyword sqlOption    Wait_for_commit
+syn keyword sqlOption    Webservice_namespace_host
 
 " Strings and characters:
 syn region sqlString		start=+"+    end=+"+ contains=@Spell
diff -Nur runtime.patched/syntax/sshconfig.vim runtime/syntax/sshconfig.vim
--- runtime.patched/syntax/sshconfig.vim	2006-03-05 13:55:08.000000000 -0800
+++ runtime/syntax/sshconfig.vim	2009-07-26 04:44:10.000000000 -0700
@@ -1,23 +1,21 @@
 " Vim syntax file
-" This is a GENERATED FILE. Please always refer to source file at the URI below.
-" Language: OpenSSH server configuration file (ssh_config)
-" Maintainer: David Ne\v{c}as (Yeti) <[email protected]>
-" Last Change: 2006-03-05
-" URL: http://trific.ath.cx/Ftp/vim/syntax/sshconfig.vim
+" Language: OpenSSH client configuration file (ssh_config)
+" Maintainer: David Necas (Yeti) <[email protected]>
+" Last Change: 2009-07-09
 
 " Setup
 if version >= 600
-	if exists("b:current_syntax")
-		finish
-	endif
+  if exists("b:current_syntax")
+    finish
+  endif
 else
-	syntax clear
+  syntax clear
 endif
 
 if version >= 600
-	setlocal iskeyword=_,-,a-z,A-Z,48-57
+  setlocal iskeyword=_,-,a-z,A-Z,48-57
 else
-	set iskeyword=_,-,a-z,A-Z,48-57
+  set iskeyword=_,-,a-z,A-Z,48-57
 endif
 
 syn case ignore
@@ -28,19 +26,21 @@
 
 " Constants
 syn keyword sshconfigYesNo yes no ask
-syn keyword sshconfigCipher blowfish des 3des
+syn keyword sshconfigYesNo any auto
 syn keyword sshconfigCipher aes128-cbc 3des-cbc blowfish-cbc cast128-cbc
 syn keyword sshconfigCipher aes192-cbc aes256-cbc aes128-ctr aes256-ctr
 syn keyword sshconfigCipher arcfour arcfour128 arcfour256 cast128-cbc
 syn keyword sshconfigMAC hmac-md5 hmac-sha1 hmac-ripemd160 hmac-sha1-96
 syn keyword sshconfigMAC hmac-md5-96
+syn match sshconfigMAC "\<umac-64@openssh\.com\>"
 syn keyword sshconfigHostKeyAlg ssh-rsa ssh-dss
 syn keyword sshconfigPreferredAuth hostbased publickey password
 syn keyword sshconfigPreferredAuth keyboard-interactive
 syn keyword sshconfigLogLevel QUIET FATAL ERROR INFO VERBOSE
 syn keyword sshconfigLogLevel DEBUG DEBUG1 DEBUG2 DEBUG3
-syn keyword sshconfigSysLogFacility DAEMON USER AUTH LOCAL0 LOCAL1 LOCAL2
-syn keyword sshconfigSysLogFacility LOCAL3 LOCAL4 LOCAL5 LOCAL6 LOCAL7
+syn keyword sshconfigSysLogFacility DAEMON USER AUTH AUTHPRIV LOCAL0 LOCAL1
+syn keyword sshconfigSysLogFacility LOCAL2 LOCAL3 LOCAL4 LOCAL5 LOCAL6 LOCAL7
+syn match sshconfigVar "%[rhpldun]\>"
 syn match sshconfigSpecial "[*?]"
 syn match sshconfigNumber "\d\+"
 syn match sshconfigHostPort "\<\(\d\{1,3}\.\)\{3}\d\{1,3}\(:\d\+\)\?\>"
@@ -49,57 +49,68 @@
 
 " Keywords
 syn keyword sshconfigHostSect Host
-syn keyword sshconfigKeyword AddressFamily BatchMode BindAddress
+syn keyword sshconfigKeyword AddressFamily
+syn keyword sshconfigKeyword BatchMode BindAddress
 syn keyword sshconfigKeyword ChallengeResponseAuthentication CheckHostIP
 syn keyword sshconfigKeyword Cipher Ciphers ClearAllForwardings
 syn keyword sshconfigKeyword Compression CompressionLevel ConnectTimeout
 syn keyword sshconfigKeyword ConnectionAttempts ControlMaster
-syn keyword sshconfigKeyword ControlPath DynamicForward EnableSSHKeysign
-syn keyword sshconfigKeyword EscapeChar ForwardAgent ForwardX11
-syn keyword sshconfigKeyword ForwardX11Trusted GSSAPIAuthentication
+syn keyword sshconfigKeyword ControlPath DynamicForward
+syn keyword sshconfigKeyword EnableSSHKeysign EscapeChar ExitOnForwardFailure
+syn keyword sshconfigKeyword ForwardAgent ForwardX11
+syn keyword sshconfigKeyword ForwardX11Trusted
+syn keyword sshconfigKeyword GSSAPIAuthentication
 syn keyword sshconfigKeyword GSSAPIDelegateCredentials GatewayPorts
-syn keyword sshconfigKeyword GlobalKnownHostsFile HostKeyAlgorithms
-syn keyword sshconfigKeyword HashKnownHosts KbdInteractiveDevices
+syn keyword sshconfigKeyword GlobalKnownHostsFile
+syn keyword sshconfigKeyword HostKeyAlgorithms HashKnownHosts
 syn keyword sshconfigKeyword HostKeyAlias HostName HostbasedAuthentication
-syn keyword sshconfigKeyword IdentitiesOnly IdentityFile LocalForward
-syn keyword sshconfigKeyword LogLevel MACs NoHostAuthenticationForLocalhost
-syn keyword sshconfigKeyword NumberOfPasswordPrompts PasswordAuthentication
+syn keyword sshconfigKeyword IdentitiesOnly IdentityFile
+syn keyword sshconfigKeyword KbdInteractiveAuthentication KbdInteractiveDevices
+syn keyword sshconfigKeyword LocalCommand LocalForward LogLevel
+syn keyword sshconfigKeyword MACs
+syn keyword sshconfigKeyword NoHostAuthenticationForLocalhost
+syn keyword sshconfigKeyword NumberOfPasswordPrompts
+syn keyword sshconfigKeyword PasswordAuthentication PermitLocalCommand
 syn keyword sshconfigKeyword Port PreferredAuthentications Protocol
 syn keyword sshconfigKeyword ProxyCommand PubkeyAuthentication
-syn keyword sshconfigKeyword RSAAuthentication RemoteForward
-syn keyword sshconfigKeyword RhostsAuthentication RhostsRSAAuthentication
+syn keyword sshconfigKeyword PermitLocalCommand
+syn keyword sshconfigKeyword RSAAuthentication RemoteForward RekeyLimit
+syn keyword sshconfigKeyword RhostsRSAAuthentication
 syn keyword sshconfigKeyword SendEnv ServerAliveCountMax ServerAliveInterval
 syn keyword sshconfigKeyword SmartcardDevice StrictHostKeyChecking
+syn keyword sshconfigKeyword Tunnel TunnelDevice
 syn keyword sshconfigKeyword TCPKeepAlive UsePrivilegedPort User
-syn keyword sshconfigKeyword UserKnownHostsFile VerifyHostKeyDNS XAuthLocation
+syn keyword sshconfigKeyword UserKnownHostsFile
+syn keyword sshconfigKeyword VerifyHostKeyDNS VisualHostKey
+syn keyword sshconfigKeyword XAuthLocation
 
 " Define the default highlighting
 if version >= 508 || !exists("did_sshconfig_syntax_inits")
-	if version < 508
-		let did_sshconfig_syntax_inits = 1
-		command -nargs=+ HiLink hi link <args>
-	else
-		command -nargs=+ HiLink hi def link <args>
-	endif
-
-	HiLink sshconfigComment Comment
-	HiLink sshconfigTodo Todo
-	HiLink sshconfigHostPort sshconfigConstant
-	HiLink sshconfigNumber sshconfigConstant
-	HiLink sshconfigConstant Constant
-	HiLink sshconfigYesNo sshconfigEnum
-	HiLink sshconfigCipher sshconfigEnum
-	HiLink sshconfigMAC sshconfigEnum
-	HiLink sshconfigHostKeyAlg sshconfigEnum
-	HiLink sshconfigLogLevel sshconfigEnum
-	HiLink sshconfigSysLogFacility sshconfigEnum
-	HiLink sshconfigPreferredAuth sshconfigEnum
-	HiLink sshconfigEnum Function
-	HiLink sshconfigSpecial Special
-	HiLink sshconfigKeyword Keyword
-	HiLink sshconfigHostSect Type
-	delcommand HiLink
+  if version < 508
+    let did_sshconfig_syntax_inits = 1
+    command -nargs=+ HiLink hi link <args>
+  else
+    command -nargs=+ HiLink hi def link <args>
+  endif
+
+  HiLink sshconfigComment        Comment
+  HiLink sshconfigTodo           Todo
+  HiLink sshconfigHostPort       sshconfigConstant
+  HiLink sshconfigNumber         sshconfigConstant
+  HiLink sshconfigConstant       Constant
+  HiLink sshconfigYesNo          sshconfigEnum
+  HiLink sshconfigCipher         sshconfigEnum
+  HiLink sshconfigMAC            sshconfigEnum
+  HiLink sshconfigHostKeyAlg     sshconfigEnum
+  HiLink sshconfigLogLevel       sshconfigEnum
+  HiLink sshconfigSysLogFacility sshconfigEnum
+  HiLink sshconfigPreferredAuth  sshconfigEnum
+  HiLink sshconfigVar            sshconfigEnum
+  HiLink sshconfigEnum           Identifier
+  HiLink sshconfigSpecial        Special
+  HiLink sshconfigKeyword        Keyword
+  HiLink sshconfigHostSect       Type
+  delcommand HiLink
 endif
 
 let b:current_syntax = "sshconfig"
-
diff -Nur runtime.patched/syntax/sshdconfig.vim runtime/syntax/sshdconfig.vim
--- runtime.patched/syntax/sshdconfig.vim	2006-03-05 13:55:08.000000000 -0800
+++ runtime/syntax/sshdconfig.vim	2009-07-26 04:41:55.000000000 -0700
@@ -1,23 +1,21 @@
 " Vim syntax file
-" This is a GENERATED FILE. Please always refer to source file at the URI below.
 " Language: OpenSSH server configuration file (sshd_config)
-" Maintainer: David Ne\v{c}as (Yeti) <[email protected]>
-" Last Change: 2006-03-05
-" URL: http://trific.ath.cx/Ftp/vim/syntax/sshdconfig.vim
+" Maintainer: David Necas (Yeti) <[email protected]>
+" Last Change: 2009-07-09
 
 " Setup
 if version >= 600
-	if exists("b:current_syntax")
-		finish
-	endif
+  if exists("b:current_syntax")
+    finish
+  endif
 else
-	syntax clear
+  syntax clear
 endif
 
 if version >= 600
-	setlocal iskeyword=_,-,a-z,A-Z,48-57
+  setlocal iskeyword=_,-,a-z,A-Z,48-57
 else
-	set iskeyword=_,-,a-z,A-Z,48-57
+  set iskeyword=_,-,a-z,A-Z,48-57
 endif
 
 syn case ignore
@@ -27,78 +25,87 @@
 syn keyword sshdconfigTodo TODO FIXME NOT contained
 
 " Constants
-syn keyword sshdconfigYesNo yes no
+syn keyword sshdconfigYesNo yes no none
+syn keyword sshdconfigAddressFamily any inet inet6
 syn keyword sshdconfigCipher aes128-cbc 3des-cbc blowfish-cbc cast128-cbc
 syn keyword sshdconfigCipher aes192-cbc aes256-cbc aes128-ctr aes256-ctr
 syn keyword sshdconfigCipher arcfour arcfour128 arcfour256 cast128-cbc
 syn keyword sshdconfigMAC hmac-md5 hmac-sha1 hmac-ripemd160 hmac-sha1-96
 syn keyword sshdconfigMAC hmac-md5-96
+syn match sshdconfigMAC "\<umac-64@openssh\.com\>"
 syn keyword sshdconfigRootLogin without-password forced-commands-only
 syn keyword sshdconfigLogLevel QUIET FATAL ERROR INFO VERBOSE
 syn keyword sshdconfigLogLevel DEBUG DEBUG1 DEBUG2 DEBUG3
-syn keyword sshdconfigSysLogFacility DAEMON USER AUTH LOCAL0 LOCAL1 LOCAL2
-syn keyword sshdconfigSysLogFacility LOCAL3 LOCAL4 LOCAL5 LOCAL6 LOCAL7
+syn keyword sshdconfigSysLogFacility DAEMON USER AUTH AUTHPRIV LOCAL0 LOCAL1
+syn keyword sshdconfigSysLogFacility LOCAL2 LOCAL3 LOCAL4 LOCAL5 LOCAL6 LOCAL7
 syn match sshdconfigSpecial "[*?]"
 syn match sshdconfigNumber "\d\+"
 syn match sshdconfigHostPort "\<\(\d\{1,3}\.\)\{3}\d\{1,3}\(:\d\+\)\?\>"
 syn match sshdconfigHostPort "\<\([-a-zA-Z0-9]\+\.\)\+[-a-zA-Z0-9]\{2,}\(:\d\+\)\?\>"
+" FIXME: this matches quite a few things which are NOT valid IPv6 addresses
 syn match sshdconfigHostPort "\<\(\x\{,4}:\)\+\x\{,4}:\d\+\>"
 syn match sshdconfigTime "\<\(\d\+[sSmMhHdDwW]\)\+\>"
 
 " Keywords
-syn keyword sshdconfigKeyword AcceptEnv AddressFamily
+syn keyword sshdconfigMatch Host User Group Address
+syn keyword sshdconfigKeyword AcceptEnv AddressFamily AllowAgentForwarding
 syn keyword sshdconfigKeyword AllowGroups AllowTcpForwarding
-syn keyword sshdconfigKeyword AllowUsers AuthorizedKeysFile Banner
-syn keyword sshdconfigKeyword ChallengeResponseAuthentication
+syn keyword sshdconfigKeyword AllowUsers AuthorizedKeysFile
+syn keyword sshdconfigKeyword Banner
+syn keyword sshdconfigKeyword ChallengeResponseAuthentication ChrootDirectory
 syn keyword sshdconfigKeyword Ciphers ClientAliveCountMax
 syn keyword sshdconfigKeyword ClientAliveInterval Compression
-syn keyword sshdconfigKeyword DenyGroups DenyUsers GSSAPIAuthentication
-syn keyword sshdconfigKeyword GSSAPICleanupCredentials GatewayPorts
-syn keyword sshdconfigKeyword HostKey HostbasedAuthentication
+syn keyword sshdconfigKeyword DenyGroups DenyUsers
+syn keyword sshdconfigKeyword ForceCommand
+syn keyword sshdconfigKeyword GatewayPorts GSSAPIAuthentication
+syn keyword sshdconfigKeyword GSSAPICleanupCredentials
+syn keyword sshdconfigKeyword HostbasedAuthentication HostKey
 syn keyword sshdconfigKeyword IgnoreRhosts IgnoreUserKnownHosts
-syn keyword sshdconfigKeyword KerberosAuthentication KerberosOrLocalPasswd
-syn keyword sshdconfigKeyword KerberosTgtPassing KerberosTicketCleanup
-syn keyword sshdconfigKeyword KerberosGetAFSToken
-syn keyword sshdconfigKeyword KeyRegenerationInterval ListenAddress
-syn keyword sshdconfigKeyword LogLevel LoginGraceTime MACs MaxAuthTries
-syn keyword sshdconfigKeyword MaxStartups PasswordAuthentication
-syn keyword sshdconfigKeyword PermitEmptyPasswords PermitRootLogin
+syn keyword sshdconfigKeyword KerberosAuthentication KerberosGetAFSToken
+syn keyword sshdconfigKeyword KerberosOrLocalPasswd KerberosTicketCleanup
+syn keyword sshdconfigKeyword KeyRegenerationInterval
+syn keyword sshdconfigKeyword ListenAddress LoginGraceTime LogLevel
+syn keyword sshdconfigKeyword MACs Match MaxAuthTries MaxSessions MaxStartups
+syn keyword sshdconfigKeyword PasswordAuthentication PermitEmptyPasswords
+syn keyword sshdconfigKeyword PermitRootLogin PermitOpen PermitTunnel
 syn keyword sshdconfigKeyword PermitUserEnvironment PidFile Port
 syn keyword sshdconfigKeyword PrintLastLog PrintMotd Protocol
-syn keyword sshdconfigKeyword PubkeyAuthentication RSAAuthentication
-syn keyword sshdconfigKeyword RhostsAuthentication RhostsRSAAuthentication
-syn keyword sshdconfigKeyword ServerKeyBits StrictModes Subsystem
-syn keyword sshdconfigKeyword ShowPatchLevel
-syn keyword sshdconfigKeyword SyslogFacility TCPKeepAlive UseDNS
-syn keyword sshdconfigKeyword UseLogin UsePAM UsePrivilegeSeparation
+syn keyword sshdconfigKeyword PubkeyAuthentication
+syn keyword sshdconfigKeyword RhostsRSAAuthentication RSAAuthentication
+syn keyword sshdconfigKeyword ServerKeyBits ShowPatchLevel StrictModes
+syn keyword sshdconfigKeyword Subsystem SyslogFacility
+syn keyword sshdconfigKeyword TCPKeepAlive
+syn keyword sshdconfigKeyword UseDNS UseLogin UsePAM UsePrivilegeSeparation
 syn keyword sshdconfigKeyword X11DisplayOffset X11Forwarding
 syn keyword sshdconfigKeyword X11UseLocalhost XAuthLocation
 
 " Define the default highlighting
 if version >= 508 || !exists("did_sshdconfig_syntax_inits")
-	if version < 508
-		let did_sshdconfig_syntax_inits = 1
-		command -nargs=+ HiLink hi link <args>
-	else
-		command -nargs=+ HiLink hi def link <args>
-	endif
-
-	HiLink sshdconfigComment Comment
-	HiLink sshdconfigTodo Todo
-	HiLink sshdconfigHostPort sshdconfigConstant
-	HiLink sshdconfigTime sshdconfigConstant
-	HiLink sshdconfigNumber sshdconfigConstant
-	HiLink sshdconfigConstant Constant
-	HiLink sshdconfigYesNo sshdconfigEnum
-	HiLink sshdconfigCipher sshdconfigEnum
-	HiLink sshdconfigMAC sshdconfigEnum
-	HiLink sshdconfigRootLogin sshdconfigEnum
-	HiLink sshdconfigLogLevel sshdconfigEnum
-	HiLink sshdconfigSysLogFacility sshdconfigEnum
-	HiLink sshdconfigEnum Function
-	HiLink sshdconfigSpecial Special
-	HiLink sshdconfigKeyword Keyword
-	delcommand HiLink
+  if version < 508
+    let did_sshdconfig_syntax_inits = 1
+    command -nargs=+ HiLink hi link <args>
+  else
+    command -nargs=+ HiLink hi def link <args>
+  endif
+
+  HiLink sshdconfigComment        Comment
+  HiLink sshdconfigTodo           Todo
+  HiLink sshdconfigHostPort       sshdconfigConstant
+  HiLink sshdconfigTime           sshdconfigConstant
+  HiLink sshdconfigNumber         sshdconfigConstant
+  HiLink sshdconfigConstant       Constant
+  HiLink sshdconfigYesNo          sshdconfigEnum
+  HiLink sshdconfigAddressFamily  sshdconfigEnum
+  HiLink sshdconfigCipher         sshdconfigEnum
+  HiLink sshdconfigMAC            sshdconfigEnum
+  HiLink sshdconfigRootLogin      sshdconfigEnum
+  HiLink sshdconfigLogLevel       sshdconfigEnum
+  HiLink sshdconfigSysLogFacility sshdconfigEnum
+  HiLink sshdconfigEnum           Function
+  HiLink sshdconfigSpecial        Special
+  HiLink sshdconfigKeyword        Keyword
+  HiLink sshdconfigMatch          Type
+  delcommand HiLink
 endif
 
 let b:current_syntax = "sshdconfig"
diff -Nur runtime.patched/syntax/taskdata.vim runtime/syntax/taskdata.vim
--- runtime.patched/syntax/taskdata.vim	1969-12-31 16:00:00.000000000 -0800
+++ runtime/syntax/taskdata.vim	2009-07-26 04:44:44.000000000 -0700
@@ -0,0 +1,43 @@
+" Vim syntax file
+" Language:	task data
+" Maintainer:	John Florian <[email protected]>
+" Updated:	Wed Jul  8 19:46:20 EDT 2009
+
+
+" For version 5.x: Clear all syntax items.
+" For version 6.x: Quit when a syntax file was already loaded.
+if version < 600
+  syntax clear
+elseif exists("b:current_syntax")
+  finish
+endif
+
+" Key Names for values.
+syn keyword taskdataKey		description due end entry imask mask parent
+syn keyword taskdataKey		priority project recur start status tags uuid
+syn match taskdataKey		"annotation_\d\+"
+syn match taskdataUndo		"^time.*$"
+syn match taskdataUndo		"^\(old \|new \|---\)"
+
+" Values associated with key names.
+"
+" Strings
+syn region taskdataString	matchgroup=Normal start=+"+ end=+"+
+			\	contains=taskdataEncoded,taskdataUUID,@Spell
+"
+" Special Embedded Characters (e.g., "&comma;")
+syn match taskdataEncoded	"&\a\+;" contained
+" UUIDs
+syn match taskdataUUID		"\x\{8}-\(\x\{4}-\)\{3}\x\{12}" contained
+
+
+" The default methods for highlighting.  Can be overridden later.
+hi def link taskdataEncoded	Function
+hi def link taskdataKey		Statement
+hi def link taskdataString 	String
+hi def link taskdataUUID 	Special
+hi def link taskdataUndo 	Type
+
+let b:current_syntax = "taskdata"
+
+" vim:noexpandtab
diff -Nur runtime.patched/syntax/taskedit.vim runtime/syntax/taskedit.vim
--- runtime.patched/syntax/taskedit.vim	1969-12-31 16:00:00.000000000 -0800
+++ runtime/syntax/taskedit.vim	2009-07-26 04:44:44.000000000 -0700
@@ -0,0 +1,35 @@
+" Vim syntax file
+" Language:	support for 'task 42 edit'
+" Maintainer:	John Florian <[email protected]>
+" Updated:	Wed Jul  8 19:46:32 EDT 2009
+
+
+" For version 5.x: Clear all syntax items.
+" For version 6.x: Quit when a syntax file was already loaded.
+if version < 600
+  syntax clear
+elseif exists("b:current_syntax")
+  finish
+endif
+
+syn match taskeditHeading	"^\s*#\s*Name\s\+Editable details\s*$" contained
+syn match taskeditHeading	"^\s*#\s*-\+\s\+-\+\s*$" contained
+syn match taskeditReadOnly	"^\s*#\s*\(UU\)\?ID:.*$" contained
+syn match taskeditReadOnly	"^\s*#\s*Status:.*$" contained
+syn match taskeditReadOnly	"^\s*#\s*i\?Mask:.*$" contained
+syn match taskeditKey		"^ *.\{-}:" nextgroup=taskeditString
+syn match taskeditComment	"^\s*#.*$"
+			\	contains=taskeditReadOnly,taskeditHeading
+syn match taskeditString	".*$" contained contains=@Spell
+
+
+" The default methods for highlighting.  Can be overridden later.
+hi def link taskeditComment	Comment
+hi def link taskeditHeading	Function
+hi def link taskeditKey		Statement
+hi def link taskeditReadOnly	Special
+hi def link taskeditString	String
+
+let b:current_syntax = "taskedit"
+
+" vim:noexpandtab
diff -Nur runtime.patched/syntax/tcl.vim runtime/syntax/tcl.vim
--- runtime.patched/syntax/tcl.vim	2006-11-17 11:25:54.000000000 -0800
+++ runtime/syntax/tcl.vim	2009-06-03 03:07:39.000000000 -0700
@@ -1,13 +1,16 @@
 " Vim syntax file
-" Language:	TCL/TK
-" Maintainer:	Brett Cannon <[email protected]>
+" Language:	Tcl/Tk
+" Maintainer:	Taylor Venable <[email protected]>
+" 		(previously Brett Cannon <[email protected]>)
 " 		(previously Dean Copsey <[email protected]>)
 "		(previously Matt Neumann <[email protected]>)
 "		(previously Allan Kelly <[email protected]>)
 " Original:	Robin Becker <[email protected]>
-" Last Change:	2006 Nov 17
+" Last Change:	2009/04/06 02:38:36
+" Version:	1.13
+" URL:		http://real.metasyntax.net:2357/cvs/cvsweb.cgi/Config/vim/syntax/tcl.vim
 "
-" Keywords TODO: format clock click anchor
+" Keywords TODO: click anchor
 
 " For version 5.x: Clear all syntax items
 " For version 6.x: Quit when a syntax file was already loaded
@@ -17,19 +20,40 @@
   finish
 endif
 
-" A bunch of useful keywords
-syn keyword tclStatement  tell socket subst open eof pwd glob list exec pid
-syn keyword tclStatement  auto_load_index time unknown eval lrange fblocked
-syn keyword tclStatement  lsearch auto_import gets lappend proc variable llength
-syn keyword tclStatement  auto_execok return linsert error catch clock info
-syn keyword tclStatement  split array fconfigure concat join lreplace source
-syn keyword tclStatement  fcopy global auto_qualify update close cd auto_load
-syn keyword tclStatement  file append format read package set binary namespace
-syn keyword tclStatement  scan trace seek flush after vwait uplevel lset rename
-syn keyword tclStatement  fileevent regexp upvar unset encoding expr load regsub
-syn keyword tclStatement interp exit puts incr lindex lsort tclLog string
+" Basic Tcl commands: http://www.tcl.tk/man/tcl8.5/TclCmd/contents.htm
+syn keyword tclCommand		after append apply array bgerror binary catch cd chan clock
+syn keyword tclCommand		close concat dde dict encoding eof error eval exec exit
+syn keyword tclCommand		expr fblocked fconfigure fcopy file fileevent filename flush
+syn keyword tclCommand		format gets glob global history incr info interp join
+syn keyword tclCommand		lappend lassign lindex linsert list llength load lrange lrepeat
+syn keyword tclCommand		lreplace lreverse lsearch lset lsort memory namespace open package
+syn keyword tclCommand		pid proc puts pwd read regexp registry regsub rename return
+syn keyword tclCommand		scan seek set socket source split string subst tell time
+syn keyword tclCommand		trace unknown unload unset update uplevel upvar variable vwait
+
+" The 'Tcl Standard Library' commands: http://www.tcl.tk/man/tcl8.5/TclCmd/library.htm
+syn keyword tclCommand		auto_execok auto_import auto_load auto_mkindex auto_mkindex_old
+syn keyword tclCommand		auto_qualify auto_reset parray tcl_endOfWord tcl_findLibrary
+syn keyword tclCommand		tcl_startOfNextWord tcl_startOfPreviousWord tcl_wordBreakAfter
+syn keyword tclCommand		tcl_wordBreakBefore
+
+" Commands that were added in Tcl 8.6
+
+syn keyword tclCommand		my oo::copy oo::define oo::objdefine self
+syn keyword tclCommand		coroutine tailcall throw yield
+
+" Global variables used by Tcl: http://www.tcl.tk/man/tcl8.5/TclCmd/tclvars.htm
+syn keyword tclVars		env errorCode errorInfo tcl_library tcl_patchLevel tcl_pkgPath
+syn keyword tclVars		tcl_platform tcl_precision tcl_rcFileName tcl_traceCompile
+syn keyword tclVars		tcl_traceExec tcl_wordchars tcl_nonwordchars tcl_version argc argv
+syn keyword tclVars		argv0 tcl_interactive geometry
+
+" Strings which expr accepts as boolean values, aside from zero / non-zero.
+syn keyword tclBoolean		true false on off yes no
+
 syn keyword tclLabel		case default
 syn keyword tclConditional	if then else elseif switch
+syn keyword tclConditional	try finally
 syn keyword tclRepeat		while for foreach break continue
 syn keyword tcltkSwitch	contained	insert create polygon fill outline tag
 
@@ -63,9 +87,14 @@
 syn keyword tcltkWidgetSwitch contained delete names types create
 " variable reference
 	" ::optional::namespaces
-syn match tclVarRef "$\(\(::\)\?\([[:alnum:]_.]*::\)*\)\a[a-zA-Z0-9_.]*"
+syn match tclVarRef "$\(\(::\)\?\([[:alnum:]_]*::\)*\)\a[[:alnum:]_]*"
 	" ${...} may contain any character except '}'
 syn match tclVarRef "${[^}]*}"
+
+" The syntactic unquote-splicing replacement for [expand].
+syn match tclExpand '\s{\*}'
+syn match tclExpand '^{\*}'
+
 " menu, mane add
 syn keyword tcltkWidgetSwitch contained active end last none cascade checkbutton command radiobutton separator
 syn keyword tcltkWidgetSwitch contained activebackground actveforeground accelerator background bitmap columnbreak
@@ -130,11 +159,10 @@
 
 " EXPR
 " commands associated with expr
-syn keyword tcltkMaths	contained	acos	cos	hypot	sinh
-syn keyword tcltkMaths	contained	asin	cosh	log	sqrt
-syn keyword tcltkMaths	contained	atan	exp	log10	tan
-syn keyword tcltkMaths	contained	atan2	floor	pow	tanh
-syn keyword tcltkMaths	contained	ceil	fmod	sin
+syn keyword tcltkMaths contained	abs acos asin atan atan2 bool ceil cos cosh double entier
+syn keyword tcltkMaths contained	exp floor fmod hypot int isqrt log log10 max min pow rand
+syn keyword tcltkMaths contained	round sin sinh sqrt srand tan tanh wide
+
 syn region tcltkCommand matchgroup=tcltkCommandColor start="\<expr\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"me=e-1  contains=tclLineContinue,tcltkMaths,tclNumber,tclVarRef,tclString,tcltlWidgetSwitch,tcltkCommand,tcltkPackConf
 
 " format
@@ -165,17 +193,26 @@
 
 syn keyword tclTodo contained	TODO
 
+" Sequences which are backslash-escaped: http://www.tcl.tk/man/tcl8.5/TclCmd/Tcl.htm#M16
+" Octal, hexadecimal, unicode codepoints, and the classics.
+" Tcl takes as many valid characters in a row as it can, so \xAZ in a string is newline followed by 'Z'.
+syn match   tclSpecial contained '\\\([0-7]\{1,3}\|x\x\{1,2}\|u\x\{1,4}\|[abfnrtv]\)'
+syn match   tclSpecial contained '\\[\[\]\{\}\"\$]'
 
-" String and Character contstants
-" Highlight special characters (those which have a backslash) differently
-syn match   tclSpecial contained "\\\d\d\d\=\|\\."
+" Command appearing inside another command or inside a string.
+syn region tclEmbeddedStatement	start='\[' end='\]' contained contains=tclCommand,tclNumber,tclLineContinue,tclString,tclVarRef,tclEmbeddedStatement
 " A string needs the skip argument as it may legitimately contain \".
 " Match at start of line
 syn region  tclString		  start=+^"+ end=+"+ contains=tclSpecial skip=+\\\\\|\\"+
 "Match all other legal strings.
-syn region  tclString		  start=+[^\\]"+ms=s+1  end=+"+ contains=tclSpecial skip=+\\\\\|\\"+
+syn region  tclString		  start=+[^\\]"+ms=s+1  end=+"+ contains=tclSpecial,tclVarRef,tclEmbeddedStatement skip=+\\\\\|\\"+
+
+" Line continuation is backslash immediately followed by newline.
+syn match tclLineContinue '\\$'
 
-syn match   tclLineContinue "\\\s*$"
+if exists('g:tcl_warn_continuation')
+    syn match tclNotLineContinue '\\\s\+$'
+endif
 
 "integer number, or floating point number without a dot and with "f".
 syn case ignore
@@ -208,13 +245,13 @@
   endif
 
   HiLink tcltkSwitch		Special
+  HiLink tclExpand		Special
   HiLink tclLabel		Label
   HiLink tclConditional		Conditional
   HiLink tclRepeat		Repeat
   HiLink tclNumber		Number
   HiLink tclError		Error
-  HiLink tclStatement		Statement
-  "HiLink tclStatementColor	Statement
+  HiLink tclCommand		Statement
   HiLink tclString		String
   HiLink tclComment		Comment
   HiLink tclSpecial		Special
@@ -223,6 +260,9 @@
   HiLink tcltkCommandColor	Statement
   HiLink tcltkWidgetColor	Structure
   HiLink tclLineContinue	WarningMsg
+if exists('g:tcl_warn_continuation')
+  HiLink tclNotLineContinue	ErrorMsg
+endif
   HiLink tcltkStringSwitch	Special
   HiLink tcltkArraySwitch	Special
   HiLink tcltkLsortSwitch	Special
@@ -232,7 +272,6 @@
   HiLink tcltkNamespaceSwitch	Special
   HiLink tcltkWidgetSwitch	Special
   HiLink tcltkPackConfColor	Identifier
-  "HiLink tcltkLsort		Statement
   HiLink tclVarRef		Identifier
 
   delcommand HiLink
@@ -240,4 +279,4 @@
 
 let b:current_syntax = "tcl"
 
-" vim: ts=8
+" vim: ts=8 noet
diff -Nur runtime.patched/syntax/tex.vim runtime/syntax/tex.vim
--- runtime.patched/syntax/tex.vim	2008-07-29 12:43:38.000000000 -0700
+++ runtime/syntax/tex.vim	2009-03-22 12:39:57.000000000 -0700
@@ -1,8 +1,8 @@
 " Vim syntax file
 " Language:	TeX
 " Maintainer:	Dr. Charles E. Campbell, Jr. <[email protected]>
-" Last Change:	Jun 03, 2008
-" Version:	41
+" Last Change:	Feb 05, 2009
+" Version:	45
 " URL:		http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax
 "
 " Notes: {{{1
@@ -103,6 +103,7 @@
 syn cluster texEnvGroup		contains=texMatcher,texMathDelim,texSpecialChar,texStatement
 syn cluster texFoldGroup	contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texInputFile,texLength,texLigature,texMatcher,texMathZoneV,texMathZoneW,texMathZoneX,texMathZoneY,texMathZoneZ,texNewCmd,texNewEnv,texOnlyMath,texOption,texParen,texRefZone,texSection,texSectionMarker,texSectionZone,texSpaceCode,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,@texMathZones,texTitle,texAbstract
 syn cluster texMatchGroup	contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texMatcher,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,texInputFile,texOption,@Spell
+syn cluster texStyleGroup	contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,texInputFile,texOption,texStyleStatement,@Spell,texStyleMatcher
 syn cluster texRefGroup		contains=texMatcher,texComment,texDelimiter
 if !exists("tex_no_math")
  syn cluster texMathZones	contains=texMathZoneV,texMathZoneW,texMathZoneX,texMathZoneY,texMathZoneZ
@@ -188,7 +189,7 @@
 
 " Preamble syntax-based folding support: {{{1
 if g:tex_fold_enabled && has("folding")
- syn region texPreamble	transparent fold	start='\zs\\documentclass\>' end='\ze\\begin{document}'	contains=@texMatchGroup
+ syn region texPreamble	transparent fold	start='\zs\\documentclass\>' end='\ze\\begin{document}'	contains=texStyle,@texMatchGroup
 endif
 
 " TeX input: {{{1
@@ -309,7 +310,7 @@
    exe 'syn region '.grpname.' start='."'".'\\begin\s*{\s*'.a:mathzone.'\s*}'."'".' end='."'".'\\end\s*{\s*'.a:mathzone.'\s*}'."'".' keepend contains=@texMathZoneGroup'.foldcmd
    exe 'syn sync match '.syncname.' grouphere '.grpname.' "\\begin\s*{\s*'.a:mathzone.'\*\s*}"'
    exe 'syn sync match '.syncname.' grouphere '.grpname.' "\\begin\s*{\s*'.a:mathzone.'\*\s*}"'
-   exe 'HiLink '.grpname.' texMath'
+   exe 'hi def link '.grpname.' texMath'
    if a:starform
     let grpname  = "texMathZone".a:sfx.'S'
     let syncname = "texSyncMathZone".a:sfx.'S'
@@ -317,7 +318,7 @@
     exe 'syn region '.grpname.' start='."'".'\\begin\s*{\s*'.a:mathzone.'\*\s*}'."'".' end='."'".'\\end\s*{\s*'.a:mathzone.'\*\s*}'."'".' keepend contains=@texMathZoneGroup'.foldcmd
     exe 'syn sync match '.syncname.' grouphere '.grpname.' "\\begin\s*{\s*'.a:mathzone.'\*\s*}"'
     exe 'syn sync match '.syncname.' grouphere '.grpname.' "\\begin\s*{\s*'.a:mathzone.'\*\s*}"'
-    exe 'HiLink '.grpname.' texMath'
+    exe 'hi def link '.grpname.' texMath'
    endif
  endfun
 
@@ -399,7 +400,7 @@
 " Separate lines used for verb` and verb# so that the end conditions {{{1
 " will appropriately terminate.  Ideally vim would let me save a
 " character from the start pattern and re-use it in the end-pattern.
-syn region texZone		start="\\begin{verbatim}"		end="\\end{verbatim}\|%stopzone\>"	contains=@Spell
+syn region texZone		start="\\begin{[vV]erbatim}"		end="\\end{[vV]erbatim}\|%stopzone\>"	contains=@Spell
 " listings package:
 syn region texZone		start="\\begin{lstlisting}"		end="\\end{lstlisting}\|%stopzone\>"	contains=@Spell
 " moreverb package:
@@ -456,6 +457,14 @@
 " TeX String Delimiters: {{{1
 syn match texString		"\(``\|''\|,,\)"
 
+" makeatletter -- makeatother sections
+if !exists("g:tex_no_error")
+ syn region texStyle			matchgroup=texStatement start='\\makeatletter' end='\\makeatother'	contains=@texStyleGroup contained
+ syn match  texStyleStatement		"\\[a-zA-Z@]\+"	contained
+ syn region texStyleMatcher		matchgroup=Delimiter start="{" skip="\\\\\|\\[{}]"	end="}"		contains=@texStyleGroup,texError	contained
+ syn region texStyleMatcher		matchgroup=Delimiter start="\["				end="]"		contains=@texStyleGroup,texError	contained
+endif
+
 " LaTeX synchronization: {{{1
 syn sync maxlines=200
 syn sync minlines=50
@@ -507,6 +516,7 @@
    HiLink texMathDelimSet2	texMathDelim
    HiLink texMathDelimKey	texMathDelim
    HiLink texMathMatcher	texMath
+   HiLink texMathZoneV		texMath
    HiLink texMathZoneW		texMath
    HiLink texMathZoneX		texMath
    HiLink texMathZoneY		texMath
@@ -516,6 +526,7 @@
   HiLink texSectionMarker	texCmdName
   HiLink texSectionName		texSection
   HiLink texSpaceCode		texStatement
+  HiLink texStyleStatement	texStatement
   HiLink texTypeSize		texType
   HiLink texTypeStyle		texType
 
diff -Nur runtime.patched/syntax/updatedb.vim runtime/syntax/updatedb.vim
--- runtime.patched/syntax/updatedb.vim	2007-10-25 07:36:25.000000000 -0700
+++ runtime/syntax/updatedb.vim	2009-06-13 05:38:40.000000000 -0700
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         updatedb.conf(5) configuration file
 " Maintainer:       Nikolai Weibull <[email protected]>
-" Latest Revision:  2007-10-25
+" Latest Revision:  2009-05-25
 
 if exists("b:current_syntax")
   finish
@@ -18,7 +18,11 @@
 syn match   updatedbBegin   display '^'
                             \ nextgroup=updatedbName,updatedbComment skipwhite
 
-syn keyword updatedbName    contained PRUNEFS PRUNEPATHS PRUNE_BIND_MOUNTS
+syn keyword updatedbName    contained
+                            \ PRUNEFS
+                            \ PRUNENAMES
+                            \ PRUNEPATHS
+                            \ PRUNE_BIND_MOUNTS
                             \ nextgroup=updatedbNameEq
 
 syn match   updatedbNameEq  contained display '=' nextgroup=updatedbValue
diff -Nur runtime.patched/syntax/vim.vim runtime/syntax/vim.vim
--- runtime.patched/syntax/vim.vim	2008-07-29 12:43:38.000000000 -0700
+++ runtime/syntax/vim.vim	2009-10-08 14:18:08.000000000 -0700
@@ -1,8 +1,8 @@
 " Vim syntax file
 " Language:	Vim 7.2 script
 " Maintainer:	Dr. Charles E. Campbell, Jr. <[email protected]>
-" Last Change:	July 29, 2008
-" Version:	7.2-82
+" Last Change:	Aug 17, 2009
+" Version:	7.2-93
 " Automatically generated keyword lists: {{{1
 
 " Quit when a syntax file was already loaded {{{2
@@ -16,11 +16,11 @@
 syn cluster vimCommentGroup	contains=vimTodo,@Spell
 
 " regular vim commands {{{2
-syn keyword vimCommand contained	abc[lear] argdo argu[ment] bel[owright] bN[ext] breakd[el] b[uffer] caddb[uffer] cb[uffer] cex[pr] cg[etfile] checkt[ime] cnew[er] col[der] con[tinue] cq[uit] delc[ommand] diffoff diffu[pdate] dr[op] echom[sg] em[enu] endt[ry] exu[sage] fin[d] foldc[lose] fu[nction] ha[rdcopy] helpt[ags] if is[earch] ju[mps] kee[pmarks] lan[guage] lc[d] lefta[bove] lgetb[uffer] lgrepa[dd] lla[st] lmapc[lear] lnf[ile] loc[kmarks] lpf[ile] lt[ag] mak[e] menut[ranslate] mkvie[w] mzf[ile] n[ext] nu[mber] opt[ions] perld[o] pp[op] P[rint] promptr[epl] ptj[ump] ptp[revious] pw[d] q[uit] redi[r] reg[isters] rew[ind] rubyd[o] sal[l] sba[ll] sbn[ext] sb[uffer] setf[iletype] sfir[st] sim[alt] sm[ap] sn[ext] snor[emap] so[urce] spellr[epall] spr[evious] star[tinsert] stopi[nsert] sunmenu t tabe[dit] tabm[ove] tabo[nly] ta[g] tclf[ile] tj[ump] tn[ext] tr[ewind] tu[nmenu] undol[ist] verb[ose] vim[grep] vmapc[lear] wh[ile] win[size] wq wv[iminfo] xm[ap] XMLent xnoremenu
-syn keyword vimCommand contained	abo[veleft] arge[dit] as[cii] bf[irst] bo[tright] breakl[ist] buffers cad[dexpr] cc cf[ile] c[hange] cla[st] cn[ext] colo[rscheme] cope[n] cr[ewind] d[elete] diffpatch dig[raphs] ds[earch] echon emenu* endw[hile] f[ile] fini[sh] folddoc[losed] go[to] h[elp] hid[e] ij[ump] isp[lit] k laddb[uffer] la[st] lch[dir] lex[pr] lgete[xpr] lh[elpgrep] lli[st] lnew[er] lNf[ile] lockv[ar] lp[revious] lv[imgrep] ma[rk] mk[exrc] mkv[imrc] mz[scheme] N[ext] omapc[lear] pc[lose] po[p] pre[serve] profd[el] ps[earch] ptl[ast] ptr[ewind] pyf[ile] quita[ll] red[o] res[ize] ri[ght] rubyf[ile] san[dbox] sbf[irst] sbN[ext] scripte[ncoding] setg[lobal] sh[ell] sla[st] smapc[lear] sN[ext] snoreme spelld[ump] spellu[ndo] sre[wind] startr[eplace] sts[elect] sus[pend] tab tabf[ind] tabnew tabp[revious] tags te[aroff] tl[ast] tN[ext] try una[bbreviate] unh[ide] ve[rsion] vimgrepa[dd] vne[w] winc[md] wn[ext] wqa[ll] X xmapc[lear] XMLns xunme
-syn keyword vimCommand contained	al[l] argg[lobal] bad[d] bl[ast] bp[revious] br[ewind] bun[load] caddf[ile] ccl[ose] cfir[st] changes cl[ist] cN[ext] comc[lear] co[py] cuna[bbrev] delf[unction] diffpu[t] di[splay] dsp[lit] e[dit] endfo[r] ene[w] files fir[st] foldd[oopen] gr[ep] helpf[ind] his[tory] il[ist] iuna[bbrev] keepalt lad[dexpr] later lcl[ose] lf[ile] lg[etfile] l[ist] lmak[e] lne[xt] ln[oremap] lol[der] lr[ewind] lvimgrepa[dd] marks mks[ession] mod[e] nbkey nmapc[lear] on[ly] ped[it] popu prev[ious] prof[ile] pta[g] ptn[ext] pts[elect] py[thon] r[ead] redr[aw] ret[ab] rightb[elow] ru[ntime] sa[rgument] sbl[ast] sbp[revious] scrip[tnames] setl[ocal] sign sl[eep] sme sni[ff] snoremenu spe[llgood] spellw[rong] sta[g] stj[ump] sun[hide] sv[iew] tabc[lose] tabfir[st] tabn[ext] tabr[ewind] tc[l] tf[irst] tm to[pleft] ts[elect] u[ndo] unlo[ckvar] vert[ical] vi[sual] vs[plit] windo wN[ext] w[rite] xa[ll] xme xn[oremap] xunmenu
-syn keyword vimCommand contained	arga[dd] argl[ocal] ba[ll] bm[odified] brea[k] bro[wse] bw[ipeout] cal[l] cd cgetb[uffer] chd[ir] clo[se] cnf[ile] comp[iler] cpf[ile] cw[indow] delm[arks] diffsplit dj[ump] earlier el[se] endf[unction] ex filetype fix[del] foldo[pen] grepa[dd] helpg[rep] iabc[lear] imapc[lear] j[oin] keepj[umps] laddf[ile] lb[uffer] le[ft] lfir[st] lgr[ep] ll lm[ap] lN[ext] lo[adview] lop[en] ls lw[indow] mat[ch] mksp[ell] m[ove] new noh[lsearch] o[pen] pe[rl] popu[p] p[rint] promptf[ind] ptf[irst] ptN[ext] pu[t] qa[ll] rec[over] redraws[tatus] retu[rn] rub[y] rv[iminfo] sav[eas] sbm[odified] sbr[ewind] se[t] sf[ind] sil[ent] sm[agic] smenu sno[magic] sor[t] spelli[nfo] sp[lit] startg[replace] st[op] sunme syncbind tabd[o] tabl[ast] tabN[ext] tabs tcld[o] th[row] tm[enu] tp[revious] tu undoj[oin] up[date] vie[w] viu[sage] wa[ll] winp[os] wp[revious] ws[verb] x[it] xmenu xnoreme y[ank]
-syn keyword vimCommand contained	argd[elete] ar[gs] bd[elete] bn[ext] breaka[dd] bufdo cabc[lear] cat[ch] ce[nter] cgete[xpr] che[ckpath] cmapc[lear] cNf[ile] conf[irm] cp[revious] debugg[reedy] diffg[et] diffthis dl[ist] echoe[rr] elsei[f] en[dif] exi[t] fina[lly] fo[ld] for 
+syn keyword vimCommand contained	abc[lear] argdo argu[ment] bel[owright] bN[ext] breakd[el] b[uffer] caddb[uffer] cb[uffer] cex[pr] cg[etfile] checkt[ime] cnew[er] col[der] con[tinue] cq[uit] delc[ommand] diffoff diffu[pdate] dr[op] echom[sg] em[enu] en[dif] ex files fini[sh] foldc[lose] for grepa[dd] helpg[rep] iabc[lear] imapc[lear] j[oin] keepj[umps] laddf[ile] lb[uffer] le[ft] lfir[st] lgr[ep] ll lmapc[lear] lnf[ile] lockv[ar] lp[revious] lv[imgrep] ma[rk] mk[exrc] mkv[imrc] mz[scheme] N[ext] ol[dfiles] opt[ions] perld[o] pp[op] P[rint] promptr[epl] ptj[ump] ptp[revious] pw[d] q[uit] redi[r] reg[isters] rew[ind] rubyd[o] sal[l] sba[ll] sbn[ext] sb[uffer] setf[iletype] sfir[st] sim[alt] sm[ap] sN[ext] snoremenu spe[llgood] spellw[rong] sta[g] stj[ump] sun[hide] sv[iew] tabc[lose] tabfir[st] tabn[ext] tabr[ewind] tc[l] tf[irst] tm to[pleft] ts[elect] u[ndo] unlo[ckvar] vert[ical] vi[sual] vs[plit] windo wN[ext] w[rite] xa[ll] xmenu xnoremenu
+syn keyword vimCommand contained	abo[veleft] arge[dit] as[cii] bf[irst] bo[tright] breakl[ist] buffers cad[dexpr] cc cf[ile] c[hange] cla[st] cn[ext] colo[rscheme] cope[n] cr[ewind] d[elete] diffpatch dig[raphs] ds[earch] echon emenu* endt[ry] exi[t] filetype fir[st] folddoc[losed] fu[nction] ha[rdcopy] helpt[ags] if is[earch] ju[mps] kee[pmarks] lan[guage] lc[d] lefta[bove] lgetb[uffer] lgrepa[dd] lla[st] lnew[er] lNf[ile] lol[der] lr[ewind] lvimgrepa[dd] marks mks[ession] mod[e] nbkey nmapc[lear] omapc[lear] pc[lose] po[p] pre[serve] profd[el] ps[earch] ptl[ast] ptr[ewind] pyf[ile] quita[ll] red[o] res[ize] ri[ght] rubyf[ile] san[dbox] sbf[irst] sbN[ext] scripte[ncoding] setg[lobal] sh[ell] sla[st] sme sni[ff] sor[t] spelli[nfo] sp[lit] startg[replace] st[op] sunme syncbind tabd[o] tabl[ast] tabN[ext] tabs tcld[o] th[row] tm[enu] tp[revious] tu undoj[oin] up[date] vie[w] viu[sage] wa[ll] winp[os] wp[revious] ws[verb] x[it] XMLent xunme
+syn keyword vimCommand contained	al[l] argg[lobal] bad[d] bl[ast] bp[revious] br[ewind] bun[load] caddf[ile] ccl[ose] cfir[st] changes cl[ist] cN[ext] comc[lear] co[py] cuna[bbrev] delf[unction] diffpu[t] di[splay] dsp[lit] e[dit] endfo[r] endw[hile] exu[sage] fina[lly] fix[del] foldd[oopen] go[to] h[elp] hid[e] ij[ump] isp[lit] k laddb[uffer] la[st] lch[dir] lex[pr] lgete[xpr] lh[elpgrep] lli[st] lne[xt] lo[adview] lop[en] ls lw[indow] mat[ch] mksp[ell] m[ove] new noh[lsearch] on[ly] ped[it] popu prev[ious] prof[ile] pta[g] ptn[ext] pts[elect] py[thon] r[ead] redr[aw] ret[ab] rightb[elow] ru[ntime] sa[rgument] sbl[ast] sbp[revious] scrip[tnames] setl[ocal] sign sl[eep] smenu sno[magic] so[urce] spellr[epall] spr[evious] star[tinsert] stopi[nsert] sunmenu t tabe[dit] tabm[ove] tabo[nly] ta[g] tclf[ile] tj[ump] tn[ext] tr[ewind] tu[nmenu] undol[ist] verb[ose] vim[grep] vmapc[lear] wh[ile] win[size] wq wv[iminfo] xmapc[lear] XMLns xunmenu
+syn keyword vimCommand contained	arga[dd] argl[ocal] ba[ll] bm[odified] brea[k] bro[wse] bw[ipeout] cal[l] cd cgetb[uffer] chd[ir] clo[se] cnf[ile] comp[iler] cpf[ile] cw[indow] delm[arks] diffsplit dj[ump] earlier el[se] endf[unction] ene[w] f[ile] fin[d] fo[ld] foldo[pen] gr[ep] helpf[ind] his[tory] il[ist] iuna[bbrev] keepalt lad[dexpr] later lcl[ose] lf[ile] lg[etfile] l[ist] lmak[e] lN[ext] loc[kmarks] lpf[ile] lt[ag] mak[e] menut[ranslate] mkvie[w] mzf[ile] n[ext] nu[mber] o[pen] pe[rl] popu[p] p[rint] promptf[ind] ptf[irst] ptN[ext] pu[t] qa[ll] rec[over] redraws[tatus] retu[rn] rub[y] rv[iminfo] sav[eas] sbm[odified] sbr[ewind] se[t] sf[ind] sil[ent] sm[agic] sn[ext] snoreme spelld[ump] spellu[ndo] sre[wind] startr[eplace] sts[elect] sus[pend] tab tabf[ind] tabnew tabp[revious] tags te[aroff] tl[ast] tN[ext] try una[bbreviate] unh[ide] ve[rsion] vimgrepa[dd] vne[w] winc[md] wn[ext] wqa[ll] X xme xnoreme y[ank]
+syn keyword vimCommand contained	argd[elete] ar[gs] bd[elete] bn[ext] breaka[dd] bufdo cabc[lear] cat[ch] ce[nter] cgete[xpr] che[ckpath] cmapc[lear] cNf[ile] conf[irm] cp[revious] debugg[reedy] diffg[et] diffthis dl[ist] echoe[rr] elsei[f] 
 syn match   vimCommand contained	"\<z[-+^.=]"
 
 " vimOptions are caught only when contained in a vimSet {{{2
@@ -33,7 +33,7 @@
 syn keyword vimOption contained	altkeymap arabic autowrite backupcopy bdir bin bomb bt cd ci cinw co completefunc cp cscopetag csto debug dict dir eb enc errorbells expandtab fdl fenc fileformat fml foldignore foldopen fs gfn grepprg guiheadroom helplang history hls imactivatekey iminsert inde insertmode iskeyword keymodel laststatus lisp lpl magic maxfuncdepth menuitems mm modifiable mousem mps number opendevice paste pex pmbcs printencoding prompt rdt ri 
 
 " vimOptions: These are the turn-off setting variants {{{2
-syn keyword vimOption contained	noacd noallowrevins noantialias noarabic noarshape noautoread noaw noballooneval nobinary nobk nobuflisted nocin noconfirm nocopyindent nocscopeverbose nocuc nocursorline nodg nodisable noeb noedcompatible noendofline noequalalways noesckeys noex noexrc nofk nofoldenable nogdefault nohid nohk nohkmapp nohls noic noignorecase noimc noimd noinf noinsertmode nojoinspaces nolazyredraw nolinebreak nolist nolpl noma nomagic noml nomodeline nomodified nomousef nomousehide nonumber noopendevice nopi nopreviewwindow nopvw noremap norevins norightleft norl noro noru nosb noscb noscs nosft noshelltemp noshortname noshowfulltag noshowmode nosm nosmartindent nosmd nosol nosplitbelow nospr nossl nostartofline noswapfile nota notagrelative notbi notbs noterse notextmode notgst notimeout noto notr nottybuiltin notx novisualbell nowarn noweirdinvert nowfw nowinfixheight nowiv nowrap nowrite nowritebackup
+syn keyword vimOption contained	noacd noallowrevins noantialias noarabic noarshape noautoread noaw noballooneval nobinary nobk nobuflisted nocin noconfirm nocopyindent nocscopeverbose nocuc nocursorline nodg noimdisable noeb noedcompatible noendofline noequalalways noesckeys noex noexrc nofk nofoldenable nogdefault nohid nohk nohkmapp nohls noic noignorecase noimc noimd noinf noinsertmode nojoinspaces nolazyredraw nolinebreak nolist nolpl noma nomagic noml nomodeline nomodified nomousef nomousehide nonumber noopendevice nopi nopreviewwindow nopvw noremap norevins norightleft norl noro noru nosb noscb noscs nosft noshelltemp noshortname noshowfulltag noshowmode nosm nosmartindent nosmd nosol nosplitbelow nospr nossl nostartofline noswapfile nota notagrelative notbi notbs noterse notextmode notgst notimeout noto notr nottybuiltin notx novisualbell nowarn noweirdinvert nowfw nowinfixheight nowiv nowrap nowrite nowritebackup
 syn keyword vimOption contained	noai noaltkeymap noar noarabicshape noautochdir noautowrite noawa nobeval nobiosk nobl nocf nocindent noconsk nocp nocst nocul nodeco nodiff noea noed noek noeol noerrorbells noet noexpandtab nofen nofkmap nogd noguipty nohidden nohkmap nohkp nohlsearch noicon noim noimcmdline noincsearch noinfercase nois nojs nolbr nolisp noloadplugins nolz nomacatsui nomh nomod nomodifiable nomore nomousefocus nonu noodev nopaste nopreserveindent noprompt noreadonly norestorescreen nori norightleftcmd norlc nors noruler nosc noscrollbind nosecure noshellslash noshiftround noshowcmd noshowmatch nosi nosmartcase nosmarttab nosn nospell nosplitright nosr nosta nostmp noswf notagbsearch notagstack notbidi notermbidi notextauto notf notildeop notitle notop nottimeout nottyfast novb nowa nowb nowfh nowildmenu nowinfixwidth nowmnu nowrapscan nowriteany nows
 syn keyword vimOption contained	noakm noanti noarab noari noautoindent noautowriteall nobackup nobin nobioskey nobomb noci nocompatible noconskey nocscopetag nocsverb nocursorcolumn nodelcombine nodigraph 
 
@@ -99,8 +99,9 @@
 syn match vimCmdSep	"[:|]\+"	skipwhite nextgroup=vimAddress,vimAutoCmd,vimCommand,vimExtCmd,vimFilter,vimLet,vimMap,vimMark,vimSet,vimSyntax,vimUserCmd
 syn match vimIsCommand	"\<\h\w*\>"	contains=vimCommand
 syn match vimVar		"\<[bwglsav]:\K\k*\>"
-syn match vimVar contained	"\<\K\k*\>"
-syn keyword vimCommand contained	in
+syn match vimVar        contained	"\<\K\k*\>"
+syn match vimFBVar      contained   "\<[bwglsav]:\K\k*\>"
+syn keyword vimCommand  contained	in
 
 " Insertions And Appends: insert append {{{2
 " =======================
@@ -127,7 +128,7 @@
 
 " Augroup : vimAugroupError removed because long augroups caused sync'ing problems. {{{2
 " ======= : Trade-off: Increasing synclines with slower editing vs augroup END error checking.
-syn cluster vimAugroupList	contains=vimIsCommand,vimFunction,vimFunctionError,vimLineComment,vimSpecFile,vimOper,vimNumber,vimComment,vimString,vimSubst,vimMark,vimRegister,vimAddress,vimFilter,vimCmplxRepeat,vimComment,vimLet,vimSet,vimAutoCmd,vimRegion,vimSynLine,vimNotation,vimCtrlChar,vimFuncVar,vimContinue
+syn cluster vimAugroupList	contains=vimIsCommand,vimFuncName,vimFunction,vimFunctionError,vimLineComment,vimSpecFile,vimOper,vimNumber,vimOperParen,vimComment,vimString,vimSubst,vimMark,vimRegister,vimAddress,vimFilter,vimCmplxRepeat,vimComment,vimLet,vimSet,vimAutoCmd,vimRegion,vimSynLine,vimNotation,vimCtrlChar,vimFuncVar,vimContinue
 if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'a'
  syn region  vimAugroup	fold start="\<aug\%[roup]\>\s\+\K\k*" end="\<aug\%[roup]\>\s\+[eE][nN][dD]\>"	contains=vimAugroupKey,vimAutoCmd,@vimAugroupList keepend
 else
@@ -141,156 +142,154 @@
 
 " Operators: {{{2
 " =========
-syn cluster vimOperGroup	contains=vimOper,vimOperParen,vimNumber,vimString,vimRegister,vimContinue
-syn match  vimOper	"\(==\|!=\|>=\|<=\|=\~\|!\~\|>\|<\|=\)[?#]\{0,2}"	skipwhite nextgroup=vimString,vimSpecFile
-syn match  vimOper	"||\|&&\|[-+.]"	skipwhite nextgroup=vimString,vimSpecFile
-syn region vimOperParen 	oneline matchgroup=vimOper start="(" end=")" contains=@vimOperGroup
-syn region vimOperParen	oneline matchgroup=vimSep  start="{" end="}" contains=@vimOperGroup nextgroup=vimVar
+syn cluster	vimOperGroup	contains=vimFunc,vimFuncVar,vimOper,vimOperParen,vimNumber,vimString,vimRegister,vimContinue
+syn match	vimOper	"\(==\|!=\|>=\|<=\|=\~\|!\~\|>\|<\|=\)[?#]\{0,2}"	skipwhite nextgroup=vimString,vimSpecFile
+syn match	vimOper	"||\|&&\|[-+.]"	skipwhite nextgroup=vimString,vimSpecFile
+syn region	vimOperParen 	oneline matchgroup=vimParenSep	start="(" end=")" contains=@vimOperGroup
+syn region	vimOperParen	oneline matchgroup=vimSep	start="{" end="}" contains=@vimOperGroup nextgroup=vimVar,vimFuncVar
 if !exists("g:vimsyn_noerror")
- syn match  vimOperError	")"
+ syn match	vimOperError	")"
 endif
 
 " Functions : Tag is provided for those who wish to highlight tagged functions {{{2
 " =========
-syn cluster vimFuncList	contains=vimCommand,vimFuncKey,Tag,vimFuncSID
-syn cluster vimFuncBodyList	contains=vimAddress,vimAutoCmd,vimCmplxRepeat,vimComment,vimComment,vimContinue,vimCtrlChar,vimEcho,vimEchoHL,vimExecute,vimIf,vimFunc,vimFunction,vimFunctionError,vimFuncVar,vimIsCommand,vimLet,vimLineComment,vimMap,vimMark,vimNorm,vimNotation,vimNotFunc,vimNumber,vimOper,vimOperParen,vimRegion,vimRegister,vimSet,vimSpecFile,vimString,vimSubst,vimSynLine,vimUserCommand
-if !exists("g:vimsyn_noerror")
- syn match   vimFunctionError	"\<fu\%[nction]!\=\s\+\zs\U\i\{-}\ze\s*("                	contains=vimFuncKey,vimFuncBlank nextgroup=vimFuncBody
-endif
-syn match   vimFunction	"\<fu\%[nction]!\=\s\+\(\(<[sS][iI][dD]>\|[Ss]:\|\u\|\i\+#\)\i*\|\(g:\)\=\(\I\i*\.\)\+\I\i*\)\ze\s*("	contains=@vimFuncList nextgroup=vimFuncBody
+syn cluster	vimFuncList	contains=vimCommand,vimFunctionError,vimFuncKey,Tag,vimFuncSID
+syn cluster	vimFuncBodyList	contains=vimAbb,vimAddress,vimAugroupKey,vimAutoCmd,vimCmplxRepeat,vimComment,vimComment,vimContinue,vimCtrlChar,vimEcho,vimEchoHL,vimExecute,vimIf,vimIsCommand,vimFBVar,vimFunc,vimFunction,vimFuncVar,vimHighlight,vimIsCommand,vimLet,vimLineComment,vimMap,vimMark,vimNorm,vimNotation,vimNotFunc,vimNumber,vimOper,vimOperParen,vimRegion,vimRegister,vimSet,vimSpecFile,vimString,vimSubst,vimSynLine,vimUserCommand
+syn match	vimFunction	"\<fu\%[nction]!\=\s\+\%(<[sS][iI][dD]>\|[sSgGbBwWtTlL]:\)\=\%(\i\|[#.]\|{.\{-1,}}\)*\ze\s*("	contains=@vimFuncList nextgroup=vimFuncBody
+
 if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'f'
- syn region  vimFuncBody  contained	fold start="\ze("	matchgroup=vimCommand end="\<\(endf\>\|endfu\%[nction]\>\)"		contains=@vimFuncBodyList
+ syn region	vimFuncBody  contained	fold start="\ze("	matchgroup=vimCommand end="\<\(endf\>\|endfu\%[nction]\>\)"		contains=@vimFuncBodyList
 else                                                                                                          
- syn region  vimFuncBody  contained	start="\ze("	matchgroup=vimCommand end="\<\(endf\>\|endfu\%[nction]\>\)"		contains=@vimFuncBodyList
+ syn region	vimFuncBody  contained	start="\ze("	matchgroup=vimCommand end="\<\(endf\>\|endfu\%[nction]\>\)"		contains=@vimFuncBodyList
 endif
-syn match   vimFuncVar   contained	"a:\(\I\i*\|\d\+\)"
-syn match   vimFuncSID   contained	"\c<sid>\|\<s:"
-syn keyword vimFuncKey   contained	fu[nction]
-syn match   vimFuncBlank contained	"\s\+"
+syn match	vimFuncVar   contained	"a:\(\K\k*\|\d\+\)"
+syn match	vimFuncSID   contained	"\c<sid>\|\<s:"
+syn keyword	vimFuncKey   contained	fu[nction]
+syn match	vimFuncBlank contained	"\s\+"
 
-syn keyword vimPattern   contained	start	skip	end
+syn keyword	vimPattern   contained	start	skip	end
 
 " Special Filenames, Modifiers, Extension Removal: {{{2
 " ===============================================
-syn match vimSpecFile	"<c\(word\|WORD\)>"	nextgroup=vimSpecFileMod,vimSubst
-syn match vimSpecFile	"<\([acs]file\|amatch\|abuf\)>"	nextgroup=vimSpecFileMod,vimSubst
-syn match vimSpecFile	"\s%[ \t:]"ms=s+1,me=e-1	nextgroup=vimSpecFileMod,vimSubst
-syn match vimSpecFile	"\s%$"ms=s+1	nextgroup=vimSpecFileMod,vimSubst
-syn match vimSpecFile	"\s%<"ms=s+1,me=e-1	nextgroup=vimSpecFileMod,vimSubst
-syn match vimSpecFile	"#\d\+\|[#%]<\>"	nextgroup=vimSpecFileMod,vimSubst
-syn match vimSpecFileMod	"\(:[phtre]\)\+"	contained
+syn match	vimSpecFile	"<c\(word\|WORD\)>"	nextgroup=vimSpecFileMod,vimSubst
+syn match	vimSpecFile	"<\([acs]file\|amatch\|abuf\)>"	nextgroup=vimSpecFileMod,vimSubst
+syn match	vimSpecFile	"\s%[ \t:]"ms=s+1,me=e-1	nextgroup=vimSpecFileMod,vimSubst
+syn match	vimSpecFile	"\s%$"ms=s+1	nextgroup=vimSpecFileMod,vimSubst
+syn match	vimSpecFile	"\s%<"ms=s+1,me=e-1	nextgroup=vimSpecFileMod,vimSubst
+syn match	vimSpecFile	"#\d\+\|[#%]<\>"	nextgroup=vimSpecFileMod,vimSubst
+syn match	vimSpecFileMod	"\(:[phtre]\)\+"	contained
 
 " User-Specified Commands: {{{2
 " =======================
-syn cluster vimUserCmdList	contains=vimAddress,vimSyntax,vimHighlight,vimAutoCmd,vimCmplxRepeat,vimComment,vimCtrlChar,vimEscapeBrace,vimFilter,vimFunc,vimFunction,vimIsCommand,vimMark,vimNotation,vimNumber,vimOper,vimRegion,vimRegister,vimLet,vimSet,vimSetEqual,vimSetString,vimSpecFile,vimString,vimSubst,vimSubstRep,vimSubstRange,vimSynLine
-syn keyword vimUserCommand	contained	com[mand]
-syn match   vimUserCmd	"\<com\%[mand]!\=\>.*$"	contains=vimUserAttrb,vimUserCommand,@vimUserCmdList
-syn match   vimUserAttrb	contained	"-n\%[args]=[01*?+]"	contains=vimUserAttrbKey,vimOper
-syn match   vimUserAttrb	contained	"-com\%[plete]="	contains=vimUserAttrbKey,vimOper nextgroup=vimUserAttrbCmplt,vimUserCmdError
-syn match   vimUserAttrb	contained	"-ra\%[nge]\(=%\|=\d\+\)\="	contains=vimNumber,vimOper,vimUserAttrbKey
-syn match   vimUserAttrb	contained	"-cou\%[nt]=\d\+"	contains=vimNumber,vimOper,vimUserAttrbKey
-syn match   vimUserAttrb	contained	"-bang\=\>"	contains=vimOper,vimUserAttrbKey
-syn match   vimUserAttrb	contained	"-bar\>"	contains=vimOper,vimUserAttrbKey
-syn match   vimUserAttrb	contained	"-re\%[gister]\>"	contains=vimOper,vimUserAttrbKey
+syn cluster	vimUserCmdList	contains=vimAddress,vimSyntax,vimHighlight,vimAutoCmd,vimCmplxRepeat,vimComment,vimCtrlChar,vimEscapeBrace,vimFilter,vimFunc,vimFuncName,vimFunction,vimFunctionError,vimIsCommand,vimMark,vimNotation,vimNumber,vimOper,vimRegion,vimRegister,vimLet,vimSet,vimSetEqual,vimSetString,vimSpecFile,vimString,vimSubst,vimSubstRep,vimSubstRange,vimSynLine
+syn keyword	vimUserCommand	contained	com[mand]
+syn match	vimUserCmd	"\<com\%[mand]!\=\>.*$"	contains=vimUserAttrb,vimUserCommand,@vimUserCmdList
+syn match	vimUserAttrb	contained	"-n\%[args]=[01*?+]"	contains=vimUserAttrbKey,vimOper
+syn match	vimUserAttrb	contained	"-com\%[plete]="	contains=vimUserAttrbKey,vimOper nextgroup=vimUserAttrbCmplt,vimUserCmdError
+syn match	vimUserAttrb	contained	"-ra\%[nge]\(=%\|=\d\+\)\="	contains=vimNumber,vimOper,vimUserAttrbKey
+syn match	vimUserAttrb	contained	"-cou\%[nt]=\d\+"	contains=vimNumber,vimOper,vimUserAttrbKey
+syn match	vimUserAttrb	contained	"-bang\=\>"	contains=vimOper,vimUserAttrbKey
+syn match	vimUserAttrb	contained	"-bar\>"	contains=vimOper,vimUserAttrbKey
+syn match	vimUserAttrb	contained	"-re\%[gister]\>"	contains=vimOper,vimUserAttrbKey
 if !exists("g:vimsyn_noerror")
- syn match   vimUserCmdError	contained	"\S\+\>"
+ syn match	vimUserCmdError	contained	"\S\+\>"
 endif
 syn case ignore
-syn keyword vimUserAttrbKey   contained	bar	ban[g]	cou[nt]	ra[nge] com[plete]	n[args]	re[gister]
-syn keyword vimUserAttrbCmplt contained	augroup buffer command dir environment event expression file function help highlight mapping menu option something tag tag_listfiles var
-syn keyword vimUserAttrbCmplt contained	custom customlist nextgroup=vimUserAttrbCmpltFunc,vimUserCmdError
-syn match   vimUserAttrbCmpltFunc contained	",\%([sS]:\|<[sS][iI][dD]>\)\=\%(\h\w*\%(#\u\w*\)\+\|\u\w*\)"hs=s+1 nextgroup=vimUserCmdError
+syn keyword	vimUserAttrbKey   contained	bar	ban[g]	cou[nt]	ra[nge] com[plete]	n[args]	re[gister]
+syn keyword	vimUserAttrbCmplt contained	augroup buffer command dir environment event expression file function help highlight mapping menu option shellcmd something tag tag_listfiles var
+syn keyword	vimUserAttrbCmplt contained	custom customlist nextgroup=vimUserAttrbCmpltFunc,vimUserCmdError
+syn match	vimUserAttrbCmpltFunc contained	",\%([sS]:\|<[sS][iI][dD]>\)\=\%(\h\w*\%(#\u\w*\)\+\|\u\w*\)"hs=s+1 nextgroup=vimUserCmdError
 
 syn case match
-syn match   vimUserAttrbCmplt contained	"custom,\u\w*"
+syn match	vimUserAttrbCmplt contained	"custom,\u\w*"
 
 " Lower Priority Comments: after some vim commands... {{{2
 " =======================
-syn match  vimComment	excludenl +\s"[^\-:.%#=*].*$+lc=1	contains=@vimCommentGroup,vimCommentString
-syn match  vimComment	+\<endif\s\+".*$+lc=5	contains=@vimCommentGroup,vimCommentString
-syn match  vimComment	+\<else\s\+".*$+lc=4	contains=@vimCommentGroup,vimCommentString
-syn region vimCommentString	contained oneline start='\S\s\+"'ms=e	end='"'
+syn match	vimComment	excludenl +\s"[^\-:.%#=*].*$+lc=1	contains=@vimCommentGroup,vimCommentString
+syn match	vimComment	+\<endif\s\+".*$+lc=5	contains=@vimCommentGroup,vimCommentString
+syn match	vimComment	+\<else\s\+".*$+lc=4	contains=@vimCommentGroup,vimCommentString
+syn region	vimCommentString	contained oneline start='\S\s\+"'ms=e	end='"'
 
 " Environment Variables: {{{2
 " =====================
-syn match vimEnvvar	"\$\I\i*"
-syn match vimEnvvar	"\${\I\i*}"
+syn match	vimEnvvar	"\$\I\i*"
+syn match	vimEnvvar	"\${\I\i*}"
 
 " In-String Specials: {{{2
 " Try to catch strings, if nothing else matches (therefore it must precede the others!)
 "  vimEscapeBrace handles ["]  []"] (ie. "s don't terminate string inside [])
-syn region vimEscapeBrace	oneline   contained transparent start="[^\\]\(\\\\\)*\[\zs\^\=\]\=" skip="\\\\\|\\\]" end="]"me=e-1
-syn match  vimPatSepErr	contained	"\\)"
-syn match  vimPatSep	contained	"\\|"
-syn region vimPatSepZone	oneline   contained   matchgroup=vimPatSepZ start="\\%\=\ze(" skip="\\\\" end="\\)\|[^\]['"]"	contains=@vimStringGroup
-syn region vimPatRegion	contained transparent matchgroup=vimPatSepR start="\\[z%]\=(" end="\\)"	contains=@vimSubstList oneline
-syn match  vimNotPatSep	contained	"\\\\"
-syn cluster vimStringGroup	contains=vimEscapeBrace,vimPatSep,vimNotPatSep,vimPatSepErr,vimPatSepZone,@Spell
-syn region vimString	oneline keepend	start=+[^:a-zA-Z>!\\@]"+lc=1 skip=+\\\\\|\\"+ end=+"+	contains=@vimStringGroup
-syn region vimString	oneline keepend	start=+[^:a-zA-Z>!\\@]'+lc=1 end=+'+
-syn region vimString	oneline	start=+=!+lc=1	skip=+\\\\\|\\!+ end=+!+	contains=@vimStringGroup
-syn region vimString	oneline	start="=+"lc=1	skip="\\\\\|\\+" end="+"	contains=@vimStringGroup
-syn region vimString	oneline	start="\s/\s*\A"lc=1 skip="\\\\\|\\+" end="/"	contains=@vimStringGroup
-syn match  vimString	contained	+"[^"]*\\$+	skipnl nextgroup=vimStringCont
-syn match  vimStringCont	contained	+\(\\\\\|.\)\{-}[^\\]"+
+syn region	vimEscapeBrace	oneline   contained transparent start="[^\\]\(\\\\\)*\[\zs\^\=\]\=" skip="\\\\\|\\\]" end="]"me=e-1
+syn match	vimPatSepErr	contained	"\\)"
+syn match	vimPatSep	contained	"\\|"
+syn region	vimPatSepZone	oneline   contained   matchgroup=vimPatSepZ start="\\%\=\ze(" skip="\\\\" end="\\)\|[^\]['"]"	contains=@vimStringGroup
+syn region	vimPatRegion	contained transparent matchgroup=vimPatSepR start="\\[z%]\=(" end="\\)"	contains=@vimSubstList oneline
+syn match	vimNotPatSep	contained	"\\\\"
+syn cluster	vimStringGroup	contains=vimEscapeBrace,vimPatSep,vimNotPatSep,vimPatSepErr,vimPatSepZone,@Spell
+syn region	vimString	oneline keepend	start=+[^:a-zA-Z>!\\@]"+lc=1 skip=+\\\\\|\\"+ end=+"+	contains=@vimStringGroup
+syn region	vimString	oneline keepend	start=+[^:a-zA-Z>!\\@]'+lc=1 end=+'+
+syn region	vimString	oneline	start=+=!+lc=1	skip=+\\\\\|\\!+ end=+!+	contains=@vimStringGroup
+syn region	vimString	oneline	start="=+"lc=1	skip="\\\\\|\\+" end="+"	contains=@vimStringGroup
+syn region	vimString	oneline	start="\s/\s*\A"lc=1 skip="\\\\\|\\+" end="/"	contains=@vimStringGroup
+syn match	vimString	contained	+"[^"]*\\$+	skipnl nextgroup=vimStringCont
+syn match	vimStringCont	contained	+\(\\\\\|.\)\{-}[^\\]"+
 
 " Substitutions: {{{2
 " =============
-syn cluster vimSubstList	contains=vimPatSep,vimPatRegion,vimPatSepErr,vimSubstTwoBS,vimSubstRange,vimNotation
-syn cluster vimSubstRepList	contains=vimSubstSubstr,vimSubstTwoBS,vimNotation
-syn cluster vimSubstList	add=vimCollection
-syn match   vimSubst	"\(:\+\s*\|^\s*\||\s*\)\<s\%[ubstitute][:[:alpha:]]\@!" nextgroup=vimSubstPat
-syn match   vimSubst	"s\%[ubstitute][:[:alpha:]]\@!"	nextgroup=vimSubstPat contained
-syn match   vimSubst	"/\zss\%[ubstitute]\ze/"	nextgroup=vimSubstPat
-syn match   vimSubst1       contained	"s\%[ubstitute]\>"	nextgroup=vimSubstPat
-syn region  vimSubstPat     contained	matchgroup=vimSubstDelim start="\z([^a-zA-Z( \t[\]&]\)"rs=s+1 skip="\\\\\|\\\z1" end="\z1"re=e-1,me=e-1	 contains=@vimSubstList	nextgroup=vimSubstRep4	oneline
-syn region  vimSubstRep4    contained	matchgroup=vimSubstDelim start="\z(.\)" skip="\\\\\|\\\z1" end="\z1" matchgroup=vimNotation end="<[cC][rR]>" contains=@vimSubstRepList	nextgroup=vimSubstFlagErr	oneline
-syn region  vimCollection   contained transparent	start="\\\@<!\[" skip="\\\[" end="\]"	contains=vimCollClass
-syn match   vimCollClassErr contained	"\[:.\{-\}:\]"
-syn match   vimCollClass    contained transparent	"\[:\(alnum\|alpha\|blank\|cntrl\|digit\|graph\|lower\|print\|punct\|space\|upper\|xdigit\|return\|tab\|escape\|backspace\):\]"
-syn match   vimSubstSubstr  contained	"\\z\=\d"
-syn match   vimSubstTwoBS   contained	"\\\\"
-syn match   vimSubstFlagErr contained	"[^< \t\r|]\+" contains=vimSubstFlags
-syn match   vimSubstFlags   contained	"[&cegiIpr]\+"
+syn cluster	vimSubstList	contains=vimPatSep,vimPatRegion,vimPatSepErr,vimSubstTwoBS,vimSubstRange,vimNotation
+syn cluster	vimSubstRepList	contains=vimSubstSubstr,vimSubstTwoBS,vimNotation
+syn cluster	vimSubstList	add=vimCollection
+syn match	vimSubst	"\(:\+\s*\|^\s*\||\s*\)\<s\%[ubstitute][:[:alpha:]]\@!" nextgroup=vimSubstPat
+syn match	vimSubst	"s\%[ubstitute][:#[:alpha:]]\@!"	nextgroup=vimSubstPat contained
+syn match	vimSubst	"/\zss\%[ubstitute]\ze/"	nextgroup=vimSubstPat
+syn match	vimSubst1       contained	"s\%[ubstitute]\>"	nextgroup=vimSubstPat
+syn region	vimSubstPat     contained	matchgroup=vimSubstDelim start="\z([^a-zA-Z( \t[\]&]\)"rs=s+1 skip="\\\\\|\\\z1" end="\z1"re=e-1,me=e-1	 contains=@vimSubstList	nextgroup=vimSubstRep4	oneline
+syn region	vimSubstRep4    contained	matchgroup=vimSubstDelim start="\z(.\)" skip="\\\\\|\\\z1" end="\z1" matchgroup=vimNotation end="<[cC][rR]>" contains=@vimSubstRepList	nextgroup=vimSubstFlagErr	oneline
+syn region	vimCollection   contained transparent	start="\\\@<!\[" skip="\\\[" end="\]"	contains=vimCollClass
+syn match	vimCollClassErr contained	"\[:.\{-\}:\]"
+syn match	vimCollClass    contained transparent	"\[:\(alnum\|alpha\|blank\|cntrl\|digit\|graph\|lower\|print\|punct\|space\|upper\|xdigit\|return\|tab\|escape\|backspace\):\]"
+syn match	vimSubstSubstr  contained	"\\z\=\d"
+syn match	vimSubstTwoBS   contained	"\\\\"
+syn match	vimSubstFlagErr contained	"[^< \t\r|]\+" contains=vimSubstFlags
+syn match	vimSubstFlags   contained	"[&cegiIpr]\+"
 
 " 'String': {{{2
-syn match  vimString	"[^(,]'[^']\{-}\zs'"
+syn match	vimString	"[^(,]'[^']\{-}\zs'"
 
 " Marks, Registers, Addresses, Filters: {{{2
-syn match  vimMark	"'[a-zA-Z0-9]\ze[-+,!]"	nextgroup=vimOper,vimMarkNumber,vimSubst
-syn match  vimMark	"'[<>]\ze[-+,!]"		nextgroup=vimOper,vimMarkNumber,vimSubst
-syn match  vimMark	",\zs'[<>]\ze"		nextgroup=vimOper,vimMarkNumber,vimSubst
-syn match  vimMark	"[!,:]\zs'[a-zA-Z0-9]"	nextgroup=vimOper,vimMarkNumber,vimSubst
-syn match  vimMark	"\<norm\%[al]\s\zs'[a-zA-Z0-9]"	nextgroup=vimOper,vimMarkNumber,vimSubst
-syn match  vimMarkNumber	"[-+]\d\+"		nextgroup=vimSubst contained contains=vimOper
-syn match  vimPlainMark contained	"'[a-zA-Z0-9]"
-
-syn match  vimRegister	'[^,;]\zs"[a-zA-Z0-9.%#:_\-/]\ze[^a-zA-Z_":]'
-syn match  vimRegister	'\<norm\s\+\zs"[a-zA-Z0-9]'
-syn match  vimRegister	'\<normal\s\+\zs"[a-zA-Z0-9]'
-syn match  vimRegister	'@"'
-syn match  vimPlainRegister contained	'"[a-zA-Z0-9\-:.%#*+=]'
+syn match	vimMark	"'[a-zA-Z0-9]\ze[-+,!]"	nextgroup=vimOper,vimMarkNumber,vimSubst
+syn match	vimMark	"'[<>]\ze[-+,!]"		nextgroup=vimOper,vimMarkNumber,vimSubst
+syn match	vimMark	",\zs'[<>]\ze"		nextgroup=vimOper,vimMarkNumber,vimSubst
+syn match	vimMark	"[!,:]\zs'[a-zA-Z0-9]"	nextgroup=vimOper,vimMarkNumber,vimSubst
+syn match	vimMark	"\<norm\%[al]\s\zs'[a-zA-Z0-9]"	nextgroup=vimOper,vimMarkNumber,vimSubst
+syn match	vimMarkNumber	"[-+]\d\+"		nextgroup=vimSubst contained contains=vimOper
+syn match	vimPlainMark contained	"'[a-zA-Z0-9]"
+
+syn match	vimRegister	'[^,;[{]\zs"[a-zA-Z0-9.%#:_\-/]\ze[^a-zA-Z_":]'
+syn match	vimRegister	'\<norm\s\+\zs"[a-zA-Z0-9]'
+syn match	vimRegister	'\<normal\s\+\zs"[a-zA-Z0-9]'
+syn match	vimRegister	'@"'
+syn match	vimPlainRegister contained	'"[a-zA-Z0-9\-:.%#*+=]'
 
-syn match  vimAddress	",\zs[.$]"	skipwhite nextgroup=vimSubst1
-syn match  vimAddress	"%\ze\a"	skipwhite nextgroup=vimString,vimSubst1
+syn match	vimAddress	",\zs[.$]"	skipwhite nextgroup=vimSubst1
+syn match	vimAddress	"%\ze\a"	skipwhite nextgroup=vimString,vimSubst1
 
-syn match  vimFilter contained	"^!.\{-}\(|\|$\)"		contains=vimSpecFile
-syn match  vimFilter contained	"\A!.\{-}\(|\|$\)"ms=s+1	contains=vimSpecFile
+syn match	vimFilter contained	"^!.\{-}\(|\|$\)"		contains=vimSpecFile
+syn match	vimFilter contained	"\A!.\{-}\(|\|$\)"ms=s+1	contains=vimSpecFile
 
 " Complex repeats (:h complex-repeat) {{{2
-"syn match  vimCmplxRepeat	'[^a-zA-Z_/\\()]q[0-9a-zA-Z"]'lc=1
-"syn match  vimCmplxRepeat	'@[0-9a-z".=@:]\ze\($\|[^a-zA-Z]\)'
+syn match	vimCmplxRepeat	'[^a-zA-Z_/\\()]q[0-9a-zA-Z"]'lc=1
+syn match	vimCmplxRepeat	'@[0-9a-z".=@:]\ze\($\|[^a-zA-Z]\)'
 
 " Set command and associated set-options (vimOptions) with comment {{{2
-syn region vimSet		matchgroup=vimCommand start="\<\%(setl\%[ocal]\|setg\%[lobal]\|set\)\>" skip="\%(\\\\\)*\\." end="$" matchgroup=vimNotation end="<[cC][rR]>" keepend oneline contains=vimSetEqual,vimOption,vimErrSetting,vimComment,vimSetString,vimSetMod
-syn region vimSetEqual  contained	start="="	skip="\\\\\|\\\s" end="[| \t]\|$"me=e-1 contains=vimCtrlChar,vimSetSep,vimNotation oneline
-syn region vimSetString contained	start=+="+hs=s+1	skip=+\\\\\|\\"+  end=+"+	contains=vimCtrlChar
-syn match  vimSetSep    contained	"[,:]"
-syn match  vimSetMod	contained	"&vim\|[!&]\|all&"
+syn region	vimSet		matchgroup=vimCommand start="\<\%(setl\%[ocal]\|setg\%[lobal]\|set\)\>" skip="\%(\\\\\)*\\." end="$" matchgroup=vimNotation end="<[cC][rR]>" keepend oneline contains=vimSetEqual,vimOption,vimErrSetting,vimComment,vimSetString,vimSetMod
+syn region	vimSetEqual	contained	start="[=:]\|[-+^]=" skip="\\\\\|\\\s" end="[| \t]\|$"me=e-1 contains=vimCtrlChar,vimSetSep,vimNotation oneline
+syn region	vimSetString	contained	start=+="+hs=s+1	skip=+\\\\\|\\"+  end=+"+	contains=vimCtrlChar
+syn match	vimSetSep	contained	"[,:]"
+syn match	vimSetMod	contained	"&vim\=\|[!&?<]\|all&"
 
 " Let {{{2
 " ===
-syn keyword vimLet	let	unl[et]	skipwhite nextgroup=vimVar
+syn keyword	vimLet	let	unl[et]	skipwhite nextgroup=vimVar,vimFuncVar
 
 " Abbreviations {{{2
 " =============
@@ -298,232 +297,234 @@
 
 " Autocmd {{{2
 " =======
-syn match   vimAutoEventList	contained	"\(!\s\+\)\=\(\a\+,\)*\a\+"	contains=vimAutoEvent nextgroup=vimAutoCmdSpace
-syn match   vimAutoCmdSpace	contained	"\s\+"	nextgroup=vimAutoCmdSfxList
-syn match   vimAutoCmdSfxList	contained	"\S*"
-syn keyword vimAutoCmd	au[tocmd] do[autocmd] doautoa[ll]	skipwhite nextgroup=vimAutoEventList
+syn match	vimAutoEventList	contained	"\(!\s\+\)\=\(\a\+,\)*\a\+"	contains=vimAutoEvent nextgroup=vimAutoCmdSpace
+syn match	vimAutoCmdSpace	contained	"\s\+"	nextgroup=vimAutoCmdSfxList
+syn match	vimAutoCmdSfxList	contained	"\S*"
+syn keyword	vimAutoCmd	au[tocmd] do[autocmd] doautoa[ll]	skipwhite nextgroup=vimAutoEventList
 
 " Echo and Execute -- prefer strings! {{{2
 " ================
-syn region  vimEcho	oneline excludenl matchgroup=vimCommand start="\<ec\%[ho]\>" skip="\(\\\\\)*\\|" end="$\||" contains=vimFunc,vimString,varVar
-syn region  vimExecute	oneline excludenl matchgroup=vimCommand start="\<exe\%[cute]\>" skip="\(\\\\\)*\\|" end="$\||\|<[cC][rR]>" contains=vimIsCommand,vimString,vimOper,vimVar,vimNotation,vimOperParen
-syn match   vimEchoHL	"echohl\="	skipwhite nextgroup=vimGroup,vimHLGroup,vimEchoHLNone
+syn region	vimEcho	oneline excludenl matchgroup=vimCommand start="\<ec\%[ho]\>" skip="\(\\\\\)*\\|" end="$\||" contains=vimFunc,vimFuncVar,vimString,vimVar
+syn region	vimExecute	oneline excludenl matchgroup=vimCommand start="\<exe\%[cute]\>" skip="\(\\\\\)*\\|" end="$\||\|<[cC][rR]>" contains=vimFuncVar,vimIsCommand,vimOper,vimNotation,vimOperParen,vimString,vimVar
+syn match	vimEchoHL	"echohl\="	skipwhite nextgroup=vimGroup,vimHLGroup,vimEchoHLNone
 syn case ignore
-syn keyword vimEchoHLNone	none
+syn keyword	vimEchoHLNone	none
 syn case match
 
 " Maps {{{2
 " ====
-syn match   vimMap	"\<map\>!\=\ze\s*[^(]" skipwhite nextgroup=vimMapMod,vimMapLhs
-syn keyword vimMap	cm[ap] cno[remap] im[ap] ino[remap] ln[oremap] nm[ap] nn[oremap] no[remap] om[ap] ono[remap] snor[emap] vm[ap] vn[oremap] xn[oremap] skipwhite nextgroup=vimMapBang,vimMapMod,vimMapLhs
-syn keyword vimMap	mapc[lear]
-syn match   vimMapLhs    contained	"\S\+"	contains=vimNotation,vimCtrlChar skipwhite nextgroup=vimMapRhs
-syn match   vimMapBang   contained	"!"	skipwhite nextgroup=vimMapMod,vimMapLhs
-syn match   vimMapMod    contained	"\c<\(buffer\|expr\|\(local\)\=leader\|plug\|script\|sid\|unique\|silent\)\+>" contains=vimMapModKey,vimMapModErr skipwhite nextgroup=vimMapMod,vimMapLhs
-syn match   vimMapRhs    contained  ".*" contains=vimNotation,vimCtrlChar skipnl nextgroup=vimMapRhsExtend
-syn match   vimMapRhsExtend contained "^\s*\\.*$" contains=vimContinue
+syn match	vimMap		"\<map\>!\=\ze\s*[^(]" skipwhite nextgroup=vimMapMod,vimMapLhs
+syn keyword	vimMap		cm[ap] cno[remap] im[ap] ino[remap] lm[ap] ln[oremap] nm[ap] nn[oremap] no[remap] om[ap] ono[remap] smap snor[emap] vm[ap] vn[oremap] xm[ap] xn[oremap] skipwhite nextgroup=vimMapBang,vimMapMod,vimMapLhs
+syn keyword	vimMap		mapc[lear]
+syn keyword	vimUnmap		cu[nmap] iu[nmap] lu[nmap] nun[map] ou[nmap] sunm[ap] unm[ap] unm[ap] vu[nmap] xu[nmap] skipwhite nextgroup=vimMapBang,vimMapMod,vimMapLhs
+syn match	vimMapLhs	contained	"\S\+"			contains=vimNotation,vimCtrlChar skipwhite nextgroup=vimMapRhs
+syn match	vimMapBang	contained	"!"			skipwhite nextgroup=vimMapMod,vimMapLhs
+syn match	vimMapMod	contained	"\c<\(buffer\|expr\|\(local\)\=leader\|plug\|script\|sid\|unique\|silent\)\+>" contains=vimMapModKey,vimMapModErr skipwhite nextgroup=vimMapMod,vimMapLhs
+syn match	vimMapRhs	contained	".*" contains=vimNotation,vimCtrlChar	skipnl nextgroup=vimMapRhsExtend
+syn match	vimMapRhsExtend	contained	"^\s*\\.*$"			contains=vimContinue
 syn case ignore
-syn keyword vimMapModKey contained	buffer	expr	leader	localleader	plug	script	sid	silent	unique
+syn keyword	vimMapModKey	contained	buffer	expr	leader	localleader	plug	script	sid	silent	unique
 syn case match
 
 " Menus {{{2
 " =====
-syn cluster vimMenuList contains=vimMenuBang,vimMenuPriority,vimMenuName,vimMenuMod
-syn keyword vimCommand	am[enu] an[oremenu] aun[menu] cme[nu] cnoreme[nu] cunme[nu] ime[nu] inoreme[nu] iunme[nu] me[nu] nme[nu] nnoreme[nu] noreme[nu] nunme[nu] ome[nu] onoreme[nu] ounme[nu] unme[nu] vme[nu] vnoreme[nu] vunme[nu] skipwhite nextgroup=@vimMenuList
-syn match   vimMenuName	"[^ \t\\<]\+"	contained nextgroup=vimMenuNameMore,vimMenuMap
-syn match   vimMenuPriority	"\d\+\(\.\d\+\)*"	contained skipwhite nextgroup=vimMenuName
-syn match   vimMenuNameMore	"\c\\\s\|<tab>\|\\\."	contained nextgroup=vimMenuName,vimMenuNameMore contains=vimNotation
-syn match   vimMenuMod    contained	"\c<\(script\|silent\)\+>"  skipwhite contains=vimMapModKey,vimMapModErr nextgroup=@vimMenuList
-syn match   vimMenuMap	"\s"	contained skipwhite nextgroup=vimMenuRhs
-syn match   vimMenuRhs	".*$"	contained contains=vimString,vimComment,vimIsCommand
-syn match   vimMenuBang	"!"	contained skipwhite nextgroup=@vimMenuList
+syn cluster	vimMenuList contains=vimMenuBang,vimMenuPriority,vimMenuName,vimMenuMod
+syn keyword	vimCommand	am[enu] an[oremenu] aun[menu] cme[nu] cnoreme[nu] cunme[nu] ime[nu] inoreme[nu] iunme[nu] me[nu] nme[nu] nnoreme[nu] noreme[nu] nunme[nu] ome[nu] onoreme[nu] ounme[nu] unme[nu] vme[nu] vnoreme[nu] vunme[nu] skipwhite nextgroup=@vimMenuList
+syn match	vimMenuName	"[^ \t\\<]\+"	contained nextgroup=vimMenuNameMore,vimMenuMap
+syn match	vimMenuPriority	"\d\+\(\.\d\+\)*"	contained skipwhite nextgroup=vimMenuName
+syn match	vimMenuNameMore	"\c\\\s\|<tab>\|\\\."	contained nextgroup=vimMenuName,vimMenuNameMore contains=vimNotation
+syn match	vimMenuMod    contained	"\c<\(script\|silent\)\+>"  skipwhite contains=vimMapModKey,vimMapModErr nextgroup=@vimMenuList
+syn match	vimMenuMap	"\s"	contained skipwhite nextgroup=vimMenuRhs
+syn match	vimMenuRhs	".*$"	contained contains=vimString,vimComment,vimIsCommand
+syn match	vimMenuBang	"!"	contained skipwhite nextgroup=@vimMenuList
 
 " Angle-Bracket Notation (tnx to Michael Geddes) {{{2
 " ======================
 syn case ignore
-syn match vimNotation	"\(\\\|<lt>\)\=<\([scamd]-\)\{0,4}x\=\(f\d\{1,2}\|[^ \t:]\|cr\|lf\|linefeed\|return\|k\=del\%[ete]\|bs\|backspace\|tab\|esc\|right\|left\|help\|undo\|insert\|ins\|k\=home\|k\=end\|kplus\|kminus\|kdivide\|kmultiply\|kenter\|space\|k\=\(page\)\=\(\|down\|up\)\)>" contains=vimBracket
-syn match vimNotation	"\(\\\|<lt>\)\=<\([scam2-4]-\)\{0,4}\(right\|left\|middle\)\(mouse\)\=\(drag\|release\)\=>"	contains=vimBracket
-syn match vimNotation	"\(\\\|<lt>\)\=<\(bslash\|plug\|sid\|space\|bar\|nop\|nul\|lt\)>"		contains=vimBracket
-syn match vimNotation	'\(\\\|<lt>\)\=<C-R>[0-9a-z"%#:.\-=]'he=e-1			contains=vimBracket
-syn match vimNotation	'\(\\\|<lt>\)\=<\%(q-\)\=\(line[12]\|count\|bang\|reg\|args\|f-args\|lt\)>'	contains=vimBracket
-syn match vimNotation	"\(\\\|<lt>\)\=<\([cas]file\|abuf\|amatch\|cword\|cWORD\|client\)>"		contains=vimBracket
-syn match vimBracket contained	"[\\<>]"
+syn match	vimNotation	"\(\\\|<lt>\)\=<\([scamd]-\)\{0,4}x\=\(f\d\{1,2}\|[^ \t:]\|cr\|lf\|linefeed\|return\|k\=del\%[ete]\|bs\|backspace\|tab\|esc\|right\|left\|help\|undo\|insert\|ins\|k\=home\|k\=end\|kplus\|kminus\|kdivide\|kmultiply\|kenter\|space\|k\=\(page\)\=\(\|down\|up\)\)>" contains=vimBracket
+syn match	vimNotation	"\(\\\|<lt>\)\=<\([scam2-4]-\)\{0,4}\(right\|left\|middle\)\(mouse\)\=\(drag\|release\)\=>"	contains=vimBracket
+syn match	vimNotation	"\(\\\|<lt>\)\=<\(bslash\|plug\|sid\|space\|bar\|nop\|nul\|lt\)>"		contains=vimBracket
+syn match	vimNotation	'\(\\\|<lt>\)\=<C-R>[0-9a-z"%#:.\-=]'he=e-1			contains=vimBracket
+syn match	vimNotation	'\(\\\|<lt>\)\=<\%(q-\)\=\(line[12]\|count\|bang\|reg\|args\|f-args\|lt\)>'	contains=vimBracket
+syn match	vimNotation	"\(\\\|<lt>\)\=<\([cas]file\|abuf\|amatch\|cword\|cWORD\|client\)>"		contains=vimBracket
+syn match	vimBracket contained	"[\\<>]"
 syn case match
 
 " User Function Highlighting {{{2
 " (following Gautam Iyer's suggestion)
 " ==========================
-syn match vimFunc		"\%(\%([gGsS]:\|<[sS][iI][dD]>\)\=\%([a-zA-Z0-9_.]\+\.\)*\I[a-zA-Z0-9_.]*\)\ze\s*("		contains=vimFuncName,vimUserFunc,vimExecute
-syn match vimUserFunc contained	"\%(\%([gGsS]:\|<[sS][iI][dD]>\)\=\%([a-zA-Z0-9_.]\+\.\)*\I[a-zA-Z0-9_.]*\)\|\<\u[a-zA-Z0-9.]*\>\|\<if\>"	contains=vimNotation
-syn match vimNotFunc	"\<if\>\|\<el\%[seif]\>"
+syn match vimFunc		"\%(\%([sSgGbBwWtTlL]:\|<[sS][iI][dD]>\)\=\%([a-zA-Z0-9_.]\+\.\)*\I[a-zA-Z0-9_.]*\)\ze\s*("		contains=vimFuncName,vimUserFunc,vimExecute
+syn match vimUserFunc contained	"\%(\%([sSgGbBwWtTlL]:\|<[sS][iI][dD]>\)\=\%([a-zA-Z0-9_.]\+\.\)*\I[a-zA-Z0-9_.]*\)\|\<\u[a-zA-Z0-9.]*\>\|\<if\>"	contains=vimNotation
+syn match vimNotFunc	"\<if\>\|\<el\%[seif]\>\|\<return\>\|\<while\>"
 
 " Errors And Warnings: {{{2
 " ====================
 if !exists("g:vimsyn_noerror")
- syn match vimElseIfErr	"\<else\s\+if\>"
- syn match vimBufnrWarn	/\<bufnr\s*(\s*["']\.['"]\s*)/
+ syn match	vimFunctionError	"\s\zs\%(<[sS][iI][dD]>\|[sSgGbBwWtTlL]:\)\=[a-z0-9]\i\{-}\ze\s*("                	contained contains=vimFuncKey,vimFuncBlank
+ syn match	vimElseIfErr	"\<else\s\+if\>"
+ syn match	vimBufnrWarn	/\<bufnr\s*(\s*["']\.['"]\s*)/
 endif
 
 " Norm {{{2
 " ====
-syn match vimNorm		"\<norm\%[al]!\=" skipwhite nextgroup=vimNormCmds
-syn match vimNormCmds contained	".*$"
+syn match	vimNorm		"\<norm\%[al]!\=" skipwhite nextgroup=vimNormCmds
+syn match	vimNormCmds contained	".*$"
 
 " Syntax {{{2
 "=======
-syn match   vimGroupList	contained	"@\=[^ \t,]*"	contains=vimGroupSpecial,vimPatSep
-syn match   vimGroupList	contained	"@\=[^ \t,]*,"	nextgroup=vimGroupList contains=vimGroupSpecial,vimPatSep
-syn keyword vimGroupSpecial	contained	ALL	ALLBUT
-if !exists("g:vimsyn_noerror")
- syn match   vimSynError	contained	"\i\+"
- syn match   vimSynError	contained	"\i\+="	nextgroup=vimGroupList
-endif
-syn match   vimSynContains	contained	"\<contain\(s\|edin\)="	nextgroup=vimGroupList
-syn match   vimSynKeyContainedin	contained	"\<containedin="	nextgroup=vimGroupList
-syn match   vimSynNextgroup	contained	"nextgroup="	nextgroup=vimGroupList
+syn match	vimGroupList	contained	"@\=[^ \t,]*"	contains=vimGroupSpecial,vimPatSep
+syn match	vimGroupList	contained	"@\=[^ \t,]*,"	nextgroup=vimGroupList contains=vimGroupSpecial,vimPatSep
+syn keyword	vimGroupSpecial	contained	ALL	ALLBUT
+if !exists("g:vimsyn_noerror")
+ syn match	vimSynError	contained	"\i\+"
+ syn match	vimSynError	contained	"\i\+="	nextgroup=vimGroupList
+endif
+syn match	vimSynContains	contained	"\<contain\(s\|edin\)="	nextgroup=vimGroupList
+syn match	vimSynKeyContainedin	contained	"\<containedin="	nextgroup=vimGroupList
+syn match	vimSynNextgroup	contained	"nextgroup="	nextgroup=vimGroupList
 
-syn match   vimSyntax	"\<sy\%[ntax]\>"	contains=vimCommand skipwhite nextgroup=vimSynType,vimComment
-syn match   vimAuSyntax	contained	"\s+sy\%[ntax]"	contains=vimCommand skipwhite nextgroup=vimSynType,vimComment
+syn match	vimSyntax	"\<sy\%[ntax]\>"	contains=vimCommand skipwhite nextgroup=vimSynType,vimComment
+syn match	vimAuSyntax	contained	"\s+sy\%[ntax]"	contains=vimCommand skipwhite nextgroup=vimSynType,vimComment
 
 " Syntax: case {{{2
-syn keyword vimSynType	contained	case	skipwhite nextgroup=vimSynCase,vimSynCaseError
+syn keyword	vimSynType	contained	case	skipwhite nextgroup=vimSynCase,vimSynCaseError
 if !exists("g:vimsyn_noerror")
- syn match   vimSynCaseError	contained	"\i\+"
+ syn match	vimSynCaseError	contained	"\i\+"
 endif
-syn keyword vimSynCase	contained	ignore	match
+syn keyword	vimSynCase	contained	ignore	match
 
 " Syntax: clear {{{2
-syn keyword vimSynType	contained	clear	skipwhite nextgroup=vimGroupList
+syn keyword	vimSynType	contained	clear	skipwhite nextgroup=vimGroupList
 
 " Syntax: cluster {{{2
-syn keyword vimSynType	contained	cluster	skipwhite nextgroup=vimClusterName
-syn region  vimClusterName	contained	matchgroup=vimGroupName start="\k\+" skip="\\\\\|\\|" matchgroup=vimSep end="$\||" contains=vimGroupAdd,vimGroupRem,vimSynContains,vimSynError
-syn match   vimGroupAdd	contained	"add="	nextgroup=vimGroupList
-syn match   vimGroupRem	contained	"remove="	nextgroup=vimGroupList
+syn keyword	vimSynType	contained	cluster	skipwhite nextgroup=vimClusterName
+syn region	vimClusterName	contained	matchgroup=vimGroupName start="\k\+" skip="\\\\\|\\|" matchgroup=vimSep end="$\||" contains=vimGroupAdd,vimGroupRem,vimSynContains,vimSynError
+syn match	vimGroupAdd	contained	"add="	nextgroup=vimGroupList
+syn match	vimGroupRem	contained	"remove="	nextgroup=vimGroupList
 
 " Syntax: include {{{2
-syn keyword vimSynType	contained	include	skipwhite nextgroup=vimGroupList
+syn keyword	vimSynType	contained	include	skipwhite nextgroup=vimGroupList
 
 " Syntax: keyword {{{2
-syn cluster vimSynKeyGroup	contains=vimSynNextgroup,vimSynKeyOpt,vimSynKeyContainedin
-syn keyword vimSynType	contained	keyword	skipwhite nextgroup=vimSynKeyRegion
-syn region  vimSynKeyRegion	contained oneline keepend	matchgroup=vimGroupName start="\k\+" skip="\\\\\|\\|" matchgroup=vimSep end="|\|$" contains=@vimSynKeyGroup
-syn match   vimSynKeyOpt	contained	"\<\(conceal\|contained\|transparent\|skipempty\|skipwhite\|skipnl\)\>"
+syn cluster	vimSynKeyGroup	contains=vimSynNextgroup,vimSynKeyOpt,vimSynKeyContainedin
+syn keyword	vimSynType	contained	keyword	skipwhite nextgroup=vimSynKeyRegion
+syn region	vimSynKeyRegion	contained oneline keepend	matchgroup=vimGroupName start="\k\+" skip="\\\\\|\\|" matchgroup=vimSep end="|\|$" contains=@vimSynKeyGroup
+syn match	vimSynKeyOpt	contained	"\<\(conceal\|contained\|transparent\|skipempty\|skipwhite\|skipnl\)\>"
 
 " Syntax: match {{{2
-syn cluster vimSynMtchGroup	contains=vimMtchComment,vimSynContains,vimSynError,vimSynMtchOpt,vimSynNextgroup,vimSynRegPat,vimNotation
-syn keyword vimSynType	contained	match	skipwhite nextgroup=vimSynMatchRegion
-syn region  vimSynMatchRegion	contained keepend	matchgroup=vimGroupName start="\k\+" matchgroup=vimSep end="|\|$" contains=@vimSynMtchGroup
-syn match   vimSynMtchOpt	contained	"\<\(conceal\|transparent\|contained\|excludenl\|skipempty\|skipwhite\|display\|extend\|skipnl\|fold\)\>"
+syn cluster	vimSynMtchGroup	contains=vimMtchComment,vimSynContains,vimSynError,vimSynMtchOpt,vimSynNextgroup,vimSynRegPat,vimNotation
+syn keyword	vimSynType	contained	match	skipwhite nextgroup=vimSynMatchRegion
+syn region	vimSynMatchRegion	contained keepend	matchgroup=vimGroupName start="\k\+" matchgroup=vimSep end="|\|$" contains=@vimSynMtchGroup
+syn match	vimSynMtchOpt	contained	"\<\(conceal\|transparent\|contained\|excludenl\|skipempty\|skipwhite\|display\|extend\|skipnl\|fold\)\>"
 if has("conceal")
- syn match   vimSynMtchOpt	contained	"\<cchar="	nextgroup=VimSynMtchCchar
- syn match   vimSynMtchCchar	contained	"."
+ syn match	vimSynMtchOpt	contained	"\<cchar="	nextgroup=VimSynMtchCchar
+ syn match	vimSynMtchCchar	contained	"."
 endif
 
 " Syntax: off and on {{{2
-syn keyword vimSynType	contained	enable	list	manual	off	on	reset
+syn keyword	vimSynType	contained	enable	list	manual	off	on	reset
 
 " Syntax: region {{{2
-syn cluster vimSynRegPatGroup	contains=vimPatSep,vimNotPatSep,vimSynPatRange,vimSynNotPatRange,vimSubstSubstr,vimPatRegion,vimPatSepErr,vimNotation
-syn cluster vimSynRegGroup	contains=vimSynContains,vimSynNextgroup,vimSynRegOpt,vimSynReg,vimSynMtchGrp
-syn keyword vimSynType	contained	region	skipwhite nextgroup=vimSynRegion
-syn region  vimSynRegion	contained keepend	matchgroup=vimGroupName start="\k\+" skip="\\\\\|\\|" end="|\|$" contains=@vimSynRegGroup
-syn match   vimSynRegOpt	contained	"\<\(conceal\(ends\)\=\|transparent\|contained\|excludenl\|skipempty\|skipwhite\|display\|keepend\|oneline\|extend\|skipnl\|fold\)\>"
-syn match   vimSynReg	contained	"\(start\|skip\|end\)="he=e-1	nextgroup=vimSynRegPat
-syn match   vimSynMtchGrp	contained	"matchgroup="	nextgroup=vimGroup,vimHLGroup
-syn region  vimSynRegPat	contained extend	start="\z([-`~!@#$%^&*_=+;:'",./?]\)"  skip="\\\\\|\\\z1"  end="\z1"  contains=@vimSynRegPatGroup skipwhite nextgroup=vimSynPatMod,vimSynReg
-syn match   vimSynPatMod	contained	"\(hs\|ms\|me\|hs\|he\|rs\|re\)=[se]\([-+]\d\+\)\="
-syn match   vimSynPatMod	contained	"\(hs\|ms\|me\|hs\|he\|rs\|re\)=[se]\([-+]\d\+\)\=," nextgroup=vimSynPatMod
-syn match   vimSynPatMod	contained	"lc=\d\+"
-syn match   vimSynPatMod	contained	"lc=\d\+," nextgroup=vimSynPatMod
-syn region  vimSynPatRange	contained	start="\["	skip="\\\\\|\\]"   end="]"
-syn match   vimSynNotPatRange	contained	"\\\\\|\\\["
-syn match   vimMtchComment	contained	'"[^"]\+$'
+syn cluster	vimSynRegPatGroup	contains=vimPatSep,vimNotPatSep,vimSynPatRange,vimSynNotPatRange,vimSubstSubstr,vimPatRegion,vimPatSepErr,vimNotation
+syn cluster	vimSynRegGroup	contains=vimSynContains,vimSynNextgroup,vimSynRegOpt,vimSynReg,vimSynMtchGrp
+syn keyword	vimSynType	contained	region	skipwhite nextgroup=vimSynRegion
+syn region	vimSynRegion	contained keepend	matchgroup=vimGroupName start="\k\+" skip="\\\\\|\\|" end="|\|$" contains=@vimSynRegGroup
+syn match	vimSynRegOpt	contained	"\<\(conceal\(ends\)\=\|transparent\|contained\|excludenl\|skipempty\|skipwhite\|display\|keepend\|oneline\|extend\|skipnl\|fold\)\>"
+syn match	vimSynReg	contained	"\(start\|skip\|end\)="he=e-1	nextgroup=vimSynRegPat
+syn match	vimSynMtchGrp	contained	"matchgroup="	nextgroup=vimGroup,vimHLGroup
+syn region	vimSynRegPat	contained extend	start="\z([-`~!@#$%^&*_=+;:'",./?]\)"  skip="\\\\\|\\\z1"  end="\z1"  contains=@vimSynRegPatGroup skipwhite nextgroup=vimSynPatMod,vimSynReg
+syn match	vimSynPatMod	contained	"\(hs\|ms\|me\|hs\|he\|rs\|re\)=[se]\([-+]\d\+\)\="
+syn match	vimSynPatMod	contained	"\(hs\|ms\|me\|hs\|he\|rs\|re\)=[se]\([-+]\d\+\)\=," nextgroup=vimSynPatMod
+syn match	vimSynPatMod	contained	"lc=\d\+"
+syn match	vimSynPatMod	contained	"lc=\d\+," nextgroup=vimSynPatMod
+syn region	vimSynPatRange	contained	start="\["	skip="\\\\\|\\]"   end="]"
+syn match	vimSynNotPatRange	contained	"\\\\\|\\\["
+syn match	vimMtchComment	contained	'"[^"]\+$'
 
 " Syntax: sync {{{2
 " ============
 syn keyword vimSynType	contained	sync	skipwhite	nextgroup=vimSyncC,vimSyncLines,vimSyncMatch,vimSyncError,vimSyncLinebreak,vimSyncLinecont,vimSyncRegion
 if !exists("g:vimsyn_noerror")
- syn match   vimSyncError	contained	"\i\+"
+ syn match	vimSyncError	contained	"\i\+"
 endif
-syn keyword vimSyncC	contained	ccomment	clear	fromstart
-syn keyword vimSyncMatch	contained	match	skipwhite	nextgroup=vimSyncGroupName
-syn keyword vimSyncRegion	contained	region	skipwhite	nextgroup=vimSynReg
-syn match   vimSyncLinebreak	contained	"\<linebreaks="	skipwhite	nextgroup=vimNumber
-syn keyword vimSyncLinecont	contained	linecont	skipwhite	nextgroup=vimSynRegPat
-syn match   vimSyncLines	contained	"\(min\|max\)\=lines="	nextgroup=vimNumber
-syn match   vimSyncGroupName	contained	"\k\+"	skipwhite	nextgroup=vimSyncKey
-syn match   vimSyncKey	contained	"\<groupthere\|grouphere\>"	skipwhite nextgroup=vimSyncGroup
-syn match   vimSyncGroup	contained	"\k\+"	skipwhite	nextgroup=vimSynRegPat,vimSyncNone
-syn keyword vimSyncNone	contained	NONE
+syn keyword	vimSyncC	contained	ccomment	clear	fromstart
+syn keyword	vimSyncMatch	contained	match	skipwhite	nextgroup=vimSyncGroupName
+syn keyword	vimSyncRegion	contained	region	skipwhite	nextgroup=vimSynReg
+syn match	vimSyncLinebreak	contained	"\<linebreaks="	skipwhite	nextgroup=vimNumber
+syn keyword	vimSyncLinecont	contained	linecont	skipwhite	nextgroup=vimSynRegPat
+syn match	vimSyncLines	contained	"\(min\|max\)\=lines="	nextgroup=vimNumber
+syn match	vimSyncGroupName	contained	"\k\+"	skipwhite	nextgroup=vimSyncKey
+syn match	vimSyncKey	contained	"\<groupthere\|grouphere\>"	skipwhite nextgroup=vimSyncGroup
+syn match	vimSyncGroup	contained	"\k\+"	skipwhite	nextgroup=vimSynRegPat,vimSyncNone
+syn keyword	vimSyncNone	contained	NONE
 
 " Additional IsCommand, here by reasons of precedence {{{2
 " ====================
-syn match vimIsCommand	"<Bar>\s*\a\+"	transparent contains=vimCommand,vimNotation
+syn match	vimIsCommand	"<Bar>\s*\a\+"	transparent contains=vimCommand,vimNotation
 
 " Highlighting {{{2
 " ============
-syn cluster vimHighlightCluster	contains=vimHiLink,vimHiClear,vimHiKeyList,vimComment
-syn match   vimHighlight	"\<hi\%[ghlight]\>" skipwhite nextgroup=vimHiBang,@vimHighlightCluster
-syn match   vimHiBang	contained	"!"	  skipwhite nextgroup=@vimHighlightCluster
-
-syn match   vimHiGroup	contained	"\i\+"
+syn cluster	vimHighlightCluster		contains=vimHiLink,vimHiClear,vimHiKeyList,vimComment
+syn match	vimHighlight	"\<hi\%[ghlight]\>"	skipwhite nextgroup=vimHiBang,vimGroup,@vimHighlightCluster
+syn match	vimHiBang	contained	"!"	skipwhite nextgroup=@vimHighlightCluster
+       	
+syn match	vimHiGroup	contained	"\i\+"
 syn case ignore
-syn keyword vimHiAttrib	contained	none bold inverse italic reverse standout underline undercurl
-syn keyword vimFgBgAttrib	contained	none bg background fg foreground
+syn keyword	vimHiAttrib	contained	none bold inverse italic reverse standout underline undercurl
+syn keyword	vimFgBgAttrib	contained	none bg background fg foreground
 syn case match
-syn match   vimHiAttribList	contained	"\i\+"	contains=vimHiAttrib
-syn match   vimHiAttribList	contained	"\i\+,"he=e-1	contains=vimHiAttrib nextgroup=vimHiAttribList
+syn match	vimHiAttribList	contained	"\i\+"	contains=vimHiAttrib
+syn match	vimHiAttribList	contained	"\i\+,"he=e-1	contains=vimHiAttrib nextgroup=vimHiAttribList
 syn case ignore
-syn keyword vimHiCtermColor	contained	black blue brown cyan darkBlue darkcyan darkgray darkgreen darkgrey darkmagenta darkred darkyellow gray green grey lightblue lightcyan lightgray lightgreen lightgrey lightmagenta lightred magenta red white yellow
+syn keyword	vimHiCtermColor	contained	black blue brown cyan darkBlue darkcyan darkgray darkgreen darkgrey darkmagenta darkred darkyellow gray green grey lightblue lightcyan lightgray lightgreen lightgrey lightmagenta lightred magenta red white yellow
 
 syn case match
-syn match   vimHiFontname	contained	"[a-zA-Z\-*]\+"
-syn match   vimHiGuiFontname	contained	"'[a-zA-Z\-* ]\+'"
-syn match   vimHiGuiRgb	contained	"#\x\{6}"
+syn match	vimHiFontname	contained	"[a-zA-Z\-*]\+"
+syn match	vimHiGuiFontname	contained	"'[a-zA-Z\-* ]\+'"
+syn match	vimHiGuiRgb	contained	"#\x\{6}"
 if !exists("g:vimsyn_noerror")
- syn match   vimHiCtermError	contained	"[^0-9]\i*"
+ syn match	vimHiCtermError	contained	"[^0-9]\i*"
 endif
 
 " Highlighting: hi group key=arg ... {{{2
-syn cluster vimHiCluster contains=vimHiGroup,vimHiTerm,vimHiCTerm,vimHiStartStop,vimHiCtermFgBg,vimHiGui,vimHiGuiFont,vimHiGuiFgBg,vimHiKeyError,vimNotation
-syn region vimHiKeyList	contained oneline start="\i\+" skip="\\\\\|\\|" end="$\||"	contains=@vimHiCluster
+syn cluster	vimHiCluster contains=vimHiGroup,vimHiTerm,vimHiCTerm,vimHiStartStop,vimHiCtermFgBg,vimHiGui,vimHiGuiFont,vimHiGuiFgBg,vimHiKeyError,vimNotation
+syn region	vimHiKeyList	contained oneline start="\i\+" skip="\\\\\|\\|" end="$\||"	contains=@vimHiCluster
 if !exists("g:vimsyn_noerror")
- syn match  vimHiKeyError	contained	"\i\+="he=e-1
+ syn match	vimHiKeyError	contained	"\i\+="he=e-1
 endif
-syn match  vimHiTerm	contained	"\cterm="he=e-1		nextgroup=vimHiAttribList
-syn match  vimHiStartStop	contained	"\c\(start\|stop\)="he=e-1	nextgroup=vimHiTermcap,vimOption
-syn match  vimHiCTerm	contained	"\ccterm="he=e-1		nextgroup=vimHiAttribList
-syn match  vimHiCtermFgBg	contained	"\ccterm[fb]g="he=e-1	nextgroup=vimNumber,vimHiCtermColor,vimFgBgAttrib,vimHiCtermError
-syn match  vimHiGui	contained	"\cgui="he=e-1		nextgroup=vimHiAttribList
-syn match  vimHiGuiFont	contained	"\cfont="he=e-1		nextgroup=vimHiFontname
-syn match  vimHiGuiFgBg	contained	"\cgui\%([fb]g\|sp\)="he=e-1	nextgroup=vimHiGroup,vimHiGuiFontname,vimHiGuiRgb,vimFgBgAttrib
-syn match  vimHiTermcap	contained	"\S\+"		contains=vimNotation
+syn match	vimHiTerm	contained	"\cterm="he=e-1		nextgroup=vimHiAttribList
+syn match	vimHiStartStop	contained	"\c\(start\|stop\)="he=e-1	nextgroup=vimHiTermcap,vimOption
+syn match	vimHiCTerm	contained	"\ccterm="he=e-1		nextgroup=vimHiAttribList
+syn match	vimHiCtermFgBg	contained	"\ccterm[fb]g="he=e-1	nextgroup=vimNumber,vimHiCtermColor,vimFgBgAttrib,vimHiCtermError
+syn match	vimHiGui	contained	"\cgui="he=e-1		nextgroup=vimHiAttribList
+syn match	vimHiGuiFont	contained	"\cfont="he=e-1		nextgroup=vimHiFontname
+syn match	vimHiGuiFgBg	contained	"\cgui\%([fb]g\|sp\)="he=e-1	nextgroup=vimHiGroup,vimHiGuiFontname,vimHiGuiRgb,vimFgBgAttrib
+syn match	vimHiTermcap	contained	"\S\+"		contains=vimNotation
 
 " Highlight: clear {{{2
-syn keyword vimHiClear	contained	clear	nextgroup=vimHiGroup
+syn keyword	vimHiClear	contained	clear	nextgroup=vimHiGroup
 
 " Highlight: link {{{2
-syn region vimHiLink	contained oneline matchgroup=vimCommand start="\<\(def\s\+\)\=link\>\|\<def\>" end="$"	contains=vimHiGroup,vimGroup,vimHLGroup,vimNotation
+syn region	vimHiLink	contained oneline matchgroup=vimCommand start="\<\(def\s\+\)\=link\>\|\<def\>" end="$"	contains=vimHiGroup,vimGroup,vimHLGroup,vimNotation
 
 " Control Characters {{{2
 " ==================
-syn match vimCtrlChar	"[--]"
+syn match	vimCtrlChar	"[--]"
 
 " Beginners - Patterns that involve ^ {{{2
 " =========
-syn match  vimLineComment	+^[ \t:]*".*$+	contains=@vimCommentGroup,vimCommentString,vimCommentTitle
-syn match  vimCommentTitle	'"\s*\%([sS]:\|\h\w*#\)\=\u\w*\(\s\+\u\w*\)*:'hs=s+1	contained contains=vimCommentTitleLeader,vimTodo,@vimCommentGroup
-syn match  vimContinue	"^\s*\\"
-syn region vimString	start="^\s*\\\z(['"]\)" skip='\\\\\|\\\z1' end="\z1" oneline keepend contains=@vimStringGroup,vimContinue
-syn match  vimCommentTitleLeader	'"\s\+'ms=s+1	contained
+syn match	vimLineComment	+^[ \t:]*".*$+	contains=@vimCommentGroup,vimCommentString,vimCommentTitle
+syn match	vimCommentTitle	'"\s*\%([sS]:\|\h\w*#\)\=\u\w*\(\s\+\u\w*\)*:'hs=s+1	contained contains=vimCommentTitleLeader,vimTodo,@vimCommentGroup
+syn match	vimContinue	"^\s*\\"
+syn region	vimString	start="^\s*\\\z(['"]\)" skip='\\\\\|\\\z1' end="\z1" oneline keepend contains=@vimStringGroup,vimContinue
+syn match	vimCommentTitleLeader	'"\s\+'ms=s+1	contained
 
 " Searches And Globals: {{{2
 " ====================
-syn match vimSearch	'^\s*[/?].*'		contains=vimSearchDelim
-syn match vimSearchDelim	'^\s*\zs[/?]\|[/?]$'	contained
-syn region vimGlobal	matchgroup=Statement start='\<g\%[lobal]!\=/' skip='\\.' end='/'
-syn region vimGlobal	matchgroup=Statement start='\<v\%[global]!\=/' skip='\\.' end='/'
+syn match	vimSearch	'^\s*[/?].*'		contains=vimSearchDelim
+syn match	vimSearchDelim	'^\s*\zs[/?]\|[/?]$'	contained
+syn region	vimGlobal	matchgroup=Statement start='\<g\%[lobal]!\=/' skip='\\.' end='/'
+syn region	vimGlobal	matchgroup=Statement start='\<v\%[global]!\=/' skip='\\.' end='/'
 
 " Scripts  : perl,ruby : Benoit Cerrina {{{2
 " =======    python,tcl: Johannes Zellner
@@ -541,94 +542,127 @@
 endif
 
 " [-- perl --] {{{3
-if (g:vimsyn_embed =~ 'p' && has("perl")) && filereadable(expand("<sfile>:p:h")."/perl.vim")
+let s:perlpath= expand("<sfile>:p:h")."/perl.vim"
+if !filereadable(s:perlpath)
+ let s:perlpath= globpath(&rtp,"syntax/perl.vim")
+endif
+if (g:vimsyn_embed =~ 'p' && has("perl")) && filereadable(s:perlpath)
  unlet! b:current_syntax
- syn include @vimPerlScript <sfile>:p:h/perl.vim
+ exe "syn include @vimPerlScript ".s:perlpath
  if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'p'
-  syn region vimPerlRegion fold matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimPerlScript
-  syn region vimPerlRegion fold matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*$+ end=+\.$+ contains=@vimPerlScript
+  syn region vimPerlRegion fold matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*\z(.*\)$+ end=+^\z1$+	contains=@vimPerlScript
+  syn region vimPerlRegion fold matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*$+ end=+\.$+	contains=@vimPerlScript
  else
-  syn region vimPerlRegion matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimPerlScript
-  syn region vimPerlRegion matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*$+ end=+\.$+ contains=@vimPerlScript
+  syn region vimPerlRegion matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*\z(.*\)$+ end=+^\z1$+	contains=@vimPerlScript
+  syn region vimPerlRegion matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*$+ end=+\.$+		contains=@vimPerlScript
  endif
+ syn cluster vimFuncBodyList	add=vimPerlRegion
 else
  syn region vimEmbedError start=+pe\%[rl]\s*<<\s*\z(.*\)$+ end=+^\z1$+
  syn region vimEmbedError start=+pe\%[rl]\s*<<\s*$+ end=+\.$+
 endif
+unlet s:perlpath
 
 " [-- ruby --] {{{3
-if (g:vimsyn_embed =~ 'r' && has("ruby")) && filereadable(expand("<sfile>:p:h")."/ruby.vim")
+let s:rubypath= expand("<sfile>:p:h")."/ruby.vim"
+if !filereadable(s:rubypath)
+ let s:rubypath= globpath(&rtp,"syntax/ruby.vim")
+endif
+if (g:vimsyn_embed =~ 'r' && has("ruby")) && filereadable(s:rubypath)
  unlet! b:current_syntax
- syn include @vimRubyScript <sfile>:p:h/ruby.vim
+ exe "syn include @vimRubyScript ".s:rubypath
  if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'r'
-  syn region vimRubyRegion fold matchgroup=vimScriptDelim start=+rub[y]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimRubyScript
+  syn region vimRubyRegion fold matchgroup=vimScriptDelim start=+rub[y]\s*<<\s*\z(.*\)$+ end=+^\z1$+	contains=@vimRubyScript
  else
-  syn region vimRubyRegion matchgroup=vimScriptDelim start=+rub[y]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimRubyScript
+  syn region vimRubyRegion matchgroup=vimScriptDelim start=+rub[y]\s*<<\s*\z(.*\)$+ end=+^\z1$+	contains=@vimRubyScript
  endif
- syn region vimRubyRegion matchgroup=vimScriptDelim start=+rub[y]\s*<<\s*$+ end=+\.$+ contains=@vimRubyScript
+ syn region vimRubyRegion matchgroup=vimScriptDelim start=+rub[y]\s*<<\s*$+ end=+\.$+		contains=@vimRubyScript
+ syn cluster vimFuncBodyList	add=vimRubyRegion
 else
  syn region vimEmbedError start=+rub[y]\s*<<\s*\z(.*\)$+ end=+^\z1$+
  syn region vimEmbedError start=+rub[y]\s*<<\s*$+ end=+\.$+
 endif
+unlet s:rubypath
 
 " [-- python --] {{{3
-if (g:vimsyn_embed =~ 'P' && has("python")) && filereadable(expand("<sfile>:p:h")."/python.vim")
+let s:pythonpath= expand("<sfile>:p:h")."/python.vim"
+if !filereadable(s:pythonpath)
+ let s:pythonpath= globpath(&rtp,"syntax/python.vim")
+endif
+if (g:vimsyn_embed =~ 'P' && has("python")) && filereadable(s:pythonpath)
  unlet! b:current_syntax
- syn include @vimPythonScript <sfile>:p:h/python.vim
+ exe "syn include @vimPythonScript ".s:pythonpath
  if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'P'
-  syn region vimPythonRegion fold matchgroup=vimScriptDelim start=+py\%[thon]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimPythonScript
-  syn region vimPythonRegion fold matchgroup=vimScriptDelim start=+py\%[thon]\s*<<\s*$+ end=+\.$+ contains=@vimPythonScript
+  syn region vimPythonRegion fold matchgroup=vimScriptDelim start=+py\%[thon]\s*<<\s*\z(.*\)$+ end=+^\z1$+	contains=@vimPythonScript
+  syn region vimPythonRegion fold matchgroup=vimScriptDelim start=+py\%[thon]\s*<<\s*$+ end=+\.$+	contains=@vimPythonScript
  else
-  syn region vimPythonRegion matchgroup=vimScriptDelim start=+py\%[thon]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimPythonScript
-  syn region vimPythonRegion matchgroup=vimScriptDelim start=+py\%[thon]\s*<<\s*$+ end=+\.$+ contains=@vimPythonScript
+  syn region vimPythonRegion matchgroup=vimScriptDelim start=+py\%[thon]\s*<<\s*\z(.*\)$+ end=+^\z1$+	contains=@vimPythonScript
+  syn region vimPythonRegion matchgroup=vimScriptDelim start=+py\%[thon]\s*<<\s*$+ end=+\.$+	contains=@vimPythonScript
  endif
+ syn cluster vimFuncBodyList	add=vimPythonRegion
 else
  syn region vimEmbedError start=+py\%[thon]\s*<<\s*\z(.*\)$+ end=+^\z1$+
  syn region vimEmbedError start=+py\%[thon]\s*<<\s*$+ end=+\.$+
 endif
+unlet s:pythonpath
 
 " [-- tcl --] {{{3
 if has("win32") || has("win95") || has("win64") || has("win16")
  " apparently has("tcl") has been hanging vim on some windows systems with cygwin
- let trytcl= (&shell !~ '\<\%(bash\>\|4[nN][tT]\|\<zsh\)\>\%(\.exe\)\=$')
+ let s:trytcl= (&shell !~ '\<\%(bash\>\|4[nN][tT]\|\<zsh\)\>\%(\.exe\)\=$')
 else
- let trytcl= 1
+ let s:trytcl= 1
 endif
-if trytcl
- if (g:vimsyn_embed =~ 't' && has("tcl")) && filereadable(expand("<sfile>:p:h")."/tcl.vim")
+if s:trytcl
+ let s:tclpath= expand("<sfile>:p:h")."/tcl.vim"
+ if !filereadable(s:tclpath)
+  let s:tclpath= globpath(&rtp,"syntax/tcl.vim")
+ endif
+ if (g:vimsyn_embed =~ 't' && has("tcl")) && filereadable(s:tclpath)
   unlet! b:current_syntax
-  syn include @vimTclScript <sfile>:p:h/tcl.vim
+  exe "syn include @vimTclScript ".s:tclpath
   if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 't'
-   syn region vimTclRegion fold matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimTclScript
-   syn region vimTclRegion fold matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*$+ end=+\.$+ contains=@vimTclScript
+   syn region vimTclRegion fold matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+	contains=@vimTclScript
+   syn region vimTclRegion fold matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*$+ end=+\.$+	contains=@vimTclScript
   else
-   syn region vimTclRegion matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimTclScript
-   syn region vimTclRegion matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*$+ end=+\.$+ contains=@vimTclScript
+   syn region vimTclRegion matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+	contains=@vimTclScript
+   syn region vimTclRegion matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*$+ end=+\.$+		contains=@vimTclScript
   endif
+  syn cluster vimFuncBodyList	add=vimTclScript
+ else
+  syn region vimEmbedError start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+
+  syn region vimEmbedError start=+tc[l]\=\s*<<\s*$+ end=+\.$+
  endif
+ unlet s:tclpath
 else
  syn region vimEmbedError start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+
  syn region vimEmbedError start=+tc[l]\=\s*<<\s*$+ end=+\.$+
 endif
-unlet trytcl
+unlet s:trytcl
 
 " [-- mzscheme --] {{{3
-if (g:vimsyn_embed =~ 'm' && has("mzscheme")) && filereadable(expand("<sfile>:p:h")."/scheme.vim")
+let s:mzschemepath= expand("<sfile>:p:h")."/scheme.vim"
+if !filereadable(s:mzschemepath)
+ let s:mzschemepath= globpath(&rtp,"syntax/scheme.vim")
+endif
+if (g:vimsyn_embed =~ 'm' && has("mzscheme")) && filereadable(s:mzschemepath)
  unlet! b:current_syntax
  let iskKeep= &isk
- syn include @vimMzSchemeScript <sfile>:p:h/scheme.vim
+ exe "syn include @vimMzSchemeScript ".s:mzschemepath
  let &isk= iskKeep
  if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'm'
-  syn region vimMzSchemeRegion fold matchgroup=vimScriptDelim start=+mz\%[scheme]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimMzSchemeScript
-  syn region vimMzSchemeRegion fold matchgroup=vimScriptDelim start=+mz\%[scheme]\s*<<\s*$+ end=+\.$+ contains=@vimMzSchemeScript
+  syn region vimMzSchemeRegion fold matchgroup=vimScriptDelim start=+mz\%[scheme]\s*<<\s*\z(.*\)$+ end=+^\z1$+	contains=@vimMzSchemeScript
+  syn region vimMzSchemeRegion fold matchgroup=vimScriptDelim start=+mz\%[scheme]\s*<<\s*$+ end=+\.$+		contains=@vimMzSchemeScript
  else
-  syn region vimMzSchemeRegion matchgroup=vimScriptDelim start=+mz\%[scheme]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimMzSchemeScript
-  syn region vimMzSchemeRegion matchgroup=vimScriptDelim start=+mz\%[scheme]\s*<<\s*$+ end=+\.$+ contains=@vimMzSchemeScript
+  syn region vimMzSchemeRegion matchgroup=vimScriptDelim start=+mz\%[scheme]\s*<<\s*\z(.*\)$+ end=+^\z1$+		contains=@vimMzSchemeScript
+  syn region vimMzSchemeRegion matchgroup=vimScriptDelim start=+mz\%[scheme]\s*<<\s*$+ end=+\.$+		contains=@vimMzSchemeScript
  endif
+ syn cluster vimFuncBodyList	add=vimMzSchemeRegion
 else
  syn region vimEmbedError start=+mz\%[scheme]\s*<<\s*\z(.*\)$+ end=+^\z1$+
  syn region vimEmbedError start=+mz\%[scheme]\s*<<\s*$+ end=+\.$+
 endif
+unlet s:mzschemepath
 
 " Synchronize (speed) {{{2
 "============
@@ -643,6 +677,7 @@
 syn sync linecont	"^\s\+\\"
 syn sync match vimAugroupSyncA	groupthere NONE	"\<aug\%[roup]\>\s\+[eE][nN][dD]"
 
+" ====================
 " Highlighting Settings {{{2
 " ====================
 
@@ -709,15 +744,15 @@
 hi def link vimMenuNameMore	vimMenuName
 hi def link vimMtchComment	vimComment
 hi def link vimNorm	vimCommand
+hi def link vimNotFunc	vimCommand
 hi def link vimNotPatSep	vimString
-hi def link vimPatSepR	vimPatSep
-hi def link vimPatSepZ	vimPatSep
 hi def link vimPatSepErr	vimPatSep
+hi def link vimPatSepR	vimPatSep
 hi def link vimPatSepZone	vimString
+hi def link vimPatSepZ	vimPatSep
 hi def link vimPlainMark	vimMark
 hi def link vimPlainRegister	vimRegister
 hi def link vimSearch	vimString
-hi def link vimSearchDelim	Statement
 hi def link vimSetMod	vimOption
 hi def link vimSetString	vimString
 hi def link vimSpecFileMod	vimSpecFile
@@ -738,11 +773,11 @@
 hi def link vimSynRegPat	vimString
 hi def link vimSyntax	vimCommand
 hi def link vimSynType	vimSpecial
+hi def link vimUnmap	vimMap
 hi def link vimUserAttrbCmplt	vimSpecial
 hi def link vimUserAttrbKey	vimOption
 hi def link vimUserAttrb	vimSpecial
 hi def link vimUserCommand	vimCommand
-hi def link vimUserFunc	Normal
 
 hi def link vimAutoEvent	Type
 hi def link vimBracket	Delimiter
@@ -759,24 +794,25 @@
 hi def link vimFuncName	Function
 hi def link vimFuncSID	Special
 hi def link vimFuncVar	Identifier
-hi def link vimGroup	Type
 hi def link vimGroupSpecial	Special
-hi def link vimHLMod	PreProc
+hi def link vimGroup	Type
 hi def link vimHiAttrib	PreProc
 hi def link vimHiTerm	Type
+hi def link vimHLMod	PreProc
 hi def link vimKeyword	Statement
 hi def link vimMark	Number
 hi def link vimMenuName	PreProc
 hi def link vimNotation	Special
-hi def link vimNotFunc	vimCommand
 hi def link vimNumber	Number
+hi def link vimOperError	Error
 hi def link vimOper	Operator
 hi def link vimOption	PreProc
-hi def link vimOperError	Error
+hi def link vimParenSep	Delimiter
 hi def link vimPatSep	SpecialChar
 hi def link vimPattern	Type
 hi def link vimRegister	SpecialChar
 hi def link vimScriptDelim	Comment
+hi def link vimSearchDelim	Statement
 hi def link vimSep	Delimiter
 hi def link vimSetSep	Statement
 hi def link vimSpecFile	Identifier
@@ -786,18 +822,19 @@
 hi def link vimSubstDelim	Delimiter
 hi def link vimSubstFlags	Special
 hi def link vimSubstSubstr	SpecialChar
-hi def link vimSynCase	Type
 hi def link vimSynCaseError	Error
-hi def link vimSynError	Error
-hi def link vimSynOption	Special
-hi def link vimSynReg	Type
+hi def link vimSynCase	Type
 hi def link vimSyncC	Type
 hi def link vimSyncError	Error
 hi def link vimSyncKey	Type
 hi def link vimSyncNone	Type
+hi def link vimSynError	Error
+hi def link vimSynOption	Special
+hi def link vimSynReg	Type
 hi def link vimTodo	Todo
-hi def link vimUserCmdError	Error
 hi def link vimUserAttrbCmpltFunc	Special
+hi def link vimUserCmdError	Error
+hi def link vimUserFunc	Normal
 hi def link vimWarn	WarningMsg
 
 " Current Syntax Variable: {{{2
diff -Nur runtime.patched/syntax/xml.vim runtime/syntax/xml.vim
--- runtime.patched/syntax/xml.vim	2006-04-11 14:32:00.000000000 -0700
+++ runtime/syntax/xml.vim	2009-07-26 04:44:44.000000000 -0700
@@ -3,7 +3,7 @@
 " Maintainer:	Johannes Zellner <[email protected]>
 "		Author and previous maintainer:
 "		Paul Siegmann <[email protected]>
-" Last Change:	Mi, 13 Apr 2005 22:40:09 CEST
+" Last Change:	2009-07-13 21:26:55
 " Filenames:	*.xml
 " $Id: xml.vim,v 1.3 2006/04/11 21:32:00 vimboss Exp $
 
@@ -216,7 +216,7 @@
     syn region  xmlComment
 	\ start=+<!+
 	\ end=+>+
-	\ contains=xmlCommentPart,xmlCommentError
+	\ contains=xmlCommentStart,xmlCommentError
 	\ extend
 	\ fold
 
@@ -228,11 +228,12 @@
     syn region  xmlComment
 	\ start=+<!+
 	\ end=+>+
-	\ contains=xmlCommentPart,xmlCommentError
+	\ contains=xmlCommentStart,xmlCommentError
 	\ extend
 
 endif
 
+syn match xmlCommentStart   contained "<!" nextgroup=xmlCommentPart
 syn keyword xmlTodo         contained TODO FIXME XXX
 syn match   xmlCommentError contained "[^><!]"
 syn region  xmlCommentPart
@@ -320,6 +321,7 @@
 
 hi def link xmlString		String
 hi def link xmlComment		Comment
+hi def link xmlCommentStart	xmlComment
 hi def link xmlCommentPart	Comment
 hi def link xmlCommentError	Error
 hi def link xmlError		Error
diff -Nur runtime.patched/syntax/yacc.vim runtime/syntax/yacc.vim
--- runtime.patched/syntax/yacc.vim	2008-03-03 12:33:51.000000000 -0800
+++ runtime/syntax/yacc.vim	2008-12-08 13:08:36.000000000 -0800
@@ -1,95 +1,85 @@
 " Vim syntax file
 " Language:	Yacc
 " Maintainer:	Charles E. Campbell, Jr. <[email protected]>
-" Last Change:	Jan 09, 2008
-" Version:	5
+" Last Change:	Oct 21, 2008
+" Version:	7
 " URL:	http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax
 "
 " Options: {{{1
 "   g:yacc_uses_cpp : if this variable exists, then C++ is loaded rather than C
-"   g:yacc_minlines : see :help :he syn-sync-minlines -- default 50
-"   g:yacc_maxlines : see :help :he syn-sync-maxlines -- default 200
 
 " ---------------------------------------------------------------------
-" For version 5.x: Clear all syntax items {{{1
-" For version 6.x: Quit when a syntax file was already loaded
+" this version of syntax/yacc.vim requires 6.0 or later
 if version < 600
-  syntax clear
-elseif exists("b:current_syntax")
-  finish
+ finish
+endif
+if exists("b:current_syntax")
+ syntax clear
+endif
+
+" ---------------------------------------------------------------------
+"  Folding Support {{{1
+if has("folding")
+ com! -nargs=+ HiFold	<args> fold
+else
+ com! -nargs=+ HiFold	<args>
 endif
 
 " ---------------------------------------------------------------------
 " Read the C syntax to start with {{{1
-if version >= 600
-  if exists("g:yacc_uses_cpp")
-    runtime! syntax/cpp.vim
-  else
-    runtime! syntax/c.vim
-  endif
-elseif exists("g:yacc_uses_cpp")
-  so <sfile>:p:h/cpp.vim
+if exists("g:yacc_uses_cpp")
+ syn include @yaccCode	<sfile>:p:h/cpp.vim
 else
-  so <sfile>:p:h/c.vim
+ syn include @yaccCode	<sfile>:p:h/c.vim
 endif
 
 " ---------------------------------------------------------------------
-" Clusters {{{1
-syn cluster	yaccActionGroup	contains=yaccDelim,cInParen,cTodo,cIncluded,yaccDelim,yaccCurlyError,yaccUnionCurly,yaccUnion,cUserLabel,cOctalZero,cCppOut2,cCppSkip,cErrInBracket,cErrInParen,cOctalError,cCommentStartError,cParenError
-syn cluster	yaccUnionGroup	contains=yaccKey,cComment,yaccCurly,cType,cStructure,cStorageClass,yaccUnionCurly
-
-" ---------------------------------------------------------------------
-" Yacc stuff {{{1
-syn match	yaccDelim	"^\s*[:|;]"
-syn match	yaccOper	"@\d\+"
-
-syn match	yaccKey	"^\s*%\(token\|type\|left\|right\|start\|ident\|nonassoc\)\>"
-syn match	yaccKey	"\s%\(prec\|expect\)\>"
-syn match	yaccKey	"\$\(<[a-zA-Z_][a-zA-Z_0-9]*>\)\=[\$0-9]\+"
-syn keyword	yaccKeyActn	yyerrok yyclearin
-
-syn match	yaccUnionStart	"^%union"	skipwhite skipnl nextgroup=yaccUnion
-syn region	yaccUnion	contained matchgroup=yaccCurly start="{" matchgroup=yaccCurly end="}"	contains=@yaccUnionGroup
-syn region	yaccUnionCurly	contained matchgroup=yaccCurly start="{" matchgroup=yaccCurly end="}" contains=@yaccUnionGroup
-syn match	yaccBrkt	contained "[<>]"
-syn match	yaccType	"<[a-zA-Z_][a-zA-Z0-9_]*>"	contains=yaccBrkt
-syn match	yaccDefinition	"^[A-Za-z][A-Za-z0-9_]*\_s*:"
-
-" ---------------------------------------------------------------------
-" special Yacc separators {{{1
-syn match	yaccSectionSep	"^[ \t]*%%"
-syn match	yaccSep	"^[ \t]*%{"
-syn match	yaccSep	"^[ \t]*%}"
+"  Yacc Clusters: {{{1
+syn cluster yaccInitCluster	contains=yaccKey,yaccKeyActn,yaccBrkt,yaccType,yaccString,yaccUnionStart,yaccHeader2,yaccComment
+syn cluster yaccRulesCluster	contains=yaccNonterminal,yaccString
+
+" ---------------------------------------------------------------------
+"  Yacc Sections: {{{1
+HiFold syn	region	yaccInit	start='.'ms=s-1,rs=s-1	matchgroup=yaccSectionSep	end='^%%$'me=e-2,re=e-2	contains=@yaccInitCluster	nextgroup=yaccRules	skipwhite skipempty contained
+HiFold syn	region	yaccInit2      start='\%^.'ms=s-1,rs=s-1	matchgroup=yaccSectionSep	end='^%%$'me=e-2,re=e-2	contains=@yaccInitCluster	nextgroup=yaccRules	skipwhite skipempty
+HiFold syn	region	yaccHeader2	matchgroup=yaccSep	start="^\s*\zs%{"	end="^\s*%}"		contains=@yaccCode	nextgroup=yaccInit	skipwhite skipempty contained
+HiFold syn	region	yaccHeader	matchgroup=yaccSep	start="^\s*\zs%{"	end="^\s*%}"		contains=@yaccCode	nextgroup=yaccInit	skipwhite skipempty
+HiFold syn	region	yaccRules	matchgroup=yaccSectionSep	start='^%%$'		end='^%%$'me=e-2,re=e-2	contains=@yaccRulesCluster	nextgroup=yaccEndCode	skipwhite skipempty contained
+HiFold syn	region	yaccEndCode	matchgroup=yaccSectionSep	start='^%%$'		end='\%$'		contains=@yaccCode	contained
+
+" ---------------------------------------------------------------------
+" Yacc Commands: {{{1
+syn	match	yaccDelim	"[:|]"	contained
+syn	match	yaccOper	"@\d\+"	contained
+
+syn	match	yaccKey	"^\s*%\(token\|type\|left\|right\|start\|ident\|nonassoc\)\>"	contained
+syn	match	yaccKey	"\s%\(prec\|expect\)\>"	contained
+syn	match	yaccKey	"\$\(<[a-zA-Z_][a-zA-Z_0-9]*>\)\=[\$0-9]\+"	contained
+syn	keyword	yaccKeyActn	yyerrok yyclearin	contained
+
+syn	match	yaccUnionStart	"^%union"	skipwhite skipnl nextgroup=yaccUnion	contained
+HiFold syn	region	yaccUnion	matchgroup=yaccCurly start="{" matchgroup=yaccCurly end="}" contains=@yaccCode	contained
+syn	match	yaccBrkt	"[<>]"	contained
+syn	match	yaccType	"<[a-zA-Z_][a-zA-Z0-9_]*>"	contains=yaccBrkt	contained
+
+HiFold syn	region	yaccNonterminal	start="^\s*\a\w*\ze\_s*\(/\*\_.\{-}\*/\)\=\_s*:"	matchgroup=yaccDelim end=";"	matchgroup=yaccSectionSep end='^%%$'me=e-2,re=e-2 contains=yaccAction,yaccDelim,yaccString,yaccComment	contained
+syn	region	yaccComment	start="/\*"	end="\*/"
+syn	match	yaccString	"'[^']*'"	contained
+
 
 " ---------------------------------------------------------------------
 " I'd really like to highlight just the outer {}.  Any suggestions??? {{{1
-syn match	yaccCurlyError	"[{}]"
-syn region	yaccAction	matchgroup=yaccCurly start="{" end="}" contains=ALLBUT,@yaccActionGroup
+syn	match	yaccCurlyError	"[{}]"
+HiFold syn	region	yaccAction	matchgroup=yaccCurly start="{" end="}" contains=@yaccCode	contained
 
 " ---------------------------------------------------------------------
 " Yacc synchronization: {{{1
-if exists("g:yacc_maxlines")
- exe "syn sync maxlines=".g:yacc_maxlines
-else
- syn sync maxlines=200
-endif
-if exists("g:yacc_minlines")
- exe "syn sync minlines=".g:yacc_minlines
-else
- syn sync minlines=50
-endif
+syn sync fromstart
 
 " ---------------------------------------------------------------------
 " Define the default highlighting. {{{1
-" For version 5.7 and earlier: only when not done already
-" For version 5.8 and later: only when an item doesn't have highlighting yet
-if version >= 508 || !exists("did_yacc_syn_inits")
-  if version < 508
-    let did_yacchdl_syn_inits = 1
-    command -nargs=+ HiLink hi link <args>
-  else
-    command -nargs=+ HiLink hi def link <args>
-  endif
+if !exists("did_yacc_syn_inits")
+  command -nargs=+ HiLink hi def link <args>
 
   " Internal yacc highlighting links {{{2
   HiLink yaccBrkt	yaccStmt
@@ -98,13 +88,15 @@
   HiLink yaccUnionStart	yaccKey
 
   " External yacc highlighting links {{{2
+  HiLink yaccComment	Comment
   HiLink yaccCurly	Delimiter
   HiLink yaccCurlyError	Error
-  HiLink yaccDefinition	Function
-  HiLink yaccDelim	Function
+  HiLink yaccNonterminal	Function
+  HiLink yaccDelim	Delimiter
   HiLink yaccKeyActn	Special
   HiLink yaccSectionSep	Todo
   HiLink yaccSep	Delimiter
+  HiLink yaccString	String
   HiLink yaccStmt	Statement
   HiLink yaccType	Type
 
@@ -113,6 +105,10 @@
 
   delcommand HiLink
 endif
+
+" ---------------------------------------------------------------------
+"  Cleanup: {{{1
+delcommand HiFold
 let b:current_syntax = "yacc"
 
 " ---------------------------------------------------------------------
diff -Nur runtime.patched/tutor/Makefile runtime/tutor/Makefile
--- runtime.patched/tutor/Makefile	2008-06-21 11:38:51.000000000 -0700
+++ runtime/tutor/Makefile	2009-10-28 13:59:08.000000000 -0700
@@ -9,6 +9,7 @@
 	tutor.ca.utf-8 \
 	tutor.de.utf-8 \
 	tutor.el tutor.el.cp737 \
+	tutor.eo \
 	tutor.es.utf-8 \
 	tutor.fr.utf-8 \
 	tutor.hr tutor.hr.cp1250 \
@@ -27,6 +28,9 @@
 tutor.ca.utf-8: tutor.ca
 	iconv -f ISO-8859-1 -t UTF-8 tutor.ca > tutor.ca.utf-8
 
+tutor.eo: tutor.eo.utf-8
+	iconv -f UTF-8 -t ISO-8859-3 tutor.eo.utf-8 > tutor.eo
+
 tutor.de.utf-8: tutor.de
 	iconv -f ISO-8859-1 -t UTF-8 tutor.de > tutor.de.utf-8
 
diff -Nur runtime.patched/tutor/tutor.eo runtime/tutor/tutor.eo
--- runtime.patched/tutor/tutor.eo	1969-12-31 16:00:00.000000000 -0800
+++ runtime/tutor/tutor.eo	2009-10-28 13:59:08.000000000 -0700
@@ -0,0 +1,989 @@
+==============================================================================
+=  B o n v e n o n  al  la  I n s t r u i l o  de  V I M  -  Versio 1.7.eo.2 =
+==============================================================================
+
+   Vim estas tre potenca redaktilo, kiu havas multajn komandojn, tro da ili
+   por �ion klarigi en instruilo kiel �i tiu. �i tiu instruilo estas
+   fasonita por priskribi sufi�ajn komandojn, por ke vi kapablu uzi Vim
+   kun sufi�a facileco.
+
+   La tempo bezonata por plenumi la kurson estas 25-30 minutoj, kaj dependas
+   de kiom da tempo estas uzata por eksperimenti.
+
+   ATENTU:
+   La komandoj en la lecionoj �an�os la tekston. Kopiu tiun �i dosieron
+   por ekzerci vin (se vi lan�is "vimtutor", tiam estas jam kopio).
+
+   Gravas memori, ke �i tiu instruilo estas organizata por instrui per
+   la uzo. Tio signifas, ke vi devas plenumi la komandojn por bone lerni
+   ilin. Se vi nur legas la tekston, vi forgesos la komandojn!
+
+   Nun, certigu, ke la majuskla baskulo NE estas en re�imo majuskla,
+   kaj premu la klavon  j  sufi�e da fojoj por movi la kursoron, kaj por
+   ke la leciono 1.1 plenigu la ekranon.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                         Leciono 1.1:  MOVI LA KURSORON
+
+
+  ** Por movi la kursoron, premu la h,j,k,l klavojn kiel montrite. **
+         ^
+         k        Konsilo: La klavo h estas la plej liva kaj movas liven.
+   < h       l >           La klavo l estas la plej dekstra kaj movas dekstren.
+         j                 La klavo j aspektas kiel malsuprena sago.
+         v
+  1. Movu la kursoron sur la ekrano �is kiam vi sentas vin komforta.
+
+  2. Premu la klavon (j) �is kiam �i ripetas.
+     Vi nun scias, kiel movi�i al la sekvanta leciono
+
+  3. Uzante la malsuprenan klavon, movi�u al la leciono 1.2.
+
+RIMARKO: Se vi dubas pri tio, kion vi premis, premu <ESK> por reiri al
+         la normala re�imo. Tiam repremu la deziratan komandon.
+
+RIMARKO: La klavoj de la kursoro devus anka� funkcii. Sed uzante hjkl,
+         vi kapablos movi�i pli rapide post kiam vi kutimi�os.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                           Leciono 1.2:  ELIRI EL VIM
+
+
+  !! RIMARKO: Anta� ol plenumi iujn subajn pa�ojn ajn, legu la tutan lecionon!!
+
+  1. Premu la klavon <ESK> (por certigi, ke vi estas en normala re�imo).
+
+  2. Tajpu:       :q! <Enenklavo>.
+     Tio eliras el la rekdaktilo, SEN konservi la �an�ojn, kiujn vi faris.
+
+  3. Kiam vi vidas la �elinviton, tajpu la komandon kiun vi uzis por eniri
+     en �i tiu instruilo. Tio estus:   vimtutor <Enenklavo>
+
+  4. Se vi memoris tiujn pa�ojn kaj sentas vin memfida, plenumu la pa�ojn
+     1 �is 3 por eliri kaj reeniri la redaktilon.
+
+RIMARKO: :q! <Enenklavo> eliras sen konservi la �an�ojn, kiujn vi faris.
+         Post kelkaj lecionoj, vi lernos kiel konservi la �an�ojn al dosiero.
+
+  5. Movu la kursoron suben �is la leciono 1.3.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                   Leciono 1.3:  REDAKTO DE TEKSTO - FORVI�O
+
+
+             ** Premu  x  por forvi�i la signon sub la kursoro. **
+
+  1. Movu la kursoron al la suba linio markita per --->.
+
+  2. Por korekti la erarojn, movu la kursoron �is kiam �i estas sur la
+     forvi�enda signo.
+
+  3. Premu la klavon  x  por forvi�i la nedeziratan signon.
+
+  4. Ripetu pa�ojn 2 �is 4 �is kiam la frazo estas �usta.
+
+
+---> La boovinno saaltiss ssur laa luuno.
+
+  5. Post kiam la linio estas �usta, iru al la leciono 1.4
+
+RIMARKO: Trairante la instruilon, ne provu memori, lernu per la uzo.
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                    Leciono 1.4:  REDAKTO DE TEKSTO - ENMETO
+
+
+                      ** Premu  i  por enmeti tekston. **
+
+  1. Movu la kursoron al la unua suba linio markita per --->.
+
+  2. Por igi la unuan linion sama kiel la dua, movu la kursoron sur la unuan
+     signon post kie la teksto estas enmetenda.
+
+  3. Premu  i  kaj tajpu la bezonatajn aldonojn.
+
+  4. Premu <ESK> kiam la eraroj estas korektitaj por reiri al la normala
+     re�imo. Ripetu la pa�ojn 2 �is 4 por korekti la frazon.
+
+---> Mank en �i linio.
+---> Mankas tekston en �i tiu linio.
+
+  5. Kiam vi sentas vin komforta pri enmeto de teksto, movi�u al la
+     leciono 1.5.
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                  Leciono 1.5:  REDAKTO DE TEKSTO - POSTALDONO
+
+
+                    ** Premu  A  por postaldoni tekston. **
+
+  1. Movu la kursoron al la unua suba linio markita per --->.
+     Ne gravas sur kiu signo estas la kursoro.
+
+  2. Premu majusklan  A  kaj tajpu la bezonatajn aldonojn.
+
+  3. Post kiam la teksto estas aldonita, premu <ESK> por reiri al la normala
+     re�imo.
+
+  4. Movu la kursoron al la dua linio markita per ---> kaj ripetu la
+     pa�ojn 2 kaj 3 por korekti la frazon.
+
+---> Mankas teksto el ti
+     Mankas teksto el tiu linio.
+---> Mankas anka� teks
+     Mankas anka� teksto �i tie.
+
+  5 Kiam vi sentas vin komforta pri postaldono de teksto, movi�u al la
+    leciono 1.6
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                         Leciono 1.6:  REDAKTI DOSIERON
+
+                ** Uzu  :wq  por konservi dosieron kaj eliri. **
+
+  !! RIMARKO: Anta� ol plenumi iun suban pa�on ajn, legu la tutan lecionon!!
+
+  1. Eliru el la instruilo kiel vi faris en la leciono 1.2:  :q!
+
+  2. �e la �elinvito, tajpu �i tiun komandon:  vim tutor <Enenklavo>
+     'vim' estas la komando por lan�i la redaktilon Vim, 'tutor' estas la
+     dosiernomo de la dosiero, kiun vi volas redakti.  Uzu dosieron, kiu
+     �an�eblas.
+
+  3. Enmetu kaj forvi�u tekston, kiel vi lernis en la anta�aj lecionoj.
+
+  4. Konservu la dosieron kun �an�oj kaj eliru el Vim per:  :wq  <Enenklavo>
+
+  5. Relan�u la instruilon vimtutor kaj movi�u suben al la sekvanta resumo.
+
+  6. Post kiam vi legis la suprajn pa�ojn, kaj komprenis ilin: faru ilin.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                                Leciono 1 RESUMO
+
+
+  1. La kursoro movi�as a� per la sagoklavoj, a� per la klavoj hjkl.
+        h (liven)     j (suben)      k (supren)     l (dekstren)
+
+  2. Por lan�i Vim el la �elinvito, tajpu:  vim DOSIERNOMO <Enenklavo>
+
+  3. Por eliri el Vim, tajpu:  <ESK>  :q! <Enenklavo>  por rezigni la �an�ojn
+
+  4. Por forvi�i la signojn �e la pozicio de la kursoro, tajpu:  x
+
+  5. Por enmeti a� postaldoni tekston, tajpu:
+          i  tajpu enmetendan tekston        <ESK>
+             enmetas tekston anta� la kursoro
+
+          A  tajpu la postaldonendan tekston <ESK>
+             postaldonas post la kursoro
+
+RIMARKO: Premo de <ESK> iras al la normala re�imo, a� rezignas la
+         nedeziratan a� parte plenumita komando.
+
+Nun da�rigu al la leciono 2.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                        Leciono 2.1: KOMANDOJ DE FORVI�O
+
+
+                      ** Tajpu  dw  por forvi�i vorton. **
+
+  1. Premu  <ESK>  por certigi, ke vi estas en normala re�imo.
+
+  2. Movu la kursoron al la linio markita per --->.
+
+  3. Movu la kursoron al la komenco de vorto, kiu forvi�endas.
+
+  4. Tajpu   dw   por forvi�i la vorton.
+
+  RIMARKO: La litero  d  aperos en la lasta linio sur la ekrano kiam vi
+           tajpas �in. Vim atendas �is kiam vi tajpas  w .  Se vi vidas
+           alian signon ol  d  vi tajpis ion mise; premu  <ESK>  kaj
+           rekomencu.
+
+---> Estas iuj vortoj kiuj Zamenhof ne devus esti akuzativo en �i tiu frazo.
+
+  5. Ripetu pa�ojn 3 kaj 4 �is kiam la frazo estas �usta kaj movi�u al la
+     leciono 2.2.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                     Leciono 2.2: PLIAJ KOMANDOJ DE FORVI�O
+
+
+               ** Tajpu  d$  por forvi�i la finon de la linio. **
+
+  1. Premu  <ESK>  por certigi, ke vi estas en normala re�imo.
+
+  2. Movu la kursoron sur la suban linion markita per --->.
+
+  3. Movu la kursoron �e la fino de la �usta linio (POST la unua . ).
+
+  4. Tajpu   d$   por foriv�i �is la fino de la linio.
+
+---> Iu tajpis la finon de �i tiu linio dufoje. fino de �i tiu linio dufoje.
+
+
+  5. Movi�u al la leciono 2.3 por kompreni kio okazas.
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                     Leciono 2.3: PRI OPERATOROJ KAJ MOVOJ
+
+
+  Multaj komandoj, kiuj �an�as la tekston, estas faritaj de operatoro kaj
+  movo. La formato de komando de forvi�o per la operatoro de forvi�o  d
+  estas kiel sekvas:
+
+       d   movo
+
+  Kie:
+    d      - estas la operatoro de movo
+    movo   - estas tio, pri kio la operatoro operacios (listigita sube)
+
+  Mallonga listo de movoj:
+    w - �is la komenco de la sekvanta vorto, krom �ia unua signo.
+    e - �is la fino de la nuna vorto, krom la lasta signo.
+    $ - �is la fino de la linio, krom la lasta signo.
+
+  Do tajpo de   'de'   forvi�os ekde la kursoro �is la fino de la vorto.
+
+RIMARKO: Premo de nur la movo en Normala re�imo sen operatoro movos
+         la kursoron kiel specifite.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                       Leciono 2.4: UZI NOMBRON POR MOVO
+
+             ** Tajpo de nombro anta� movo ripetas �in la�foje. **
+
+  1. Movu la kursoron �e la komenco de la suba linio markita per --->.
+
+  2. Tajpu  2w  por movi la kursoron je du vortoj anta�en.
+
+  3. Tajpu  3e  por movi la kursoron �e la fino de la tria vorto anta�en.
+
+  4. Tajpu  0  (nul) por movi�i �e la komenco de la linio.
+
+
+  5. Ripetu pa�ojn 2 �is 3 kun malsamaj nombroj.
+
+---> Tio estas nur linio kun vortoj, kie vi povas movi�i.
+
+  6. Movi�u al la leciono 2.5.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                    Leciono 2.5: UZI NOMBRON POR FORVI�I PLI
+
+
+            ** Tajpo de nombro kun operatoro ripetas �in la�foje. **
+
+  En la kombina�o de la operatoro de forvi�o, kaj movo kiel menciita
+  �i-supre, eblas aldoni nombron anta� la movo por pli forvi�i:
+        d  nombro   movo
+
+  1. Movu la kursoron �e la unua MAJUSKLA vorto en la linio markita per --->.
+
+  2. Tajpu  d2w  por forvi�i la du MAJUSKLAJN vortojn
+
+  3. Ripetu pa�ojn 1 �is 2 per malsama nombro por forvi�i la sinsekvajn
+     MAJUSKLAJN vortojn per unu komando
+
+---> Tiu AB CDE linio FGHI JK LMN OP de vortoj estas Q RS TUV purigita.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                    Leciono 2.6: OPERACII SUR LINIOJ
+
+
+                   ** Tajpu  dd  por forvi�i tutan linion. **
+
+  Pro la ofteco de forvi�o de tuta linio, la verkisto de Vi decidis, ke
+  estus pli facile simple tajpi du d-ojn  por forvi�i linion.
+
+  1. Movu la kursoron sur la duan linion en la suba frazo.
+  2. Tajpu  dd  por forvi�i la linion.
+  3. Nun movi�u al la kvara linio.
+  4. Tajpu   2dd   por forvi�i du liniojn.
+
+---> 1)  Rozoj estas ru�aj,
+---> 2)  �limo estas amuza,
+---> 3)  Violoj estas bluaj,
+---> 4)  Mi havas a�ton,
+---> 5)  Horlo�oj diras kioma horo estas,
+---> 6)  Sukero estas dol�a,
+---> 7)  Kaj tiel vi estas.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                       Leciono 2.7: LA KOMANDO DE MALFARO
+
+
+ ** Premu u por malfari la lastajn komandojn, U por ripari la tutan linion. **
+
+  1. Movu la kursoron �e la suba linio markita per ---> kaj metu �in sur
+     la unuan eraron.
+  2. Tajpu  x  por forvi�i la unuan nedeziratan signon.
+  3. Nun tajpu  u  por malfari la lastan plenumitan komandon.
+  4. �i-foje, riparu �iujn erarojn en la linio kaj �ia originala stato.
+  5. Nun tajpu majusklan  U  por igi la linion al �ia anta�a stato.
+  6. Nun tajpu  u  kelkfoje por malfari la  U  kaj anta�ajn komandojn.
+  7. Nun tajpu CTRL-R (premante la CTRL klavon dum vi premas R) kelkfoje
+     por refari la komandojn (malfari la malfarojn).
+
+---> Koorektii la erarojn sur tiuu �i liniio kaj remettu illlin per malfaro.
+
+  8. Tiuj estas tre utilaj komandoj.  Nun movi�u al la leciono 2 RESUMO.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                                Leciono 2 RESUMO
+
+
+  1. Por forvi�i ekde la kursoro �is la sekvanta vorto, tajpu:    dw
+  2. Por forvi�i ekde la kursoro �is la fino de la linio, tajpu:  d$
+  3. Por forvi�i tutan linion, tajpu:                             dd
+
+  4. Por ripeti movon, anta�metu nombron:                         2w
+  5. La formato de �an�a komando estas:
+           operatoro   [nombro]   movo
+
+     kie:
+       operatoro - estas tio, kio farendas, kiel  d  por forvi�i
+       [nombro]  - estas opcia nombro por ripeti la movon
+       movo      - movas sur la teksto por operacii, kiel ekzemple  w (vorto),
+                   $ (�is fino de linio), ktp.
+
+  6. Por movi�i al la komenco de la linio, uzu nul:  0
+
+  7. Por malfari anta�ajn agojn, tajpu:               u (minuskla u)
+     Por malfari �iujn �an�ojn sur la linio, tajpu:   U (majuskla U)
+     Por refari la malfarojn, tajpu:                  CTRL-R
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                         Leciono 3.1 LA KOMANDO DE METO
+
+
+    ** Tajpu  p  por meti tekston forvi�itan anta�e post la kursoro. **
+
+  1. Movu la kursoron �e la unua ---> suba linio.
+
+  2. Tajpu  dd  por forvi�i la linion kaj konservi �in ene de re�istro de Vim.
+
+  3. Movu la kursoron �e la linio c), SUPER kie la forvi�ita linio devus esti.
+
+  4. Tajpu  p  por meti la linion sub la kursoron.
+
+  5. Ripetu la pa�ojn 2 �is 4 por meti �iujn liniojn en la �usta ordo.
+
+---> d) �u anka� vi povas lerni?
+---> b) Violoj estas bluaj,
+---> c) Inteligenteco lerneblas,
+---> a) Rozoj estas ru�aj,
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                     Leciono 3.2 LA KOMANDO DE ANSTATA�IGO
+
+
+       ** Tajpu  rx  por anstata�igi la signon �e la kursoro per  x . **
+
+
+  1. Movu la kursoron �e la unua suba linio markita per --->.
+
+  2. Movu la kursoron �is la unua eraro.
+
+  3. Tajpu  r  kaj la signon, kiu devus esti tie.
+
+  4. Ripetu pa�ojn 2 kaj 3 �is kiam la unua linio egalas la duan.
+
+---> Kiem tiu lanio estis tajpita, iu pramis la na�uftajn klovojn!
+---> Kiam tiu linio estis tajpita, iu premis la ne�ustajn klavojn!
+
+  5. Nun movi�u al la leciono 3.3.
+
+Rimarko: Memoru, ke vi devus lerni per uzo, kaj ne per memorado.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                       Leciono 3.3 LA OPERATORO DE �AN�O
+
+
+              ** Por �an�i �is la fino de la vorto, tajpu  ce . **
+
+  1. Movu la kursoron �e la unua suba linio markita per --->.
+
+  2. Metu la kursoron sur la  d  en  lduzw
+
+  3. Tajpu  ce  kaj la �ustan vorton (en tiu �i kazo, tajpu inio ).
+
+  4. Premu <ESK> kaj movi�u al la sekvanta signo, kiu bezonas �an�on.
+
+  5. Ripetu la pa�ojn 3 kaj 4 �is kiam la unua frazo egalas la duan.
+
+---> Tiu lduzw havas kelkajn vortojn, kiii bezas �an�on per la �an�ooto.
+---> Tiu linio havas kelkajn vortojn, kiuj bezonas �an�on per la �an�operatoro.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                         Leciono 3.4 PLIAJ �AN�OJ PER c
+
+
+       ** La operatoro de �an�o uzeblas kun la sama movo kiel forvi�o. **
+
+  1. La operatoro de �an�o funkcias sammaniere kiel forvi�o. La formato estas:
+
+       c    [nombro]   movo
+
+  2. La movoj estas samaj, kiel ekzemple   w (vorto) kaj $ (fino de linio).
+
+  3. Movi�u �e la unua suba linio markita per --->.
+
+  4. Movu la kursoron al la unua eraro.
+
+  5. Tajpu  c$  kaj tajpu la reston de la linio kiel la dua kaj premu <ESK>.
+
+---> La fino de �i tiu linio bezonas helpon por igi �in same kiel la dua.
+---> La fino de �i tiu linio bezonas korektojn per uzo de la komando  c$
+
+RIMARKO:  Vi povas uzi la klavon Retropa�o por korekti erarojn dum vi tajpas.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                                Leciono 3 RESUMO
+
+
+  1. Por remeti tekston, kiun vi �us forvi�is, tajpu  p. Tio metas la
+     forvi�itan tekston POST la kursoro (se linio estis forvi�ita, �i
+     iros en la linion sub la kursoro).
+
+  2. Por anstata�igi la signon sub la kursoro, tajpu  r  kaj tiam la signon
+     kion vi deziras havi tie.
+
+  3. La operatoro de �an�o ebligas al vi �an�i ekde la kursoro, �is kie
+     la movo iras.  Ekz. tajpu  ce  por �an�i ekde la kursoro �is la fino
+     de la vorto,  c$  por �an�i �is la fino de la linio.
+
+  4. La formato de �an�o estas:
+
+         c    [nombro]   movo
+
+Nun da�rigu al la sekvanta leciono.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+              Leciono 4.1: POZICIO DE KURSORO KAJ STATO DE DOSIERO
+
+
+  ** Tajpu CTRL-G por montri vian pozicion en la dosiero kaj la dosierstaton.
+     Tajpu  G  por movi�i al linio en la dosiero. **
+
+  RIMARKO: Legu la tutan lecionon anta� ol plenumi iun pa�on ajn!!
+
+  1. Premu la klavon Ctrl kaj premu  g . Oni nomas tion CTRL-G.
+     Mesa�o aperos �e la suba parto de la pa�o kun la dosiernomo kaj la
+     pozicio en la dosiero. Memoru la numeron de la linio por pa�o 3.
+
+  RIMARKO: Vi eble vidas la pozicion de la kursoro �e la suba dekstra
+           angulo de la ekrano. Tio okazas kiam la agordo 'ruler' estas
+           �altita (vidu  :help 'ruler')
+
+  2. Premu  G  por movi�i �e la subo de la dosiero.
+     Tajpu gg  por movi�i �e la komenco de la dosiero.
+
+  3. Tajpu la numeron de la linio kie vi estis kaj poste G .  Tio removos
+     vin al la linio, kie vi estis kiam vi unue premis CTRL-G.
+
+  4. Se vi sentas vin komforta, plenumu pa�ojn 1 �is 3.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                        Leciono 4.2 LA KOMANDO DE SER�O
+
+
+             ** Tajpu  /  kaj poste frazon por ser�i la frazon. **
+
+  1. En normala re�imo, tajpu la  /  signon.  Rimarku, ke �i kaj la kursoro
+     aperas �e la suba parto de la ekrano kiel por la  :  komando.
+
+  2. Nun tajpu 'errarro' <Enenklavo>.
+     Tio estas la vorto, kion vi volas ser�i.
+
+  3. Por ser�i la saman frazon denove, simple tajpu  n .
+     Por ser�i la saman frazon denove en la retrodirekto, tajpu  N .
+
+  4. Por ser�i frazon en la retrodirekto, uzu  ?  anstata�  / .
+
+  5. Por reiri tien, el kie vi venis, premu  CTRL-O (Premu Ctrl kaj o
+     literon o).  Ripetu por pli retroiri.  CTRL-I iras anta�en.
+
+---> "errarro" ne estas maniero por literumi eraro; errarro estas eraro.
+
+RIMARKO: Kiam la ser�o atingas la finon de la dosiero, �i da�ras �e la
+         komenco, krom se la agordo 'wrapscan' estas mal�altita.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                     Leciono 4.3 SER�O DE KONGRUAJ KRAMPOJ
+
+
+                 ** Tajpu  %  por trovi kongruan ), ] a�  } **
+
+  1. Poziciu la kursoron sur iun (, [ a� { en la linio markita per --->.
+
+  2. Nun tajpu la  %  signon.
+
+  3. La kursoro movi�as al la kongrua krampo.
+
+  4. Tajpu  %  por movi la kursoron al la alia kongrua krampo.
+
+  5. Movu la kursoron al la alia (, ), [, ], {, } kaj observu tion,
+     kion  %  faras.
+
+---> �i tiu ( estas testa linio kun (-oj, [-oj, ]-oj kaj {-oj, }-oj en �i. ))
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                     Leciono 4.4 LA KOMANDO DE ANSTATA�IGO
+
+
+     ** Tajpu  :s/malnova/nova/g  por anstata�igi 'nova' per 'malnova'. **
+
+  1. Movu la kursoron al la suba linio markita per --->.
+
+  2. Tajpu  :s/laa/la <Enenklavo> .  Rimarku, ke la komando �an�as nur la
+     unuan okaza�on de "laa" en la linio.
+
+  3. Nun tajpu  :s/laa/la/g .  Aldono de  g  opcio signifas mallokan
+     anstata�igon en la linio. �i �an�as �iujn okaza�ojn de "laa" en la
+     linio.
+
+---> laa plej bona tempo por vidi florojn estas en laa printempo.
+
+  4. Por �an�i �iujn okaza�ojn de iu �ena signo inter du linioj,
+     tajpu    :#,#s/malnova/nova/g   kie #,# estas la numeroj de linioj de la
+                                     intervalo de la linioj kie la anstata�igo
+                                     okazos.
+     Tajpu    :%s/malnova/nova/g     por �an�i �iujn okaza�ojn en la tuta
+                                     dosiero.
+     Tajpu    :s/malnova/nova/gc     por trovi �iujn okaza�ojn en la tuta
+                                     dosiero, kun invitilo �u anstata�igi
+                                     a� ne.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                                Leciono 4 RESUMO
+
+  1. CTRL-G  vidigas vian pozicion en la dosiero kaj la staton de la dosiero.
+            G  movas la kursoron al la fino de la dosiero.
+     numero G  movas la kursoron al numero de tiu linio.
+           gg  movas la kursoron al la unua linio.
+
+  2. Tajpo de  /  kaj frazon ser�as la frazon anta�en.
+     Tajpo de  ?  kaj frazon ser�as la frazon malanta�en.
+     Post ser�o, tajpu n por trovi la sekvantan okaza�on en la sama direkto a�
+     N por ser�i en la mala direkto.
+     CTRL-O movas vin al la anta�aj pozicioj, CTRL-I al la novaj pozicioj.
+
+  3. Tajpo de  %  kiam la kursoro estas sur (,),[,],{ a� } movi�as al �ia
+     kongruo.
+
+  4. Por anstata�igi 'nova' en la unua 'malnova' en linio :s/malnova/nova
+     Por anstata�igi 'nova' en �iuj 'malnova'-oj en linio :s/malnova/nova/g
+     Por anstata�igi frazon inter du #-aj linioj          :#,#s/malnova/nova/g
+     Por anstata�igi �iujn okaza�ojn en la dosiero        :%s/malnova/nova/g
+     Por demandi konfirmon �iu-foje, aldonu 'c'           :%s/malnova/nova/gc
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                   Leciono 5.1 KIEL PLENUMI EKSTERAN KOMANDON
+
+
+     ** Tajpu  :!  sekvata de ekstera komando por plenumi la komandon. **
+
+  1. Tajpu la konatan komandon  :  por pozicii la kursoron �e la suba parto
+     de la ekrano. Tio ebligas tajpadon de komando en komanda linio.
+
+  2. Nun tajpu la  !  (krisigno) signon. Tio ebligas al vi plenumi iun
+     eksteran �elan komandon ajn.
+
+  3. Ekzemple, tajpu  ls  post ! kaj tajpu <Enenklavo>. Tio listigos la
+     enhavon de la dosierujo, same kiel se vi estis en �ela invito.
+     A� uzu  :!dir  se ls ne funkcias.
+
+RIMARKO: Eblas plenumi iun eksteran komandon ajn tiamaniere, anka� kun
+         argumentoj.
+
+RIMARKO: �iuj  :  komandoj devas fini�i per tajpo de <Enenklavo>
+         Ekde nun, ni ne plu mencios tion.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                    Leciono 5.2 PLI PRI KONSERVO DE DOSIERO
+
+
+   ** Por konservi la faritajn �an�ojn en la teksto, tajpu  :w DOSIERNOMO. **
+
+  1. Tajpu  !dir  a�  !ls  por akiri liston de via dosierujo.
+     Vi jam scias, ke vi devas tajpi <Enenklavo> post tio.
+
+  2. Elektu dosieron, kiu ne jam ekzistas, kiel ekzemple TESTO.
+
+  3. Nun tajpu:   :w TESTO   (kie TESTO estas la elektita dosiernomo)
+
+  4. Tio konservas la tutan dosieron (instruilon de Vim) kun la nomo TESTO.
+     Por kontroli tion, tajpu   :!dir   a�   !ls   denove por vidigi vian
+     dosierujon.
+
+RIMARKO: Se vi volus eliri el Vim kaj restartigi �in denove per  vim TESTO,
+         la dosiero estus precize same kiel kopio de la instruilo kiam vi
+         konservis �in.
+
+  5. Nun forvi�u la dosieron tajpante (MS-DOS):     :!del TESTO
+                                   a� (UNIKSO):     :!rm TESTO
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                    Leciono 5.3 APARTIGI KONSERVENDAN TESTON
+
+
+    ** Por konservi parton de la dosiero, tajpu   v  movo  :w DOSIERNOMO **
+
+  1. Movu la kursoron al tiu linio.
+
+  2. Premu  v  kaj movu la kursoron al la kvina suba ero.  Rimarku, ke la
+     teksto emfazi�as.
+
+  3. Premu la  :  signon.  �e la fino de la ekrano  :'<,'>  aperos.
+
+  4. Tajpu  w TESTO  , kie TESTO estas dosiernomo, kiu ne jam ekzistas.
+     Kontrolu, ke vi vidas  :'<,'>w TESTO  anta� premi <Enenklavo>.
+
+  5. Vim konservos la apartigitajn liniojn al la dosiero TESTO.  Uzu  :dir
+     a�  :!ls  por vidigi �in.  Ne forvi�u �in.  Ni uzos �in en la sekvanta
+     leciono.
+
+RIMARKO: Premo de  v  komencas Viduman apartigon.  Vi povas movi la kursoron
+         por pligrandigi a� malpligrandigi la apartigon. Tiam vi povas uzi
+         operatoron por plenumi ion kun la teksto.  Ekzemple,  d  forvi�as
+         la tekston.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                   Leciono 5.4 AKIRI KAJ KUNFANDI DOSIEROJN
+
+
+         ** Por enmeti la enhavon de dosiero, tajpu  :r DOSIERNOMON **
+
+  1. Movu la kursoron �us super �i tiu linio.
+
+RIMARKO: Post plenumo de pa�o 2, vi vidos tekston el la leciono 5.3.  Tiam
+         movi�u SUBEN por vidi tiun lecionon denove.
+
+  2. Nun akiru vian dosieron TESTO uzante la komandon   :r TESTO   kie TESTO
+     estas la nomo de la dosiero, kiun vi uzis.
+     La dosiero, kion vi akiras, estas metita sub la linio de la kursoro.
+
+  3. Por kontroli, �u la dosiero akiri�is, retromovu la kursoron kaj rimarku,
+     ke estas nun du kopioj de la leciono 5.3, la originala kaj la versio mem
+     de la dosiero.
+
+RIMARKO: Vi nun povas legi la eliron de ekstera komando. Ekzemple,
+        :r !ls  legas la eliron de la komando ls kaj metas �in sub la
+        kursoron.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                                Leciono 5 RESUMO
+
+
+  1.  :!komando  plenumas eksteran komandon.
+
+      Iuj utilaj ekzemploj estas:
+        (MS-DOS)           (UNIKSO)
+         :!dir              :!ls            - listigas dosierujon
+         :!del DOSIERNOMO   :!rm DOSIERNOMO - forvi�as la dosieron DOSIERNOMO
+
+  2.  :w DOSIERNOMO  konservas la nunan dosieron de Vim al disko kun la
+      nomo DOSIERNOMO.
+
+  3.  v  movo  :w DOSIERNOMO  konservas la Viduman apartigon de linioj en
+      dosiero DOSIERNOMO.
+
+  4. :r DOSIERNOMO  akiras la dosieron DOSIERNOMO el la disko kaj metas
+     �in sub la pozicion de la kursoro.
+
+  5. :r !dir  legas la eligon de la komando dir kaj metas �in sub la
+     pozicion de la kursoro.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                       Leciono 6.1 LA KOMANDO DE MALFERMO
+
+
+  ** Tajpu o por malfermi linion sub la kursoro kaj eniri Enmetan re�imon. **
+
+  1. Movu la kursoron al la suba linio markita per --->.
+
+  2. Tajpu la minusklan literon  o  por malfermi linion SUB la kursoro kaj
+     eniri la Enmetan re�imon.
+
+  3. Nun tajpu tekston kaj premu <ESK> por eliri la Enmetan re�imon.
+
+---> Post tajpo de  o  la kursoro movi�as al la malfermata linio en
+     Enmeta re�imo.
+
+  4. Por malfermi linion SUPER la kursoro, nur tajpu majusklan  O  ,
+     anstata� minusklan  o.  Provu tion per la suba linio.
+
+---> Malfermu linion SUPER tiu tajpante O dum la kursoro estas sur tiu linio.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                      Leciono 6.2 LA KOMANDO DE POSTALDONO
+
+
+                  ** Tajpu  a  por enmeti POST la kursoro. **
+
+  1. Movu la kursoron �e la komenco de la linio markita per --->.
+
+  2. Premu  e  �is kiam la kursoro estas �e la fino de  li.
+
+  3. Tajpu  a  (minuskle) por aldoni tekston POST la kursoro.
+
+  4. Kompletigu la vorton same kiel la linio sub �i.  Premu <ESK> por
+     eliri la Enmetan re�imon.
+
+  5. Uzu  e  por movi�i al la sekvanta nekompleta vorto kaj ripetu
+     pa�ojn 3 kaj 4.
+
+---> �i tiu lin ebligos vin ekz vin postal tekston al linio.
+---> �i tiu linio ebligos vin ekzerci vin postaldoni tekston al linio.
+
+RIMARKO: �iu  a, i kaj A  iras al la sama Enmeta re�imo, la nura malsamo
+         estas tie, kie la signoj estas enmetitaj.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                    Leciono 6.3 ALIA MANIERO POR ANSTATA�IGI
+
+
+          ** Tajpu majusklan  R  por anstata�igi pli ol unu signo. **
+
+  1. Movu la kursoron al la unua suba linio markita per --->.  Movu la
+     kursoron al la komenco de la unua  xxx .
+
+  2. Nun premu  R  kaj tajpu la nombron sub �i en la dua linio, por ke �i
+     anstata�igu la xxx .
+
+  3. Premu <ESK> por foriri la Anstata�igan re�imon. Rimarku, ke la cetera
+     parto de la linio restas ne�an�ata.
+
+  4. Ripetu la pa�ojn por anstata�igi la restantajn xxx.
+
+---> Aldono de 123 al xxx donas al vi xxx.
+---> Aldono de 123 al 456 donas al vi 579.
+
+RIMARKO: Anstata�iga re�imo estas same kiel Enmeta re�imo, sed �iu signo
+         tajpita forvi�as ekzistan signon.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                      Leciono 6.4 KOPII KAJ ALGLUI TEKSTON
+
+
+     ** Uzu la  y  operatoron por kopii tekston, kaj  p  por alglui �in **
+
+
+  1. Iru al la linio markita per ---> sube kaj poziciu la kursoron post "a)".
+
+  2. Komencu la Viduman re�imon per  v  kaj movu la kursoron �us anta� "unua".
+
+  3. Tajpu  y  por kopii la emfazitan tekston.
+
+  4. Movu la kursoron �e la fino de la linio:  j$
+
+  5. Tajpu  p  por alglui la tekston.  Tiam tajpu:  a dua <ESK> .
+
+  6. Uzu Viduman re�imon por apartigi " ero.", kopiu �in per  y , movi�u
+     �e la fino de la sekvanta linio per  j$  kaj algluu la tekston tie
+     per  p .
+
+---> a) tio estas la unua ero.
+     b)
+
+RIMARKO: vi povas anka� uzi  y  kiel operatoro;  yw  kopias unu vorton.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                           Leciono 6.5 AGORDI OPCION
+
+
+         ** Agordu opcion por ke ser�o a� anstata�igo ignoru usklecon **
+
+  1. Ser�u 'ignori' per tajpo de /ignori <Enenklavo>
+     Ripetu plurfoje premante  n .
+
+  2. �altu la opcion 'ic' (ignori usklecon) per:   :set ic
+
+  3. Nun ser�u 'ignori' denove premante  n
+     Rimarku, ke Ignori kaj IGNORI estas nun troveblas.
+
+  4. �altu la opciojn 'hlsearch' kaj 'incsearch':   :set hls is
+
+  5. Nun retajpu la ser�an komandon kaj vidu kio okazas:  /ignore <Enenklavo>
+
+  6. Por mal�alti ignoron de uskleco:  :set noic
+
+RIMARKO: Por forigi emfazon de kongruo, tajpu:   :nohlsearch
+RIMARKO: Se vi deziras ignori usklecon por nur unu ser�a komando, uzu  \c
+         en la frazo:  /ignore\c  <Enenklavo>
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                                Leciono 6 RESUMO
+
+  1. Tajpu  o  por malfermi linion SUB la kursoro kaj eki en Enmeta re�imo.
+  1. Tajpu  O  por malfermi linion SUPER la kursoro.
+
+  2. Tajpu  a  por enmeti tekston POST la kursoro.
+     Tajpu  A  por enmeti tekston post la fino de la linio.
+
+  3. La  e  komando movas la kursoron al la fino de vorto.
+
+  4. la  y  operatoro kopias tekston,  p  algluas �in.
+
+  5. Tajpo de majuskla  R  eniras la Anstata�igan re�imon �is kiam
+     <ESK> estas premita.
+
+  6. Tajpo de ":set xxx" �altas la opcion "xxx".  Iuj opcioj estas:
+        'ic' 'ignorecase'     ignori usklecon dum ser�o
+        'is' 'incsearch'      montru partan kongruon dum ser�o
+        'hls' 'hlsearch'      emfazas �iujn kongruajn frazojn
+     Vi povas uzi a� la longan, a� la mallongan nomon de opcio.
+
+  7. Anta�aldonu "no" por mal�alti la opcion:  :set noic
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                            Leciono 7.1 AKIRI HELPON
+
+
+                          ** Uzu la helpan sistemon **
+
+  Vim havas ampleksan helpan sistemon. Por komenci�i, provu unu el la tiuj
+  tri:
+        - premu la klavon <HELPO> (se vi havas �in)
+        - premu la klavon <F1> (se vi havas �in)
+        - tajpu   :help <Enenklavo>
+
+  Legu la tekston en la helpfenestro por trovi kiel helpo funkcias.
+  Tajpu  CTRL-W CTRL-W      por salti de unu fenestro al la alia.
+  Tajpu    :q <Enenklavo>   por fermi la helpan fenestron.
+
+  Vi povas trovi helpon pri io ajn aldonante argumenton al la komando
+  ":help".  Provu tiujn (ne forgesu premi <Enenklavo>):
+
+        :help w
+        :help c_CTRL-D
+        :help insert-index
+        :help user-manual
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                       Leciono 7.2 KREI STARTAN SKRIPTON
+
+
+                         ** Ebligu kapablojn de Vim **
+
+  Vim havas multe pli da kapabloj ol Vi, sed la plej multaj estas defa�lte
+  mal�altitaj.  Por ekuzi la kapablojn, vi devas krei dosieron "vimrc.
+
+  1. Ekredaktu la dosieron "vimrc".  Tio dependas de via sistemo:
+      :e ~/.vimrc          por Unikso
+      :e $VIM/_vimrc       por MS-Vindozo
+
+  2. Nun legu la enhavon de la ekzempla "vimrc"
+      :r $VIMRUNTIME/vimrc_example.vim
+
+  3. Konservu la dosieron per:
+      :w
+
+  La sekvantan fojon, kiam vi lan�as Vim, �i uzos sintaksan emfazon.
+  Vi povas aldoni �iujn viajn preferatajn agordojn al tiu dosiero "vimrc".
+  Por pli da informoj, tajpu  :help vimrc-intro
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                             Leciono 7.3 KOMPLETIGO
+
+
+             ** Kompletigo de komanda linio per CTRL-D kaj <TAB> **
+
+  1. Certigu ke Vim estas en kongrua re�imo:  :set nocp
+
+  2. Rigardu tiujn dosierojn, kiuj ekzistas en la dosierujo:  :!ls  a�  :!dir
+
+  3. Tajpu la komencon de komando:  :e
+
+  4. Premu  CTRL-D  kaj Vim montros liston de komandoj, kiuj komencas per "e".
+
+  5. Premu <TAB>  kaj Vim kompletigos la nomon de la komando al ":edit".
+
+  6. Nun aldonu spaceton kaj la komencon de ekzistanta nomo:  :edit DOSI
+
+  7. Premu <TAB>.  Vim kompletigos la nomon (se �i estas unika)
+
+RIMARKO: Kompletigo funkcias por multaj komandoj. Nur provu premi CTRL-D kaj
+         <TAB>.  Estas aparte utila por  :help .
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                                Leciono 7 RESUMO
+
+
+  1. Tajpu  :help  a� premu <F1> a� <Helpo>  por malfermi helpan fenestron.
+
+  2. Tajpu  :help kmd  por trovi helpon pri  kmd.
+
+  3. Tajpu  CTRL-W CTRL-W  por salti al alia fenestro.
+
+  4. Tajpu  :q  to fermi la helpan fenestron.
+
+  5. Kreu komencan skripton vimrc por konservi viajn agordojn.
+
+  6. Kiam vi tajpas  :  komandon, premu CTRL-D por vidi �iujn kompleteblojn.
+     Premu <TAB> por uzi unu kompletigon.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  Tio konkludas la instruilon de Vim.  �i celis doni mallongan superrigardon
+  de la redaktilo Vim, nur tio kio sufi�as por ebligi al vi facilan uzon de
+  la redaktilo. Estas nepre nekompleta, �ar Vim havas multajn multajn pliajn
+  komandojn. Legu la manlibron: ":help user-manual".
+
+  Tiu instruilo estis verkita de Michael C. Pierce kaj Robert K. Ware,
+  el la Koloradia Lernejo de Minejoj (Colorado School of Mines) uzante
+  ideojn provizitajn de Charles Smith el la Stata Universitato de Koloradio
+  (Colorado State University)
+
+  Retpo�to: [email protected].
+
+  Modifita por Vim de Bram Moolenaar.
+
+  Tradukita en Esperanto de Dominique Pell�, 2008-04-01
+  Retpo�to: [email protected]
+  Lasta �an�o: 2009-02-01
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
diff -Nur runtime.patched/tutor/tutor.eo.utf-8 runtime/tutor/tutor.eo.utf-8
--- runtime.patched/tutor/tutor.eo.utf-8	2008-04-05 12:35:18.000000000 -0700
+++ runtime/tutor/tutor.eo.utf-8	2009-02-12 14:23:27.000000000 -0800
@@ -1,5 +1,5 @@
 ==============================================================================
-=   B o n v e n o n  al  la  I n s t r u i l o  de  V I M  -  Versio 1.0.eo  =
+=  B o n v e n o n  al  la  I n s t r u i l o  de  V I M  -  Versio 1.7.eo.2 =
 ==============================================================================
 
    Vim estas tre potenca redaktilo, kiu havas multajn komandojn, tro da ili
@@ -54,15 +54,15 @@
   1. Premu la klavon <ESK> (por certigi, ke vi estas en normala reĝimo).
 
   2. Tajpu:       :q! <Enenklavo>.
-     Tio eliras el la rekdaktilo, SEN konservi la ŝanĝojn, kion vi faris.
+     Tio eliras el la rekdaktilo, SEN konservi la ŝanĝojn, kiujn vi faris.
 
-  3. Kiam vi vidas la ŝelinviton, tajpu la komandon kiun vi uzis por eniri 
+  3. Kiam vi vidas la ŝelinviton, tajpu la komandon kiun vi uzis por eniri
      en ĉi tiu instruilo. Tio estus:   vimtutor <Enenklavo>
 
   4. Se vi memoris tiujn paŝojn kaj sentas vin memfida, plenumu la paŝojn
      1 ĝis 3 por eliri kaj reeniri la redaktilon.
 
-RIMARKO: :q! <Enenklavo> eliras sen konservi la ŝanĝojn kion vi faris. 
+RIMARKO: :q! <Enenklavo> eliras sen konservi la ŝanĝojn, kiujn vi faris.
          Post kelkaj lecionoj, vi lernos kiel konservi la ŝanĝojn al dosiero.
 
   5. Movu la kursoron suben ĝis la leciono 1.3.
@@ -79,7 +79,7 @@
      forviŝenda signo.
 
   3. Premu la klavon  x  por forviŝi la nedeziratan signon.
- 
+
   4. Ripetu paŝojn 2 ĝis 4 ĝis kiam la frazo estas ĝusta.
 
 
@@ -99,7 +99,7 @@
 
   1. Movu la kursoron al la unua suba linio markita per --->.
 
-  2. Por igi la unuan linion sama ol la dua, movu la kursoron sur la unuan
+  2. Por igi la unuan linion sama kiel la dua, movu la kursoron sur la unuan
      signon post kie la teksto estas enmetenda.
 
   3. Premu  i  kaj tajpu la bezonatajn aldonojn.
@@ -124,12 +124,12 @@
   1. Movu la kursoron al la unua suba linio markita per --->.
      Ne gravas sur kiu signo estas la kursoro.
 
-  2. Premu  A  kaj tajpu la bezonatajn aldonojn.
+  2. Premu majusklan  A  kaj tajpu la bezonatajn aldonojn.
 
   3. Post kiam la teksto estas aldonita, premu <ESK> por reiri al la normala
      reĝimo.
 
-  4. Movu la kursoron al la dua linio markita per ---> kaj ripetu la 
+  4. Movu la kursoron al la dua linio markita per ---> kaj ripetu la
      paŝojn 2 kaj 3 por korekti la frazon.
 
 ---> Mankas teksto el ti
@@ -157,7 +157,7 @@
 
   3. Enmetu kaj forviŝu tekston, kiel vi lernis en la antaŭaj lecionoj.
 
-  4. Konservu la dosieron kun ŝanĝoj kaj eliru el Vim per:  :qw  <Enenklavo>
+  4. Konservu la dosieron kun ŝanĝoj kaj eliru el Vim per:  :wq  <Enenklavo>
 
   5. Relanĉu la instruilon vimtutor kaj moviĝu suben al la sekvanta resumo.
 
@@ -167,6 +167,7 @@
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                 Leciono 1 RESUMO
 
+
   1. La kursoro moviĝas aŭ per la sagoklavoj, aŭ per la klavoj hjkl.
         h (liven)     j (suben)      k (supren)     l (dekstren)
 
@@ -217,6 +218,7 @@
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                      Leciono 2.2: PLIAJ KOMANDOJ DE FORVIŜO
 
+
                ** Tajpu  d$  por forviŝi la finon de la linio. **
 
   1. Premu  <ESK>  por certigi, ke vi estas en normala reĝimo.
@@ -249,7 +251,7 @@
     movo   - estas tio, pri kio la operatoro operacios (listigita sube)
 
   Mallonga listo de movoj:
-    w - ĝis la komenco de la sekvanta vorto, krom ĝian unuan signon.
+    w - ĝis la komenco de la sekvanta vorto, krom ĝia unua signo.
     e - ĝis la fino de la nuna vorto, krom la lasta signo.
     $ - ĝis la fino de la linio, krom la lasta signo.
 
@@ -283,6 +285,7 @@
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                     Leciono 2.5: UZI NOMBRON POR FORVIŜI PLI
 
+
             ** Tajpo de nombro kun operatoro ripetas ĝin laŭfoje. **
 
   En la kombinaĵo de la operatoro de forviŝo, kaj movo kiel menciita
@@ -302,6 +305,7 @@
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                     Leciono 2.6: OPERACII SUR LINIOJ
 
+
                    ** Tajpu  dd  por forviŝi tutan linion. **
 
   Pro la ofteco de forviŝo de tuta linio, la verkisto de Vi decidis, ke
@@ -324,6 +328,7 @@
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                        Leciono 2.7: LA KOMANDO DE MALFARO
 
+
  ** Premu u por malfari la lastajn komandojn, U por ripari la tutan linion. **
 
   1. Movu la kursoron ĉe la suba linio markita per ---> kaj metu ĝin sur
@@ -344,6 +349,7 @@
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                 Leciono 2 RESUMO
 
+
   1. Por forviŝi ekde la kursoro ĝis la sekvanta vorto, tajpu:    dw
   2. Por forviŝi ekde la kursoro ĝis la fino de la linio, tajpu:  d$
   3. Por forviŝi tutan linion, tajpu:                             dd
@@ -368,6 +374,7 @@
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                          Leciono 3.1 LA KOMANDO DE METO
 
+
     ** Tajpu  p  por meti tekston forviŝitan antaŭe post la kursoro. **
 
   1. Movu la kursoron ĉe la unua ---> suba linio.
@@ -389,6 +396,7 @@
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                      Leciono 3.2 LA KOMANDO DE ANSTATAŬIGO
 
+
        ** Tajpu  rx  por anstataŭigi la signon ĉe la kursoro per  x . **
 
 
@@ -402,7 +410,7 @@
 
 ---> Kiem tiu lanio estis tajpita, iu pramis la naĝuftajn klovojn!
 ---> Kiam tiu linio estis tajpita, iu premis la neĝustajn klavojn!
-  
+
   5. Nun moviĝu al la leciono 3.3.
 
 Rimarko: Memoru, ke vi devus lerni per uzo, kaj ne per memorado.
@@ -411,6 +419,7 @@
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                        Leciono 3.3 LA OPERATORO DE ŜANĜO
 
+
               ** Por ŝanĝi ĝis la fino de la vorto, tajpu  ce . **
 
   1. Movu la kursoron ĉe la unua suba linio markita per --->.
@@ -430,7 +439,8 @@
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                          Leciono 3.4 PLIAJ ŜANĜOJ PER c
 
-        ** La operatoro de ŝanĝo uzeblas kun la sama movo ol forviŝo. **
+
+       ** La operatoro de ŝanĝo uzeblas kun la sama movo kiel forviŝo. **
 
   1. La operatoro de ŝanĝo funkcias sammaniere kiel forviŝo. La formato estas:
 
@@ -453,6 +463,7 @@
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                 Leciono 3 RESUMO
 
+
   1. Por remeti tekston, kiun vi ĵus forviŝis, tajpu  p. Tio metas la
      forviŝitan tekston POST la kursoro (se linio estis forviŝita, ĝi
      iros en la linion sub la kursoro).
@@ -474,6 +485,7 @@
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
               Leciono 4.1: POZICIO DE KURSORO KAJ STATO DE DOSIERO
 
+
   ** Tajpu CTRL-G por montri vian pozicion en la dosiero kaj la dosierstaton.
      Tajpu  G  por moviĝi al linio en la dosiero. **
 
@@ -483,7 +495,7 @@
      Mesaĝo aperos ĉe la suba parto de la paĝo kun la dosiernomo kaj la
      pozicio en la dosiero. Memoru la numeron de la linio por paŝo 3.
 
-  RIMARKO: Vi eble vidas la pozicion de la kursoro ĉe la suba dekstra 
+  RIMARKO: Vi eble vidas la pozicion de la kursoro ĉe la suba dekstra
            angulo de la ekrano. Tio okazas kiam la agordo 'ruler' estas
            ŝaltita (vidu  :help 'ruler')
 
@@ -499,6 +511,7 @@
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                         Leciono 4.2 LA KOMANDO DE SERĈO
 
+
              ** Tajpu  /  kaj poste frazon por serĉi la frazon. **
 
   1. En normala reĝimo, tajpu la  /  signon.  Rimarku, ke ĝi kaj la kursoro
@@ -524,7 +537,8 @@
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                      Leciono 4.3 SERĈO DE KONGRUAJ KRAMPOJ
 
-                 ** Tajpu  %  por trovi kongruan ), [ aŭ  } **
+
+                 ** Tajpu  %  por trovi kongruan ), ] aŭ  } **
 
   1. Poziciu la kursoron sur iun (, [ aŭ { en la linio markita per --->.
 
@@ -548,7 +562,7 @@
 
   1. Movu la kursoron al la suba linio markita per --->.
 
-  2. Tajpu  :s/laa/la <Enenklavo> .  Rimarku, ke la komando ŝanĝas nur la 
+  2. Tajpu  :s/laa/la <Enenklavo> .  Rimarku, ke la komando ŝanĝas nur la
      unuan okazaĵon de "laa" en la linio.
 
   3. Nun tajpu  :s/laa/la/g .  Aldono de  g  opcio signifas mallokan
@@ -573,7 +587,7 @@
 
   1. CTRL-G  vidigas vian pozicion en la dosiero kaj la staton de la dosiero.
             G  movas la kursoron al la fino de la dosiero.
-     numero G  movas la kursoron al tiu numero de linio.
+     numero G  movas la kursoron al numero de tiu linio.
            gg  movas la kursoron al la unua linio.
 
   2. Tajpo de  /  kaj frazon serĉas la frazon antaŭen.
@@ -595,6 +609,7 @@
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    Leciono 5.1 KIEL PLENUMI EKSTERAN KOMANDON
 
+
      ** Tajpu  :!  sekvata de ekstera komando por plenumi la komandon. **
 
   1. Tajpu la konatan komandon  :  por pozicii la kursoron ĉe la suba parto
@@ -603,7 +618,7 @@
   2. Nun tajpu la  !  (krisigno) signon. Tio ebligas al vi plenumi iun
      eksteran ŝelan komandon ajn.
 
-  3. Ekzemple, tajpu  ls  post ! kaj tajpu <Enenklavo>. Tio listigos la 
+  3. Ekzemple, tajpu  ls  post ! kaj tajpu <Enenklavo>. Tio listigos la
      enhavon de la dosierujo, same kiel se vi estis en ŝela invito.
      Aŭ uzu  :!dir  se ls ne funkcias.
 
@@ -617,6 +632,7 @@
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                     Leciono 5.2 PLI PRI KONSERVO DE DOSIERO
 
+
    ** Por konservi la faritajn ŝanĝojn en la teksto, tajpu  :w DOSIERNOMO. **
 
   1. Tajpu  !dir  aŭ  !ls  por akiri liston de via dosierujo.
@@ -626,7 +642,7 @@
 
   3. Nun tajpu:   :w TESTO   (kie TESTO estas la elektita dosiernomo)
 
-  4. Tio konservas la tutan dosieron (instruilo de Vim) per la nomo TESTO.
+  4. Tio konservas la tutan dosieron (instruilon de Vim) kun la nomo TESTO.
      Por kontroli tion, tajpu   :!dir   aŭ   !ls   denove por vidigi vian
      dosierujon.
 
@@ -641,11 +657,12 @@
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                     Leciono 5.3 APARTIGI KONSERVENDAN TESTON
 
+
     ** Por konservi parton de la dosiero, tajpu   v  movo  :w DOSIERNOMO **
 
   1. Movu la kursoron al tiu linio.
-  
-  2. Premu  v  kaj movu la kursoron al la kvina suba ero.  Rimarku, ke la 
+
+  2. Premu  v  kaj movu la kursoron al la kvina suba ero.  Rimarku, ke la
      teksto emfaziĝas.
 
   3. Premu la  :  signon.  Ĉe la fino de la ekrano  :'<,'>  aperos.
@@ -654,10 +671,10 @@
      Kontrolu, ke vi vidas  :'<,'>w TESTO  antaŭ premi <Enenklavo>.
 
   5. Vim konservos la apartigitajn liniojn al la dosiero TESTO.  Uzu  :dir
-     aŭ  :!ls  por vidigi ĝin.  Ne jam forviŝu ĝin.  Ni uzos ĝin en la
-     sekvanta leciono.
+     aŭ  :!ls  por vidigi ĝin.  Ne forviŝu ĝin.  Ni uzos ĝin en la sekvanta
+     leciono.
 
-RIMARKO: PREMO DE  v  komencas Viduman apartigon.  Vi povas movi la kursoron
+RIMARKO: Premo de  v  komencas Viduman apartigon.  Vi povas movi la kursoron
          por pligrandigi aŭ malpligrandigi la apartigon. Tiam vi povas uzi
          operatoron por plenumi ion kun la teksto.  Ekzemple,  d  forviŝas
          la tekston.
@@ -682,7 +699,7 @@
      ke estas nun du kopioj de la leciono 5.3, la originala kaj la versio mem
      de la dosiero.
 
-RIMARKO: Vi nun povas legi la eliron de ekstera komando. Ekzemple, 
+RIMARKO: Vi nun povas legi la eliron de ekstera komando. Ekzemple,
         :r !ls  legas la eliron de la komando ls kaj metas ĝin sub la
         kursoron.
 
@@ -701,7 +718,7 @@
   2.  :w DOSIERNOMO  konservas la nunan dosieron de Vim al disko kun la
       nomo DOSIERNOMO.
 
-  3.  v  movo  :w DOSIERNOMO  konservas la Viduman apartigo de linioj en
+  3.  v  movo  :w DOSIERNOMO  konservas la Viduman apartigon de linioj en
       dosiero DOSIERNOMO.
 
   4. :r DOSIERNOMO  akiras la dosieron DOSIERNOMO el la disko kaj metas
@@ -748,7 +765,7 @@
   4. Kompletigu la vorton same kiel la linio sub ĝi.  Premu <ESK> por
      eliri la Enmetan reĝimon.
 
-  5. Uzu  e  por moviĝi al la sekvanta nekompleta vorto kaj ripetu   
+  5. Uzu  e  por moviĝi al la sekvanta nekompleta vorto kaj ripetu
      paŝojn 3 kaj 4.
 
 ---> Ĉi tiu lin ebligos vin ekz vin postal tekston al linio.
@@ -804,7 +821,7 @@
      per  p .
 
 ---> a) tio estas la unua ero.
-     b) 
+     b)
 
 RIMARKO: vi povas ankaŭ uzi  y  kiel operatoro;  yw  kopias unu vorton.
 
@@ -812,7 +829,8 @@
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                            Leciono 6.5 AGORDI OPCION
 
-         ** Agordu opcion por ke serĉo aŭ anstataŭgo ignoru usklecon **
+
+         ** Agordu opcion por ke serĉo aŭ anstataŭigo ignoru usklecon **
 
   1. Serĉu 'ignori' per tajpo de /ignori <Enenklavo>
      Ripetu plurfoje premante  n .
@@ -857,9 +875,11 @@
 
   7. Antaŭaldonu "no" por malŝalti la opcion:  :set noic
 
+
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                             Leciono 7.1 AKIRI HELPON
 
+
                           ** Uzu la helpan sistemon **
 
   Vim havas ampleksan helpan sistemon. Por komenciĝi, provu unu el la tiuj
@@ -884,22 +904,23 @@
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                        Leciono 7.2 KREI STARTAN SKRIPTON
 
-                          ** Ebligu eblecojn de Vim **
 
-  Vim havas multe pli da eblecoj ol Vi, sed la plej multaj estas defaŭlte
-  malŝaltitaj.  Por ekuzi la eblecojn, vi devas krei dosieron "vimrc.
+                         ** Ebligu kapablojn de Vim **
+
+  Vim havas multe pli da kapabloj ol Vi, sed la plej multaj estas defaŭlte
+  malŝaltitaj.  Por ekuzi la kapablojn, vi devas krei dosieron "vimrc.
 
   1. Ekredaktu la dosieron "vimrc".  Tio dependas de via sistemo:
       :e ~/.vimrc          por Unikso
       :e $VIM/_vimrc       por MS-Vindozo
 
-  2. Nun legu la enhavon de la ekzempla "vimrc" 
+  2. Nun legu la enhavon de la ekzempla "vimrc"
       :r $VIMRUNTIME/vimrc_example.vim
 
   3. Konservu la dosieron per:
       :w
 
-  La sekvanta fojo, kiam vi lanĉas Vim, ĝi uzos sintaksan emfazon.
+  La sekvantan fojon, kiam vi lanĉas Vim, ĝi uzos sintaksan emfazon.
   Vi povas aldoni ĉiujn viajn preferatajn agordojn al tiu dosiero "vimrc".
   Por pli da informoj, tajpu  :help vimrc-intro
 
@@ -907,6 +928,7 @@
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                              Leciono 7.3 KOMPLETIGO
 
+
              ** Kompletigo de komanda linio per CTRL-D kaj <TAB> **
 
   1. Certigu ke Vim estas en kongrua reĝimo:  :set nocp
@@ -962,6 +984,6 @@
 
   Tradukita en Esperanto de Dominique Pellé, 2008-04-01
   Retpoŝto: [email protected]
-  Lasta ŝanĝo: 2008-04-02
+  Lasta ŝanĝo: 2009-02-01
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
diff -Nur runtime.patched/tutor/tutor.es runtime/tutor/tutor.es
--- runtime.patched/tutor/tutor.es	2004-06-07 07:32:39.000000000 -0700
+++ runtime/tutor/tutor.es	2009-01-14 12:15:24.000000000 -0800
@@ -117,7 +117,7 @@
 			    RESUMEN DE LA LECCI�N 1
 
 
-  1. El cursor se mueve utilizamdo las teclas de las flechas o las teclas hjkl.
+  1. El cursor se mueve utilizando las teclas de las flechas o las teclas hjkl.
 	 h (izquierda)	   j (abajo)	  k (arriba)	  l (derecha)
 
   2. Para acceder a Vim (desde el s�mbolo del sistema %) escriba:
diff -Nur runtime.patched/tutor/tutor.es.utf-8 runtime/tutor/tutor.es.utf-8
--- runtime.patched/tutor/tutor.es.utf-8	2008-06-21 11:19:12.000000000 -0700
+++ runtime/tutor/tutor.es.utf-8	2009-01-14 12:14:56.000000000 -0800
@@ -117,7 +117,7 @@
 			    RESUMEN DE LA LECCIÓN 1
 
 
-  1. El cursor se mueve utilizamdo las teclas de las flechas o las teclas hjkl.
+  1. El cursor se mueve utilizando las teclas de las flechas o las teclas hjkl.
 	 h (izquierda)	   j (abajo)	  k (arriba)	  l (derecha)
 
   2. Para acceder a Vim (desde el símbolo del sistema %) escriba:
diff -Nur runtime.patched/tutor/tutor.fr runtime/tutor/tutor.fr
--- runtime.patched/tutor/tutor.fr	2004-06-07 07:32:39.000000000 -0700
+++ runtime/tutor/tutor.fr	2008-12-08 13:08:55.000000000 -0800
@@ -1,5 +1,5 @@
 ===============================================================================
-= B i e n v e n u e  dans le  T u t o r i e l  de  V I M  -  Version 1.5.fr.2 =
+= B i e n v e n u e  dans le  T u t o r i e l  de  V I M  -  Version 1.7.fr.1 =
 ===============================================================================
 
      Vim est un �diteur tr�s puissant qui a trop de commandes pour pouvoir
@@ -7,93 +7,100 @@
      d�crire suffisamment afin de vous permettre d'utiliser simplement Vim.
 
      Le temps requis pour suivre ce cours est d'environ 25 � 30 minutes, selon
-     le temps que vous passerez � exp�rimenter.  Les commandes utilis�es dans
-     les le�ons modifieront le texte. Faites une copie de ce fichier afin de
-     vous entra�ner dessus (si vous avez lanc� "vimtutor" ceci est d�j� une
-     copie).
+     le temps que vous passerez � exp�rimenter.
+
+     ATTENTION :
+     Les commandes utilis�es dans les le�ons modifieront le texte. Faites une
+     copie de ce fichier afin de vous entra�ner dessus (si vous avez lanc�
+     "vimtutor" ceci est d�j� une copie).
 
      Il est important de garder en t�te que ce cours est con�u pour apprendre
-     par la pratique.  Cela signifie que vous devez ex�cuter les commandes
-     pour les apprendre correctement.  Si vous vous contentez de lire le
-     texte, vous oublierez les commandes !
-
-     Maintenant, v�rifiez que votre clavier n'est PAS verouill� en majuscules,
-     et appuyez la touche  j  le nombre de fois suffisant pour que la le�on
-     1.1 remplisse compl�tement l'�cran.
+     par la pratique. Cela signifie que vous devez ex�cuter les commandes
+     pour les apprendre correctement. Si vous vous contentez de lire le texte,
+     vous oublierez les commandes !
+
+     Maintenant, v�rifiez que votre clavier n'est PAS verrouill� en
+     majuscules, et appuyez la touche  j  le nombre de fois suffisant pour
+     que la Le�on 1.1 remplisse compl�tement l'�cran.
+
+
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-		      Le�on 1.1 : D�PLACEMENT DU CURSEUR
+                      Le�on 1.1 : D�PLACEMENT DU CURSEUR
 
 
   ** Pour d�placer le curseur, appuyez les touches h,j,k,l comme indiqu�. **
-	    ^
-	    k	     Astuce:  La touche h est � gauche et d�place � gauche.
-      < h      l >	      La touche l est � droite et d�place � droite.
-	   j		      La touche j ressemble � une fl�che vers le bas.
-	   v
+          ^
+          k        Astuce :  La touche h est � gauche et d�place � gauche.
+    < h       l >            La touche l est � droite et d�place � droite.
+          j                  La touche j ressemble � une fl�che vers le bas.
+          v
   1. D�placez le curseur sur l'�cran jusqu'� vous sentir � l'aise.
 
   2. Maintenez la touche Bas (j) enfonc�e jusqu'� ce qu'elle se r�p�te.
----> Maintenant vous �tes capable de vous d�placer jusqu'� la le�on suivante.
+     Maintenant vous �tes capable de vous d�placer jusqu'� la le�on suivante.
 
   3. En utilisant la touche Bas, allez � la Le�on 1.2.
 
-Note: Si jamais vous doutez de ce que vous venez de taper, appuyez <�chap>
-      pour revenir en mode Normal. Puis retapez la commande que vous vouliez.
+NOTE : Si jamais vous doutez de ce que vous venez de taper, appuyez <�chap>
+       pour revenir en mode Normal. Puis retapez la commande que vous vouliez.
 
-Note: Les touches fl�ch�es devraient �galement fonctionner. Mais en utilisant
-      hjkl vous pourrez vous d�placer beaucoup plus rapidement, une fois que
-      vous aurez pris l'habitude.
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-		     Le�on 1.2 : ENTR�E ET SORTIE DE VIM
+NOTE : Les touches fl�ch�es devraient �galement fonctionner. Mais en utilisant
+       hjkl vous pourrez vous d�placer beaucoup plus rapidement, une fois que
+       vous aurez pris l'habitude.
 
 
- !! NOTE: Avant d'effectuer les �tapes ci-dessous, lisez toute cette le�on !!
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                     Le�on 1.2 : SORTIR DE VIM
 
-  1. Appuyez la touche	<�chap>  (pour �tre s�r d'�tre en mode Normal).
 
-  2. Tapez:			:q! <Entr�e>
+ !! NOTE : Avant d'effectuer les �tapes ci-dessous, lisez toute cette le�on !!
 
----> Ceci quitte l'�diteur SANS sauver les changements que vous avez faits.
-     Si vous voulez enregistrer les changements et sortir, tapez:
-				:wq <Entr�e>
+  1. Appuyez la touche  <�chap>  (pour �tre s�r d'�tre en mode Normal).
 
-  3. Lorsque l'invite du 'shell' vous sera pr�sent�e, tapez la commande qui
-     vous a amen� dans ce tutoriel.  Cela pourrait �tre:    vimtutor <Entr�e>
-     Normalement, vous utiliseriez:			    vim tutor <Entr�e>
+  2. Tapez :  :q! <Entr�e>
+     Ceci quitte l'�diteur SANS enregistrer les changements que vous avez
+     faits.
 
----> 'vim' lance l'�diteur, 'tutor' est le fichier que vous souhaitez �diter.
+  3. Lorsque l'invite du shell vous sera pr�sent�e, tapez la commande qui
+     vous a men� dans ce tutoriel. Cela pourrait �tre :    vimtutor <Entr�e>
 
   4. Si vous avez m�moris� ces �tapes et �tes confiant, effectuez les �tapes
-     1 � 3 pour sortir puis rentrer dans l'�diteur.  D�placez ensuite le
-      curseur jusqu'� la Le�on 1.3.
+     1 � 3 pour sortir puis rentrer dans l'�diteur.
+
+NOTE :  :q! <Entr�e> annule tous le changements que vous avez fait. Dans
+         quelques le�ons, vous apprendrez � enregistrer les changements.
+
+  5. D�placez le curseur � la Le�on 1.3.
+
+
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-		  Le�on 1.3 : �DITION DE TEXTE - EFFACEMENT
+                  Le�on 1.3 : �DITION DE TEXTE - EFFACEMENT
 
 
- ** En mode Normal, appuyez  x	pour effacer le caract�re sous le curseur. **
+         ** Appuyez   x   pour effacer le caract�re sous le curseur. **
 
   1. D�placez le curseur sur la ligne marqu�e ---> ci-dessous.
 
   2. Pour corriger les erreurs, d�placez le curseur jusqu'� ce qu'il soit
      sur un caract�re � effacer.
 
-  3. Appuyez la touche	x  pour effacer le caract�re redondant.
+  3. Appuyez la touche  x  pour effacer le caract�re redondant.
 
   4. R�p�tez les �tapes 2 � 4 jusqu'� ce que la phrase soit correcte.
 
 ---> La vvache � saut�� au-ddessus dde la luune.
 
-  5. Maintenant que la ligne est correcte, passez � la le�on 1.4.
+  5. Maintenant que la ligne est correcte, passez � la Le�on 1.4.
 
-NOTE: En avan�ant dans ce cours, n'essayez pas de m�moriser, apprenez par
-      la pratique.
+NOTE : En avan�ant dans ce cours, n'essayez pas de m�moriser, apprenez par
+       la pratique.
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-		   Le�on 1.4 : �DITION DE TEXTE - INSERTION
+                    Le�on 1.4 : �DITION DE TEXTE - INSERTION
 
 
-	   ** En mode Normal, appuyez  i  pour ins�rer du texte. **
+                    ** Appuyez  i  pour ins�rer du texte. **
 
   1. D�placez le curseur sur la premi�re ligne marqu�e ---> ci-dessous.
 
@@ -108,38 +115,94 @@
 ---> Il mnqe caract�res cette .
 ---> Il manque des caract�res dans cette ligne.
 
-  5. Une fois que vous �tes � l'aise avec l'insertion de texte, allez au
-     r�sum� ci-dessous.
+  5. Une fois que vous �tes � l'aise avec l'insertion de texte, allez � la
+     Le�on 1.5.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                     Le�on 1.5 : �DITION DE TEXTE - AJOUTER
+
+
+                    ** Appuyez  A  pour ajouter du text. **
+
+  1. D�placez le curseur sur la premi�re ligne ci-dessous marqu�e --->.
+     Peu importe sur quel caract�re se trouve le curseur sur cette ligne.
+
+  2. Appuyez  A  et tapez les ajouts n�cessaires.
+
+  3. Quand le texte a �t� ajout�, appuyez <�chap> pour revenir en mode
+     Normal.
+
+  4. D�placez le curseur sur la seconde ligne marqu�e ---> et r�p�tez les
+     �tapes 2 et 3 pour corriger la phrase.
+
+---> Il manque du texte � partir de cet
+     Il manque du texte � partir de cette ligne.
+---> Il manque aussi du te
+     Il manque aussi du texte ici.
+
+  5. Quand vous vous sentez suffisamment � l'aise pour ajouter du texte,
+     allez � la Le�on 1.6.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                         Le�on 1.6 : �DITER UN FICHIER
+
+
+          ** Utilisez  :wq  pour enregistrer un fichier et sortir. **
+
+!! NOTE : Lisez toute la le�on avant d'ex�cuter les instructions ci-dessous !!
+
+  1. Sortez de ce tutoriel comme vous l'avez fait dans la Le�on 1.2 :  :q!
+     Ou, si vous avez acc�s � un autre terminal, ex�cutez y les actions
+     qui suivent.
+
+  2. � l'invite du shell, tapez cette commande :  vim tutor <Entr�e>
+     'vim' est la commande pour d�marrer l'�diteur Vim, 'tutor' est le
+     nom du fichier que vous souhaitez �diter. Utilisez un fichier qui peut
+     �tre modifi�.
+
+  3. Ins�rez et effacez du texte comme vous l'avez appris dans les le�ons
+     pr�c�dentes.
+
+  4. Enregistrez le fichier avec les changements et sortez de Vim avec :
+       :wq <Entr�e>
+
+  5. Si vous avez quitt� vimtutor � l'�tape 1, recommencez vimtutor et
+     d�placez-vous en bas vers le r�sum� suivant.
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-			     R�SUM� DE LA LE�ON 1
+                             R�SUM� DE LA LE�ON 1
+
 
   1. Le curseur se d�place avec les touches fl�ch�es ou les touches hjkl.
-	 h (gauche)	j (bas)        k (haut)       l (droite)
+           h (gauche)      j (bas)      k (haut)      l (droite)
+
+  2. Pour d�marrer Vim � l'invite du shell tapez :  vim FICHIER <Entr�e>
 
-  2. Pour entrer dans Vim (� l'invite %) tapez:  vim FICHIER <Entr�e>
+  3. Pour quitter Vim tapez :  <�chap> :q! <Entr�e>  pour perdre tous les
+                                                     changements.
+                   OU tapez :  <�chap> :wq <Entr�e>  pour enregistrer les
+                                                     changements.
 
-  3. Pour quitter Vim tapez:  <�chap> :q! <Entr�e>  pour perdre tous les
-						    changements.
-		   OU tapez:  <�chap> :wq <Entr�e>  pour enregistrer les
-						    changements.
+  4. Pour effacer un caract�re sous le curseur tapez :  x
 
-  4. Pour effacer un caract�re sous le curseur en mode Normal tapez:  x
+  5. Pour ins�rer ou ajouter du texte tapez :
+         i   tapez le texte � ins�rer avant le curseur   <�chap>
+         A   tapez le texte � ajouter apr�s le curseur   <�chap>
 
-  5. Pour ins�rer du texte au niveau du curseur en mode Normal tapez:
-	 i   tapez le texte   <�chap>
+NOTE : Appuyer  <�chap>  vous place en mode Normal ou annule une commande
+       partiellement tap�e dont vous ne voulez plus.
 
-NOTE: Appuyer  <�chap>	vous place en mode Normal ou annule une commande
-      partiellement tap�e dont vous ne voudriez plus.
+Passez maintenant � la le�on 2.
 
-Passez maintenant � la Le�on 2.
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-			   Le�on 2.1 : EFFACEMENTS
+                       Le�on 2.1 : COMMANDES D'EFFACEMENT
 
 
-	    ** Tapez  dw  pour effacer jusqu'� la fin d'un mot. **
+                     ** Tapez  dw  pour effacer un mot. **
 
   1. Appuyez  <�chap>  pour �tre s�r d'�tre en mode Normal.
 
@@ -147,91 +210,139 @@
 
   3. Placez le curseur sur le d�but d'un mot qui a besoin d'�tre effac�.
 
-  4. Tapez  dw	pour faire dispara�tre ce mot.
+  4. Tapez  dw  pour faire dispara�tre ce mot.
 
-NOTE: Les lettres  dw  appara�tront sur la derni�re ligne de l'�cran lors de
-      votre frappe. Si vous avez mal tap� quelque chose, appuyez <�chap> et
-      recommencez.
+NOTE : La lettre  d  appara�tra sur la derni�re ligne de l'�cran lors de
+       votre frappe. Vim attend que vous tapiez  w . Si vous voyez un autre
+       caract�re que  d  vous avez tap� autre chose ; appuyez <�chap> et
+       recommencez.
 
 ---> Il y a quelques dr�le mots qui n'ont rien � faire papier sur cette ligne.
 
   5. R�p�tez les �tapes 3 et 4 jusqu'� ce que la phrase soit correcte et allez
      � la Le�on 2.2.
 
+
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-			Le�on 2.2 : PLUS D'EFFACEMENTS
+                  Le�on 2.2 : PLUS DE COMMANDES D'EFFACEMENTS
 
 
-	  ** Tapez  d$	pour effacer jusqu'� la fin de la ligne. **
+          ** Tapez  d$  pour effacer jusqu'� la fin de la ligne. **
 
   1. Appuyez  <�chap>  pour �tre s�r d'�tre en mode Normal.
 
   2. D�placez le curseur sur la ligne marqu�e ---> ci-dessous.
 
-  3. D�placez le curseur jusqu'� la fin correcte de la ligne
-     (APR�S le premier . ).
+  3. D�placez le curseur jusqu'� la fin de la ligne correcte (APR�S le
+     premier . ).
 
-  4. Tapez  d$	pour effacer jusqu'� la fin de la ligne.
+  4. Tapez  d$  pour effacer jusqu'� la fin de la ligne.
 
 ---> Quelqu'un a tap� la fin de cette ligne deux fois. cette ligne deux fois.
 
   5. Allez � la Le�on 2.3 pour comprendre ce qui se passe.
 
 
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+             Le�on 2.3 : � PROPOS DES OP�RATEURS ET DES MOUVEMENTS
+
+
+  Plusieurs commandes qui changent le texte sont constitu�es d'un op�rateur
+  et d'un mouvement. Le format pour une commande d'effacement avec l'op�rateur
+  d  d'effacement est le suivant :
 
+        d   mouvement
+
+  O� :
+    d         - est l'op�rateur d'effacement
+    mouvement - est le mouvement sur lequel agit l'op�rateur (list�s
+                ci-dessous)
+
+  Une courte liste de mouvements :
+    w - jusqu'au d�but du prochain mot, en EXCLUANT son premier caract�re.
+    e - jusqu'� la fin du mot courant, en EXCLUANT son denier caract�re.
+    $ - jusqu'� la fin de la ligne, en INCLUANT son dernier caract�re.
+
+  Ainsi, taper  de  va effacer depuis le curseur jusqu'� la fin du mot.
+
+NOTE : Le seul appui d'un mouvement en mode Normal, sans commande, d�place le
+       curseur comme indiqu�.
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-		   Le�on 2.3 : DES COMMANDES ET DES OBJETS
+            Le�on 2.4 : UTILISER UN QUANTIFICATEUR AVEC UN MOUVEMENT
 
 
-  Le format de la commande d'effacement  d  est le suivant:
+       ** Taper un nombre avant un mouvement le r�p�te autant de fois. **
 
-	 [nombre]  d  objet	   OU	     d	[nombre]  objet
-  o�:
-    nombre - est combien de fois ex�cuter la commande (optionnel, d�faut: 1).
-    d - est la commande d'effacement.
-    objet - est ce sur quoi la commande va op�rer (liste ci-dessous).
+  1. D�placez le curseur au d�but de la ligne marqu�e ---> ci-dessous.
 
-  Une courte liste d'objets:
-    w - du curseur jusqu'� la fin du mot, y compris l'espace qui suit.
-    e - du curseur jusqu'� la fin du mot, SANS l'espace qui suit.
-    $ - du curseur jusqu'� la fin de la ligne.
+  2. Tapez  2w  pour d�placer le curseur de 2 mots vers l'avant.
 
-NOTE: Pour les aventureux, le seul appui d' objet  en mode Normal, sans
-      commande, d�place le curseur comme indiqu� dans la liste des objets.
+  3. Tapez  3e  pour d�placer le curseur � la fin du troisi�me mot vers
+     l'avant.
 
+  4. Tapez  0  (z�ro) pour d�placer au d�but de la ligne.
 
+  5. R�p�tez les �tapes 2 et 3 avec des quantificateurs diff�rents.
+
+---> Ceci est juste une ligne avec des mots o� vous pouvez vous d�placer.
+
+  6. D�placez-vous � la Le�on 2.5.
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-		 Le�on 2.4 : UNE EXCEPTION � 'COMMANDE-OBJET'
+            Le�on 2.5 : UTILISER UN QUANTIFICATEUR POUR EFFACER PLUS
+
+
+       ** Taper un nombre avec un op�rateur le r�p�te autant de fois. **
 
-	      ** Tapez	dd  pour effacer une ligne compl�te. **
+  Outre la combinaison de l'op�rateur d'effacement avec un d�placement
+  mentionn� ci-dessus, vous pouvez ins�rer un nombre (quantificateur)
+  pour effacez encore plus :
+       d   nombre   d�placement
+
+  1. D�placez le curseur vers le premier mot en MAJUSCULES dans la ligne
+     marqu�e --->.
+
+  2. Tapez  d2w  pour effacer les deux mots en MAJUSCULES.
+
+  3. R�p�tez les �tapes 1 et 2 avec des quantificateurs diff�rents pour
+     effacer les mots suivants en MAJUSCULES � l'aide d'une commande.
+
+---> Cette ABC DE ligne FGHI JK LMN OP de mots est Q RS TUV nettoy�e.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                       Le�on 2.6 : OP�REZ SUR DES LIGNES
+
+
+              ** Tapez   dd   pour effacer une ligne compl�te. **
 
   Vu le nombre de fois o� l'on efface des lignes compl�tes, les concepteurs
-  de Vi ont d�cid� qu'il serait plus facile de taper simplement deux d � la
-  suite pour effacer une ligne.
+  de Vi ont d�cid� qu'il serait plus facile de taper simplement deux  d
+  pour effacer une ligne.
 
   1. Placez le curseur sur la seconde ligne de la phrase ci-dessous.
-  2. Tapez  dd	pour effacer la ligne.
+  2. Tapez  dd  pour effacer la ligne.
   3. Maintenant allez � la quatri�me ligne.
-  4. Tapez  2dd  (rappelez-vous, nombre-commande-objet) pour effacer les
-     deux lignes.
+  4. Tapez   2dd   pour effacer deux lignes.
+
+--->  1)  Les roses sont rouges,
+--->  2)  La boue c'est dr�le,
+--->  3)  Les violettes sont bleues,
+--->  4)  J'ai une voiture,
+--->  5)  Les horloges donnent l'heure,
+--->  6)  Le sucre est doux
+--->  7)  Tout comme vous.
 
-      1)  Les roses sont rouges,
-      2)  La boue c'est dr�le,
-      3)  Les violettes sont bleues,
-      4)  J'ai une voiture,
-      5)  Les horloges donnent l'heure,
-      6)  Le sucre est doux
-      7)  Tout comme vous.
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-			    Le�on 2.5 : L'ANNULATION
+                            Le�on 2.7 : L'ANNULATION
 
-	    ** Tapez  u  pour annuler les derni�res commandes. **
-	       ** Tapez  U  pour r�cup�rer toute une ligne. **
+
+            ** Tapez  u  pour annuler les derni�res commandes. **
+               ** Tapez  U  pour r�cup�rer toute une ligne. **
 
   1. D�placez le curseur sur la ligne marqu�e ---> ci-dessous et placez-le sur
      la premi�re erreur.
@@ -239,10 +350,10 @@
   3. Puis tapez  u  pour annuler la derni�re commande ex�cut�e.
   4. Cette fois, corrigez toutes les erreurs de la ligne avec la commande  x .
   5. Puis tapez un  U  majuscule pour remettre la ligne dans son �tat initial.
-  6. Puis tapez  u  deux-trois fois pour annuler le  U	et les commandes
+  6. Puis tapez  u  deux-trois fois pour annuler le  U  et les commandes
      pr�c�dentes.
-  7. Maintenant tapez  Ctrl-R  (maintenez la touche Ctrl enfonc�e pendant que
-     vous appuyez sur R) deux-trois fois pour refaire les commandes (annuler
+  7. Maintenant tapez  CTRL-R  (maintenez la touche CTRL enfonc�e pendant que
+     vous appuyez R) deux-trois fois pour refaire les commandes (annuler
      les annulations).
 
 ---> Coorrigez les erreurs suur ccette ligne et reemettez-les avvec 'annuler'.
@@ -250,57 +361,64 @@
   8. Ce sont des commandes tr�s utiles. Maintenant, allez au r�sum� de la
      Le�on 2.
 
+
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-			     R�SUM� DE LA LE�ON 2
+                             R�SUM� DE LA LE�ON 2
+
+
+  1. Pour effacer du curseur jusqu'au mot suivant tapez :         dw
+
+  2. Pour effacer du curseur jusqu'� la fin d'une ligne tapez :   d$
 
+  3. Pour effacer toute une ligne tapez :                         dd
 
-  1. Pour effacer du curseur jusqu'� la fin d'un mot tapez:	dw
+  4. Pour r�p�ter un d�placement ajoutez un quantificateur :      2w
 
-  2. Pour effacer du curseur jusqu'� la fin d'une ligne tapez:	d$
+  5. Le format d'une commande de changement est :
 
-  3. Pour effacer toute une ligne tapez:  dd
+       op�rateur   [nombre]   d�placement
 
-  4. Le format d'une commande en mode Normal est:
+     O� :
+       op�rateur   - est ce qu'il faut faire, comme  d  pour effacer.
+       [nombre]    - un quantificateur optionnel pour r�p�ter le d�placement.
+       d�placement - d�place le long du texte � op�rer, tel que  w  (mot),
+                     $ (jusqu'� la fin de ligne), etc.
 
-       [nombre]  commande  objet     OU     commande  [nombre]	objet
-     o�:
-       nombre - est combien de fois r�p�ter la commande
-       commande - est ce qu'il faut faire, par exemple	d  pour effacer
-       objet - est ce sur quoi la commande devrait agir, par exemple w (mot),
-	       $ (jusqu'� la fin de la ligne), etc.
+  6. Pour se d�placer au d�but de ligne, utilisez un z�ro :  0
+
+  5. Pour annuler des actions pr�c�dentes, tapez :            u (u minuscule)
+     Pour annuler tous les changements sur une ligne tapez :  U (U majuscule)
+     Pour annuler l'annulation tapez :                        CTRL-R
 
-  5. Pour annuler des actions pr�c�dentes, tapez:	     u	(u minuscule)
-     Pour annuler tous les changements sur une ligne tapez:  U	(U majuscule)
-     Pour annuler l'annulation tapez:			     Ctrl-R
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-			     Le�on 3.1 : LE COLLAGE
+                             Le�on 3.1 : LE COLLAGE
 
 
-   ** Tapez  p	pour placer apr�s le curseur ce qui vient d'�tre effac�. **
+   ** Tapez  p  pour placer apr�s le curseur ce qui vient d'�tre effac�. **
 
-  1. Placez le curseur sur la premi�re ligne du "po�me" ci-dessous.
+  1. Placez le curseur sur la premi�re ligne ci-dessous marqu�e --->.
 
-  2. Tapez  dd	pour effacer la ligne et la placer dans le tampon de Vim.
+  2. Tapez  dd  pour effacer la ligne et la placer dans un registre de Vim.
 
-  3. D�placez le curseur sur la ligne qui PR�C�DE l'endroit o� vous voulez
-     remettre la ligne effac�e.
+  3. D�placez le curseur sur la ligne c) au dessus o� vous voulez remettre la
+     ligne effac�e.
 
-  4. En mode Normal, tapez  p  pour remettre la ligne.
+  4. En mode Normal, tapez   p   pour remettre la ligne en dessous du curseur.
 
   5. R�p�tez les �tapes 2 � 4 pour mettre toutes les lignes dans le bon ordre.
 
-     d) Et vous, qu'apprenez-vous ?
-     b) Les violettes sont bleues,
-     c) L'intelligence s'apprend,
-     a) Les roses sont rouges,
+---> d) Et vous, qu'apprenez-vous ?
+---> b) Les violettes sont bleues,
+---> c) L'intelligence s'apprend,
+---> a) Les roses sont rouges,
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-			 Le�on 3.2 : LE REMPLACEMENT
+                    Le�on 3.2 : LA COMMANDE DE REMPLACEMENT
 
 
- ** Tapez  r  et un caract�re pour remplacer le caract�re sous le curseur. **
+     ** Tapez  rx  pour remplacer un caract�re sous le curseur par  x . **
 
   1. D�placez le curseur sur la premi�re ligne marqu�e ---> ci-dessous.
 
@@ -308,31 +426,32 @@
 
   3. Tapez  r  suivi du caract�re qui doit corriger l'erreur.
 
-  4. R�p�tez les �tapes 2 et 3 jusqu'� ce que la premi�re ligne soit correcte.
+  4. R�p�tez les �tapes 2 et 3 jusqu'� ce que la premi�re ligne soit �gale
+     � la seconde.
 
 --->  Quand cette ligne a �t� sauvie, quelqu'un a lait des faunes de frappe !
 --->  Quand cette ligne a �t� saisie, quelqu'un a fait des fautes de frappe !
 
   5. Maintenant, allez � la Le�on 3.3.
 
-NOTE: N'oubliez pas que vous devriez apprendre par la pratique, pas par
-      m�morisation.
+NOTE : N'oubliez pas que vous devriez apprendre par la pratique, pas par
+       m�morisation.
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-			  Le�on 3.3 : LE CHANGEMENT
+                     Le�on 3.3 : L'OP�RATEUR DE CHANGEMENT
 
 
-	    ** Pour changer tout ou partie d'un mot, tapez  cw .**
+            ** Pour changer jusqu'� la fin d'un mot, tapez  ce .**
 
   1. D�placez le curseur sur la premi�re ligne marqu�e ---> ci-dessous.
 
-  2. Placez le curseur sur le u de luhko.
+  2. Placez le curseur sur le  u  de luhko.
 
-  3. Tapez  cw	et corrigez le mot (dans notre cas, tapez  'igne'.)
+  3. Tapez  ce  et corrigez le mot (dans notre cas, tapez  'igne'.)
 
-  4. Appuyez <�chap> et placez-vous sur l'erreur suivante (le premier
-     caract�re qui doit �tre chang�).
+  4. Appuyez <�chap> et placez-vous sur le prochain caract�re qui doit
+     �tre chang�).
 
   5. R�p�tez les �tapes 3 et 4 jusqu'� ce que la premi�re phrase soit
      identique � la seconde.
@@ -340,171 +459,189 @@
 ---> Cette luhko contient quelques myqa qui ont ricne d'�tre chantufip.
 ---> Cette ligne contient quelques mots qui ont besoin d'�tre chang�s.
 
-Notez que  cw  efface le mot et vous place ensuite en mode Insertion.
+Notez que  ce  efface le mot et vous place ensuite en mode Insertion.
+
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-		    Le�on 3.4 : PLUS DE CHANGEMENTS AVEC c
+                    Le�on 3.4 : PLUS DE CHANGEMENTS AVEC c
 
 
-    ** Le changement fonctionne avec les m�mes objets que l'effacement. **
+    ** L'op�rateur de changement fonctionne avec les m�mes d�placements
+       que l'effacement. **
 
-  1. Le changement fonctionne de la m�me mani�re que l'effacement.
-     Le format est:
+  1. L'op�rateur de changement fonctionne de la m�me mani�re que
+     l'effacement. Le format est :
 
-	 [nombre]  c  objet	   OU	     c	[nombre]  objet
+         c   [nombre]   d�placement
 
-  2. Les objets sont �galement les m�mes:  w (mot), $ (fin de ligne), etc.
+  2. Les d�placements sont identiques :  w (mot) et  $ (fin de ligne).
 
-  3. D�placez-vous � la premi�re ligne marqu�e ---> ci-dessous.
+  3. D�placez-vous sur la premi�re ligne marqu�e ---> ci-dessous.
 
   4. Placez le curseur sur la premi�re erreur.
 
-  5. Tapez  c$	pour changer la fin de la ligne, rendez-l� identique � la
-     seconde ligne, puis tapez <�chap>.
+  5. Tapez  c$  et tapez le reste de la ligne afin qu'elle soit identique
+     � la seconde ligne, puis tapez <�chap>.
 
 ---> La fin de cette ligne doit �tre rendue identique � la seconde.
----> La fin de cette ligne doit �tre corrig�e avec la commande	c$ .
+---> La fin de cette ligne doit �tre corrig�e avec la commande  c$ .
+
+NOTE :  Vous pouvez utilisez la touche Retour Arri�re pour corriger les
+        erreurs lorsque vous tapez.
+
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-			     R�SUM� DE LA LE�ON 3
+                             R�SUM� DE LA LE�ON 3
 
 
-  1. Pour remettre du texte qui vient d'�tre effac�, tapez  p . Cela Place le
+  1. Pour remettre le texte qui a d�j� �t� effac�, tapez  p . Cela Place le
      texte effac� APR�S le curseur (si une ligne compl�te a �t� effac�e, elle
      sera plac�e sous la ligne du curseur).
 
   2. Pour remplacer le caract�re sous le curseur, tapez  r  suivi du caract�re
      qui remplacera l'original.
 
-  3. Le changement vous permet de changer l'objet sp�cifi�, du curseur jusqu'�
-     la fin de l'objet. Par exemple, tapez  cw	pour changer du curseur
-     jusqu'� la fin du mot,  c$  pour changer jusqu'� la fin d'une ligne.
+  3. L'op�rateur de changement vous permet de changer depuis la position du
+     curseur jusqu'o� le d�placement vous am�ne. Par exemple, tapez  ce
+     pour changer du curseur jusqu'� la fin du mot,  c$  pour changer jusqu'�
+     la fin d'une ligne.
 
-  4. Le format pour le changement est:
+  4. Le format pour le changement est :
 
-	 [nombre]  c  objet	   OU	     c	[nombre]  objet
+         c   [nombre]   d�placement
 
 Passez maintenant � la le�on suivante.
 
 
-
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-		   Le�on 4.1 : POSITION ET �TAT DU FICHIER
+               Le�on 4.1 : POSITION DU CURSEUR ET �TAT DU FICHIER
 
 
-  ** Tapez Ctrl-G pour afficher votre position dans le fichier et son �tat.
-     Utilisez Maj-G pour vous rendre � une ligne donn�e du fichier. **
+  ** Tapez CTRL-G pour afficher votre position dans le fichier et son �tat.
+     Tapez  G  pour vous rendre � une ligne donn�e du fichier. **
 
-  Note: Lisez toute cette le�on avant d'effectuer l'une des �tapes !
+NOTE : Lisez toute cette le�on avant d'effectuer l'une des �tapes !!
 
-  1. Maintenez enfonc�e la touche Ctrl et appuyez sur  G .  Une ligne d'�tat
-     va appara�tre en bas de l'�cran avec le nom du fichier et le num�ro de la
-     ligne o� vous �tes.  Notez ce num�ro, il servira lors de l'�tape 3.
+  1. Maintenez enfonc�e la touche CTRL et appuyez sur  g . On appelle cela
+     CTRL-G. Une ligne d'�tat va appara�tre en bas de l'�cran avec le nom
+     du fichier et le num�ro de la ligne o� vous �tes. Notez ce num�ro, il
+     servira lors de l'�tape 3.
 
-  2. Tapez  G  majuscule (Maj-G) pour vous rendre � la fin du fichier.
+NOTE : Vous pouvez peut-�tre voir le curseur en bas � droite de l'�cran.
+       Ceci arrive quand l'option 'ruler' est activ�e (voir  :help 'ruler')
 
-  3. Tapez le num�ro de la ligne o� vous �tiez suivi de Maj-G.	Cela vous
-     ram�nera � la ligne o� vous �tiez au d�part.
-     (Lorsque vous tapez les chiffres, ils n'apparaissent PAS � l'�cran).
+  2. Tapez  G   pour vous d�placer � la fin du fichier.
+     Tapez  gg  pour vous d�placer au d�but du fichier.
 
-  4. Si vous vous sentez pr�t � faire ceci, effectuez les �tapes 1 � 3.
+  3. Tapez le num�ro de la ligne o� vous �tiez suivi de   G . Cela vous
+     ram�nera � la ligne o� vous �tiez au d�part quand vous aviez appuy�
+     CTRL-G.
 
+  4. Si vous vous sentez pr�t � faire ceci, effectuez les �tapes 1 � 3.
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-			    Le�on 4.2 : LA RECHERCHE
+                            Le�on 4.2 : LA RECHERCHE
 
 
-	  ** Tapez  /  suivi d'un texte pour rechercher ce texte. **
+          ** Tapez  /  suivi d'un texte pour rechercher ce texte. **
 
   1. Tapez le caract�re  /  en mode Normal. Notez que celui-ci et le curseur
      apparaissent en bas de l'�cran, comme lorsque l'on utilise  : .
 
-  2. Puis tapez 'errreuur' <Entr�e>.  C'est le mot que vous voulez rechercher.
-
-  3. Pour rechercher � nouveau le m�me texte, tapez simplement	n .
-     Pour rechercher le m�me texte dans la direction oppos�e, tapez  Maj-N .
+  2. Puis tapez 'errreuur' <Entr�e>. C'est le mot que vous voulez rechercher.
 
-  4. Si vous voulez rechercher un texte vers le haut du fichier, utilisez  ?
-     � la place de  / .
+  3. Pour rechercher � nouveau le m�me texte, tapez simplement  n .
+     Pour rechercher le m�me texte dans la direction oppos�e, tapez  N .
 
----> erreur ne s'�crit pas "errreuur"; errreuur est une erreur.
+  4. Pour rechercher une phrase dans la direction oppos�e, utilisez  ?
+     au lieu de  / .
 
-Note: Quand la recherche atteint la fin du fichier, elle reprend au d�but.
+---> erreur ne s'�crit pas "errreuur" ; errreuur est une erreur.
 
+NOTE : Quand la recherche atteint la fin du fichier, elle reprend au d�but
+       sauf si l'option 'wrapscan' est d�activ�e.
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-	    Le�on 4.3 : RECHERCHE DES PARENTH�SES CORRESPONDANTES
+            Le�on 4.3 : RECHERCHE DES PARENTH�SES CORRESPONDANTES
 
 
-	   ** Tapez  %	pour trouver des ), ] ou } correspondants. **
+           ** Tapez  %  pour trouver des ), ] ou } correspondants. **
 
   1. Placez le curseur sur l'un des (, [ ou { de la ligne marqu�e --->
      ci-dessous.
 
   2. Puis tapez le caract�re  % .
 
-  3. Le curseur devrait se placer sur la parenth�se correspondante.
+  3. Le curseur se d�placera sur la parenth�se out crochet correspondant.
 
-  4. Tapez  %  pour replacer le curseur sur l'autre parenth�se.
+  4. Tapez  %  pour replacer le curseur sur la parenth�se ou crochet
+     correspondant.
 
----> Voici ( une ligne de test contenant des (, des [ ] et des { } )).
-
-Note: Cette fonctionnalit� est tr�s utile lors du d�bogage d'un programme qui
-      contient des parenth�ses d�s�quilibr�es !
+  5. D�placez le curseur sur un autre (,),[,],{ ou } et regardez ce que
+     fait  % .
 
+---> Voici ( une ligne de test contenant des (, des [ ] et des { } )).
 
+NOTE : Cette fonctionnalit� est tr�s utile lors du d�bogage d'un programme qui
+       contient des parenth�ses d�s�quilibr�es !
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-	       Le�on 4.4 : UNE MANI�RE DE CORRIGER LES ERREURS
+                    Le�on 4.4 : LA COMMANDE DE SUBSTITUTION
 
 
-  ** Tapez  :s/ancien/nouveau/g  pour remplacer 'ancien' par 'nouveau'.  **
+    ** Tapez  :s/ancien/nouveau/g  pour remplacer 'ancien' par 'nouveau'. **
 
   1. D�placez le curseur sur la ligne marqu�e ---> ci-dessous.
 
   2. Tapez  :s/lee/le <Entr�e> . Notez que cette commande change seulement la
-     premi�re occurence sur la ligne.
+     premi�re occurrence de "lee" dans la ligne.
 
-  3. Puis tapez  :s/lee/le/g  qui ordonne de faire une substitution globale
-     sur la ligne. Cela change toutes les occurences sur la ligne
+  3. Puis tapez  :s/lee/le/g . L'ajout du drapeau  g  ordonne de faire une
+     substitution globale sur la ligne, et change toutes les occurrences de
+     "lee" sur la ligne.
 
----> lee meilleur moment pour regarder lees fleurs est pendant lee Printemps.
+---> lee meilleur moment pour regarder lees fleurs est pendant lee printemps.
 
-  4. Pour changer toutes les occurences d'un texte, entre deux lignes,
-     tapez  :#,#s/ancien/nouveau/g  o� #,# sont les num�ros des deux lignes.
-     Tapez  :%s/ancien/nouveau/g    pour changer chaque occurence dans tout
-				    le fichier.
+  4. Pour changer toutes les occurrences d'un texte, entre deux lignes,
+     tapez  :#,#s/ancien/nouveau/g  o� #,# sont les num�ros de lignes de la
+                                    plage o� la substitution doit �tre faite.
+     Tapez  :%s/ancien/nouveau/g    pour changer toutes les occurrences dans
+                                    tout le fichier.
+     Tapez  :%s/ancien/nouveau/gc   pour trouver toutes les occurrences dans
+                                    tout le fichier avec une invite pour
+                                    confirmer ou infirmer chaque substitution.
 
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-			     R�SUM� DE LA LE�ON 4
+                             R�SUM� DE LA LE�ON 4
 
 
-  1. Ctrl-G  affiche votre position dans le fichier et l'�tat de celui-ci.
-     Maj-G  vous place � la fin du fichier. Un num�ro de ligne suivi de Maj-G
-     vous place � cette ligne.
+  1. CTRL-G       affiche la position dans le fichier et l'�tat de celui-ci.
+               G  d�place � la fin du fichier.
+     nombre    G  d�place au num�ro de ligne.
+              gg  d�place � la premi�re ligne.
 
   2. Taper  /  suivi d'un texte recherche ce texte vers l'AVANT.
      Taper  ?  suivi d'un texte recherche ce texte vers l'ARRI�RE.
-     Apr�s une recherche tapez	n  pour trouver l'occurence suivante dans la
-     m�me direction ou	Maj-N  pour rechercher dans la direction oppos�e.
+     Apr�s une recherche tapez  n  pour trouver l'occurrence suivante dans la
+     m�me direction ou  Maj-N  pour rechercher dans la direction oppos�e.
 
   3. Taper  %  lorsque le curseur est sur  (, ), [, ], { ou }  d�place
      celui-ci sur le caract�re correspondant.
 
-  4. Pour remplacer le premier aa par bb sur une ligne tapez	 :s/aa/bb
-     Pour remplacer tous les aa par bb sur une ligne tapez	 :s/aa/bb/g
-     Pour remplacer du texte entre deux num�ros de ligne tapez	 :#,#s/aa/bb/g
-     Pour remplacer toutes les occurences dans le fichier tapez  :%s/aa/bb/g
-     Pour demander une confirmation � chaque fois ajoutez 'c'	 :%s/aa/bb/gc
+  4. Pour remplacer le premier aa par bb sur une ligne tapez     :s/aa/bb
+     Pour remplacer tous les aa par bb sur une ligne tapez       :s/aa/bb/g
+     Pour remplacer du texte entre deux num�ros de ligne tapez   :#,#s/aa/bb/g
+     Pour remplacer toutes les occurrences dans le fichier tapez :%s/aa/bb/g
+     Pour demander une confirmation � chaque fois ajoutez 'c'    :%s/aa/bb/gc
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-	      Le�on 5.1 : COMMENT EX�CUTER UNE COMMANDE EXTERNE
+              Le�on 5.1 : COMMENT EX�CUTER UNE COMMANDE EXTERNE
 
 
  ** Tapez  :!  suivi d'une commande externe pour ex�cuter cette commande. **
@@ -516,294 +653,386 @@
      n'importe quelle commande valide pour votre interpr�teur (shell).
 
   3. Par exemple, tapez  ls  apr�s le  !  et appuyez <Entr�e>. Ceci affichera
-     la liste des fichiers du dossier courant, comme si vous aviez tap� la
-     commande � l'invite du shell. Utilisez  :!dir  si	:!ls  ne marche pas.
-
-Note:  Il est possible d'ex�cuter n'importe quelle commande externe de cette
-       mani�re.
+     la liste des fichiers du r�pertoire courant, comme si vous aviez tap� la
+     commande � l'invite du shell. Utilisez  :!dir  si  :!ls  ne marche pas.
 
-Note:  Toutes les commandes  :  doivent finir par la frappe de <Entr�e>.
+NOTE :  Il est possible d'ex�cuter n'importe quelle commande externe de cette
+        mani�re, avec ou sans argument.
 
+NOTE :  Toutes les commandes  :  doivent finir par la frappe de <Entr�e>.
+        � partir de maintenant, nous ne le mentionnerons plus.
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-	 Le�on 5.2 : PLUS DE D�TAILS SUR L'ENREGISTREMENT DE FICHIERS
+         Le�on 5.2 : PLUS DE D�TAILS SUR L'ENREGISTREMENT DE FICHIERS
 
 
- ** Pour enregistrer les changements faits au fichier, tapez  :w FICHIER . **
+ ** Pour enregistrer les changements faits au texte, tapez  :w FICHIER . **
 
-  1. Tapez  :!dir  ou  :!ls  pour avoir la liste des fichiers du dossier
-     courant. Vous savez d�j� qu'il faut appuyer <Entr�e> apr�s cela.
+  1. Tapez  :!dir  ou  :!ls  pour avoir la liste des fichiers dans le
+     r�pertoire courant. Vous savez d�j� qu'il faut appuyer <Entr�e> apr�s
+     cela.
 
   2. Choisissez un nom de fichier qui n'existe pas encore, par exemple TEST.
 
   3. Puis tapez  :w TEST  (o� TEST est le nom que vous avez choisi).
 
-  4. Cela sauvegarde tout le fichier (Tutoriel Vim) sous le nom TEST.
-     Pour le v�rifier, tapez  :!dir  pour revisualiser le contenu du dossier.
+  4. Cela enregistre tout le fichier (Tutoriel Vim) sous le nom TEST.
+     Pour le v�rifier, tapez  :!dir  ou  :!ls  de nouveau pour revisualiser
+     votre r�pertoire.
 
-Notez que si vous quittez Vim et y retournez avec le fichier TEST, celui-ci
-sera une copie exacte du cours au moment o� vous l'avez sauv�.
+NOTE : Si vous quittez Vim et le red�marrez de nouveau avec le fichier TEST,
+       celui-ci sera une copie exacte de ce cours au moment o� vous l'avez
+       enregistr�.
 
-  5. Maintenant, effacez le fichier en tapant (MS-DOS):    :!del TEST
-					   ou (Unix):	   :!rm TEST
+  5. Maintenant, effacez le fichier en tapant (MS-DOS) :   :!del TEST
+                                           ou (Unix) :     :!rm TEST
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-		    Le�on 5.3 : UN ENREGISTREMENT S�LECTIF
+                  Le�on 5.3 : S�LECTION DU TEXTE � ENREGISTRER
 
 
-     ** Pour enregistrer une portion de fichier, tapez	:#,#w FICHIER **
+                  ** Pour enregistrer une portion du fichier,
+                      tapez :   v  d�placement  :w FICHIER  **
 
-  1. Tapez � nouveau  :!dir  ou  :!ls  pour visualiser le contenu du dossier
-     courant et choisissez un nom de fichier, tel que TEST.
+  1. D�placez le curseur sur cette ligne.
 
-  2. D�placez le curseur jusqu'en haut de cette page et tapez  Ctrl-G  pour
-     conna�tre le num�ro de cette ligne. NOTEZ CE NUM�RO !
+  2. Appuyez  v  et d�placez le curseur vers la cinqui�me ligne plus bas.
+     Remarquez que le texte est en surbrillance.
 
-  3. Puis rendez-vous au bas de cette page et tapez � nouveau  Ctrl-G .
-     NOTEZ �GALEMENT CE NUM�RO !
+  3. Appuyez  :  . En bas de l'�cran  :'<,'> va appara�tre.
 
-  4. Pour enregistrer SEULEMENT une portion d'un fichier, tapez  :#,#w TEST
-     o� #,# sont les deux num�ros que vous avez not�s (haut,bas) et TEST est
-     le nom du fichier.
+  4. Tapez   w TEST  , o� TEST est un nom de fichier qui n'existe pas.
+     V�rifiez que vous voyez  :'<,'>w TEST  avant de d'appuyer sur Entr�e.
 
-  5. Une fois encore, v�rifiez la pr�sence du fichier avec  :!dir  mais NE
-     L'EFFACEZ PAS.
+  5. Vim va enregistrer les lignes s�lectionn�es dans le fichier TEST.
+     Utilisez  :!dir  ou  !ls pour le voir. Ne l'effacez pas encore !
+     Nous allons l'utiliser dans la le�on suivante.
 
+NOTE : L'appui de  v  d�marre la s�lection Visuelle. Vous pouvez d�placer le
+       curseur pour agrandir ou r�tr�cir la s�lection. Puis vous pouvez
+       utiliser un op�rateur pour faire quelque chose sur le texte. Par
+       exemple,  d  efface le texte.
 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-		 Le�on 5.4 : R�CUP�RATION ET FUSION DE FICHIERS
 
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                 Le�on 5.4 : R�CUP�RATION ET FUSION DE FICHIERS
 
-	** Pour ins�rer le contenu d'un fichier, tapez	:r FICHIER **
 
-  1. Tapez  :!dir  pour v�rifier que votre fichier TEST est encore l�.
+        ** Pour ins�rer le contenu d'un fichier, tapez  :r FICHIER **
 
-  2. Placez le curseur en haut de cette page.
+  1. Placez le curseur juste au dessus de cette ligne.
 
-NOTE:  Apr�s avoir suivi l'�tape 3 vous verrez � l'�cran la Le�on 5.3.
-       D�placez-vous vers le bas jusqu'� revenir � cette le�on.
+NOTE :  Apr�s avoir ex�cut� l'�tape 2 vous verrez du texte de la Le�on 5.3.
+        Puis d�placez vous vers le bas pour voir cette le�on � nouveau.
 
-  3. Maintenant r�cup�rez votre fichier TEST en utilisant la commande  :r TEST
+  2. Maintenant r�cup�rez votre fichier TEST en utilisant la commande  :r TEST
      o� TEST est le nom de votre fichier.
-
-NOTE:  Le fichier que vous r�cup�rez est plac� l� o� se trouve le curseur.
+     Le fichier que vous r�cup�rez est plac� au dessous de la ligne du curseur.
 
   4. Pour v�rifier que le fichier a bien �t� ins�r�, remontez et v�rifiez
      qu'il y a maintenant deux copies de la Le�on 5.3, l'originale et celle
      contenue dans le fichier.
 
+NOTE :  Vous pouvez aussi lire la sortie d'une commande externe. Par exemple,
+        :r !ls  lit la sortie de la commande ls et la place sous la ligne du
+        curseur.
 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-			     R�SUM� DE LA LE�ON 5
 
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                             R�SUM� DE LA LE�ON 5
 
-  1.  :!commande  ex�cute une commande externe.
-
-      Quelques exemples pratiques:
-	(MS-DOS)	(Unix)
-	 :!dir		 :!ls		 affiche le contenu du dossier courant.
-	 :!del FICHIER   :!rm FICHIER    efface FICHIER.
 
-  2.  :w FICHIER  enregistre le fichier Vim courant sur le disque avec pour
-		  nom FICHIER.
+  1. :!commande  ex�cute une commande externe.
 
-  3.  :#,#w FICHIER  enregistre les lignes # � # dans le fichier FICHIER.
+     Quelques exemples pratiques :
+      (MS-DOS)        (Unix)
+       :!dir           :!ls          affiche le contenu du r�pertoire courant.
+       :!del FICHIER   :!rm FICHIER  efface FICHIER.
 
-  4.  :r FICHIER  r�cup�re le fichier FICHIER et l'ins�re dans le fichier
-		  courant � partir de la position du curseur.
+  2. :w FICHIER  enregistre le fichier Vim courant sur le disque avec pour
+                  nom FICHIER.
 
+  3. v  d�placement  :w FICHIER sauvegarde les lignes de la s�lection Visuelle
+     dans le fichier FICHIER.
 
+  4. :r FICHIER  r�cup�re le contenu du fichier FICHIER et l'ins�re sous la
+     position du curseur.
 
+  5. :r !dir  lit la sortie de la commande dir et l'ins�re sous la position
+     du curseur.
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-			    Le�on 6.1 : L'OUVERTURE
+                      Le�on 6.1 : LA COMMANDE D'OUVERTURE
 
 
 ** Tapez  o  pour ouvrir une ligne sous le curseur et y aller en Insertion. **
 
   1. D�placez le curseur sur la ligne marqu�e ---> ci-dessous.
 
-  2. Tapez  o  (minuscule) pour ouvrir une ligne SOUS le curseur et vous y
-     placer en mode Insertion.
+  2. Tapez la lettre   o   minuscule pour ouvrir une ligne SOUS le curseur et
+     vous y placer en mode Insertion.
 
-  3. Puis recopiez la ligne marqu�e ---> et appuyez sur <�chap> pour quitter
-     le mode Insertion.
+  3. Puis tapez du texte et appuyez <�chap> pour sortir du mode Insertion.
 
----> En tapant	o  le curseur se met sur la ligne ouverte, en mode Insertion.
+---> En tapant  o  le curseur se met sur la ligne ouverte, en mode Insertion.
 
   4. Pour ouvrir une ligne au DESSUS du curseur, tapez simplement un  O
      majuscule, plut�t qu'un  o  minuscule. Faites un essai sur la ligne
      ci-dessous.
-Ouvrez une ligne ci-dessus en tapant MAJ-O lorsque le curseur est ici.
 
+---> Ouvrez une ligne ci-dessus en tapant O lorsque le curseur est ici.
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-			      Le�on 6.2 : L'AJOUT
+                        Le�on 6.2 : LA COMMANDE D'AJOUT
+
+
+            ** Tapez  a  pour ins�rer du texte APR�S le curseur. **
 
+  1. Placez le curseur au d�but de la ligne marqu�e ---> ci-dessous.
 
-	    ** Tapez  a  pour ins�rer du texte APR�S le curseur. **
+  2. Appuyez  e  jusqu'� ce que le curseur soit sur la fin de  li .
 
-  1. Placez le curseur � la fin de la premi�re ligne marqu�e ---> ci-dessous
-     en tapant	$  en mode Normal.
+  3. Appuyez  a  (minuscule) pour ajouter du texte APR�S le curseur.
 
-  2. Tapez un  a  (minuscule) pour ajouter du texte APR�S le caract�re situ�
-     sous le curseur. ( A  majuscule ajoute du texte � la fin de la ligne).
+  4. Compl�tez le mot comme dans la ligne dessous. Appuyez <�chap> pour
+     sortir du mode Insertion.
 
-Note: Ceci �vite de taper  i , le dernier caract�re, le texte � ins�rer,
-      <�chap>, curseur-�-droite, et finalement	x , juste pour ajouter du
-      texte � la fin d'une ligne !
+  5. Utilisez  e  pour vous d�placer vers le mot incomplet suivant et
+     r�p�tez les �tapes 3 et 4.
 
-  3. Maintenant, compl�tez la premi�re ligne. Notez �galement que l'ajout est
-     identique au mode Insertion, hormis la position o� le texte est ins�r�.
+---> Cette li vous perm de pratiq l'ajout de t dans une ligne.
+---> Cette ligne vous permet de pratiquer l'ajout de texte dans une ligne.
 
----> Cette ligne vous permet de pratiquer
----> Cette ligne vous permet de pratiquer l'ajout de texte en fin de ligne.
+NOTE :  a, i, A vont tous dans le m�me mode Insertion, la seule diff�rence
+        est l'endroit o� les caract�res sont ins�r�s.
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-		Le�on 6.3 : UNE AUTRE VERSION DU REMPLACEMENT
+                   Le�on 6.3 : UNE AUTRE MANI�RE DE REMPLACER
 
 
        ** Tapez un  R  majuscule pour remplacer plus d'un caract�re. **
 
   1. D�placez le curseur sur la premi�re ligne marqu�e ---> ci-dessous.
+     D�placez le curseur sur le d�but du premier xxx .
 
-  2. Placez le curseur au d�but du premier mot qui diff�re de la seconde ligne
-     marqu�e ---> (le mot 'celle').
+  2. Appuyez maintenant  R  et tapez le nombre dessous dans la deuxi�me ligne,
+     de mani�re � remplacer le xxx .
 
-  3. Puis tapez  R  et remplacez le reste du texte de la premi�re ligne en
-     tapant par dessus celui-ci, de mani�re � rendre la premi�re ligne
-     identique � la seconde.
+  3. Appuyez <�chap> pour quitter le mode Remplacement. Notez que le reste de
+     la ligne demeure inchang�.
+
+  4. R�p�tez les �tapes pour remplacer les xxx restants.
+
+
+---> L'ajout de 123 � xxx donne xxx.
+---> L'ajout de 123 � 456 donne 579.
+
+NOTE : Le mode Remplacement est comme le mode Insertion, mais tous les
+       caract�res tap�s effacent un caract�re existant.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                     Le�on 6.4 : COPIER ET COLLER DU TEXTE
+
+
+   ** Utilisez l'op�rateur  y  pour copier du texte et  p  pour le coller **
+
+  1. Allez � la ligne marqu�e ---> ci-dessous et placez le curseur apr�s "a)".
 
----> Pour rendre cette ligne identique � celle du dessous utilisez le clavier.
----> Pour rendre cette ligne identique � la seconde, tapez R et la correction.
+  2. D�marrez le mode Visuel avec  v  et d�placez le curseur juste devant
+     "premier".
 
-  4. Notez que lorsque vous appuyez <�chap>, le texte qui n'a pas encore �t�
-     remplac� reste.
+  3. Tapez  y  pour copier le texte en surbrillance.
 
+  4. D�placez la curseur � la fin de la ligne suivante :   j$
 
+  5. Tapez  p  pour coller le texte. Puis tapez :  un second <�chap> .
+
+  6. Utilisez le mode Visuel pour s�lectionner "�l�ment", copiez le avec  y  ,
+     d�placez vous � la fin de la ligne suivant avec  j$  et collez le texte
+     � cet endroit avec  p .
+
+--->  a) ceci est le premier �l�ment.
+      b)
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-		       Le�on 6.4 : R�GLAGE DES OPTIONS
+                       Le�on 6.4 : R�GLAGE DES OPTIONS
 
 
-  ** R�glons une option afin que la recherche et la substitution ignorent la
-     casse des caract�res. **
+    ** R�glons une option afin que la recherche et la substitution ignore la
+       casse des caract�res. **
 
-  1. Recherchez 'ignore' en tapant  /ignore .
+  1. Recherchez 'ignore' en tapant :   /ignore <Entr�e>
      R�p�tez ceci plusieurs fois en utilisant la touche  n .
 
-  2. Activez l'option 'ic' (Ignorer casse) en tapant  :set ic .
+  2. Activez l'option 'ic' (ignorer casse) en tapant  :set ic .
 
-  3. Puis poursuivez votre recherche en utilisant  n .
-     R�p�tez cette recherche plusieurs fois avec la touche  n .
+  3. Puis cherchez 'ignore' de nouveau en utilisant  n .
+     Remarquez que Ignore et IGNORE sont maintenant aussi trouv�s.
 
   4. Activez les options 'hlsearch' et 'incsearch' avec  :set hls is .
 
   5. Puis recommencez une recherche, et faites bien attention � ce qui se
-     produit:  /ignore .
+     produit :  /ignore <Entr�e>
 
-  6. Pour interrompre la mise en surbrillance des r�sultats, tapez:
-     :nohlsearch
+  6. Pour d�sactiver 'ignorer casse', entrez :  :set noic
 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-			     R�SUM� DE LA LE�ON 6
+NOTE : Pour enlever la surbrillance des r�sultats, entrez :   :nohlsearch
 
+NOTE : Si vous voulez ignorer la casse uniquement pour une recherche, utilisez
+       \c  dans la phrase :   /ignore\c  <Entr�e>
 
-  1. Taper  o  ouvre une ligne SOUS le curseur et y place celui-ci en mode
-     Insertion. Taper un  O  majuscule ouvre une ligne au DESSUS de la ligne
-     o� se trouve le curseur.
 
-  2. Tapez un  a  pour ins�rer du texte APR�S le caract�re o� se trouve le
-     curseur. Taper un	A  majuscule ajoute du texte automatiquement � la fin
-     de la ligne.
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                             R�SUM� DE LA LE�ON 6
 
-  3. Taper un  R  majuscule active le mode Remplacement jusqu'� ce que la
-     touche  <�chap>  soit appuy�e pour en sortir.
 
-  4. Taper  :set xxx  active l'option 'xxx'.
+  1. Taper  o  ouvre une ligne SOUS le curseur et d�marre le mode Insertion.
+     Taper  O  ouvre une ligne au DESSUS du curseur.
 
+  2. Taper  a  pour ins�rer du texte APR�S le curseur.
+     Taper  A  pour ins�rer du texte apr�s la fin de ligne.
 
+  3. Taper  e  d�place � la fin du mot.
 
+  4. Taper  y  copie du texte,  p  le colle.
 
+  5. Taper  R  majuscule active le mode Remplacement jusqu'� ce qu' <�chap>
+     soit appuy�.
 
+  6. Taper  ":set xxx"  active l'option "xxx". Quelques options sont :
+        'ic'  'ingnorecase' pour ignorer la casse lors des recherches.
+        'is'  'incsearch'   pour montrer les appariements partiels.
+        'hls' 'hlsearch'    pour mettre en surbrillance les appariements.
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-		     Le�on 7 : ACC�DER � L'AIDE EN LIGNE
+                         Le�on 7.1 : OBTENIR DE L'AIDE
 
-		  ** Utiliser le syst�me d'aide en ligne. **
 
-  Vim a un syst�me complet d'aide en ligne.  Pour y acc�der, essayez l'une de
-  ces trois m�thodes:
-	- appuyez la touche <Help> (si vous en avez une)
-	- appuyez la touche <F1> (si vous en avez une)
-	- tapez  :help <Entr�e>
+                  ** Utiliser le syst�me d'aide en ligne. **
 
-  Tapez  :q <Entr�e>  pour fermer la fen�tre d'aide.
+  Vim a un syst�me complet d'aide en ligne. Pour y acc�der, essayez l'une de
+  ces trois m�thodes :
+        - appuyez la touche <Help> (si vous en avez une)
+        - appuyez la touche <F1> (si vous en avez une)
+        - tapez  :help <Entr�e>
+
+
+  Lisez le texte dans la fen�tre d'aide pour savoir comment fonctionne l'aide.
+  Tapez  CTRL-W CTRL-W   pour sauter d'une fen�tre � l'autre.
+  Tapez  :q <Entr�e>     pour fermer la fen�tre d'aide.
 
   Vous pouvez acc�der � l'aide sur � peu pr�s n'importe quel sujet en donnant
   des arguments � la commande  :help . Essayez par exemple (n'oubliez pas
-  d'appuyer sur <Entr�e>):
+  d'appuyer sur <Entr�e>) :
 
-	:help w
-	:help c_<T
-	:help insert-index
-	:help user-manual
+        :help w
+        :help c_CTRL-D
+        :help c_<T
+        :help insert-index
+        :help user-manual
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-		    Le�on 8 : CR�ER UN SCRIPT DE D�MARRAGE
+                    Le�on 7.2 : CR�ER UN SCRIPT DE D�MARRAGE
 
-		  ** Activer les fonctionnalit�s de Vim. **
+                   ** Activer les fonctionnalit�s de Vim. **
 
   Vim a beaucoup plus de fonctionnalit�s que Vi, mais la plupart de celles-ci
-  sont d�sactiv�es par d�faut.  Pour commencer � les utiliser, vous devez
+  sont d�sactiv�es par d�faut. Pour commencer � les utiliser, vous devez
   cr�er un fichier "vimrc".
 
-  1. Commencez � �diter le fichier "vimrc". Ceci d�pend de votre syst�me:
-	:edit ~/.vimrc			pour Unix
-	:edit $VIM/_vimrc		pour MS-Windows
+  1. Commencez � �diter le fichier "vimrc". Ceci d�pend de votre syst�me :
+        :edit ~/.vimrc         pour Unix
+        :edit $VIM/_vimrc      pour MS-Windows
 
-  2. Int�grez maintenant le texte du fichier "vimrc" d'exemple:
-	:read $VIMRUNTIME/vimrc_example.vim
+  2. Lisez maintenant le fichier d'exemple "vimrc" :
+        :r $VIMRUNTIME/vimrc_example.vim
 
-  3. Enregistrez le fichier avec:
-	:write
+  3. Enregistrez le fichier avec :
+        :w
 
-  La prochaine fois que vous d�marrerez Vim, le surlignage syntactique sera
-  activ�. Vous pouvez ajouter tous vos r�glages pr�f�r�s dans ce fichier.
+  La prochaine fois que vous d�marrerez Vim, la coloration syntaxique sera
+  activ�e. Vous pouvez ajouter tous vos r�glages pr�f�r�s dans ce fichier
+  "vimrc". Pour plus d'informations, tapez  :help vimrc-intro
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                            Le�on 7.3 : COMPL�TEMENT
+
+
+          ** Compl�tement de ligne de commande avec CTRL-D et <TAB> **
+
+  1. Mettez Vim soit en mode non compatible :   set nocp
+
+  2. Regardez quels fichiers existent dans le r�pertoire :  !ls  ou  !dir
+
+  3. Tapez le d�but d'une commande :   :e
+
+  4. Appuyez  CTRL-D  et Vim affichera une liste de commandes qui commencent
+     par "e".
+
+  5. Appuyez  <TAB>  et Vim compl�tera le nom de la commande :  ":edit"
+
+  6. Ajoutez maintenant un espace et le d�but d'un fichier existant :
+     :edit  FIC
+
+  7  Appuyez  <TAB>. Vim va compl�ter le nom (s'il est unique).
+
+NOTE : Le compl�tement fonctionne pour de nombreuse commandes. Essayez
+       d'appuyer CTRL-D et <TAB>. C'est utile en particulier pour  :help .
 
-  Ceci conclut le Tutoriel Vim.  Le but �tait de vous donner un bref aper�u de
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                              R�SUM� DE LA LE�ON 7
+
+
+  1. Tapez  :help  ou appuyez <F1> ou <Aide> pour ouvrir la fen�tre d'aide.
+
+  2. Tapez  :help cmd  pour trouver l'aide sur  cmd .
+
+  3. Tapez  CTRL-W CTRL-W  pour sauter � une autre fen�tre.
+
+  4. Tapez  :q  pour fermer la fen�tre d'aide.
+
+  5. Cr�ez un script de d�marrage vimrc pour conserver vos r�glages pr�f�r�s.
+
+  6. Quand vous tapez une commande  :  appuyez CTRL-D pour voir les
+     compl�tements possibles. Appuyez <TAB> pour utiliser un compl�tement.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  Ceci conclut le Tutoriel Vim. Le but �tait de vous donner un bref aper�u de
   l'�diteur Vim, juste assez pour vous permettre d'utiliser l'�diteur
-  relativement facilement.  Il est loin d'�tre complet, vu que Vim a beaucoup
-  beaucoup plus de commandes.  Un Manuel de l'utilisateur est disponible en
-  anglais:  :help user-manual .
+  relativement facilement. Il est loin d'�tre complet, vu que Vim a beaucoup
+  beaucoup plus de commandes. Un Manuel de l'utilisateur est disponible en
+  anglais :  :help user-manual .
 
   Pour continuer � d�couvrir et � apprendre Vim, il existe un livre traduit en
   fran�ais. Il parle plus de Vi que de Vim, mais pourra vous �tre utile.
-	L'�diteur Vi - Collection Pr�cis et concis - par Arnold Robbins
-	�diteur: O'Reilly France
-	ISBN: 2-84177-102-4
+        L'�diteur Vi - Collection Pr�cis et concis - par Arnold Robbins
+        �diteur : O'Reilly France
+        ISBN : 2-84177-102-4
 
   Deux livres en anglais sont �galement mentionn�s dans la version originale
   de ce tutoriel, dont un qui traite sp�cifiquement de Vim. Merci de vous y
-  r�f�rer si vous �tes int�ress�.
+  r�f�rer si vous �tes int�ress�s.
 
   Ce tutoriel a �t� �crit par Michael C. Pierce et Robert K. Ware de l'�cole
   des Mines du Colorado et reprend des id�es fournies par Charles Smith,
-  Universt� d'�tat du Colorado.  E-mail: [email protected].
+  Universit� d'�tat du Colorado. E-mail : [email protected].
 
   Modifi� pour Vim par Bram Moolenar.
-
   Traduit en Fran�ais par Adrien Beau, en avril 2001.
-  E-mail:	[email protected]
-  Last Change:	2003 May 29
+  Derni�res mises � jour par Dominique Pell�.
+
+  E-mail :      [email protected]
+  Last Change : 2008 Nov 23
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
diff -Nur runtime.patched/tutor/tutor.fr.utf-8 runtime/tutor/tutor.fr.utf-8
--- runtime.patched/tutor/tutor.fr.utf-8	2008-06-21 11:19:12.000000000 -0700
+++ runtime/tutor/tutor.fr.utf-8	2008-12-08 13:08:38.000000000 -0800
@@ -1,5 +1,5 @@
 ===============================================================================
-= B i e n v e n u e  dans le  T u t o r i e l  de  V I M  -  Version 1.5.fr.2 =
+= B i e n v e n u e  dans le  T u t o r i e l  de  V I M  -  Version 1.7.fr.1 =
 ===============================================================================
 
      Vim est un éditeur très puissant qui a trop de commandes pour pouvoir
@@ -7,93 +7,100 @@
      décrire suffisamment afin de vous permettre d'utiliser simplement Vim.
 
      Le temps requis pour suivre ce cours est d'environ 25 à 30 minutes, selon
-     le temps que vous passerez à expérimenter.  Les commandes utilisées dans
-     les leçons modifieront le texte. Faites une copie de ce fichier afin de
-     vous entraîner dessus (si vous avez lancé "vimtutor" ceci est déjà une
-     copie).
+     le temps que vous passerez à expérimenter.
+
+     ATTENTION :
+     Les commandes utilisées dans les leçons modifieront le texte. Faites une
+     copie de ce fichier afin de vous entraîner dessus (si vous avez lancé
+     "vimtutor" ceci est déjà une copie).
 
      Il est important de garder en tête que ce cours est conçu pour apprendre
-     par la pratique.  Cela signifie que vous devez exécuter les commandes
-     pour les apprendre correctement.  Si vous vous contentez de lire le
-     texte, vous oublierez les commandes !
-
-     Maintenant, vérifiez que votre clavier n'est PAS verouillé en majuscules,
-     et appuyez la touche  j  le nombre de fois suffisant pour que la leçon
-     1.1 remplisse complètement l'écran.
+     par la pratique. Cela signifie que vous devez exécuter les commandes
+     pour les apprendre correctement. Si vous vous contentez de lire le texte,
+     vous oublierez les commandes !
+
+     Maintenant, vérifiez que votre clavier n'est PAS verrouillé en
+     majuscules, et appuyez la touche  j  le nombre de fois suffisant pour
+     que la Leçon 1.1 remplisse complètement l'écran.
+
+
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-		      Leçon 1.1 : DÉPLACEMENT DU CURSEUR
+                      Leçon 1.1 : DÉPLACEMENT DU CURSEUR
 
 
   ** Pour déplacer le curseur, appuyez les touches h,j,k,l comme indiqué. **
-	    ^
-	    k	     Astuce:  La touche h est à gauche et déplace à gauche.
-      < h      l >	      La touche l est à droite et déplace à droite.
-	   j		      La touche j ressemble à une flèche vers le bas.
-	   v
+          ^
+          k        Astuce :  La touche h est à gauche et déplace à gauche.
+    < h       l >            La touche l est à droite et déplace à droite.
+          j                  La touche j ressemble à une flèche vers le bas.
+          v
   1. Déplacez le curseur sur l'écran jusqu'à vous sentir à l'aise.
 
   2. Maintenez la touche Bas (j) enfoncée jusqu'à ce qu'elle se répète.
----> Maintenant vous êtes capable de vous déplacer jusqu'à la leçon suivante.
+     Maintenant vous êtes capable de vous déplacer jusqu'à la leçon suivante.
 
   3. En utilisant la touche Bas, allez à la Leçon 1.2.
 
-Note: Si jamais vous doutez de ce que vous venez de taper, appuyez <Échap>
-      pour revenir en mode Normal. Puis retapez la commande que vous vouliez.
+NOTE : Si jamais vous doutez de ce que vous venez de taper, appuyez <Échap>
+       pour revenir en mode Normal. Puis retapez la commande que vous vouliez.
 
-Note: Les touches fléchées devraient également fonctionner. Mais en utilisant
-      hjkl vous pourrez vous déplacer beaucoup plus rapidement, une fois que
-      vous aurez pris l'habitude.
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-		     Leçon 1.2 : ENTRÉE ET SORTIE DE VIM
+NOTE : Les touches fléchées devraient également fonctionner. Mais en utilisant
+       hjkl vous pourrez vous déplacer beaucoup plus rapidement, une fois que
+       vous aurez pris l'habitude.
 
 
- !! NOTE: Avant d'effectuer les étapes ci-dessous, lisez toute cette leçon !!
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                     Leçon 1.2 : SORTIR DE VIM
 
-  1. Appuyez la touche	<Échap>  (pour être sûr d'être en mode Normal).
 
-  2. Tapez:			:q! <Entrée>
+ !! NOTE : Avant d'effectuer les étapes ci-dessous, lisez toute cette leçon !!
 
----> Ceci quitte l'éditeur SANS sauver les changements que vous avez faits.
-     Si vous voulez enregistrer les changements et sortir, tapez:
-				:wq <Entrée>
+  1. Appuyez la touche  <Échap>  (pour être sûr d'être en mode Normal).
 
-  3. Lorsque l'invite du 'shell' vous sera présentée, tapez la commande qui
-     vous a amené dans ce tutoriel.  Cela pourrait être:    vimtutor <Entrée>
-     Normalement, vous utiliseriez:			    vim tutor <Entrée>
+  2. Tapez :  :q! <Entrée>
+     Ceci quitte l'éditeur SANS enregistrer les changements que vous avez
+     faits.
 
----> 'vim' lance l'éditeur, 'tutor' est le fichier que vous souhaitez éditer.
+  3. Lorsque l'invite du shell vous sera présentée, tapez la commande qui
+     vous a mené dans ce tutoriel. Cela pourrait être :    vimtutor <Entrée>
 
   4. Si vous avez mémorisé ces étapes et êtes confiant, effectuez les étapes
-     1 à 3 pour sortir puis rentrer dans l'éditeur.  Déplacez ensuite le
-      curseur jusqu'à la Leçon 1.3.
+     1 à 3 pour sortir puis rentrer dans l'éditeur.
+
+NOTE :  :q! <Entrée> annule tous le changements que vous avez fait. Dans
+         quelques leçons, vous apprendrez à enregistrer les changements.
+
+  5. Déplacez le curseur à la Leçon 1.3.
+
+
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-		  Leçon 1.3 : ÉDITION DE TEXTE - EFFACEMENT
+                  Leçon 1.3 : ÉDITION DE TEXTE - EFFACEMENT
 
 
- ** En mode Normal, appuyez  x	pour effacer le caractère sous le curseur. **
+         ** Appuyez   x   pour effacer le caractère sous le curseur. **
 
   1. Déplacez le curseur sur la ligne marquée ---> ci-dessous.
 
   2. Pour corriger les erreurs, déplacez le curseur jusqu'à ce qu'il soit
      sur un caractère à effacer.
 
-  3. Appuyez la touche	x  pour effacer le caractère redondant.
+  3. Appuyez la touche  x  pour effacer le caractère redondant.
 
   4. Répétez les étapes 2 à 4 jusqu'à ce que la phrase soit correcte.
 
 ---> La vvache à sautéé au-ddessus dde la luune.
 
-  5. Maintenant que la ligne est correcte, passez à la leçon 1.4.
+  5. Maintenant que la ligne est correcte, passez à la Leçon 1.4.
 
-NOTE: En avançant dans ce cours, n'essayez pas de mémoriser, apprenez par
-      la pratique.
+NOTE : En avançant dans ce cours, n'essayez pas de mémoriser, apprenez par
+       la pratique.
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-		   Leçon 1.4 : ÉDITION DE TEXTE - INSERTION
+                    Leçon 1.4 : ÉDITION DE TEXTE - INSERTION
 
 
-	   ** En mode Normal, appuyez  i  pour insérer du texte. **
+                    ** Appuyez  i  pour insérer du texte. **
 
   1. Déplacez le curseur sur la première ligne marquée ---> ci-dessous.
 
@@ -108,38 +115,94 @@
 ---> Il mnqe caractères cette .
 ---> Il manque des caractères dans cette ligne.
 
-  5. Une fois que vous êtes à l'aise avec l'insertion de texte, allez au
-     résumé ci-dessous.
+  5. Une fois que vous êtes à l'aise avec l'insertion de texte, allez à la
+     Leçon 1.5.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                     Leçon 1.5 : ÉDITION DE TEXTE - AJOUTER
+
+
+                    ** Appuyez  A  pour ajouter du text. **
+
+  1. Déplacez le curseur sur la première ligne ci-dessous marquée --->.
+     Peu importe sur quel caractère se trouve le curseur sur cette ligne.
+
+  2. Appuyez  A  et tapez les ajouts nécessaires.
+
+  3. Quand le texte a été ajouté, appuyez <Échap> pour revenir en mode
+     Normal.
+
+  4. Déplacez le curseur sur la seconde ligne marquée ---> et répétez les
+     étapes 2 et 3 pour corriger la phrase.
+
+---> Il manque du texte à partir de cet
+     Il manque du texte à partir de cette ligne.
+---> Il manque aussi du te
+     Il manque aussi du texte ici.
+
+  5. Quand vous vous sentez suffisamment à l'aise pour ajouter du texte,
+     allez à la Leçon 1.6.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                         Leçon 1.6 : ÉDITER UN FICHIER
+
+
+          ** Utilisez  :wq  pour enregistrer un fichier et sortir. **
+
+!! NOTE : Lisez toute la leçon avant d'exécuter les instructions ci-dessous !!
+
+  1. Sortez de ce tutoriel comme vous l'avez fait dans la Leçon 1.2 :  :q!
+     Ou, si vous avez accès à un autre terminal, exécutez y les actions
+     qui suivent.
+
+  2. À l'invite du shell, tapez cette commande :  vim tutor <Entrée>
+     'vim' est la commande pour démarrer l'éditeur Vim, 'tutor' est le
+     nom du fichier que vous souhaitez éditer. Utilisez un fichier qui peut
+     être modifié.
+
+  3. Insérez et effacez du texte comme vous l'avez appris dans les leçons
+     précédentes.
+
+  4. Enregistrez le fichier avec les changements et sortez de Vim avec :
+       :wq <Entrée>
+
+  5. Si vous avez quitté vimtutor à l'étape 1, recommencez vimtutor et
+     déplacez-vous en bas vers le résumé suivant.
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-			     RÉSUMÉ DE LA LEÇON 1
+                             RÉSUMÉ DE LA LEÇON 1
+
 
   1. Le curseur se déplace avec les touches fléchées ou les touches hjkl.
-	 h (gauche)	j (bas)        k (haut)       l (droite)
+           h (gauche)      j (bas)      k (haut)      l (droite)
+
+  2. Pour démarrer Vim à l'invite du shell tapez :  vim FICHIER <Entrée>
 
-  2. Pour entrer dans Vim (à l'invite %) tapez:  vim FICHIER <Entrée>
+  3. Pour quitter Vim tapez :  <Échap> :q! <Entrée>  pour perdre tous les
+                                                     changements.
+                   OU tapez :  <Échap> :wq <Entrée>  pour enregistrer les
+                                                     changements.
 
-  3. Pour quitter Vim tapez:  <Échap> :q! <Entrée>  pour perdre tous les
-						    changements.
-		   OU tapez:  <Échap> :wq <Entrée>  pour enregistrer les
-						    changements.
+  4. Pour effacer un caractère sous le curseur tapez :  x
 
-  4. Pour effacer un caractère sous le curseur en mode Normal tapez:  x
+  5. Pour insérer ou ajouter du texte tapez :
+         i   tapez le texte à insérer avant le curseur   <Échap>
+         A   tapez le texte à ajouter après le curseur   <Échap>
 
-  5. Pour insérer du texte au niveau du curseur en mode Normal tapez:
-	 i   tapez le texte   <Échap>
+NOTE : Appuyer  <Échap>  vous place en mode Normal ou annule une commande
+       partiellement tapée dont vous ne voulez plus.
 
-NOTE: Appuyer  <Échap>	vous place en mode Normal ou annule une commande
-      partiellement tapée dont vous ne voudriez plus.
+Passez maintenant à la leçon 2.
 
-Passez maintenant à la Leçon 2.
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-			   Leçon 2.1 : EFFACEMENTS
+                       Leçon 2.1 : COMMANDES D'EFFACEMENT
 
 
-	    ** Tapez  dw  pour effacer jusqu'à la fin d'un mot. **
+                     ** Tapez  dw  pour effacer un mot. **
 
   1. Appuyez  <Échap>  pour être sûr d'être en mode Normal.
 
@@ -147,91 +210,139 @@
 
   3. Placez le curseur sur le début d'un mot qui a besoin d'être effacé.
 
-  4. Tapez  dw	pour faire disparaître ce mot.
+  4. Tapez  dw  pour faire disparaître ce mot.
 
-NOTE: Les lettres  dw  apparaîtront sur la dernière ligne de l'écran lors de
-      votre frappe. Si vous avez mal tapé quelque chose, appuyez <Échap> et
-      recommencez.
+NOTE : La lettre  d  apparaîtra sur la dernière ligne de l'écran lors de
+       votre frappe. Vim attend que vous tapiez  w . Si vous voyez un autre
+       caractère que  d  vous avez tapé autre chose ; appuyez <Échap> et
+       recommencez.
 
 ---> Il y a quelques drôle mots qui n'ont rien à faire papier sur cette ligne.
 
   5. Répétez les étapes 3 et 4 jusqu'à ce que la phrase soit correcte et allez
      à la Leçon 2.2.
 
+
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-			Leçon 2.2 : PLUS D'EFFACEMENTS
+                  Leçon 2.2 : PLUS DE COMMANDES D'EFFACEMENTS
 
 
-	  ** Tapez  d$	pour effacer jusqu'à la fin de la ligne. **
+          ** Tapez  d$  pour effacer jusqu'à la fin de la ligne. **
 
   1. Appuyez  <Échap>  pour être sûr d'être en mode Normal.
 
   2. Déplacez le curseur sur la ligne marquée ---> ci-dessous.
 
-  3. Déplacez le curseur jusqu'à la fin correcte de la ligne
-     (APRÈS le premier . ).
+  3. Déplacez le curseur jusqu'à la fin de la ligne correcte (APRÈS le
+     premier . ).
 
-  4. Tapez  d$	pour effacer jusqu'à la fin de la ligne.
+  4. Tapez  d$  pour effacer jusqu'à la fin de la ligne.
 
 ---> Quelqu'un a tapé la fin de cette ligne deux fois. cette ligne deux fois.
 
   5. Allez à la Leçon 2.3 pour comprendre ce qui se passe.
 
 
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+             Leçon 2.3 : À PROPOS DES OPÉRATEURS ET DES MOUVEMENTS
+
+
+  Plusieurs commandes qui changent le texte sont constituées d'un opérateur
+  et d'un mouvement. Le format pour une commande d'effacement avec l'opérateur
+  d  d'effacement est le suivant :
 
+        d   mouvement
+
+  Où :
+    d         - est l'opérateur d'effacement
+    mouvement - est le mouvement sur lequel agit l'opérateur (listés
+                ci-dessous)
+
+  Une courte liste de mouvements :
+    w - jusqu'au début du prochain mot, en EXCLUANT son premier caractère.
+    e - jusqu'à la fin du mot courant, en EXCLUANT son denier caractère.
+    $ - jusqu'à la fin de la ligne, en INCLUANT son dernier caractère.
+
+  Ainsi, taper  de  va effacer depuis le curseur jusqu'à la fin du mot.
+
+NOTE : Le seul appui d'un mouvement en mode Normal, sans commande, déplace le
+       curseur comme indiqué.
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-		   Leçon 2.3 : DES COMMANDES ET DES OBJETS
+            Leçon 2.4 : UTILISER UN QUANTIFICATEUR AVEC UN MOUVEMENT
 
 
-  Le format de la commande d'effacement  d  est le suivant:
+       ** Taper un nombre avant un mouvement le répète autant de fois. **
 
-	 [nombre]  d  objet	   OU	     d	[nombre]  objet
-  où:
-    nombre - est combien de fois exécuter la commande (optionnel, défaut: 1).
-    d - est la commande d'effacement.
-    objet - est ce sur quoi la commande va opérer (liste ci-dessous).
+  1. Déplacez le curseur au début de la ligne marquée ---> ci-dessous.
 
-  Une courte liste d'objets:
-    w - du curseur jusqu'à la fin du mot, y compris l'espace qui suit.
-    e - du curseur jusqu'à la fin du mot, SANS l'espace qui suit.
-    $ - du curseur jusqu'à la fin de la ligne.
+  2. Tapez  2w  pour déplacer le curseur de 2 mots vers l'avant.
 
-NOTE: Pour les aventureux, le seul appui d' objet  en mode Normal, sans
-      commande, déplace le curseur comme indiqué dans la liste des objets.
+  3. Tapez  3e  pour déplacer le curseur à la fin du troisième mot vers
+     l'avant.
 
+  4. Tapez  0  (zéro) pour déplacer au début de la ligne.
 
+  5. Répétez les étapes 2 et 3 avec des quantificateurs différents.
+
+---> Ceci est juste une ligne avec des mots où vous pouvez vous déplacer.
+
+  6. Déplacez-vous à la Leçon 2.5.
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-		 Leçon 2.4 : UNE EXCEPTION À 'COMMANDE-OBJET'
+            Leçon 2.5 : UTILISER UN QUANTIFICATEUR POUR EFFACER PLUS
+
+
+       ** Taper un nombre avec un opérateur le répète autant de fois. **
 
-	      ** Tapez	dd  pour effacer une ligne complète. **
+  Outre la combinaison de l'opérateur d'effacement avec un déplacement
+  mentionné ci-dessus, vous pouvez insérer un nombre (quantificateur)
+  pour effacez encore plus :
+       d   nombre   déplacement
+
+  1. Déplacez le curseur vers le premier mot en MAJUSCULES dans la ligne
+     marquée --->.
+
+  2. Tapez  d2w  pour effacer les deux mots en MAJUSCULES.
+
+  3. Répétez les étapes 1 et 2 avec des quantificateurs différents pour
+     effacer les mots suivants en MAJUSCULES à l'aide d'une commande.
+
+---> Cette ABC DE ligne FGHI JK LMN OP de mots est Q RS TUV nettoyée.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                       Leçon 2.6 : OPÉREZ SUR DES LIGNES
+
+
+              ** Tapez   dd   pour effacer une ligne complète. **
 
   Vu le nombre de fois où l'on efface des lignes complètes, les concepteurs
-  de Vi ont décidé qu'il serait plus facile de taper simplement deux d à la
-  suite pour effacer une ligne.
+  de Vi ont décidé qu'il serait plus facile de taper simplement deux  d
+  pour effacer une ligne.
 
   1. Placez le curseur sur la seconde ligne de la phrase ci-dessous.
-  2. Tapez  dd	pour effacer la ligne.
+  2. Tapez  dd  pour effacer la ligne.
   3. Maintenant allez à la quatrième ligne.
-  4. Tapez  2dd  (rappelez-vous, nombre-commande-objet) pour effacer les
-     deux lignes.
+  4. Tapez   2dd   pour effacer deux lignes.
+
+--->  1)  Les roses sont rouges,
+--->  2)  La boue c'est drôle,
+--->  3)  Les violettes sont bleues,
+--->  4)  J'ai une voiture,
+--->  5)  Les horloges donnent l'heure,
+--->  6)  Le sucre est doux
+--->  7)  Tout comme vous.
 
-      1)  Les roses sont rouges,
-      2)  La boue c'est drôle,
-      3)  Les violettes sont bleues,
-      4)  J'ai une voiture,
-      5)  Les horloges donnent l'heure,
-      6)  Le sucre est doux
-      7)  Tout comme vous.
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-			    Leçon 2.5 : L'ANNULATION
+                            Leçon 2.7 : L'ANNULATION
 
-	    ** Tapez  u  pour annuler les dernières commandes. **
-	       ** Tapez  U  pour récupérer toute une ligne. **
+
+            ** Tapez  u  pour annuler les dernières commandes. **
+               ** Tapez  U  pour récupérer toute une ligne. **
 
   1. Déplacez le curseur sur la ligne marquée ---> ci-dessous et placez-le sur
      la première erreur.
@@ -239,10 +350,10 @@
   3. Puis tapez  u  pour annuler la dernière commande exécutée.
   4. Cette fois, corrigez toutes les erreurs de la ligne avec la commande  x .
   5. Puis tapez un  U  majuscule pour remettre la ligne dans son état initial.
-  6. Puis tapez  u  deux-trois fois pour annuler le  U	et les commandes
+  6. Puis tapez  u  deux-trois fois pour annuler le  U  et les commandes
      précédentes.
-  7. Maintenant tapez  Ctrl-R  (maintenez la touche Ctrl enfoncée pendant que
-     vous appuyez sur R) deux-trois fois pour refaire les commandes (annuler
+  7. Maintenant tapez  CTRL-R  (maintenez la touche CTRL enfoncée pendant que
+     vous appuyez R) deux-trois fois pour refaire les commandes (annuler
      les annulations).
 
 ---> Coorrigez les erreurs suur ccette ligne et reemettez-les avvec 'annuler'.
@@ -250,57 +361,64 @@
   8. Ce sont des commandes très utiles. Maintenant, allez au résumé de la
      Leçon 2.
 
+
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-			     RÉSUMÉ DE LA LEÇON 2
+                             RÉSUMÉ DE LA LEÇON 2
+
+
+  1. Pour effacer du curseur jusqu'au mot suivant tapez :         dw
+
+  2. Pour effacer du curseur jusqu'à la fin d'une ligne tapez :   d$
 
+  3. Pour effacer toute une ligne tapez :                         dd
 
-  1. Pour effacer du curseur jusqu'à la fin d'un mot tapez:	dw
+  4. Pour répéter un déplacement ajoutez un quantificateur :      2w
 
-  2. Pour effacer du curseur jusqu'à la fin d'une ligne tapez:	d$
+  5. Le format d'une commande de changement est :
 
-  3. Pour effacer toute une ligne tapez:  dd
+       opérateur   [nombre]   déplacement
 
-  4. Le format d'une commande en mode Normal est:
+     Où :
+       opérateur   - est ce qu'il faut faire, comme  d  pour effacer.
+       [nombre]    - un quantificateur optionnel pour répéter le déplacement.
+       déplacement - déplace le long du texte à opérer, tel que  w  (mot),
+                     $ (jusqu'à la fin de ligne), etc.
 
-       [nombre]  commande  objet     OU     commande  [nombre]	objet
-     où:
-       nombre - est combien de fois répéter la commande
-       commande - est ce qu'il faut faire, par exemple	d  pour effacer
-       objet - est ce sur quoi la commande devrait agir, par exemple w (mot),
-	       $ (jusqu'à la fin de la ligne), etc.
+  6. Pour se déplacer au début de ligne, utilisez un zéro :  0
+
+  5. Pour annuler des actions précédentes, tapez :            u (u minuscule)
+     Pour annuler tous les changements sur une ligne tapez :  U (U majuscule)
+     Pour annuler l'annulation tapez :                        CTRL-R
 
-  5. Pour annuler des actions précédentes, tapez:	     u	(u minuscule)
-     Pour annuler tous les changements sur une ligne tapez:  U	(U majuscule)
-     Pour annuler l'annulation tapez:			     Ctrl-R
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-			     Leçon 3.1 : LE COLLAGE
+                             Leçon 3.1 : LE COLLAGE
 
 
-   ** Tapez  p	pour placer après le curseur ce qui vient d'être effacé. **
+   ** Tapez  p  pour placer après le curseur ce qui vient d'être effacé. **
 
-  1. Placez le curseur sur la première ligne du "poème" ci-dessous.
+  1. Placez le curseur sur la première ligne ci-dessous marquée --->.
 
-  2. Tapez  dd	pour effacer la ligne et la placer dans le tampon de Vim.
+  2. Tapez  dd  pour effacer la ligne et la placer dans un registre de Vim.
 
-  3. Déplacez le curseur sur la ligne qui PRÉCÈDE l'endroit où vous voulez
-     remettre la ligne effacée.
+  3. Déplacez le curseur sur la ligne c) au dessus où vous voulez remettre la
+     ligne effacée.
 
-  4. En mode Normal, tapez  p  pour remettre la ligne.
+  4. En mode Normal, tapez   p   pour remettre la ligne en dessous du curseur.
 
   5. Répétez les étapes 2 à 4 pour mettre toutes les lignes dans le bon ordre.
 
-     d) Et vous, qu'apprenez-vous ?
-     b) Les violettes sont bleues,
-     c) L'intelligence s'apprend,
-     a) Les roses sont rouges,
+---> d) Et vous, qu'apprenez-vous ?
+---> b) Les violettes sont bleues,
+---> c) L'intelligence s'apprend,
+---> a) Les roses sont rouges,
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-			 Leçon 3.2 : LE REMPLACEMENT
+                    Leçon 3.2 : LA COMMANDE DE REMPLACEMENT
 
 
- ** Tapez  r  et un caractère pour remplacer le caractère sous le curseur. **
+     ** Tapez  rx  pour remplacer un caractère sous le curseur par  x . **
 
   1. Déplacez le curseur sur la première ligne marquée ---> ci-dessous.
 
@@ -308,31 +426,32 @@
 
   3. Tapez  r  suivi du caractère qui doit corriger l'erreur.
 
-  4. Répétez les étapes 2 et 3 jusqu'à ce que la première ligne soit correcte.
+  4. Répétez les étapes 2 et 3 jusqu'à ce que la première ligne soit égale
+     à la seconde.
 
 --->  Quand cette ligne a été sauvie, quelqu'un a lait des faunes de frappe !
 --->  Quand cette ligne a été saisie, quelqu'un a fait des fautes de frappe !
 
   5. Maintenant, allez à la Leçon 3.3.
 
-NOTE: N'oubliez pas que vous devriez apprendre par la pratique, pas par
-      mémorisation.
+NOTE : N'oubliez pas que vous devriez apprendre par la pratique, pas par
+       mémorisation.
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-			  Leçon 3.3 : LE CHANGEMENT
+                     Leçon 3.3 : L'OPÉRATEUR DE CHANGEMENT
 
 
-	    ** Pour changer tout ou partie d'un mot, tapez  cw .**
+            ** Pour changer jusqu'à la fin d'un mot, tapez  ce .**
 
   1. Déplacez le curseur sur la première ligne marquée ---> ci-dessous.
 
-  2. Placez le curseur sur le u de luhko.
+  2. Placez le curseur sur le  u  de luhko.
 
-  3. Tapez  cw	et corrigez le mot (dans notre cas, tapez  'igne'.)
+  3. Tapez  ce  et corrigez le mot (dans notre cas, tapez  'igne'.)
 
-  4. Appuyez <Échap> et placez-vous sur l'erreur suivante (le premier
-     caractère qui doit être changé).
+  4. Appuyez <Échap> et placez-vous sur le prochain caractère qui doit
+     être changé).
 
   5. Répétez les étapes 3 et 4 jusqu'à ce que la première phrase soit
      identique à la seconde.
@@ -340,171 +459,189 @@
 ---> Cette luhko contient quelques myqa qui ont ricne d'être chantufip.
 ---> Cette ligne contient quelques mots qui ont besoin d'être changés.
 
-Notez que  cw  efface le mot et vous place ensuite en mode Insertion.
+Notez que  ce  efface le mot et vous place ensuite en mode Insertion.
+
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-		    Leçon 3.4 : PLUS DE CHANGEMENTS AVEC c
+                    Leçon 3.4 : PLUS DE CHANGEMENTS AVEC c
 
 
-    ** Le changement fonctionne avec les mêmes objets que l'effacement. **
+    ** L'opérateur de changement fonctionne avec les mêmes déplacements
+       que l'effacement. **
 
-  1. Le changement fonctionne de la même manière que l'effacement.
-     Le format est:
+  1. L'opérateur de changement fonctionne de la même manière que
+     l'effacement. Le format est :
 
-	 [nombre]  c  objet	   OU	     c	[nombre]  objet
+         c   [nombre]   déplacement
 
-  2. Les objets sont également les mêmes:  w (mot), $ (fin de ligne), etc.
+  2. Les déplacements sont identiques :  w (mot) et  $ (fin de ligne).
 
-  3. Déplacez-vous à la première ligne marquée ---> ci-dessous.
+  3. Déplacez-vous sur la première ligne marquée ---> ci-dessous.
 
   4. Placez le curseur sur la première erreur.
 
-  5. Tapez  c$	pour changer la fin de la ligne, rendez-là identique à la
-     seconde ligne, puis tapez <Échap>.
+  5. Tapez  c$  et tapez le reste de la ligne afin qu'elle soit identique
+     à la seconde ligne, puis tapez <Échap>.
 
 ---> La fin de cette ligne doit être rendue identique à la seconde.
----> La fin de cette ligne doit être corrigée avec la commande	c$ .
+---> La fin de cette ligne doit être corrigée avec la commande  c$ .
+
+NOTE :  Vous pouvez utilisez la touche Retour Arrière pour corriger les
+        erreurs lorsque vous tapez.
+
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-			     RÉSUMÉ DE LA LEÇON 3
+                             RÉSUMÉ DE LA LEÇON 3
 
 
-  1. Pour remettre du texte qui vient d'être effacé, tapez  p . Cela Place le
+  1. Pour remettre le texte qui a déjà été effacé, tapez  p . Cela Place le
      texte effacé APRÈS le curseur (si une ligne complète a été effacée, elle
      sera placée sous la ligne du curseur).
 
   2. Pour remplacer le caractère sous le curseur, tapez  r  suivi du caractère
      qui remplacera l'original.
 
-  3. Le changement vous permet de changer l'objet spécifié, du curseur jusqu'à
-     la fin de l'objet. Par exemple, tapez  cw	pour changer du curseur
-     jusqu'à la fin du mot,  c$  pour changer jusqu'à la fin d'une ligne.
+  3. L'opérateur de changement vous permet de changer depuis la position du
+     curseur jusqu'où le déplacement vous amène. Par exemple, tapez  ce
+     pour changer du curseur jusqu'à la fin du mot,  c$  pour changer jusqu'à
+     la fin d'une ligne.
 
-  4. Le format pour le changement est:
+  4. Le format pour le changement est :
 
-	 [nombre]  c  objet	   OU	     c	[nombre]  objet
+         c   [nombre]   déplacement
 
 Passez maintenant à la leçon suivante.
 
 
-
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-		   Leçon 4.1 : POSITION ET ÉTAT DU FICHIER
+               Leçon 4.1 : POSITION DU CURSEUR ET ÉTAT DU FICHIER
 
 
-  ** Tapez Ctrl-G pour afficher votre position dans le fichier et son état.
-     Utilisez Maj-G pour vous rendre à une ligne donnée du fichier. **
+  ** Tapez CTRL-G pour afficher votre position dans le fichier et son état.
+     Tapez  G  pour vous rendre à une ligne donnée du fichier. **
 
-  Note: Lisez toute cette leçon avant d'effectuer l'une des étapes !
+NOTE : Lisez toute cette leçon avant d'effectuer l'une des étapes !!
 
-  1. Maintenez enfoncée la touche Ctrl et appuyez sur  G .  Une ligne d'état
-     va apparaître en bas de l'écran avec le nom du fichier et le numéro de la
-     ligne où vous êtes.  Notez ce numéro, il servira lors de l'étape 3.
+  1. Maintenez enfoncée la touche CTRL et appuyez sur  g . On appelle cela
+     CTRL-G. Une ligne d'état va apparaître en bas de l'écran avec le nom
+     du fichier et le numéro de la ligne où vous êtes. Notez ce numéro, il
+     servira lors de l'étape 3.
 
-  2. Tapez  G  majuscule (Maj-G) pour vous rendre à la fin du fichier.
+NOTE : Vous pouvez peut-être voir le curseur en bas à droite de l'écran.
+       Ceci arrive quand l'option 'ruler' est activée (voir  :help 'ruler')
 
-  3. Tapez le numéro de la ligne où vous étiez suivi de Maj-G.	Cela vous
-     ramènera à la ligne où vous étiez au départ.
-     (Lorsque vous tapez les chiffres, ils n'apparaissent PAS à l'écran).
+  2. Tapez  G   pour vous déplacer à la fin du fichier.
+     Tapez  gg  pour vous déplacer au début du fichier.
 
-  4. Si vous vous sentez prêt à faire ceci, effectuez les étapes 1 à 3.
+  3. Tapez le numéro de la ligne où vous étiez suivi de   G . Cela vous
+     ramènera à la ligne où vous étiez au départ quand vous aviez appuyé
+     CTRL-G.
 
+  4. Si vous vous sentez prêt à faire ceci, effectuez les étapes 1 à 3.
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-			    Leçon 4.2 : LA RECHERCHE
+                            Leçon 4.2 : LA RECHERCHE
 
 
-	  ** Tapez  /  suivi d'un texte pour rechercher ce texte. **
+          ** Tapez  /  suivi d'un texte pour rechercher ce texte. **
 
   1. Tapez le caractère  /  en mode Normal. Notez que celui-ci et le curseur
      apparaissent en bas de l'écran, comme lorsque l'on utilise  : .
 
-  2. Puis tapez 'errreuur' <Entrée>.  C'est le mot que vous voulez rechercher.
-
-  3. Pour rechercher à nouveau le même texte, tapez simplement	n .
-     Pour rechercher le même texte dans la direction opposée, tapez  Maj-N .
+  2. Puis tapez 'errreuur' <Entrée>. C'est le mot que vous voulez rechercher.
 
-  4. Si vous voulez rechercher un texte vers le haut du fichier, utilisez  ?
-     à la place de  / .
+  3. Pour rechercher à nouveau le même texte, tapez simplement  n .
+     Pour rechercher le même texte dans la direction opposée, tapez  N .
 
----> erreur ne s'écrit pas "errreuur"; errreuur est une erreur.
+  4. Pour rechercher une phrase dans la direction opposée, utilisez  ?
+     au lieu de  / .
 
-Note: Quand la recherche atteint la fin du fichier, elle reprend au début.
+---> erreur ne s'écrit pas "errreuur" ; errreuur est une erreur.
 
+NOTE : Quand la recherche atteint la fin du fichier, elle reprend au début
+       sauf si l'option 'wrapscan' est déactivée.
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-	    Leçon 4.3 : RECHERCHE DES PARENTHÈSES CORRESPONDANTES
+            Leçon 4.3 : RECHERCHE DES PARENTHÈSES CORRESPONDANTES
 
 
-	   ** Tapez  %	pour trouver des ), ] ou } correspondants. **
+           ** Tapez  %  pour trouver des ), ] ou } correspondants. **
 
   1. Placez le curseur sur l'un des (, [ ou { de la ligne marquée --->
      ci-dessous.
 
   2. Puis tapez le caractère  % .
 
-  3. Le curseur devrait se placer sur la parenthèse correspondante.
+  3. Le curseur se déplacera sur la parenthèse out crochet correspondant.
 
-  4. Tapez  %  pour replacer le curseur sur l'autre parenthèse.
+  4. Tapez  %  pour replacer le curseur sur la parenthèse ou crochet
+     correspondant.
 
----> Voici ( une ligne de test contenant des (, des [ ] et des { } )).
-
-Note: Cette fonctionnalité est très utile lors du débogage d'un programme qui
-      contient des parenthèses déséquilibrées !
+  5. Déplacez le curseur sur un autre (,),[,],{ ou } et regardez ce que
+     fait  % .
 
+---> Voici ( une ligne de test contenant des (, des [ ] et des { } )).
 
+NOTE : Cette fonctionnalité est très utile lors du débogage d'un programme qui
+       contient des parenthèses déséquilibrées !
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-	       Leçon 4.4 : UNE MANIÈRE DE CORRIGER LES ERREURS
+                    Leçon 4.4 : LA COMMANDE DE SUBSTITUTION
 
 
-  ** Tapez  :s/ancien/nouveau/g  pour remplacer 'ancien' par 'nouveau'.  **
+    ** Tapez  :s/ancien/nouveau/g  pour remplacer 'ancien' par 'nouveau'. **
 
   1. Déplacez le curseur sur la ligne marquée ---> ci-dessous.
 
   2. Tapez  :s/lee/le <Entrée> . Notez que cette commande change seulement la
-     première occurence sur la ligne.
+     première occurrence de "lee" dans la ligne.
 
-  3. Puis tapez  :s/lee/le/g  qui ordonne de faire une substitution globale
-     sur la ligne. Cela change toutes les occurences sur la ligne
+  3. Puis tapez  :s/lee/le/g . L'ajout du drapeau  g  ordonne de faire une
+     substitution globale sur la ligne, et change toutes les occurrences de
+     "lee" sur la ligne.
 
----> lee meilleur moment pour regarder lees fleurs est pendant lee Printemps.
+---> lee meilleur moment pour regarder lees fleurs est pendant lee printemps.
 
-  4. Pour changer toutes les occurences d'un texte, entre deux lignes,
-     tapez  :#,#s/ancien/nouveau/g  où #,# sont les numéros des deux lignes.
-     Tapez  :%s/ancien/nouveau/g    pour changer chaque occurence dans tout
-				    le fichier.
+  4. Pour changer toutes les occurrences d'un texte, entre deux lignes,
+     tapez  :#,#s/ancien/nouveau/g  où #,# sont les numéros de lignes de la
+                                    plage où la substitution doit être faite.
+     Tapez  :%s/ancien/nouveau/g    pour changer toutes les occurrences dans
+                                    tout le fichier.
+     Tapez  :%s/ancien/nouveau/gc   pour trouver toutes les occurrences dans
+                                    tout le fichier avec une invite pour
+                                    confirmer ou infirmer chaque substitution.
 
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-			     RÉSUMÉ DE LA LEÇON 4
+                             RÉSUMÉ DE LA LEÇON 4
 
 
-  1. Ctrl-G  affiche votre position dans le fichier et l'état de celui-ci.
-     Maj-G  vous place à la fin du fichier. Un numéro de ligne suivi de Maj-G
-     vous place à cette ligne.
+  1. CTRL-G       affiche la position dans le fichier et l'état de celui-ci.
+               G  déplace à la fin du fichier.
+     nombre    G  déplace au numéro de ligne.
+              gg  déplace à la première ligne.
 
   2. Taper  /  suivi d'un texte recherche ce texte vers l'AVANT.
      Taper  ?  suivi d'un texte recherche ce texte vers l'ARRIÈRE.
-     Après une recherche tapez	n  pour trouver l'occurence suivante dans la
-     même direction ou	Maj-N  pour rechercher dans la direction opposée.
+     Après une recherche tapez  n  pour trouver l'occurrence suivante dans la
+     même direction ou  Maj-N  pour rechercher dans la direction opposée.
 
   3. Taper  %  lorsque le curseur est sur  (, ), [, ], { ou }  déplace
      celui-ci sur le caractère correspondant.
 
-  4. Pour remplacer le premier aa par bb sur une ligne tapez	 :s/aa/bb
-     Pour remplacer tous les aa par bb sur une ligne tapez	 :s/aa/bb/g
-     Pour remplacer du texte entre deux numéros de ligne tapez	 :#,#s/aa/bb/g
-     Pour remplacer toutes les occurences dans le fichier tapez  :%s/aa/bb/g
-     Pour demander une confirmation à chaque fois ajoutez 'c'	 :%s/aa/bb/gc
+  4. Pour remplacer le premier aa par bb sur une ligne tapez     :s/aa/bb
+     Pour remplacer tous les aa par bb sur une ligne tapez       :s/aa/bb/g
+     Pour remplacer du texte entre deux numéros de ligne tapez   :#,#s/aa/bb/g
+     Pour remplacer toutes les occurrences dans le fichier tapez :%s/aa/bb/g
+     Pour demander une confirmation à chaque fois ajoutez 'c'    :%s/aa/bb/gc
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-	      Leçon 5.1 : COMMENT EXÉCUTER UNE COMMANDE EXTERNE
+              Leçon 5.1 : COMMENT EXÉCUTER UNE COMMANDE EXTERNE
 
 
  ** Tapez  :!  suivi d'une commande externe pour exécuter cette commande. **
@@ -516,294 +653,386 @@
      n'importe quelle commande valide pour votre interpréteur (shell).
 
   3. Par exemple, tapez  ls  après le  !  et appuyez <Entrée>. Ceci affichera
-     la liste des fichiers du dossier courant, comme si vous aviez tapé la
-     commande à l'invite du shell. Utilisez  :!dir  si	:!ls  ne marche pas.
-
-Note:  Il est possible d'exécuter n'importe quelle commande externe de cette
-       manière.
+     la liste des fichiers du répertoire courant, comme si vous aviez tapé la
+     commande à l'invite du shell. Utilisez  :!dir  si  :!ls  ne marche pas.
 
-Note:  Toutes les commandes  :  doivent finir par la frappe de <Entrée>.
+NOTE :  Il est possible d'exécuter n'importe quelle commande externe de cette
+        manière, avec ou sans argument.
 
+NOTE :  Toutes les commandes  :  doivent finir par la frappe de <Entrée>.
+        À partir de maintenant, nous ne le mentionnerons plus.
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-	 Leçon 5.2 : PLUS DE DÉTAILS SUR L'ENREGISTREMENT DE FICHIERS
+         Leçon 5.2 : PLUS DE DÉTAILS SUR L'ENREGISTREMENT DE FICHIERS
 
 
- ** Pour enregistrer les changements faits au fichier, tapez  :w FICHIER . **
+ ** Pour enregistrer les changements faits au texte, tapez  :w FICHIER . **
 
-  1. Tapez  :!dir  ou  :!ls  pour avoir la liste des fichiers du dossier
-     courant. Vous savez déjà qu'il faut appuyer <Entrée> après cela.
+  1. Tapez  :!dir  ou  :!ls  pour avoir la liste des fichiers dans le
+     répertoire courant. Vous savez déjà qu'il faut appuyer <Entrée> après
+     cela.
 
   2. Choisissez un nom de fichier qui n'existe pas encore, par exemple TEST.
 
   3. Puis tapez  :w TEST  (où TEST est le nom que vous avez choisi).
 
-  4. Cela sauvegarde tout le fichier (Tutoriel Vim) sous le nom TEST.
-     Pour le vérifier, tapez  :!dir  pour revisualiser le contenu du dossier.
+  4. Cela enregistre tout le fichier (Tutoriel Vim) sous le nom TEST.
+     Pour le vérifier, tapez  :!dir  ou  :!ls  de nouveau pour revisualiser
+     votre répertoire.
 
-Notez que si vous quittez Vim et y retournez avec le fichier TEST, celui-ci
-sera une copie exacte du cours au moment où vous l'avez sauvé.
+NOTE : Si vous quittez Vim et le redémarrez de nouveau avec le fichier TEST,
+       celui-ci sera une copie exacte de ce cours au moment où vous l'avez
+       enregistré.
 
-  5. Maintenant, effacez le fichier en tapant (MS-DOS):    :!del TEST
-					   ou (Unix):	   :!rm TEST
+  5. Maintenant, effacez le fichier en tapant (MS-DOS) :   :!del TEST
+                                           ou (Unix) :     :!rm TEST
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-		    Leçon 5.3 : UN ENREGISTREMENT SÉLECTIF
+                  Leçon 5.3 : SÉLECTION DU TEXTE À ENREGISTRER
 
 
-     ** Pour enregistrer une portion de fichier, tapez	:#,#w FICHIER **
+                  ** Pour enregistrer une portion du fichier,
+                      tapez :   v  déplacement  :w FICHIER  **
 
-  1. Tapez à nouveau  :!dir  ou  :!ls  pour visualiser le contenu du dossier
-     courant et choisissez un nom de fichier, tel que TEST.
+  1. Déplacez le curseur sur cette ligne.
 
-  2. Déplacez le curseur jusqu'en haut de cette page et tapez  Ctrl-G  pour
-     connaître le numéro de cette ligne. NOTEZ CE NUMÉRO !
+  2. Appuyez  v  et déplacez le curseur vers la cinquième ligne plus bas.
+     Remarquez que le texte est en surbrillance.
 
-  3. Puis rendez-vous au bas de cette page et tapez à nouveau  Ctrl-G .
-     NOTEZ ÉGALEMENT CE NUMÉRO !
+  3. Appuyez  :  . En bas de l'écran  :'<,'> va apparaître.
 
-  4. Pour enregistrer SEULEMENT une portion d'un fichier, tapez  :#,#w TEST
-     où #,# sont les deux numéros que vous avez notés (haut,bas) et TEST est
-     le nom du fichier.
+  4. Tapez   w TEST  , où TEST est un nom de fichier qui n'existe pas.
+     Vérifiez que vous voyez  :'<,'>w TEST  avant de d'appuyer sur Entrée.
 
-  5. Une fois encore, vérifiez la présence du fichier avec  :!dir  mais NE
-     L'EFFACEZ PAS.
+  5. Vim va enregistrer les lignes sélectionnées dans le fichier TEST.
+     Utilisez  :!dir  ou  !ls pour le voir. Ne l'effacez pas encore !
+     Nous allons l'utiliser dans la leçon suivante.
 
+NOTE : L'appui de  v  démarre la sélection Visuelle. Vous pouvez déplacer le
+       curseur pour agrandir ou rétrécir la sélection. Puis vous pouvez
+       utiliser un opérateur pour faire quelque chose sur le texte. Par
+       exemple,  d  efface le texte.
 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-		 Leçon 5.4 : RÉCUPÉRATION ET FUSION DE FICHIERS
 
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                 Leçon 5.4 : RÉCUPÉRATION ET FUSION DE FICHIERS
 
-	** Pour insérer le contenu d'un fichier, tapez	:r FICHIER **
 
-  1. Tapez  :!dir  pour vérifier que votre fichier TEST est encore là.
+        ** Pour insérer le contenu d'un fichier, tapez  :r FICHIER **
 
-  2. Placez le curseur en haut de cette page.
+  1. Placez le curseur juste au dessus de cette ligne.
 
-NOTE:  Après avoir suivi l'étape 3 vous verrez à l'écran la Leçon 5.3.
-       Déplacez-vous vers le bas jusqu'à revenir à cette leçon.
+NOTE :  Après avoir exécuté l'étape 2 vous verrez du texte de la Leçon 5.3.
+        Puis déplacez vous vers le bas pour voir cette leçon à nouveau.
 
-  3. Maintenant récupérez votre fichier TEST en utilisant la commande  :r TEST
+  2. Maintenant récupérez votre fichier TEST en utilisant la commande  :r TEST
      où TEST est le nom de votre fichier.
-
-NOTE:  Le fichier que vous récupérez est placé là où se trouve le curseur.
+     Le fichier que vous récupérez est placé au dessous de la ligne du curseur.
 
   4. Pour vérifier que le fichier a bien été inséré, remontez et vérifiez
      qu'il y a maintenant deux copies de la Leçon 5.3, l'originale et celle
      contenue dans le fichier.
 
+NOTE :  Vous pouvez aussi lire la sortie d'une commande externe. Par exemple,
+        :r !ls  lit la sortie de la commande ls et la place sous la ligne du
+        curseur.
 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-			     RÉSUMÉ DE LA LEÇON 5
 
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                             RÉSUMÉ DE LA LEÇON 5
 
-  1.  :!commande  exécute une commande externe.
-
-      Quelques exemples pratiques:
-	(MS-DOS)	(Unix)
-	 :!dir		 :!ls		 affiche le contenu du dossier courant.
-	 :!del FICHIER   :!rm FICHIER    efface FICHIER.
 
-  2.  :w FICHIER  enregistre le fichier Vim courant sur le disque avec pour
-		  nom FICHIER.
+  1. :!commande  exécute une commande externe.
 
-  3.  :#,#w FICHIER  enregistre les lignes # à # dans le fichier FICHIER.
+     Quelques exemples pratiques :
+      (MS-DOS)        (Unix)
+       :!dir           :!ls          affiche le contenu du répertoire courant.
+       :!del FICHIER   :!rm FICHIER  efface FICHIER.
 
-  4.  :r FICHIER  récupère le fichier FICHIER et l'insère dans le fichier
-		  courant à partir de la position du curseur.
+  2. :w FICHIER  enregistre le fichier Vim courant sur le disque avec pour
+                  nom FICHIER.
 
+  3. v  déplacement  :w FICHIER sauvegarde les lignes de la sélection Visuelle
+     dans le fichier FICHIER.
 
+  4. :r FICHIER  récupère le contenu du fichier FICHIER et l'insère sous la
+     position du curseur.
 
+  5. :r !dir  lit la sortie de la commande dir et l'insère sous la position
+     du curseur.
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-			    Leçon 6.1 : L'OUVERTURE
+                      Leçon 6.1 : LA COMMANDE D'OUVERTURE
 
 
 ** Tapez  o  pour ouvrir une ligne sous le curseur et y aller en Insertion. **
 
   1. Déplacez le curseur sur la ligne marquée ---> ci-dessous.
 
-  2. Tapez  o  (minuscule) pour ouvrir une ligne SOUS le curseur et vous y
-     placer en mode Insertion.
+  2. Tapez la lettre   o   minuscule pour ouvrir une ligne SOUS le curseur et
+     vous y placer en mode Insertion.
 
-  3. Puis recopiez la ligne marquée ---> et appuyez sur <Échap> pour quitter
-     le mode Insertion.
+  3. Puis tapez du texte et appuyez <Échap> pour sortir du mode Insertion.
 
----> En tapant	o  le curseur se met sur la ligne ouverte, en mode Insertion.
+---> En tapant  o  le curseur se met sur la ligne ouverte, en mode Insertion.
 
   4. Pour ouvrir une ligne au DESSUS du curseur, tapez simplement un  O
      majuscule, plutôt qu'un  o  minuscule. Faites un essai sur la ligne
      ci-dessous.
-Ouvrez une ligne ci-dessus en tapant MAJ-O lorsque le curseur est ici.
 
+---> Ouvrez une ligne ci-dessus en tapant O lorsque le curseur est ici.
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-			      Leçon 6.2 : L'AJOUT
+                        Leçon 6.2 : LA COMMANDE D'AJOUT
+
+
+            ** Tapez  a  pour insérer du texte APRÈS le curseur. **
 
+  1. Placez le curseur au début de la ligne marquée ---> ci-dessous.
 
-	    ** Tapez  a  pour insérer du texte APRÈS le curseur. **
+  2. Appuyez  e  jusqu'à ce que le curseur soit sur la fin de  li .
 
-  1. Placez le curseur à la fin de la première ligne marquée ---> ci-dessous
-     en tapant	$  en mode Normal.
+  3. Appuyez  a  (minuscule) pour ajouter du texte APRÈS le curseur.
 
-  2. Tapez un  a  (minuscule) pour ajouter du texte APRÈS le caractère situé
-     sous le curseur. ( A  majuscule ajoute du texte à la fin de la ligne).
+  4. Complétez le mot comme dans la ligne dessous. Appuyez <Échap> pour
+     sortir du mode Insertion.
 
-Note: Ceci évite de taper  i , le dernier caractère, le texte à insérer,
-      <Échap>, curseur-à-droite, et finalement	x , juste pour ajouter du
-      texte à la fin d'une ligne !
+  5. Utilisez  e  pour vous déplacer vers le mot incomplet suivant et
+     répétez les étapes 3 et 4.
 
-  3. Maintenant, complétez la première ligne. Notez également que l'ajout est
-     identique au mode Insertion, hormis la position où le texte est inséré.
+---> Cette li vous perm de pratiq l'ajout de t dans une ligne.
+---> Cette ligne vous permet de pratiquer l'ajout de texte dans une ligne.
 
----> Cette ligne vous permet de pratiquer
----> Cette ligne vous permet de pratiquer l'ajout de texte en fin de ligne.
+NOTE :  a, i, A vont tous dans le même mode Insertion, la seule différence
+        est l'endroit où les caractères sont insérés.
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-		Leçon 6.3 : UNE AUTRE VERSION DU REMPLACEMENT
+                   Leçon 6.3 : UNE AUTRE MANIÈRE DE REMPLACER
 
 
        ** Tapez un  R  majuscule pour remplacer plus d'un caractère. **
 
   1. Déplacez le curseur sur la première ligne marquée ---> ci-dessous.
+     Déplacez le curseur sur le début du premier xxx .
 
-  2. Placez le curseur au début du premier mot qui diffère de la seconde ligne
-     marquée ---> (le mot 'celle').
+  2. Appuyez maintenant  R  et tapez le nombre dessous dans la deuxième ligne,
+     de manière à remplacer le xxx .
 
-  3. Puis tapez  R  et remplacez le reste du texte de la première ligne en
-     tapant par dessus celui-ci, de manière à rendre la première ligne
-     identique à la seconde.
+  3. Appuyez <Échap> pour quitter le mode Remplacement. Notez que le reste de
+     la ligne demeure inchangé.
+
+  4. Répétez les étapes pour remplacer les xxx restants.
+
+
+---> L'ajout de 123 à xxx donne xxx.
+---> L'ajout de 123 à 456 donne 579.
+
+NOTE : Le mode Remplacement est comme le mode Insertion, mais tous les
+       caractères tapés effacent un caractère existant.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                     Leçon 6.4 : COPIER ET COLLER DU TEXTE
+
+
+   ** Utilisez l'opérateur  y  pour copier du texte et  p  pour le coller **
+
+  1. Allez à la ligne marquée ---> ci-dessous et placez le curseur après "a)".
 
----> Pour rendre cette ligne identique à celle du dessous utilisez le clavier.
----> Pour rendre cette ligne identique à la seconde, tapez R et la correction.
+  2. Démarrez le mode Visuel avec  v  et déplacez le curseur juste devant
+     "premier".
 
-  4. Notez que lorsque vous appuyez <Échap>, le texte qui n'a pas encore été
-     remplacé reste.
+  3. Tapez  y  pour copier le texte en surbrillance.
 
+  4. Déplacez la curseur à la fin de la ligne suivante :   j$
 
+  5. Tapez  p  pour coller le texte. Puis tapez :  un second <Échap> .
+
+  6. Utilisez le mode Visuel pour sélectionner "élément", copiez le avec  y  ,
+     déplacez vous à la fin de la ligne suivant avec  j$  et collez le texte
+     à cet endroit avec  p .
+
+--->  a) ceci est le premier élément.
+      b)
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-		       Leçon 6.4 : RÉGLAGE DES OPTIONS
+                       Leçon 6.4 : RÉGLAGE DES OPTIONS
 
 
-  ** Réglons une option afin que la recherche et la substitution ignorent la
-     casse des caractères. **
+    ** Réglons une option afin que la recherche et la substitution ignore la
+       casse des caractères. **
 
-  1. Recherchez 'ignore' en tapant  /ignore .
+  1. Recherchez 'ignore' en tapant :   /ignore <Entrée>
      Répétez ceci plusieurs fois en utilisant la touche  n .
 
-  2. Activez l'option 'ic' (Ignorer casse) en tapant  :set ic .
+  2. Activez l'option 'ic' (ignorer casse) en tapant  :set ic .
 
-  3. Puis poursuivez votre recherche en utilisant  n .
-     Répétez cette recherche plusieurs fois avec la touche  n .
+  3. Puis cherchez 'ignore' de nouveau en utilisant  n .
+     Remarquez que Ignore et IGNORE sont maintenant aussi trouvés.
 
   4. Activez les options 'hlsearch' et 'incsearch' avec  :set hls is .
 
   5. Puis recommencez une recherche, et faites bien attention à ce qui se
-     produit:  /ignore .
+     produit :  /ignore <Entrée>
 
-  6. Pour interrompre la mise en surbrillance des résultats, tapez:
-     :nohlsearch
+  6. Pour désactiver 'ignorer casse', entrez :  :set noic
 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-			     RÉSUMÉ DE LA LEÇON 6
+NOTE : Pour enlever la surbrillance des résultats, entrez :   :nohlsearch
 
+NOTE : Si vous voulez ignorer la casse uniquement pour une recherche, utilisez
+       \c  dans la phrase :   /ignore\c  <Entrée>
 
-  1. Taper  o  ouvre une ligne SOUS le curseur et y place celui-ci en mode
-     Insertion. Taper un  O  majuscule ouvre une ligne au DESSUS de la ligne
-     où se trouve le curseur.
 
-  2. Tapez un  a  pour insérer du texte APRÈS le caractère où se trouve le
-     curseur. Taper un	A  majuscule ajoute du texte automatiquement à la fin
-     de la ligne.
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                             RÉSUMÉ DE LA LEÇON 6
 
-  3. Taper un  R  majuscule active le mode Remplacement jusqu'à ce que la
-     touche  <Échap>  soit appuyée pour en sortir.
 
-  4. Taper  :set xxx  active l'option 'xxx'.
+  1. Taper  o  ouvre une ligne SOUS le curseur et démarre le mode Insertion.
+     Taper  O  ouvre une ligne au DESSUS du curseur.
 
+  2. Taper  a  pour insérer du texte APRÈS le curseur.
+     Taper  A  pour insérer du texte après la fin de ligne.
 
+  3. Taper  e  déplace à la fin du mot.
 
+  4. Taper  y  copie du texte,  p  le colle.
 
+  5. Taper  R  majuscule active le mode Remplacement jusqu'à ce qu' <Échap>
+     soit appuyé.
 
+  6. Taper  ":set xxx"  active l'option "xxx". Quelques options sont :
+        'ic'  'ingnorecase' pour ignorer la casse lors des recherches.
+        'is'  'incsearch'   pour montrer les appariements partiels.
+        'hls' 'hlsearch'    pour mettre en surbrillance les appariements.
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-		     Leçon 7 : ACCÉDER À L'AIDE EN LIGNE
+                         Leçon 7.1 : OBTENIR DE L'AIDE
 
-		  ** Utiliser le système d'aide en ligne. **
 
-  Vim a un système complet d'aide en ligne.  Pour y accéder, essayez l'une de
-  ces trois méthodes:
-	- appuyez la touche <Help> (si vous en avez une)
-	- appuyez la touche <F1> (si vous en avez une)
-	- tapez  :help <Entrée>
+                  ** Utiliser le système d'aide en ligne. **
 
-  Tapez  :q <Entrée>  pour fermer la fenêtre d'aide.
+  Vim a un système complet d'aide en ligne. Pour y accéder, essayez l'une de
+  ces trois méthodes :
+        - appuyez la touche <Help> (si vous en avez une)
+        - appuyez la touche <F1> (si vous en avez une)
+        - tapez  :help <Entrée>
+
+
+  Lisez le texte dans la fenêtre d'aide pour savoir comment fonctionne l'aide.
+  Tapez  CTRL-W CTRL-W   pour sauter d'une fenêtre à l'autre.
+  Tapez  :q <Entrée>     pour fermer la fenêtre d'aide.
 
   Vous pouvez accéder à l'aide sur à peu près n'importe quel sujet en donnant
   des arguments à la commande  :help . Essayez par exemple (n'oubliez pas
-  d'appuyer sur <Entrée>):
+  d'appuyer sur <Entrée>) :
 
-	:help w
-	:help c_<T
-	:help insert-index
-	:help user-manual
+        :help w
+        :help c_CTRL-D
+        :help c_<T
+        :help insert-index
+        :help user-manual
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-		    Leçon 8 : CRÉER UN SCRIPT DE DÉMARRAGE
+                    Leçon 7.2 : CRÉER UN SCRIPT DE DÉMARRAGE
 
-		  ** Activer les fonctionnalités de Vim. **
+                   ** Activer les fonctionnalités de Vim. **
 
   Vim a beaucoup plus de fonctionnalités que Vi, mais la plupart de celles-ci
-  sont désactivées par défaut.  Pour commencer à les utiliser, vous devez
+  sont désactivées par défaut. Pour commencer à les utiliser, vous devez
   créer un fichier "vimrc".
 
-  1. Commencez à éditer le fichier "vimrc". Ceci dépend de votre système:
-	:edit ~/.vimrc			pour Unix
-	:edit $VIM/_vimrc		pour MS-Windows
+  1. Commencez à éditer le fichier "vimrc". Ceci dépend de votre système :
+        :edit ~/.vimrc         pour Unix
+        :edit $VIM/_vimrc      pour MS-Windows
 
-  2. Intégrez maintenant le texte du fichier "vimrc" d'exemple:
-	:read $VIMRUNTIME/vimrc_example.vim
+  2. Lisez maintenant le fichier d'exemple "vimrc" :
+        :r $VIMRUNTIME/vimrc_example.vim
 
-  3. Enregistrez le fichier avec:
-	:write
+  3. Enregistrez le fichier avec :
+        :w
 
-  La prochaine fois que vous démarrerez Vim, le surlignage syntactique sera
-  activé. Vous pouvez ajouter tous vos réglages préférés dans ce fichier.
+  La prochaine fois que vous démarrerez Vim, la coloration syntaxique sera
+  activée. Vous pouvez ajouter tous vos réglages préférés dans ce fichier
+  "vimrc". Pour plus d'informations, tapez  :help vimrc-intro
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                            Leçon 7.3 : COMPLÈTEMENT
+
+
+          ** Complètement de ligne de commande avec CTRL-D et <TAB> **
+
+  1. Mettez Vim soit en mode non compatible :   set nocp
+
+  2. Regardez quels fichiers existent dans le répertoire :  !ls  ou  !dir
+
+  3. Tapez le début d'une commande :   :e
+
+  4. Appuyez  CTRL-D  et Vim affichera une liste de commandes qui commencent
+     par "e".
+
+  5. Appuyez  <TAB>  et Vim complétera le nom de la commande :  ":edit"
+
+  6. Ajoutez maintenant un espace et le début d'un fichier existant :
+     :edit  FIC
+
+  7  Appuyez  <TAB>. Vim va compléter le nom (s'il est unique).
+
+NOTE : Le complètement fonctionne pour de nombreuse commandes. Essayez
+       d'appuyer CTRL-D et <TAB>. C'est utile en particulier pour  :help .
 
-  Ceci conclut le Tutoriel Vim.  Le but était de vous donner un bref aperçu de
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                              RÉSUMÉ DE LA LEÇON 7
+
+
+  1. Tapez  :help  ou appuyez <F1> ou <Aide> pour ouvrir la fenêtre d'aide.
+
+  2. Tapez  :help cmd  pour trouver l'aide sur  cmd .
+
+  3. Tapez  CTRL-W CTRL-W  pour sauter à une autre fenêtre.
+
+  4. Tapez  :q  pour fermer la fenêtre d'aide.
+
+  5. Créez un script de démarrage vimrc pour conserver vos réglages préférés.
+
+  6. Quand vous tapez une commande  :  appuyez CTRL-D pour voir les
+     complètements possibles. Appuyez <TAB> pour utiliser un complètement.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  Ceci conclut le Tutoriel Vim. Le but était de vous donner un bref aperçu de
   l'éditeur Vim, juste assez pour vous permettre d'utiliser l'éditeur
-  relativement facilement.  Il est loin d'être complet, vu que Vim a beaucoup
-  beaucoup plus de commandes.  Un Manuel de l'utilisateur est disponible en
-  anglais:  :help user-manual .
+  relativement facilement. Il est loin d'être complet, vu que Vim a beaucoup
+  beaucoup plus de commandes. Un Manuel de l'utilisateur est disponible en
+  anglais :  :help user-manual .
 
   Pour continuer à découvrir et à apprendre Vim, il existe un livre traduit en
   français. Il parle plus de Vi que de Vim, mais pourra vous être utile.
-	L'éditeur Vi - Collection Précis et concis - par Arnold Robbins
-	Éditeur: O'Reilly France
-	ISBN: 2-84177-102-4
+        L'éditeur Vi - Collection Précis et concis - par Arnold Robbins
+        Éditeur : O'Reilly France
+        ISBN : 2-84177-102-4
 
   Deux livres en anglais sont également mentionnés dans la version originale
   de ce tutoriel, dont un qui traite spécifiquement de Vim. Merci de vous y
-  référer si vous êtes intéressé.
+  référer si vous êtes intéressés.
 
   Ce tutoriel a été écrit par Michael C. Pierce et Robert K. Ware de l'École
   des Mines du Colorado et reprend des idées fournies par Charles Smith,
-  Universté d'État du Colorado.  E-mail: [email protected].
+  Université d'État du Colorado. E-mail : [email protected].
 
   Modifié pour Vim par Bram Moolenar.
-
   Traduit en Français par Adrien Beau, en avril 2001.
-  E-mail:	[email protected]
-  Last Change:	2003 May 29
+  Dernières mises à jour par Dominique Pellé.
+
+  E-mail :      [email protected]
+  Last Change : 2008 Nov 23
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
diff -Nur runtime.patched/tutor/tutor.hu runtime/tutor/tutor.hu
--- runtime.patched/tutor/tutor.hu	2006-10-09 12:37:11.000000000 -0700
+++ runtime/tutor/tutor.hu	2008-11-06 08:04:54.000000000 -0800
@@ -1,5 +1,5 @@
 ===============================================================================
-=    � d v � z � l j � k   a   V I M   T u t o r b a n  -    1.5-�s  verzi� ===
+== � d v � z � l j � k   a   V I M - o k t a t � b a n  -    1.5-�s  verzi�  ==
 ===============================================================================
 
      A Vim egy nagyon hat�kony szerkeszt�, amelnyek rengeteg utas�t�sa
@@ -38,7 +38,7 @@
   2. Tartsa lenyomva a lefel�t (j), akkor ism�tl�dik!
 ---> Most tudja, hogyan mehet a k�vetkez� leck�re.
 
-  3. A lefel� fomb haszn�lat�val menjen a 1.2. leck�re!
+  3. A lefel� gomb haszn�lat�val menjen a 1.2. leck�re!
 
 Megj: Ha nem biztos benne, mit nyomott meg, nyomja meg az <ESC>-et, hogy
       norm�l m�dba ker�lj�n, �s ism�telje meg a parancsot!
@@ -60,8 +60,8 @@
      Ha menteni szeretn� a v�ltoz�sokat �s kil�pni, �rja:
 				:wq  <ENTER>
 
-  3. Amikor a shell promptot l�tja, �rja be a parancsot, amely ebbe a
-     tutorba hozza:
+  3. Amikor a shell promptot l�tja, �rja be a parancsot, amely ebbe az
+     oktat�ba hozza:
      Ez val�sz�n�leg:	vimtutor <ENTER>
      Norm�lis esetben ezt �rn�:	vim tutor.hu <ENTER>
 
@@ -230,7 +230,7 @@
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-			 2.5.  lecke: A VISSZAVON�S (UNDO) PARANCS
+		   2.5.  lecke: A VISSZAVON�S (UNDO) PARANCS
 
 
 ** u g�pel�s�vel visszavonhat� az utols� parancs, U az eg�sz sort helyre�ll�tja. **
@@ -245,9 +245,9 @@
   7. CTRL-R (CTRL gomb lenyom�sa mellett �ss�n R-t) p�rszor csin�lja �jra a
      visszavont parancsokat (redo)!
 
----> Jav��tsd a hhib�kaat ebbben a sooorban majd �ll�tsa visszaaa az eredetit.
+---> Jav��tsa a hhib�kaat ebbben a sooorban majd �ll�tsa visszaaa az eredetit.
 
-  8. Ezek nagyon hasznos parancsok. Most ugarjon a 2. lecke �sszefoglal�j�ra.
+  8. Ezek nagyon hasznos parancsok. Most ugorjon a 2. lecke �sszefoglal�j�ra.
 
 
 
@@ -257,7 +257,7 @@
 
   1. T�rl�s a kurzort�l a sz� v�g�ig:    dw
 
-  2. T�rl�s a kurzort�l a sz� v�g�ig:    d$
+  2. T�rl�s a kurzort�l a sor v�g�ig:    d$
 
   3. Eg�sz sor t�rl�se:    dd
 
@@ -275,7 +275,7 @@
      Visszavon�sok visszavon�sa:	     CTRL-R
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-			 3.1.  lecke: A PUT PARANCS
+		3.1.  lecke: A BEILLESZT�S (PUT) PARANCS
 
 
   ** p  le�t�s�vel az utols�nak t�r�ltet a kurzor ut�n illeszhetj�k. **
@@ -284,8 +284,8 @@
 
   2. dd le�t�s�vel t�r�lj�k a sort �s elt�rol�dik a Vim puffer�ben.
 
-  3. Mozgassuk a kurzort AF�L� a sor f�l�, ahov� mozgatni szeretn�nk a
-     t�r�lt sort.
+  3. Mozgassuk a kurzort azel�tt a  sor EL�TTI sorba, ahov� mozgatni
+     szeretn�nk a t�r�lt sort.
 
   4. Norm�l m�dban �rjunk  p   bet�t a t�r�lt sor beilleszt�s�hez.
 
@@ -299,7 +299,7 @@
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-		       3.2.  lecke: A REPLACE PARANCS
+		       3.2.  lecke: AZ �T�R�S (REPLACE) PARANCS
 
 
 ** r  �s  a karakterek le�t�s�vel a kurzor alatti karaktert megv�ltoztatjuk. **
@@ -321,7 +321,7 @@
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-			3.3.  lecke: A CHANGE PARANCS
+			3.3.  lecke: A CSERE (CHANGE) PARANCS
 
 
 	   ** A sz� egy r�sz�nek megv�ltoztat�s�hoz �rjuk:  cw . **
@@ -415,7 +415,7 @@
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-			4.2.  lecke: A SEARCH PARANCS
+			4.2.  lecke: A KERES�S (SEARCH) PARANCS
 
 
   ** / majd a k�v�nt kifejez�s be�r�s�val kereshetj�k meg a kifejez�st. **
@@ -459,7 +459,7 @@
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-		      4.4.  lecke: A HIB�K KIJAV�T�S�NAK EGY M�DJA
+		  4.4.  lecke: A HIB�K KIJAV�T�S�NAK EGY M�DJA
 
 
     ** :s/�j/r�gi/g beg�pel�s�vel az '�j'-ra cser�lj�k a 'r�gi'-t. **
@@ -470,10 +470,10 @@
      sorban.
 
   3. Most ezt �rjuk:	 :s/eggy/egg/g	   amely glob�lisan helyettes�t
-     a sorban.
+     a sorban, azaz minden el�fordul�st.
      Ez a sorban minden el�fordul�st helyettes�t.
 
----> eggy hegy meggy, szembe j�n eggy m�sik heggy.
+---> eggy heggy meggy, szembe j�n eggy m�sik heggy.
 
   4. K�t sor k�z�tt a karaktersor minden el�fordul�s�nak helyettes�t�se:
      :#,#s/r�gi/�j/g    ahol #,# a k�t sor sorsz�ma.
@@ -530,7 +530,7 @@
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-		      5.2.  lecke: B�VEBBEN A F�JLOK �R�S�R�L
+		 5.2.  lecke: B�VEBBEN A F�JLOK �R�S�R�L
 
 
      ** A f�jlok v�ltoz�sait �gy �rhatjuk ki  :w F�JLN�V. **
@@ -542,12 +542,12 @@
 
   3. �rja:	:w TESZT   (ahol TESZT a v�lasztott f�jln�v)!
 
-  4. Ez elmenti a teljes f�jlt (a Vim Tutort) TESZT n�ven.
+  4. Ez elmenti a teljes f�jlt (a Vim oktat�j�t) TESZT n�ven.
      Ellen�rz�sk�pp �rjuk ism�t    :!dir   hogy l�ssuk a k�nyvt�rat!
      (Felfel� gombbal : ut�n az el�z� utas�t�sok visszahozhat�ak.)
 
 Megj: Ha �n kil�pne a Vimb�l �s �s visszat�rne a TESZT f�jln�vvel, akkor a
-      f�jl a tutor ment�skori pontos m�solata lenne.
+      f�jl az oktat� ment�skori pontos m�solata lenne.
 
   5. T�vol�tsa el a f�jlt  (MS-DOS):	:!del TESZT
 			vagy (Unix):	:!rm TESZT
@@ -626,7 +626,7 @@
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-			 6.1.  lecke: A OPEN PARANCS
+		   6.1.  lecke: A MEGNYIT�S (OPEN) PARANCS
 
 
 ** o  be�r�s�val nyithat egy �j sort a kurzor alatt �s v�lthat besz�r� m�dba **
@@ -684,16 +684,17 @@
 
   1. Mozgassuk a kurzort az els� ---> kezdet� sorra!
 
-  2. Place the cursor at the beginning of the first word that is different
-     from the second line marked ---> (the word 'last').
+  2. Helyezze a kurzort az els� sz� elej�re amely elt�r a m�sodik
+     ---> kezdet� sor tartalm�t�l (a 'az utols�val' r�szt�l).
 
-  3. Now type  R  and replace the remainder of the text on the first line by
-     typing over the old text to make the first line the same as the second.
+  3. Nyomjon R karaktert �s �rja �t a sz�veg marad�k�t az els� sorban
+     �gy, hogy a  k�t sor egyez� legyen.
 
----> To make the first line the same as the last on this page use the keys.
----> To make the first line the same as the second, type R and the new text.
+---> Az els� sort tegye azonoss� az utols�val: haszn�lja a gombokat.
+---> Az els� sort tegye azonoss� a m�sodikkal: �rjon R-t �s az �j sz�veget.
 
-  4. Note that when you press <ESC> to exit, any unaltered text remains.
+  4. Jegyezz�k meg, ha <ESC>-et nyomok, akkor a v�ltozatlanuk hagyott
+     sz�vegek v�ltozatlanok maradnak.
 
 
 
@@ -726,16 +727,16 @@
 			       6. LECKE �SSZEFOGLAL�JA
 
 
-  1. Typing  o	opens a line BELOW the cursor and places the cursor on the open
-     line in Insert mode.
-     Typing a capital  O  opens the line ABOVE the line the cursor is on.
+  1. o	be�r�s�val �j sort nyitunk meg a sor ALATT �s a kurzor az �j
+     sorban lesz besz�r�s-m�dban.
+     Nagy  O  a sor FELETT nyit �j sort, �s oda ker�l a kurzor.
 
-  2. Type an  a  to insert text AFTER the character the cursor is on.
-     Typing a capital  A  automatically appends text to the end of the line.
+  2. a  be�r�s�val az aktu�lis karaktert�l UT�N (jobbra) sz�rhatunk be sz�veget.
+     Nagy A  automatikusan a sor legv�g�hez adja hozz� a sz�veget.
 
-  3. Typing a capital  R  enters Replace mode until  <ESC>  is pressed to exit.
+  3. A nagy  R  be�t�s�vel �t�r� (replace) m�dba ker�l�nk  <ESC> lenyom�s�ig.
 
-  4. Typing ":set xxx" sets the option "xxx"
+  4. ":set xxx" be�r�s�val az "xxx" opci� �ll�that� be.
 
 
 
@@ -746,7 +747,7 @@
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-		       7. lecke: ON-LINE HELP PARANCSOK
+		     7. lecke: AZ ON-LINE S�G� PARANCSAI
 
 
 		    ** Az online s�g�rendszer haszn�lata **
@@ -801,8 +802,9 @@
   tud�knak: ":help user-manual". (egyel�re nem tud magyarul)
 
   Tov�bbi magyar olvasnival�k �rhet�ek el az al�bbi oldalr�l.
-  http://ubuntu.hu/index.php?title=Vim
+  http://wiki.hup.hu/index.php/Vim
 
+  Angol olvasm�nyok:
   For further reading and studying, this book is recommended:
 	Vim - Vi Improved - by Steve Oualline
 	Publisher: New Riders
@@ -816,8 +818,13 @@
   It is a good book to get to know almost anything you want to do with Vi.
   The sixth edition also includes information on Vim.
 
-  This tutorial was written by Michael C. Pierce and Robert K. Ware,
-  Colorado School of Mines using ideas supplied by Charles Smith,
-  Colorado State University.  E-mail: [email protected].
+  Ezt az oktat�t Michael C. Pierce �s Robert K. Ware �rta, a Colorado
+  School of Mines dolgoz�i Charles Smith (Colorado State University)
+  t�mogat�s�val.
+
+  E-mail: [email protected].
+
+  A Vimhez idom�totta Bram Moolenaar.
+
+  Magyar�totta: Horv�th �rp�d <[email protected]>, 2006-2008
 
-  Modified for Vim by Bram Moolenaar.
diff -Nur runtime.patched/tutor/tutor.hu.cp1250 runtime/tutor/tutor.hu.cp1250
--- runtime.patched/tutor/tutor.hu.cp1250	2008-01-18 11:51:48.000000000 -0800
+++ runtime/tutor/tutor.hu.cp1250	2008-11-06 08:05:19.000000000 -0800
@@ -1,5 +1,5 @@
 ===============================================================================
-=    � d v � z � l j � k   a   V I M   T u t o r b a n  -    1.5-�s  verzi� ===
+== � d v � z � l j � k   a   V I M - o k t a t � b a n  -    1.5-�s  verzi�  ==
 ===============================================================================
 
      A Vim egy nagyon hat�kony szerkeszt�, amelnyek rengeteg utas�t�sa
@@ -38,7 +38,7 @@
   2. Tartsa lenyomva a lefel�t (j), akkor ism�tl�dik!
 ---> Most tudja, hogyan mehet a k�vetkez� leck�re.
 
-  3. A lefel� fomb haszn�lat�val menjen a 1.2. leck�re!
+  3. A lefel� gomb haszn�lat�val menjen a 1.2. leck�re!
 
 Megj: Ha nem biztos benne, mit nyomott meg, nyomja meg az <ESC>-et, hogy
       norm�l m�dba ker�lj�n, �s ism�telje meg a parancsot!
@@ -60,8 +60,8 @@
      Ha menteni szeretn� a v�ltoz�sokat �s kil�pni, �rja:
 				:wq  <ENTER>
 
-  3. Amikor a shell promptot l�tja, �rja be a parancsot, amely ebbe a
-     tutorba hozza:
+  3. Amikor a shell promptot l�tja, �rja be a parancsot, amely ebbe az
+     oktat�ba hozza:
      Ez val�sz�n�leg:	vimtutor <ENTER>
      Norm�lis esetben ezt �rn�:	vim tutor.hu <ENTER>
 
@@ -230,7 +230,7 @@
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-			 2.5.  lecke: A VISSZAVON�S (UNDO) PARANCS
+		   2.5.  lecke: A VISSZAVON�S (UNDO) PARANCS
 
 
 ** u g�pel�s�vel visszavonhat� az utols� parancs, U az eg�sz sort helyre�ll�tja. **
@@ -245,9 +245,9 @@
   7. CTRL-R (CTRL gomb lenyom�sa mellett �ss�n R-t) p�rszor csin�lja �jra a
      visszavont parancsokat (redo)!
 
----> Jav��tsd a hhib�kaat ebbben a sooorban majd �ll�tsa visszaaa az eredetit.
+---> Jav��tsa a hhib�kaat ebbben a sooorban majd �ll�tsa visszaaa az eredetit.
 
-  8. Ezek nagyon hasznos parancsok. Most ugarjon a 2. lecke �sszefoglal�j�ra.
+  8. Ezek nagyon hasznos parancsok. Most ugorjon a 2. lecke �sszefoglal�j�ra.
 
 
 
@@ -257,7 +257,7 @@
 
   1. T�rl�s a kurzort�l a sz� v�g�ig:    dw
 
-  2. T�rl�s a kurzort�l a sz� v�g�ig:    d$
+  2. T�rl�s a kurzort�l a sor v�g�ig:    d$
 
   3. Eg�sz sor t�rl�se:    dd
 
@@ -275,7 +275,7 @@
      Visszavon�sok visszavon�sa:	     CTRL-R
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-			 3.1.  lecke: A PUT PARANCS
+		3.1.  lecke: A BEILLESZT�S (PUT) PARANCS
 
 
   ** p  le�t�s�vel az utols�nak t�r�ltet a kurzor ut�n illeszhetj�k. **
@@ -284,8 +284,8 @@
 
   2. dd le�t�s�vel t�r�lj�k a sort �s elt�rol�dik a Vim puffer�ben.
 
-  3. Mozgassuk a kurzort AF�L� a sor f�l�, ahov� mozgatni szeretn�nk a
-     t�r�lt sort.
+  3. Mozgassuk a kurzort azel�tt a  sor EL�TTI sorba, ahov� mozgatni
+     szeretn�nk a t�r�lt sort.
 
   4. Norm�l m�dban �rjunk  p   bet�t a t�r�lt sor beilleszt�s�hez.
 
@@ -299,7 +299,7 @@
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-		       3.2.  lecke: A REPLACE PARANCS
+		       3.2.  lecke: AZ �T�R�S (REPLACE) PARANCS
 
 
 ** r  �s  a karakterek le�t�s�vel a kurzor alatti karaktert megv�ltoztatjuk. **
@@ -321,7 +321,7 @@
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-			3.3.  lecke: A CHANGE PARANCS
+			3.3.  lecke: A CSERE (CHANGE) PARANCS
 
 
 	   ** A sz� egy r�sz�nek megv�ltoztat�s�hoz �rjuk:  cw . **
@@ -415,7 +415,7 @@
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-			4.2.  lecke: A SEARCH PARANCS
+			4.2.  lecke: A KERES�S (SEARCH) PARANCS
 
 
   ** / majd a k�v�nt kifejez�s be�r�s�val kereshetj�k meg a kifejez�st. **
@@ -459,7 +459,7 @@
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-		      4.4.  lecke: A HIB�K KIJAV�T�S�NAK EGY M�DJA
+		  4.4.  lecke: A HIB�K KIJAV�T�S�NAK EGY M�DJA
 
 
     ** :s/�j/r�gi/g beg�pel�s�vel az '�j'-ra cser�lj�k a 'r�gi'-t. **
@@ -470,10 +470,10 @@
      sorban.
 
   3. Most ezt �rjuk:	 :s/eggy/egg/g	   amely glob�lisan helyettes�t
-     a sorban.
+     a sorban, azaz minden el�fordul�st.
      Ez a sorban minden el�fordul�st helyettes�t.
 
----> eggy hegy meggy, szembe j�n eggy m�sik heggy.
+---> eggy heggy meggy, szembe j�n eggy m�sik heggy.
 
   4. K�t sor k�z�tt a karaktersor minden el�fordul�s�nak helyettes�t�se:
      :#,#s/r�gi/�j/g    ahol #,# a k�t sor sorsz�ma.
@@ -530,7 +530,7 @@
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-		      5.2.  lecke: B�VEBBEN A F�JLOK �R�S�R�L
+		 5.2.  lecke: B�VEBBEN A F�JLOK �R�S�R�L
 
 
      ** A f�jlok v�ltoz�sait �gy �rhatjuk ki  :w F�JLN�V. **
@@ -542,12 +542,12 @@
 
   3. �rja:	:w TESZT   (ahol TESZT a v�lasztott f�jln�v)!
 
-  4. Ez elmenti a teljes f�jlt (a Vim Tutort) TESZT n�ven.
+  4. Ez elmenti a teljes f�jlt (a Vim oktat�j�t) TESZT n�ven.
      Ellen�rz�sk�pp �rjuk ism�t    :!dir   hogy l�ssuk a k�nyvt�rat!
      (Felfel� gombbal : ut�n az el�z� utas�t�sok visszahozhat�ak.)
 
 Megj: Ha �n kil�pne a Vimb�l �s �s visszat�rne a TESZT f�jln�vvel, akkor a
-      f�jl a tutor ment�skori pontos m�solata lenne.
+      f�jl az oktat� ment�skori pontos m�solata lenne.
 
   5. T�vol�tsa el a f�jlt  (MS-DOS):	:!del TESZT
 			vagy (Unix):	:!rm TESZT
@@ -626,7 +626,7 @@
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-			 6.1.  lecke: A OPEN PARANCS
+		   6.1.  lecke: A MEGNYIT�S (OPEN) PARANCS
 
 
 ** o  be�r�s�val nyithat egy �j sort a kurzor alatt �s v�lthat besz�r� m�dba **
@@ -684,16 +684,17 @@
 
   1. Mozgassuk a kurzort az els� ---> kezdet� sorra!
 
-  2. Place the cursor at the beginning of the first word that is different
-     from the second line marked ---> (the word 'last').
+  2. Helyezze a kurzort az els� sz� elej�re amely elt�r a m�sodik
+     ---> kezdet� sor tartalm�t�l (a 'az utols�val' r�szt�l).
 
-  3. Now type  R  and replace the remainder of the text on the first line by
-     typing over the old text to make the first line the same as the second.
+  3. Nyomjon R karaktert �s �rja �t a sz�veg marad�k�t az els� sorban
+     �gy, hogy a  k�t sor egyez� legyen.
 
----> To make the first line the same as the last on this page use the keys.
----> To make the first line the same as the second, type R and the new text.
+---> Az els� sort tegye azonoss� az utols�val: haszn�lja a gombokat.
+---> Az els� sort tegye azonoss� a m�sodikkal: �rjon R-t �s az �j sz�veget.
 
-  4. Note that when you press <ESC> to exit, any unaltered text remains.
+  4. Jegyezz�k meg, ha <ESC>-et nyomok, akkor a v�ltozatlanuk hagyott
+     sz�vegek v�ltozatlanok maradnak.
 
 
 
@@ -726,16 +727,16 @@
 			       6. LECKE �SSZEFOGLAL�JA
 
 
-  1. Typing  o	opens a line BELOW the cursor and places the cursor on the open
-     line in Insert mode.
-     Typing a capital  O  opens the line ABOVE the line the cursor is on.
+  1. o	be�r�s�val �j sort nyitunk meg a sor ALATT �s a kurzor az �j
+     sorban lesz besz�r�s-m�dban.
+     Nagy  O  a sor FELETT nyit �j sort, �s oda ker�l a kurzor.
 
-  2. Type an  a  to insert text AFTER the character the cursor is on.
-     Typing a capital  A  automatically appends text to the end of the line.
+  2. a  be�r�s�val az aktu�lis karaktert�l UT�N (jobbra) sz�rhatunk be sz�veget.
+     Nagy A  automatikusan a sor legv�g�hez adja hozz� a sz�veget.
 
-  3. Typing a capital  R  enters Replace mode until  <ESC>  is pressed to exit.
+  3. A nagy  R  be�t�s�vel �t�r� (replace) m�dba ker�l�nk  <ESC> lenyom�s�ig.
 
-  4. Typing ":set xxx" sets the option "xxx"
+  4. ":set xxx" be�r�s�val az "xxx" opci� �ll�that� be.
 
 
 
@@ -746,7 +747,7 @@
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-		       7. lecke: ON-LINE HELP PARANCSOK
+		     7. lecke: AZ ON-LINE S�G� PARANCSAI
 
 
 		    ** Az online s�g�rendszer haszn�lata **
@@ -801,8 +802,9 @@
   tud�knak: ":help user-manual". (egyel�re nem tud magyarul)
 
   Tov�bbi magyar olvasnival�k �rhet�ek el az al�bbi oldalr�l.
-  http://ubuntu.hu/index.php?title=Vim
+  http://wiki.hup.hu/index.php/Vim
 
+  Angol olvasm�nyok:
   For further reading and studying, this book is recommended:
 	Vim - Vi Improved - by Steve Oualline
 	Publisher: New Riders
@@ -816,8 +818,13 @@
   It is a good book to get to know almost anything you want to do with Vi.
   The sixth edition also includes information on Vim.
 
-  This tutorial was written by Michael C. Pierce and Robert K. Ware,
-  Colorado School of Mines using ideas supplied by Charles Smith,
-  Colorado State University.  E-mail: [email protected].
+  Ezt az oktat�t Michael C. Pierce �s Robert K. Ware �rta, a Colorado
+  School of Mines dolgoz�i Charles Smith (Colorado State University)
+  t�mogat�s�val.
+
+  E-mail: [email protected].
+
+  A Vimhez idom�totta Bram Moolenaar.
+
+  Magyar�totta: Horv�th �rp�d <[email protected]>, 2006-2008
 
-  Modified for Vim by Bram Moolenaar.
diff -Nur runtime.patched/tutor/tutor.hu.utf-8 runtime/tutor/tutor.hu.utf-8
--- runtime.patched/tutor/tutor.hu.utf-8	2006-10-06 11:00:07.000000000 -0700
+++ runtime/tutor/tutor.hu.utf-8	2008-11-06 08:05:19.000000000 -0800
@@ -1,5 +1,5 @@
 ===============================================================================
-=    Ü d v ö z ö l j ü k   a   V I M   T u t o r b a n  -    1.5-ös  verzió ===
+== Ü d v ö z ö l j ü k   a   V I M - o k t a t ó b a n  -    1.5-ös  verzió  ==
 ===============================================================================
 
      A Vim egy nagyon hatékony szerkesztő, amelnyek rengeteg utasítása
@@ -38,7 +38,7 @@
   2. Tartsa lenyomva a lefelét (j), akkor ismétlődik!
 ---> Most tudja, hogyan mehet a következő leckére.
 
-  3. A lefelé fomb használatával menjen a 1.2. leckére!
+  3. A lefelé gomb használatával menjen a 1.2. leckére!
 
 Megj: Ha nem biztos benne, mit nyomott meg, nyomja meg az <ESC>-et, hogy
       normál módba kerüljön, és ismételje meg a parancsot!
@@ -60,8 +60,8 @@
      Ha menteni szeretné a változásokat és kilépni, írja:
 				:wq  <ENTER>
 
-  3. Amikor a shell promptot látja, írja be a parancsot, amely ebbe a
-     tutorba hozza:
+  3. Amikor a shell promptot látja, írja be a parancsot, amely ebbe az
+     oktatóba hozza:
      Ez valószínűleg:	vimtutor <ENTER>
      Normális esetben ezt írná:	vim tutor.hu <ENTER>
 
@@ -230,7 +230,7 @@
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-			 2.5.  lecke: A VISSZAVONÁS (UNDO) PARANCS
+		   2.5.  lecke: A VISSZAVONÁS (UNDO) PARANCS
 
 
 ** u gépelésével visszavonható az utolsó parancs, U az egész sort helyreállítja. **
@@ -245,9 +245,9 @@
   7. CTRL-R (CTRL gomb lenyomása mellett üssön R-t) párszor csinálja újra a
      visszavont parancsokat (redo)!
 
----> Javíítsd a hhibákaat ebbben a sooorban majd állítsa visszaaa az eredetit.
+---> Javíítsa a hhibákaat ebbben a sooorban majd állítsa visszaaa az eredetit.
 
-  8. Ezek nagyon hasznos parancsok. Most ugarjon a 2. lecke összefoglalójára.
+  8. Ezek nagyon hasznos parancsok. Most ugorjon a 2. lecke összefoglalójára.
 
 
 
@@ -257,7 +257,7 @@
 
   1. Törlés a kurzortól a szó végéig:    dw
 
-  2. Törlés a kurzortól a szó végéig:    d$
+  2. Törlés a kurzortól a sor végéig:    d$
 
   3. Egész sor törlése:    dd
 
@@ -275,7 +275,7 @@
      Visszavonások visszavonása:	     CTRL-R
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-			 3.1.  lecke: A PUT PARANCS
+		3.1.  lecke: A BEILLESZTÉS (PUT) PARANCS
 
 
   ** p  leütésével az utolsónak töröltet a kurzor után illeszhetjük. **
@@ -284,8 +284,8 @@
 
   2. dd leütésével töröljük a sort és eltérolódik a Vim pufferében.
 
-  3. Mozgassuk a kurzort AFÖLÉ a sor fölé, ahová mozgatni szeretnénk a
-     törölt sort.
+  3. Mozgassuk a kurzort azelőtt a  sor ELŐTTI sorba, ahová mozgatni
+     szeretnénk a törölt sort.
 
   4. Normál módban írjunk  p   betűt a törölt sor beillesztéséhez.
 
@@ -299,7 +299,7 @@
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-		       3.2.  lecke: A REPLACE PARANCS
+		       3.2.  lecke: AZ ÁTÍRÁS (REPLACE) PARANCS
 
 
 ** r  és  a karakterek leütésével a kurzor alatti karaktert megváltoztatjuk. **
@@ -321,7 +321,7 @@
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-			3.3.  lecke: A CHANGE PARANCS
+			3.3.  lecke: A CSERE (CHANGE) PARANCS
 
 
 	   ** A szó egy részének megváltoztatásához írjuk:  cw . **
@@ -415,7 +415,7 @@
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-			4.2.  lecke: A SEARCH PARANCS
+			4.2.  lecke: A KERESÉS (SEARCH) PARANCS
 
 
   ** / majd a kívánt kifejezés beírásával kereshetjük meg a kifejezést. **
@@ -459,7 +459,7 @@
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-		      4.4.  lecke: A HIBÁK KIJAVÍTÁSÁNAK EGY MÓDJA
+		  4.4.  lecke: A HIBÁK KIJAVÍTÁSÁNAK EGY MÓDJA
 
 
     ** :s/új/régi/g begépelésével az 'új'-ra cseréljük a 'régi'-t. **
@@ -470,10 +470,10 @@
      sorban.
 
   3. Most ezt írjuk:	 :s/eggy/egg/g	   amely globálisan helyettesít
-     a sorban.
+     a sorban, azaz minden előfordulást.
      Ez a sorban minden előfordulást helyettesít.
 
----> eggy hegy meggy, szembe jön eggy másik heggy.
+---> eggy heggy meggy, szembe jön eggy másik heggy.
 
   4. Két sor között a karaktersor minden előfordulásának helyettesítése:
      :#,#s/régi/új/g    ahol #,# a két sor sorszáma.
@@ -530,7 +530,7 @@
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-		      5.2.  lecke: BŐVEBBEN A FÁJLOK ÍRÁSÁRÓL
+		 5.2.  lecke: BŐVEBBEN A FÁJLOK ÍRÁSÁRÓL
 
 
      ** A fájlok változásait így írhatjuk ki  :w FÁJLNÉV. **
@@ -542,12 +542,12 @@
 
   3. Írja:	:w TESZT   (ahol TESZT a választott fájlnév)!
 
-  4. Ez elmenti a teljes fájlt (a Vim Tutort) TESZT néven.
+  4. Ez elmenti a teljes fájlt (a Vim oktatóját) TESZT néven.
      Ellenőrzésképp írjuk ismét    :!dir   hogy lássuk a könyvtárat!
      (Felfelé gombbal : után az előző utasítások visszahozhatóak.)
 
 Megj: Ha Ön kilépne a Vimből és és visszatérne a TESZT fájlnévvel, akkor a
-      fájl a tutor mentéskori pontos másolata lenne.
+      fájl az oktató mentéskori pontos másolata lenne.
 
   5. Távolítsa el a fájlt  (MS-DOS):	:!del TESZT
 			vagy (Unix):	:!rm TESZT
@@ -626,7 +626,7 @@
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-			 6.1.  lecke: A OPEN PARANCS
+		   6.1.  lecke: A MEGNYITÁS (OPEN) PARANCS
 
 
 ** o  beírásával nyithat egy új sort a kurzor alatt és válthat beszúró módba **
@@ -684,16 +684,17 @@
 
   1. Mozgassuk a kurzort az első ---> kezdetű sorra!
 
-  2. Place the cursor at the beginning of the first word that is different
-     from the second line marked ---> (the word 'last').
+  2. Helyezze a kurzort az első szó elejére amely eltér a második
+     ---> kezdetű sor tartalmától (a 'az utolsóval' résztől).
 
-  3. Now type  R  and replace the remainder of the text on the first line by
-     typing over the old text to make the first line the same as the second.
+  3. Nyomjon R karaktert és írja ét a szöveg maradékát az első sorban
+     úgy, hogy a  két sor egyező legyen.
 
----> To make the first line the same as the last on this page use the keys.
----> To make the first line the same as the second, type R and the new text.
+---> Az első sort tegye azonossá az utolsóval: használja a gombokat.
+---> Az első sort tegye azonossá a másodikkal: írjon R-t és az új szöveget.
 
-  4. Note that when you press <ESC> to exit, any unaltered text remains.
+  4. Jegyezzük meg, ha <ESC>-et nyomok, akkor a változatlanuk hagyott
+     szövegek változatlanok maradnak.
 
 
 
@@ -726,16 +727,16 @@
 			       6. LECKE ÖSSZEFOGLALÓJA
 
 
-  1. Typing  o	opens a line BELOW the cursor and places the cursor on the open
-     line in Insert mode.
-     Typing a capital  O  opens the line ABOVE the line the cursor is on.
+  1. o	beírásával új sort nyitunk meg a sor ALATT és a kurzor az új
+     sorban lesz beszúrás-módban.
+     Nagy  O  a sor FELETT nyit új sort, és oda kerül a kurzor.
 
-  2. Type an  a  to insert text AFTER the character the cursor is on.
-     Typing a capital  A  automatically appends text to the end of the line.
+  2. a  beírásával az aktuális karaktertől UTÁN (jobbra) szúrhatunk be szöveget.
+     Nagy A  automatikusan a sor legvégéhez adja hozzá a szöveget.
 
-  3. Typing a capital  R  enters Replace mode until  <ESC>  is pressed to exit.
+  3. A nagy  R  beütésével átíró (replace) módba kerülünk  <ESC> lenyomásáig.
 
-  4. Typing ":set xxx" sets the option "xxx"
+  4. ":set xxx" beírásával az "xxx" opció állítható be.
 
 
 
@@ -746,7 +747,7 @@
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-		       7. lecke: ON-LINE HELP PARANCSOK
+		     7. lecke: AZ ON-LINE SÚGÓ PARANCSAI
 
 
 		    ** Az online súgórendszer használata **
@@ -801,8 +802,9 @@
   tudóknak: ":help user-manual". (egyelőre nem tud magyarul)
 
   További magyar olvasnivalók érhetőek el az alábbi oldalról.
-  http://ubuntu.hu/index.php?title=Vim
+  http://wiki.hup.hu/index.php/Vim
 
+  Angol olvasmányok:
   For further reading and studying, this book is recommended:
 	Vim - Vi Improved - by Steve Oualline
 	Publisher: New Riders
@@ -816,8 +818,13 @@
   It is a good book to get to know almost anything you want to do with Vi.
   The sixth edition also includes information on Vim.
 
-  This tutorial was written by Michael C. Pierce and Robert K. Ware,
-  Colorado School of Mines using ideas supplied by Charles Smith,
-  Colorado State University.  E-mail: [email protected].
+  Ezt az oktatót Michael C. Pierce és Robert K. Ware írta, a Colorado
+  School of Mines dolgozói Charles Smith (Colorado State University)
+  támogatásával.
+
+  E-mail: [email protected].
+
+  A Vimhez idomította Bram Moolenaar.
+
+  Magyarította: Horváth Árpád <[email protected]>, 2006-2008
 
-  Modified for Vim by Bram Moolenaar.
diff -Nur runtime.patched/tutor/tutor.ja.euc runtime/tutor/tutor.ja.euc
--- runtime.patched/tutor/tutor.ja.euc	2006-02-20 13:27:09.000000000 -0800
+++ runtime/tutor/tutor.ja.euc	2009-09-18 03:29:43.000000000 -0700
@@ -257,7 +257,7 @@
 
       ** �����Ԥ����������֤��Υ⡼���������˿��ͤ򥿥��פ��ޤ��� **
 
-  1. �ʲ��� ---> �ȼ����줿�Ȥ���Ƭ�˥���������ư���ޤ���
+  1. �ʲ��� ---> �ȼ����줿�Ԥ���Ƭ�˥���������ư���ޤ���
 
   2. 2dw �򥿥��פ���ñ��2��ʬ��ư���ޤ���
 
@@ -741,7 +741,7 @@
 
       ** ��������μ��ΰ��֤���ƥ����Ȥ��ɲä���ˤ� a �ȥ����פ��ޤ� **
 
-  1. ��������� ---> �Ǽ����줿�Ȥذ�ư���ޤ��礦��
+  1. ��������� ---> �Ǽ����줿�Ԥذ�ư���ޤ��礦��
 
   2. e �򲡤��� li �ν�ü���ޤǥ���������ư���ޤ���
 
@@ -764,7 +764,7 @@
 
 	  ** 1ʸ���ʾ���֤�������ˤ���ʸ���� R �ȥ����פ��ޤ��礦 **
 
-  1. �ʲ��� ---> �ȼ����줿�Ȥ˥���������ư���ޤ����ǽ�� xxx ����Ƭ�˰�ư��
+  1. �ʲ��� ---> �ȼ����줿�Ԥ˥���������ư���ޤ����ǽ�� xxx ����Ƭ�˰�ư��
      �ޤ���
 
   2. R �򲡤��ơ�2���ܤο��ͤ򥿥��פ��뤳�Ȥǡ�xxx ���ִ�����ޤ���
diff -Nur runtime.patched/tutor/tutor.ja.sjis runtime/tutor/tutor.ja.sjis
--- runtime.patched/tutor/tutor.ja.sjis	2006-02-20 13:27:09.000000000 -0800
+++ runtime/tutor/tutor.ja.sjis	2009-09-18 03:29:43.000000000 -0700
@@ -257,7 +257,7 @@
 
       ** ������s�������J��Ԃ��̃��[�V�����̑O�ɐ��l���^�C�v���܂��B **
 
-  1. �ȉ��� ---> �Ǝ����ꂽ�Ƃ̐擪�ɃJ�[�\�����ړ����܂��B
+  1. �ȉ��� ---> �Ǝ����ꂽ�s�̐擪�ɃJ�[�\�����ړ����܂��B
 
   2. 2dw ���^�C�v���ĒP��2�•��ړ����܂��B
 
@@ -741,7 +741,7 @@
 
       ** �J�[�\���̎��̈ʒu����e�L�X�g��lj�����ɂ� a �ƃ^�C�v���܂� **
 
-  1. �J�[�\���� ---> �Ŏ����ꂽ�Ƃֈړ����܂��傤�B
+  1. �J�[�\���� ---> �Ŏ����ꂽ�s�ֈړ����܂��傤�B
 
   2. e �������� li �̏I�[���܂ŃJ�[�\�����ړ����܂��B
 
@@ -764,7 +764,7 @@
 
 	  ** 1�����ȏ��u��������ɂ͑啶���� R �ƃ^�C�v���܂��傤 **
 
-  1. �ȉ��� ---> �Ǝ����ꂽ�ƂɃJ�[�\�����ړ����܂��B�ŏ��� xxx �̐擪�Ɉړ���
+  1. �ȉ��� ---> �Ǝ����ꂽ�s�ɃJ�[�\�����ړ����܂��B�ŏ��� xxx �̐擪�Ɉړ���
      �܂��B
 
   2. R �������āA2�s�ڂ̐��l���^�C�v���邱�ƂŁAxxx ���u������܂��B
diff -Nur runtime.patched/tutor/tutor.ja.utf-8 runtime/tutor/tutor.ja.utf-8
--- runtime.patched/tutor/tutor.ja.utf-8	2006-02-17 02:40:38.000000000 -0800
+++ runtime/tutor/tutor.ja.utf-8	2009-09-18 03:26:29.000000000 -0700
@@ -257,7 +257,7 @@
 
       ** 何回も行いたい繰り返しのモーションの前に数値をタイプします。 **
 
-  1. 以下の ---> と示された業の先頭にカーソルを移動します。
+  1. 以下の ---> と示された行の先頭にカーソルを移動します。
 
   2. 2dw をタイプして単語2つ分移動します。
 
@@ -741,7 +741,7 @@
 
       ** カーソルの次の位置からテキストを追加するには a とタイプします **
 
-  1. カーソルを ---> で示された業へ移動しましょう。
+  1. カーソルを ---> で示された行へ移動しましょう。
 
   2. e を押して li の終端部までカーソルを移動します。
 
@@ -764,7 +764,7 @@
 
 	  ** 1文字以上を置き換えるには大文字の R とタイプしましょう **
 
-  1. 以下の ---> と示された業にカーソルを移動します。最初の xxx の先頭に移動し
+  1. 以下の ---> と示された行にカーソルを移動します。最初の xxx の先頭に移動し
      ます。
 
   2. R を押して、2行目の数値をタイプすることで、xxx が置換されます。
diff -Nur runtime.patched/tutor/tutor.pl runtime/tutor/tutor.pl
--- runtime.patched/tutor/tutor.pl	2008-06-26 13:52:38.000000000 -0700
+++ runtime/tutor/tutor.pl	2009-01-14 12:15:35.000000000 -0800
@@ -2,9 +2,9 @@
 =    W i t a j   w   t u t o r i a l u   V I M - a      -    Wersja  1.7.     =
 ===============================================================================
 
-     Vim to pot�ny edytor, kt�ry posiada wiele polece�, zbyt du�o by
+     Vim to pot�ny edytor, kt�ry posiada wiele polece�, zbyt du�o, by
      wyja�ni� je wszystkie w tym tutorialu. Ten przewodnik ma nauczy�
-     Ci� pos�ugiwa� si� wystarczaj�co wieloma komendami by� m�g� �atwo
+     Ci� pos�ugiwa� si� wystarczaj�co wieloma komendami, by� m�g� �atwo
      u�ywa� Vima jako edytora og�lnego przeznaczenia.
 
      Czas potrzebny na uko�czenie tutoriala to 25 do 30 minut i zale�y
@@ -13,14 +13,14 @@
 	 UWAGA:
 	 Polecenia wykonywane w czasie lekcji zmodyfikuj� tekst. Zr�b
 	 wcze�niej kopi� tego pliku do �wicze� (je�li zacz��e� komend�
-	 "vimtutor" to ju� pracujesz na kopii).
+	 "vimtutor", to ju� pracujesz na kopii).
 
-	 Pami�taj �e przewodnik ten zosta� zaprojektowany do nauki poprzez
-	 �wiczenia. Oznacza to, �e musisz wykonywa� polecenia by nauczy� si� ich
-	 prawid�owo. Je�li b�dziesz jedynie czyta� tekst szybko zapomnisz wiele
+	 Pami�taj, �e przewodnik ten zosta� zaprojektowany do nauki poprzez
+	 �wiczenia. Oznacza to, �e musisz wykonywa� polecenia, by nauczy� si� ich
+	 prawid�owo. Je�li b�dziesz jedynie czyta� tekst, szybko zapomnisz wiele
 	 polece�!
 
-     Teraz upewnij si�, �e nie masz wci�ni�tego CapsLocka i wciskaj  j
+     Teraz upewnij si�, �e nie masz wci�ni�tego Caps Locka i wciskaj  j
      tak d�ugo dop�ki Lekcja 1.1. nie wype�ni ca�kowicie ekranu.
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -40,28 +40,28 @@
 
   3. U�ywaj�c strza�ki w d� przejd� do nast�pnej lekcji.
 
-Uwaga: Je�li nie jeste� pewien czego� co wpisa�e�, wci�nij <ESC> by wr�ci� do
+Uwaga: Je�li nie jeste� pewien czego� co wpisa�e�, wci�nij <ESC>, by wr�ci� do
        trybu Normal. Wtedy powt�rz polecenie.
 
 Uwaga: Klawisze kursora tak�e powinny dzia�a�, ale u�ywaj�c  hjkl  b�dziesz
-       w stanie porusza� si� o wiele szybciej jak si� tylko przyzwyczaisz.
+       w stanie porusza� si� o wiele szybciej, jak si� tylko przyzwyczaisz.
        Naprawd�!
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 		    Lekcja 1.2.: WYCHODZENIE Z VIM-a
 
- !! UWAGA: Przed wykonaniem jakiegokolwiek polecenia przeczytaj ca�� lekcj�.!!
+ !! UWAGA: Przed wykonaniem jakiegokolwiek polecenia przeczytaj ca�� lekcj� !!
 
   1. Wci�nij <ESC> (aby upewni� si�, �e jeste� w trybie Normal).
   2. Wpisz:			:q!<ENTER>.
-     To spowoduje wyj�cie z edytora PORZUCAJ�C wszelkie zmiany jakie
-     zd��y�e� zrobi�. Je�li chcesz zapami�ta� zmiany i wyj��
+     To spowoduje wyj�cie z edytora PORZUCAJ�C wszelkie zmiany, jakie
+     zd��y�e� zrobi�. Je�li chcesz zapami�ta� zmiany i wyj��,
      wpisz:			:wq<ENTER>
 
   3. Kiedy widzisz znak zach�ty pow�oki wpisz komend�, �eby wr�ci�
      do tutoriala. Czyli:	vimtutor<ENTER>
 
-  4. Je�li chcesz zapami�ta� polecenia, wykonaj kroki 1. do 3. aby
+  4. Je�li chcesz zapami�ta� polecenia, wykonaj kroki 1. do 3., aby
      wyj�� i wr�ci� do edytora.
 
 UWAGA: :q!<ENTER> porzuca wszelkie zmiany jakie zrobi�e�. W nast�pnych
@@ -85,7 +85,7 @@
 
 ---> Kkrowa prrzeskoczy�a prrzez ksii�ycc.
 
-  5. Teraz kiedy zdanie jest poprawione przejd� do Lekcji 1.4.
+  5. Teraz, kiedy zdanie jest poprawione, przejd� do Lekcji 1.4.
 
 UWAGA: Ucz si� przez �wiczenie, nie wkuwanie.
 
@@ -101,18 +101,18 @@
 
   1. Przenie� kursor do pierwszej linii poni�ej oznaczonej --->.
 
-  2. Aby poprawi� pierwszy wiersz, ustaw kursor na pierwszym znaku PO tym
+  2. Aby poprawi� pierwszy wiersz, ustaw kursor na pierwszym znaku PO tym,
      gdzie tekst ma by� wstawiony.
 
   3. Wci�nij  i  a nast�pnie wpisz konieczne poprawki.
 
-  4. Po poprawieniu b��du wci�nij <ESC> by wr�ci� do trybu Normal.
-     Powtarzaj kroki 2. do 4. aby poprawi� ca�e zdanie.
+  4. Po poprawieniu b��du wci�nij <ESC>, by wr�ci� do trybu Normal.
+     Powtarzaj kroki 2. do 4., aby poprawi� ca�e zdanie.
 
 ---> W tej brkje troch� .
 ---> W tej linii brakuje troch� tekstu.
 
-  5. Kiedy czujesz si� swobodnie wstawiaj�c tekst przejd� do
+  5. Kiedy czujesz si� swobodnie wstawiaj�c tekst, przejd� do
      podsumowania poni�ej.
 
 
@@ -129,7 +129,7 @@
 
   3. Kiedy tekst zosta� dodany, wci�nij <ESC> i wr�� do trybu Normalnego.
 
-  4. Przenie� kursor do drugiej linii oznaczonej ---> i powt�rz kroki 2 i 3
+  4. Przenie� kursor do drugiej linii oznaczonej ---> i powt�rz kroki 2. i 3.,
      aby poprawi� zdanie.
 
 ---> Brakuje tu tro
@@ -137,27 +137,27 @@
 ---> Tu te� troch� bra
      Tu te� troch� brakuje.
 
-  5. Kiedy ju� utrwali�e� �wiczenie przejd� do lekcji 1.6.
+  5. Kiedy ju� utrwali�e� �wiczenie, przejd� do lekcji 1.6.
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 			  Lekcja 1.6.: EDYCJA PLIKU
 
 		  ** U�yj  :wq  aby zapisa� plik i wyj��. **
 
-   !! UWAGA: zanim wykonasz jakiekolwiek polecenia przeczyaj ca�� lekcj� !!
+   !! UWAGA: zanim wykonasz jakiekolwiek polecenia przeczytaj ca�� lekcj� !!
 
   1. Zako�cz tutorial tak jak w lekcji 1.2.:  :q!
-     Lub je�li masz dost�p do innego terminala zr�b kolejne kroki tam.
+     lub, je�li masz dost�p do innego terminala, wykonaj kolejne kroki tam.
 
   2. W pow�oce wydaj polecenie:  vim tutor<ENTER>
-     "vim" jest poleceniem uruchamiaj�cym edytor Vim. 'tutor' to nazwa pliku
-     jaki chcesz edytowa�. U�yj pliku jaki mo�e zosta� zmieniony.
+     "vim" jest poleceniem uruchamiaj�cym edytor Vim. 'tutor' to nazwa pliku,
+     jaki chcesz edytowa�. U�yj pliku, kt�ry mo�e zosta� zmieniony.
 
-  3. Dodaj i usu� tekst tak jak si� nauczy�e� w poprzednich lekcjach.
+  3. Dodaj i usu� tekst tak, jak si� nauczy�e� w poprzednich lekcjach.
 
   4. Zapisz plik ze zmianami i opu�� Vima:  :wq<ENTER>
 
-  5. Je�li zako�czy�e� vimtutor w kroku 1. uruchom go ponownie i przejd�
+  5. Je�li zako�czy�e� vimtutor w kroku 1., uruchom go ponownie i przejd�
      do podsumowania poni�ej.
 
   6. Po przeczytaniu wszystkich krok�w i ich zrozumieniu: wykonaj je.
@@ -168,14 +168,14 @@
   1. Poruszasz kursorem u�ywaj�c "strza�ek" i klawiszy  hjkl .
        h (w lewo)	 j (w d�)	 k (do g�ry)		l (w prawo)
 
-  2. By wej�� do Vima (z pow�oki) wpisz:
+  2. By wej�� do Vima, (z pow�oki) wpisz:
 			    vim NAZWA_PLIKU<ENTER>
 
-  3. By wyj�� z Vima wpisz:
-			    <ESC> :q!<ENTER>  by usun�c wszystkie zmiany.
+  3. By wyj�� z Vima, wpisz:
+			    <ESC> :q!<ENTER>  by usun�� wszystkie zmiany.
 	     LUB:	    <ESC> :wq<ENTER>  by zmiany zachowa�.
 
-  4. By usun�� znak pod kursorem wci�nij:  x
+  4. By usun�� znak pod kursorem, wci�nij:  x
 
   5. By wstawi� tekst przed kursorem lub doda�:
 	i   wpisz tekst   <ESC>         wstawi przed kursorem
@@ -189,18 +189,18 @@
 		  Lekcja 2.1.: POLECENIE DELETE (usuwanie)
 
 
-		      ** Wpisz  dw  by usun�c wyraz. **
+		      ** Wpisz  dw  by usun�� wyraz. **
 
-  1. Wci�nij  <ESC>  by upewni� si�, �e jeste� w trybie Normal.
+  1. Wci�nij  <ESC>, by upewni� si�, �e jeste� w trybie Normal.
 
   2. Przenie� kursor do linii poni�ej oznaczonej --->.
 
-  3. Przesu� kursor na pocz�tek wyrazu, kt�re chcesz usun��.
+  3. Przesu� kursor na pocz�tek wyrazu, kt�ry chcesz usun��.
 
   4. Wpisz   dw   by usun�� wyraz.
 
   UWAGA: Litera  d  pojawi si� na dole ekranu. Vim czeka na wpisanie  w .
-	 Je�li zobaczysz inny znak oznacza to, �e wpisa�e� co� �le, wci�nij
+	 Je�li zobaczysz inny znak, oznacza to, �e wpisa�e� co� �le; wci�nij
 	 <ESC> i zacznij od pocz�tku.
 
 ---> Jest tu par� papier wyraz�w, kt�re kamie� nie nale�� do no�yce tego zdania.
@@ -225,7 +225,7 @@
 ---> Kto� wpisa� koniec tego zdania dwukrotnie. zdania dwukrotnie.
 
 
-  5. Przejd� do Lekcji 2.3. by zrozumie� co si� sta�o.
+  5. Przejd� do Lekcji 2.3., by zrozumie� co si� sta�o.
 
 
 
@@ -235,12 +235,12 @@
 		     Lekcja 2.3.: O OPERATORACH I RUCHACH
 
 
-  Wiele polece� zmieniaj�cych tekst s� z�o�one z operatora i ruchu.
-  Format dla polecenia usuwaj�cego z operatorem  d  jest taki:
+  Wiele polece� zmieniaj�cych tekst jest z�o�onych z operatora i ruchu.
+  Format dla polecenia usuwaj�cego z operatorem  d  jest nast�puj�cy:
 
 	    d  ruch
 
-  Gdzie:
+  gdzie:
    d      - operator usuwania.
    ruch   - na czym polecenie b�dzie wykonywane (lista poni�ej).
 
@@ -252,7 +252,7 @@
 W ten spos�b wpisanie  de  usunie znaki od kursora do ko�ca wyrazu.
 
 UWAGA: Wpisanie tylko ruchu w trybie Normal bez operatora przeniesie kursor
-       tak jak to okre�lono.
+       tak, jak to okre�lono.
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 		    Lekcja 2.4.: U�YCIE MNO�NIKA DLA RUCHU
@@ -266,32 +266,32 @@
 
   3. Wpisz  3e  aby przenie�� kursor do ko�ca trzeciego wyrazu w prz�d.
 
-  4. Wpisz  0  (zero) aby przenie�� kursor do pocz�tku linii.
+  4. Wpisz  0  (zero), aby przenie�� kursor na pocz�tek linii.
 
   5. Powt�rz kroki 2. i 3. z innymi liczbami.
 
 
- ---> To jest zwyk�y wiersz z wyrazami po kt�rych mo�esz si� porusza�.
+ ---> To jest zwyk�y wiersz z wyrazami, po kt�rych mo�esz si� porusza�.
 
   6. Przejd� do lekcji 2.5.
 
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-		Lekcja 2.5.: U�YCIE MNO�NIKA BY WI�CEJ USUN��
+		Lekcja 2.5.: U�YCIE MNO�NIKA, BY WI�CEJ USUN��
 
 
     ** Wpisanie liczby z operatorem powtarza go odpowiedni� ilo�� razy. **
 
   W wy�ej wspomnianej kombinacji operatora usuwania i ruchu podaj mno�nik
-  przed ruchem by wi�cej usun��:
+  przed ruchem, by wi�cej usun��:
 	d  liczba  ruch
 
   1. Przenie� kursor do pierwszego wyrazu KAPITALIKAMI w linii zaznaczonej --->.
 
   2. Wpisz  2dw  aby usun�� dwa wyrazy KAPITALIKAMI.
 
-  3. Powtarzaj kroki 1. i 2. z innymi mno�nikami aby usun�� kolejne wyrazy
+  3. Powtarzaj kroki 1. i 2. z innymi mno�nikami, aby usun�� kolejne wyrazy
      KAPITALIKAMI jednym poleceniem
 
 ---> ta ASD WE linia QWE ASDF ZXCV FG wyraz�w zosta�a ERT FGH CF oczyszczona.
@@ -312,7 +312,7 @@
   1. Przenie� kursor do drugiego zdania z wierszyka poni�ej.
   2. Wpisz  dd  aby usun�� wiersz.
   3. Teraz przenie� si� do czwartego wiersza.
-  4. Wpisz  2dd  aby usun�c dwa wiersze.
+  4. Wpisz  2dd  aby usun�� dwa wiersze.
 
 --->  1)  R�e s� czerwone,
 --->  2)  B�oto jest fajne,
@@ -335,12 +335,12 @@
   2. Wpisz  x  aby usun�� pierwszy niechciany znak.
   3. Teraz wci�nij  u  aby cofn�� skutki ostatniego polecenia.
   4. Tym razem popraw wszystkie b��dy w linii u�ywaj�c polecenia  x .
-  5. Teraz wci�nij wielkie U aby przywr�ci� lini� do oryginalnego stanu.
-  6. Teraz wci�nij  u  kilka razy by cofn��  U  i poprzednie polecenia.
+  5. Teraz wci�nij wielkie  U  aby przywr�ci� lini� do oryginalnego stanu.
+  6. Teraz wci�nij  u  kilka razy, by cofn��  U  i poprzednie polecenia.
   7. Teraz wpisz CTRL-R (trzymaj r�wnocze�nie wci�ni�te klawisze CTRL i R)
      kilka razy, by cofn�� cofni�cia.
 
----> Poopraw bl�dyyy w teej liniii i zaamiie� je prrzez coofnij.
+---> Poopraw b��dyyy w teej liniii i zaamiie� je prrzez coofnij.
 
   8. To s� bardzo po�yteczne polecenia.
 
@@ -350,22 +350,22 @@
 			     LEKCJA 2. PODSUMOWANIE
 
 
-  1. By usun�� znaki od kursora do nast�pnego wyrazu wpisz:   dw
-  2. By usun�� znaki od kursora do ko�ca linii wpisz:    d$
+  1. By usun�� znaki od kursora do nast�pnego wyrazu, wpisz:   dw
+  2. By usun�� znaki od kursora do ko�ca linii, wpisz:    d$
   3. By usun�� ca�� lini�:    dd
-  4. By powt�rzy� ruch poprzed� go liczb�:    2w
+  4. By powt�rzy� ruch, poprzed� go liczb�:    2w
   5. Format polecenia zmiany to:
                 operator  [liczba]  ruch
   gdzie:
-   operator  - to co trzeba zrobi� (np.  d  dla usuwania)
+   operator  - to, co trzeba zrobi� (np.  d  dla usuwania)
    [liczba]  - opcjonalne, ile razy powt�rzy� ruch
    ruch      - przenosi nad tekstem do operowania, takim jak  w (wyraz),
-	       $  (do ko�ca linii), etc.
+	       $  (do ko�ca linii) etc.
 
-  6. By przej�� do pocz�tku linii u�yj zera:  0
-  7. By cofn�� poprzednie polecenie, wpisz:	  u (ma�e u)
-     By cofn�� wszystkie zmiany w linii wpisz:	  U (wielkie U)
-     By cofn�� cofni�cia wpisz:			  CTRL-R
+  6. By przej�� do pocz�tku linii, u�yj zera:  0
+  7. By cofn�� poprzednie polecenie, wpisz:	  u  (ma�e u)
+     By cofn�� wszystkie zmiany w linii, wpisz:	  U  (wielkie U)
+     By cofn�� cofni�cie, wpisz:			  CTRL-R
 
 
 
@@ -379,7 +379,7 @@
 
   2. Wpisz  dd  aby usun�� lini� i przechowa� j� w rejestrze Vima.
 
-  3. Przenie� kursor do linii c), POWY�EJ tej gdzie usuni�ta linia powinna
+  3. Przenie� kursor do linii c), POWY�EJ tej, gdzie usuni�ta linia powinna
      si� znajdowa�.
 
   4. Wci�nij  p  by wstawi� lini� poni�ej kursora.
@@ -404,21 +404,21 @@
 
   3. Wpisz  r  a potem znak jaki powinien go zast�pi�.
 
-  4. Powtarzaj kroki 2. i 3. dop�ki pierwsza linia nie b�dzie taka jak druga.
+  4. Powtarzaj kroki 2. i 3. dop�ki pierwsza linia nie b�dzie taka, jak druga.
 
---->  Kjedy ten wiersz bi� wst�kiwany kto� wcizn�� per� z�ych klawirzy!
---->  Kiedy ten wiersz by� wstukiwany kto� wcisn�� par� z�ych klawiszy!
+--->  Kjedy ten wiersz bi� wst�kiwany, kto� wcizn�� per� z�ych klawirzy!
+--->  Kiedy ten wiersz by� wstukiwany, kto� wcisn�� par� z�ych klawiszy!
 
   5. Teraz czas na Lekcj� 3.3.
 
 
-UWAGA: Pami�taj by uczy� si� �wicz�c, a nie pami�ciowo.
+UWAGA: Pami�taj, by uczy� si� �wicz�c, a nie pami�ciowo.
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 		     Lekcja 3.3.: OPERATOR CHANGE (zmie�)
 
-		 ** By zmieni� do ko�ca wyrazu wpisz  ce . **
+		 ** By zmieni� do ko�ca wyrazu, wpisz  ce . **
 
   1. Przenie� kursor do pierwszej linii poni�ej oznaczonej --->.
 
@@ -428,7 +428,7 @@
 
   4. Wci�nij <ESC> i przejd� do nast�pnej planowanej zmiany.
 
-  5. Powtarzaj kroki 3. i 4. dop�ki pierwsze zdanie nie b�dzie takie same
+  5. Powtarzaj kroki 3. i 4. dop�ki pierwsze zdanie nie b�dzie takie same,
      jak drugie.
 
 ---> Ta lunos ma pire s��w, kt�re t�ina zbnic u�ifajonc pcmazu zmie�.
@@ -442,13 +442,13 @@
 		      Lekcja 3.4.: WI�CEJ ZMIAN U�YWAJ�C c
 
 
-	** Polecenie change u�ywa takich samych ruch�w jak delete. **
+	** Polecenie change u�ywa takich samych ruch�w, jak delete. **
 
-  1. Operator change dzia�a tak samo jak delete. Format wygl�da tak:
+  1. Operator change dzia�a tak samo, jak delete. Format wygl�da tak:
 
 	    c   [liczba]   ruch
 
-  2. Ruchy s� tak�e takie same, np.:  w  (wyraz),  $  (koniec linii), etc.
+  2. Ruchy s� tak�e takie same, np.:  w  (wyraz),  $  (koniec linii) etc.
 
   3. Przenie� si� do pierwszej linii poni�ej oznaczonej --->
 
@@ -456,7 +456,7 @@
 
   5. Wpisz  c$ , popraw koniec wiersza i wci�nij <ESC>.
 
----> Koniec tego wiersza musi by� poprawiony aby wygl�da� tak jak drugi.
+---> Koniec tego wiersza musi by� poprawiony, aby wygl�da� tak, jak drugi.
 ---> Koniec tego wiersza musi by� poprawiony u�ywaj�c polecenia  c$ .
 
 UWAGA:  Mo�esz u�ywa� <BS> aby poprawia� b��dy w czasie pisania.
@@ -469,11 +469,11 @@
      polecenie wstawia skasowany tekst PO kursorze (je�li ca�a linia
      zosta�a usuni�ta, zostanie ona umieszczona w linii poni�ej kursora).
 
-  2. By zamieni� znak pod kursorem wci�nij  r  a potem znak, kt�ry ma zast�pi�
+  2. By zamieni� znak pod kursorem, wci�nij  r  a potem znak, kt�ry ma zast�pi�
      oryginalny.
 
-  3. Operator change pozwala Ci na zast�pienie od kursora do miejsca gdzie
-     zabra�by ci� ruch. Np. wpisz  ce  aby zamieni� tekst od kursora do ko�ca
+  3. Operator change pozwala Ci na zast�pienie od kursora do miejsca, gdzie
+     zabra�by Ci� ruch. Np. wpisz  ce  aby zamieni� tekst od kursora do ko�ca
      wyrazu,  c$  aby zmieni� tekst do ko�ca linii.
 
   4. Format do polecenia change (zmie�):
@@ -497,12 +497,12 @@
      Zapami�taj numer linii dla potrzeb kroku 3.
 
 UWAGA: Mo�esz te� zobaczy� pozycj� kursora w prawym, dolnym rogu ekranu.
-       Dzieje si� tak kiedy ustawiona jest opcja 'ruler' (wyja�nione w lekcji 6.).
+       Dzieje si� tak kiedy ustawiona jest opcja 'ruler' (wi�cej w lekcji 6.).
 
   2. Wci�nij G aby przej�� na koniec pliku.
      Wci�nij  gg  aby przej�� do pocz�tku pliku.
 
-  3. Wpisz numer linii, w kt�rej by�e� a potem  G . To przeniesie ci�
+  3. Wpisz numer linii, w kt�rej by�e� a potem  G . To przeniesie Ci�
      z powrotem do linii, w kt�rej by�e� kiedy wcisn��e� CTRL-G.
 
   4. Je�li czujesz si� wystarczaj�co pewnie, wykonaj kroki 1-3.
@@ -511,10 +511,10 @@
 			 Lekcja 4.2.: POLECENIE SZUKAJ
 
 
-	     ** Wpisz  /  a nast�pnie wyra�enie aby je znale��. **
+	     ** Wpisz  /  a nast�pnie wyra�enie, aby je znale��. **
 
-  1. W trybie Normal wpisz  / . Zauwa�, �e znak ten, oraz kursor pojawi�
-     si� na dole ekranu tak samo jak polecenie  : .
+  1. W trybie Normal wpisz  / . Zauwa�, �e znak ten oraz kursor pojawi�
+     si� na dole ekranu tak samo, jak polecenie  : .
 
   2. Teraz wpisz  b�ond<ENTER> .  To jest s�owo, kt�rego chcesz szuka�.
 
@@ -523,11 +523,11 @@
 
   4. Je�li chcesz szuka� frazy do ty�u, u�yj polecenia  ?  zamiast  / .
 
-  5. Aby wr�ci� gdzie by�e� wci�nij  CTRL-O. Powtarzaj by wr�ci� dalej. CTRL-I
+  5. Aby wr�ci� gdzie by�e�, wci�nij  CTRL-O. Powtarzaj, by wr�ci� dalej. CTRL-I
      idzie do przodu.
 
-Uwaga:  'b�ond' to nie jest metoda by przeliterowa� b��d; 'b�ond' to b��d.
-Uwaga:  Kiedy szukanie osi�gnie koniec pliku b�dzie kontynuowa�o od pocz�tku
+Uwaga:  'b�ond' to nie jest metoda, by przeliterowa� b��d; 'b�ond' to b��d.
+Uwaga:  Kiedy szukanie osi�gnie koniec pliku, b�dzie kontynuowane od pocz�tku
         o ile opcja 'wrapscan' nie zosta�a przestawiona.
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -571,16 +571,16 @@
 
   4. Aby zmieni� wszystkie wyst�pienia �a�cucha znak�w pomi�dzy dwoma liniami,
      wpisz: :#,#s/stare/nowe/g gdzie #,# s� numerami linii ograniczaj�cych
-                               region gdzie ma nast�pi� zamiana.
+                               region, gdzie ma nast�pi� zamiana.
      wpisz  :%s/stare/nowe/g   by zmieni� wszystkie wyst�pienia w ca�ym pliku.
      wpisz  :%s/stare/nowe/gc  by zmieni� wszystkie wyst�pienia w ca�ym
-                               pliku, prosz�c o potwierdzenie za ka�dym razem
+                               pliku, prosz�c o potwierdzenie za ka�dym razem.
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 			     LEKCJA 4. PODSUMOWANIE
 
   1. CTRL-G   poka�e Twoj� pozycj� w pliku i status pliku.  SHIFT-G przenosi
-	      ci� do ko�ca pliku.
+	      Ci� do ko�ca pliku.
      G        przenosi do ko�ca pliku.
      liczba G przenosi do linii [liczba].
      gg       przenosi do pierwszej linii.
@@ -588,22 +588,22 @@
   2. Wpisanie  /  a nast�pnie �a�cucha znak�w szuka �a�cucha DO PRZODU.
      Wpisanie  ?  a nast�pnie �a�cucha znak�w szuka �a�cucha DO TY�U.
      Po wyszukiwaniu wci�nij  n  by znale�� nast�pne wyst�pienie szukanej
-     frazy tym samym kierunku lub  N  by szuka� w kierunku przeciwnym.
+     frazy w tym samym kierunku lub  N  by szuka� w kierunku przeciwnym.
      CTRL-O przenosi do starszych pozycji, CTRL-I do nowszych.
 
   3. Wpisanie  %  gdy kursor znajduje si� na (,),[,],{, lub } lokalizuje
      paruj�cy znak.
 
-  4. By zamieni� pierwszy stary na nowy w linii wpisz      :s/stary/nowy
-     By zamieni� wszystkie stary na nowy w linii wpisz     :s/stary/nowy/g
+  4. By zamieni� pierwszy stary na nowy w linii, wpisz      :s/stary/nowy
+     By zamieni� wszystkie stary na nowy w linii, wpisz     :s/stary/nowy/g
      By zamieni� frazy pomi�dzy dwoma liniami # wpisz      :#,#s/stary/nowy/g
-     By zamieni� wszystkie wyst�pienia w pliku wpisz       :%s/stary/nowy/g
-     By Vim prosi� Ci� o potwierdzenie dodaj 'c'	   :%s/stary/nowy/gc
+     By zamieni� wszystkie wyst�pienia w pliku, wpisz       :%s/stary/nowy/g
+     By Vim prosi� Ci� o potwierdzenie, dodaj 'c'	   :%s/stary/nowy/gc
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-		 Lekcja 5.1.: JAK WYKONA� POLECENIA ZEWN�TRZNE
+		 Lekcja 5.1.: JAK WYKONA� POLECENIA ZEWN�TRZNE?
 
 
-	** Wpisz  :!  a nast�pnie zewn�trzne polecenie by je wykona�. **
+	** Wpisz  :!  a nast�pnie zewn�trzne polecenie, by je wykona�. **
 
   1. Wpisz znajome polecenie  :  by ustawi� kursor na dole ekranu. To pozwala
      na wprowadzenie komendy linii polece�.
@@ -626,20 +626,20 @@
 		    Lekcja 5.2.: WI�CEJ O ZAPISYWANIU PLIK�W
 
 
-	   ** By zachowa� zmiany w tek�ci wpisz :w NAZWA_PLIKU . **
+	   ** By zachowa� zmiany w tek�cie, wpisz :w NAZWA_PLIKU . **
 
   1. Wpisz  :!dir  lub  :!ls  by zobaczy� spis plik�w w katalogu.
-     Ju� wiesz, �e musisz wcisn�� <ENTER> po tym.
+     Ju� wiesz, �e musisz po tym wcisn�� <ENTER>.
 
-  2. Wybierz nazw� pliku jaka jeszcze nie istnieje, np. TEST.
+  2. Wybierz nazw� pliku, jaka jeszcze nie istnieje, np. TEST.
 
   3. Teraz wpisz:   :w TEST   (gdzie TEST jest nazw� pliku jak� wybra�e�.)
 
   4. To polecenie zapami�ta ca�y plik (Vim Tutor) pod nazw� TEST.
-     By to sprawdzi� wpisz  :!dir  lub  :!ls , �eby znowu zobaczy� list� plik�w.
+     By to sprawdzi�, wpisz  :!dir  lub  :!ls  �eby znowu zobaczy� list� plik�w.
 
 Uwaga: Zauwa�, �e gdyby� teraz wyszed� z Vima, a nast�pnie wszed� ponownie
-       poleceniem  vim TEST , plik by�by dok�adn� kopi� tutoriala kiedy go
+       poleceniem  vim TEST , plik by�by dok�adn� kopi� tutoriala, kiedy go
        zapisywa�e�.
 
   5. Teraz usu� plik wpisuj�c (MS-DOS):		   :!del TEST
@@ -649,7 +649,7 @@
 		    Lekcja 5.3.: WYBRANIE TEKSTU DO ZAPISU
 
 
-	  ** By zachowa� cz�� pliku wpisz  v ruch :w NAZWA_PLIKU **
+	  ** By zachowa� cz�� pliku, wpisz  v ruch :w NAZWA_PLIKU **
 
   1. Przenie� kursor do tego wiersza.
 
@@ -664,26 +664,26 @@
   5. Vim zapisze wybrane linie do pliku TEST. U�yj  :!dir  lub  :!ls , �eby to
      zobaczy�. Jeszcze go nie usuwaj! U�yjemy go w nast�pnej lekcji.
 
-UWAGA: Wci�ni�cie  v  zaczyna tryb Wizualny. Mo�esz porusza� kursorem by
-       zmieni� rozmiary zaznaczenia. Mo�esz te� u�y� operatora by zrobi� co�
+UWAGA: Wci�ni�cie  v  zaczyna tryb Wizualny. Mo�esz porusza� kursorem, by
+       zmieni� rozmiary zaznaczenia. Mo�esz te� u�y� operatora, by zrobi� co�
        z tekstem. Na przyk�ad  d  usuwa tekst.
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 		   Lekcja 5.4.: WSTAWIANIE I ��CZENIE PLIK�W
 
 
-	    ** By wstawi� zawarto�� pliku wpisz   :r NAZWA_PLIKU **
+	    ** By wstawi� zawarto�� pliku, wpisz   :r NAZWA_PLIKU **
 
   1. Umie�� kursor tu� powy�ej tej linii.
 
 UWAGA: Po wykonaniu kroku 2. zobaczysz tekst z Lekcji 5.3. Potem przejd�
-       do DO�U by zobaczy� ponownie t� lekcj�.
+       do DO�U, by zobaczy� ponownie t� lekcj�.
 
   2. Teraz wczytaj plik TEST u�ywaj�c polecenia  :r TEST , gdzie TEST
      jest nazw� pliku.
      Wczytany plik jest umieszczony poni�ej linii z kursorem.
 
-  3. By sprawdzi� czy plik zosta� wczytany cofnij kursor i zobacz, �e
+  3. By sprawdzi� czy plik zosta� wczytany, cofnij kursor i zobacz, �e
      teraz s� dwie kopie Lekcji 5.3., orygina� i kopia z pliku.
 
 UWAGA: Mo�esz te� wczyta� wyj�cie zewn�trznego polecenia. Na przyk�ad
@@ -723,14 +723,14 @@
 
   1. Przenie� kursor do linii poni�ej oznaczonej --->.
 
-  2. Wpisz  o  (ma�e) by otworzy� lini� PONI�EJ kursora i przenie�� si�
+  2. Wpisz  o  (ma�e), by otworzy� lini� PONI�EJ kursora i przenie�� si�
      do trybu Insert (wprowadzanie).
 
   3. Wpisz troch� tekstu i wci�nij <ESC> by wyj�� z trybu Insert (wprowadzanie).
 
 ---> Po wci�ni�ciu  o  kursor znajdzie si� w otwartej linii w trybie Insert.
 
-  4. By otworzy� lini� POWY�EJ kursora wci�nij wielkie  O  zamiast ma�ego
+  4. By otworzy� lini� POWY�EJ kursora, wci�nij wielkie  O  zamiast ma�ego
      o . Wypr�buj to na linii poni�ej.
 
 ---> Otw�rz lini� powy�ej wciskaj�c SHIFT-O gdy kursor b�dzie na tej linii.
@@ -747,9 +747,9 @@
 
   2. Wciskaj  e  dop�ki kursor nie b�dzie na ko�cu li .
 
-  3. Wpisz  a  (ma�e) aby doda� tekst ZA znakiem pod kursorem.
+  3. Wpisz  a  (ma�e), aby doda� tekst ZA znakiem pod kursorem.
 
-  4. Doko�cz wyraz tak jak w linii poni�ej. Wci�nij <ESC> aby opu�ci� tryb
+  4. Doko�cz wyraz tak, jak w linii poni�ej. Wci�nij <ESC> aby opu�ci� tryb
      Insert.
 
   5. U�yj  e  by przej�� do kolejnego niedoko�czonego wyrazu i powtarzaj kroki
@@ -758,7 +758,7 @@
 ---> Ta li poz Ci �wi dodaw teks do ko� lin
 ---> Ta linia pozwoli Ci �wiczy� dodawanie tekstu do ko�ca linii.
 
-Uwaga:  a ,  i  oraz  A  prowadz� do trybu Insert, jedyn� r�nic� jest miejsce
+Uwaga:  a ,  i  oraz  A  prowadz� do trybu Insert, jedyn� r�nic� jest miejsce,
        gdzie nowe znaki b�d� dodawane.
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 		   Lekcja 6.3.: INNA WERSJA REPLACE (zamiana)
@@ -791,16 +791,16 @@
 
   1. Przejd� do linii oznaczonej ---> i umie�� kursor za "a)".
 
-  2. Wejd� w tryb Visual  v  i przenie� kursor na pocz�tek "pierwszy".
+  2. Wejd� w tryb Wizualny  v  i przenie� kursor na pocz�tek "pierwszy".
 
-  3. Wci�nij  y  aby yankowa� (kopiowa�) pod�wietlony tekst.
+  3. Wci�nij  y  aby kopiowa� (yankowa�) pod�wietlony tekst.
 
   4. Przenie� kursor do ko�ca nast�pnej linii:  j$
 
-  5. Wci�nij  p  aby wpakowa� (paste) tekst.  Dodaj:  a drugi<ESC> .
+  5. Wci�nij  p  aby wklei� (wpakowa�) tekst.  Dodaj:  a drugi<ESC> .
 
-  6. U�yj trybu Wizualnego aby wybra� " element.", yankuj go  y , przejd� do
-     ko�ca nast�pnej linii  j$ i upakuj tam tekst z  p .
+  6. U�yj trybu Wizualnego, aby wybra� " element.", yankuj go  y , przejd� do
+     ko�ca nast�pnej linii  j$  i upakuj tam tekst z  p .
 
 --->  a) to jest pierwszy element.
       b)
@@ -810,7 +810,7 @@
 			 Lekcja 6.5.: USTAWIANIE OPCJI
 
 
-** Ustawianie opcji tak by szukaj lub substytucja ignorowa�y wielko�� liter **
+** Ustawianie opcji tak, by szukaj lub substytucja ignorowa�y wielko�� liter **
 
   1. Szukaj 'ignore' wpisuj�c:    /ignore<ENTER>
      Powt�rz szukanie kilka razy naciskaj�c klawisz  n .
@@ -828,7 +828,7 @@
 
   6. Aby wy��czy� ignorowanie wielko�ci liter:  :set noic
 
-Uwaga: Aby usun�� pod�wietlanie dopasowa� wpisz:   :nohlsearch
+Uwaga: Aby usun�� pod�wietlanie dopasowa�, wpisz:   :nohlsearch
 Uwaga: Aby ignorowa� wielko�� liter dla jednego wyszukiwania: /ignore\c<ENTER>
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 			     LEKCJA 6. PODSUMOWANIE
@@ -837,36 +837,36 @@
   1. Wpisanie  o  otwiera lini� PONI�EJ kursora.
      Wpisanie  O  otwiera lini� POWY�EJ kursora.
 
-  2. Wpisanie  a  by wstawi� tekst ZA znakiem na, kt�rym jest kursor.
+  2. Wpisanie  a  wstawia tekst ZA znakiem, na kt�rym jest kursor.
      Wpisanie  A  dodaje tekst na ko�cu linii.
 
   3. Polecenie  e  przenosi do ko�ca wyrazu.
-  4. Operator  y  yankuje (kopiuje) tekst,  p  pakuje (wkleja, paste) go.
+  4. Operator  y  yankuje (kopiuje) tekst,  p  pakuje (wkleja) go.
   5. Wpisanie wielkiego  R  wprowadza w tryb Replace (zamiana) dop�ki
      nie zostanie wci�ni�ty <ESC>.
-  6. Wpisanie ":set xxx" ustawia opcj� "xxx". Nietk�re opcje:
+  6. Wpisanie ":set xxx" ustawia opcj� "xxx". Niekt�re opcje:
 	'ic'  'ignorecase'	ignoruj wielko�� znak�w
 	'is'  'incsearch'	poka� cz�ciowe dopasowania
 	'hls' 'hlsearch'	pod�wietl wszystkie dopasowania
-     Mo�esz u�y� zar�wno d�ugiej jak i kr�tkiej formy.
-  7. Dodaj "no" aby wy��czy� opcj�:   :set noic
+     Mo�esz u�y� zar�wno d�ugiej, jak i kr�tkiej formy.
+  7. Dodaj "no", aby wy��czy� opcj�:   :set noic
 
 
 
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-			LEKCJA 7.1. JAK UZYSKA� POMOC
+			 LEKCJA 7.1. JAK UZYSKA� POMOC?
 
 		      ** U�ycie systemu pomocy on-line **
 
-  Vim posiada bardzo dobry system pomocy on-line. By zacz�� spr�buj jednej
+  Vim posiada bardzo dobry system pomocy on-line. By zacz��, spr�buj jednej
   z trzech mo�liwo�ci:
 	- wci�nij klawisz <HELP> (je�li taki masz)
 	- wci�nij klawisz <F1> (je�li taki masz)
 	- wpisz   :help<ENTER>
 
-  Przeczytaj tekst w oknie pomocy  aby dowiedzie� si� jak dzia�a pomoc.
+  Przeczytaj tekst w oknie pomocy, aby dowiedzie� si� jak dzia�a pomoc.
   wpisz CTRL-W CTRL-W    aby przeskoczy� z jednego okna do innego
   wpisz :q<ENTER>        aby zamkn�� okno pomocy.
 
@@ -894,10 +894,10 @@
   3. Zapisz plik:
      :w
 
-  Nast�pnym razem gdy zaczniesz prac� w Vimie b�dzie on u�ywa� pod�wietlania
+  Nast�pnym razem, gdy zaczniesz prac� w Vimie b�dzie on u�ywa� pod�wietlania
   sk�adni. Mo�esz doda� wszystkie swoje ulubione ustawienia do tego pliku
   "vimrc".
-  Aby uzyska� wi�cej informacji wpisz     :help vimrc-intro
+  Aby uzyska� wi�cej informacji, wpisz     :help vimrc-intro
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 			  Lekcja 7.3.: UZUPE�NIANIE
@@ -907,11 +907,11 @@
 
   1. Upewnij si�, �e Vim nie jest w trybie kompatybilno�ci:   :set nocp
 
-  2. Zerknij jakie pliki s� w bie��cm katalogu:   :!ls   lub   :!dir
+  2. Zerknij, jakie pliki s� w bie��cym katalogu:   :!ls   lub   :!dir
 
   3. Wpisz pocz�tek polecenia:   :e
 
-  4. Wci�nij  CTRL-D  i Vim poka�e list� polece� jakie zaczynaj� si� na "e".
+  4. Wci�nij  CTRL-D  i Vim poka�e list� polece�, jakie zaczynaj� si� na "e".
 
   5. Wci�nij  <TAB>  i Vim uzupe�ni polecenie do ":edit".
 
@@ -925,7 +925,7 @@
 			    Lekcja 7. PODSUMOWANIE
 
 
-  1. Wpisz  :help  lub wci�nij <F1> lub <Help> aby otworzy� okno pomocy.
+  1. Wpisz  :help  albo wci�nij <F1> lub <Help> aby otworzy� okno pomocy.
 
   2. Wpisz  :help cmd  aby uzyska� pomoc o  cmd .
 
@@ -945,14 +945,14 @@
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-  Tutaj si� ko�czy tutorial Vima. Zosta� on pomy�lany tak aby da� kr�tki
+  Tutaj si� ko�czy tutorial Vima. Zosta� on pomy�lany tak, aby da� kr�tki
   przegl�d jego mo�liwo�ci, wystarczaj�cy by� m�g� go u�ywa�. Jest on
-  daleki od kompletno�ci poniewa� Vim ma o wiele, wiele wi�cej polece�.
+  daleki od kompletno�ci, poniewa� Vim ma o wiele, wiele wi�cej polece�.
 
   Dla dalszej nauki rekomendujemy ksi��k�:
 	Vim - Vi Improved - autor Steve Oualline
 	Wydawca: New Riders
-  Pierwsza ksi�zka ca�kowicie po�wi�cona Vimowi. U�yteczna zw�aszcza dla
+  Pierwsza ksi��ka ca�kowicie po�wi�cona Vimowi. U�yteczna zw�aszcza dla
   pocz�tkuj�cych. Zawiera wiele przyk�ad�w i ilustracji.
   Zobacz http://iccf-holland.org./click5.html
 
@@ -960,7 +960,7 @@
   polecenia:
 	Learning the Vi Editor - autor Linda Lamb
 	Wydawca: O'Reilly & Associates Inc.
-  To dobra ksi��ka by dowiedzie� si� niemal wszystkiego co chcia�by� zrobi�
+  To dobra ksi��ka, by dowiedzie� si� niemal wszystkiego, co chcia�by� zrobi�
   z Vi. Sz�sta edycja zawiera te� informacje o Vimie.
 
   Po polsku wydano:
@@ -991,4 +991,5 @@
   rev. Marzec 2002
   2nd rev. Wrzesie� 2004
   3rd rev. Marzec 2006
+  4th rev. Grudzie� 2008
   Wszelkie uwagi prosz� kierowa� na: [email protected]
diff -Nur runtime.patched/tutor/tutor.pl.cp1250 runtime/tutor/tutor.pl.cp1250
--- runtime.patched/tutor/tutor.pl.cp1250	2008-06-26 13:52:38.000000000 -0700
+++ runtime/tutor/tutor.pl.cp1250	2009-01-14 12:15:25.000000000 -0800
@@ -2,9 +2,9 @@
 =    W i t a j   w   t u t o r i a l u   V I M - a      -    Wersja  1.7.     =
 ===============================================================================
 
-     Vim to pot�ny edytor, kt�ry posiada wiele polece�, zbyt du�o by
+     Vim to pot�ny edytor, kt�ry posiada wiele polece�, zbyt du�o, by
      wyja�ni� je wszystkie w tym tutorialu. Ten przewodnik ma nauczy�
-     Ci� pos�ugiwa� si� wystarczaj�co wieloma komendami by� m�g� �atwo
+     Ci� pos�ugiwa� si� wystarczaj�co wieloma komendami, by� m�g� �atwo
      u�ywa� Vima jako edytora og�lnego przeznaczenia.
 
      Czas potrzebny na uko�czenie tutoriala to 25 do 30 minut i zale�y
@@ -13,14 +13,14 @@
 	 UWAGA:
 	 Polecenia wykonywane w czasie lekcji zmodyfikuj� tekst. Zr�b
 	 wcze�niej kopi� tego pliku do �wicze� (je�li zacz��e� komend�
-	 "vimtutor" to ju� pracujesz na kopii).
+	 "vimtutor", to ju� pracujesz na kopii).
 
-	 Pami�taj �e przewodnik ten zosta� zaprojektowany do nauki poprzez
-	 �wiczenia. Oznacza to, �e musisz wykonywa� polecenia by nauczy� si� ich
-	 prawid�owo. Je�li b�dziesz jedynie czyta� tekst szybko zapomnisz wiele
+	 Pami�taj, �e przewodnik ten zosta� zaprojektowany do nauki poprzez
+	 �wiczenia. Oznacza to, �e musisz wykonywa� polecenia, by nauczy� si� ich
+	 prawid�owo. Je�li b�dziesz jedynie czyta� tekst, szybko zapomnisz wiele
 	 polece�!
 
-     Teraz upewnij si�, �e nie masz wci�ni�tego CapsLocka i wciskaj  j
+     Teraz upewnij si�, �e nie masz wci�ni�tego Caps Locka i wciskaj  j
      tak d�ugo dop�ki Lekcja 1.1. nie wype�ni ca�kowicie ekranu.
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -40,28 +40,28 @@
 
   3. U�ywaj�c strza�ki w d� przejd� do nast�pnej lekcji.
 
-Uwaga: Je�li nie jeste� pewien czego� co wpisa�e�, wci�nij <ESC> by wr�ci� do
+Uwaga: Je�li nie jeste� pewien czego� co wpisa�e�, wci�nij <ESC>, by wr�ci� do
        trybu Normal. Wtedy powt�rz polecenie.
 
 Uwaga: Klawisze kursora tak�e powinny dzia�a�, ale u�ywaj�c  hjkl  b�dziesz
-       w stanie porusza� si� o wiele szybciej jak si� tylko przyzwyczaisz.
+       w stanie porusza� si� o wiele szybciej, jak si� tylko przyzwyczaisz.
        Naprawd�!
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 		    Lekcja 1.2.: WYCHODZENIE Z VIM-a
 
- !! UWAGA: Przed wykonaniem jakiegokolwiek polecenia przeczytaj ca�� lekcj�.!!
+ !! UWAGA: Przed wykonaniem jakiegokolwiek polecenia przeczytaj ca�� lekcj� !!
 
   1. Wci�nij <ESC> (aby upewni� si�, �e jeste� w trybie Normal).
   2. Wpisz:			:q!<ENTER>.
-     To spowoduje wyj�cie z edytora PORZUCAJ�C wszelkie zmiany jakie
-     zd��y�e� zrobi�. Je�li chcesz zapami�ta� zmiany i wyj��
+     To spowoduje wyj�cie z edytora PORZUCAJ�C wszelkie zmiany, jakie
+     zd��y�e� zrobi�. Je�li chcesz zapami�ta� zmiany i wyj��,
      wpisz:			:wq<ENTER>
 
   3. Kiedy widzisz znak zach�ty pow�oki wpisz komend�, �eby wr�ci�
      do tutoriala. Czyli:	vimtutor<ENTER>
 
-  4. Je�li chcesz zapami�ta� polecenia, wykonaj kroki 1. do 3. aby
+  4. Je�li chcesz zapami�ta� polecenia, wykonaj kroki 1. do 3., aby
      wyj�� i wr�ci� do edytora.
 
 UWAGA: :q!<ENTER> porzuca wszelkie zmiany jakie zrobi�e�. W nast�pnych
@@ -85,7 +85,7 @@
 
 ---> Kkrowa prrzeskoczy�a prrzez ksii�ycc.
 
-  5. Teraz kiedy zdanie jest poprawione przejd� do Lekcji 1.4.
+  5. Teraz, kiedy zdanie jest poprawione, przejd� do Lekcji 1.4.
 
 UWAGA: Ucz si� przez �wiczenie, nie wkuwanie.
 
@@ -101,18 +101,18 @@
 
   1. Przenie� kursor do pierwszej linii poni�ej oznaczonej --->.
 
-  2. Aby poprawi� pierwszy wiersz, ustaw kursor na pierwszym znaku PO tym
+  2. Aby poprawi� pierwszy wiersz, ustaw kursor na pierwszym znaku PO tym,
      gdzie tekst ma by� wstawiony.
 
   3. Wci�nij  i  a nast�pnie wpisz konieczne poprawki.
 
-  4. Po poprawieniu b��du wci�nij <ESC> by wr�ci� do trybu Normal.
-     Powtarzaj kroki 2. do 4. aby poprawi� ca�e zdanie.
+  4. Po poprawieniu b��du wci�nij <ESC>, by wr�ci� do trybu Normal.
+     Powtarzaj kroki 2. do 4., aby poprawi� ca�e zdanie.
 
 ---> W tej brkje troch� .
 ---> W tej linii brakuje troch� tekstu.
 
-  5. Kiedy czujesz si� swobodnie wstawiaj�c tekst przejd� do
+  5. Kiedy czujesz si� swobodnie wstawiaj�c tekst, przejd� do
      podsumowania poni�ej.
 
 
@@ -129,7 +129,7 @@
 
   3. Kiedy tekst zosta� dodany, wci�nij <ESC> i wr�� do trybu Normalnego.
 
-  4. Przenie� kursor do drugiej linii oznaczonej ---> i powt�rz kroki 2 i 3
+  4. Przenie� kursor do drugiej linii oznaczonej ---> i powt�rz kroki 2. i 3.,
      aby poprawi� zdanie.
 
 ---> Brakuje tu tro
@@ -137,27 +137,27 @@
 ---> Tu te� troch� bra
      Tu te� troch� brakuje.
 
-  5. Kiedy ju� utrwali�e� �wiczenie przejd� do lekcji 1.6.
+  5. Kiedy ju� utrwali�e� �wiczenie, przejd� do lekcji 1.6.
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 			  Lekcja 1.6.: EDYCJA PLIKU
 
 		  ** U�yj  :wq  aby zapisa� plik i wyj��. **
 
-   !! UWAGA: zanim wykonasz jakiekolwiek polecenia przeczyaj ca�� lekcj� !!
+   !! UWAGA: zanim wykonasz jakiekolwiek polecenia przeczytaj ca�� lekcj� !!
 
   1. Zako�cz tutorial tak jak w lekcji 1.2.:  :q!
-     Lub je�li masz dost�p do innego terminala zr�b kolejne kroki tam.
+     lub, je�li masz dost�p do innego terminala, wykonaj kolejne kroki tam.
 
   2. W pow�oce wydaj polecenie:  vim tutor<ENTER>
-     "vim" jest poleceniem uruchamiaj�cym edytor Vim. 'tutor' to nazwa pliku
-     jaki chcesz edytowa�. U�yj pliku jaki mo�e zosta� zmieniony.
+     "vim" jest poleceniem uruchamiaj�cym edytor Vim. 'tutor' to nazwa pliku,
+     jaki chcesz edytowa�. U�yj pliku, kt�ry mo�e zosta� zmieniony.
 
-  3. Dodaj i usu� tekst tak jak si� nauczy�e� w poprzednich lekcjach.
+  3. Dodaj i usu� tekst tak, jak si� nauczy�e� w poprzednich lekcjach.
 
   4. Zapisz plik ze zmianami i opu�� Vima:  :wq<ENTER>
 
-  5. Je�li zako�czy�e� vimtutor w kroku 1. uruchom go ponownie i przejd�
+  5. Je�li zako�czy�e� vimtutor w kroku 1., uruchom go ponownie i przejd�
      do podsumowania poni�ej.
 
   6. Po przeczytaniu wszystkich krok�w i ich zrozumieniu: wykonaj je.
@@ -168,14 +168,14 @@
   1. Poruszasz kursorem u�ywaj�c "strza�ek" i klawiszy  hjkl .
        h (w lewo)	 j (w d�)	 k (do g�ry)		l (w prawo)
 
-  2. By wej�� do Vima (z pow�oki) wpisz:
+  2. By wej�� do Vima, (z pow�oki) wpisz:
 			    vim NAZWA_PLIKU<ENTER>
 
-  3. By wyj�� z Vima wpisz:
-			    <ESC> :q!<ENTER>  by usun�c wszystkie zmiany.
+  3. By wyj�� z Vima, wpisz:
+			    <ESC> :q!<ENTER>  by usun�� wszystkie zmiany.
 	     LUB:	    <ESC> :wq<ENTER>  by zmiany zachowa�.
 
-  4. By usun�� znak pod kursorem wci�nij:  x
+  4. By usun�� znak pod kursorem, wci�nij:  x
 
   5. By wstawi� tekst przed kursorem lub doda�:
 	i   wpisz tekst   <ESC>         wstawi przed kursorem
@@ -189,18 +189,18 @@
 		  Lekcja 2.1.: POLECENIE DELETE (usuwanie)
 
 
-		      ** Wpisz  dw  by usun�c wyraz. **
+		      ** Wpisz  dw  by usun�� wyraz. **
 
-  1. Wci�nij  <ESC>  by upewni� si�, �e jeste� w trybie Normal.
+  1. Wci�nij  <ESC>, by upewni� si�, �e jeste� w trybie Normal.
 
   2. Przenie� kursor do linii poni�ej oznaczonej --->.
 
-  3. Przesu� kursor na pocz�tek wyrazu, kt�re chcesz usun��.
+  3. Przesu� kursor na pocz�tek wyrazu, kt�ry chcesz usun��.
 
   4. Wpisz   dw   by usun�� wyraz.
 
   UWAGA: Litera  d  pojawi si� na dole ekranu. Vim czeka na wpisanie  w .
-	 Je�li zobaczysz inny znak oznacza to, �e wpisa�e� co� �le, wci�nij
+	 Je�li zobaczysz inny znak, oznacza to, �e wpisa�e� co� �le; wci�nij
 	 <ESC> i zacznij od pocz�tku.
 
 ---> Jest tu par� papier wyraz�w, kt�re kamie� nie nale�� do no�yce tego zdania.
@@ -225,7 +225,7 @@
 ---> Kto� wpisa� koniec tego zdania dwukrotnie. zdania dwukrotnie.
 
 
-  5. Przejd� do Lekcji 2.3. by zrozumie� co si� sta�o.
+  5. Przejd� do Lekcji 2.3., by zrozumie� co si� sta�o.
 
 
 
@@ -235,12 +235,12 @@
 		     Lekcja 2.3.: O OPERATORACH I RUCHACH
 
 
-  Wiele polece� zmieniaj�cych tekst s� z�o�one z operatora i ruchu.
-  Format dla polecenia usuwaj�cego z operatorem  d  jest taki:
+  Wiele polece� zmieniaj�cych tekst jest z�o�onych z operatora i ruchu.
+  Format dla polecenia usuwaj�cego z operatorem  d  jest nast�puj�cy:
 
 	    d  ruch
 
-  Gdzie:
+  gdzie:
    d      - operator usuwania.
    ruch   - na czym polecenie b�dzie wykonywane (lista poni�ej).
 
@@ -252,7 +252,7 @@
 W ten spos�b wpisanie  de  usunie znaki od kursora do ko�ca wyrazu.
 
 UWAGA: Wpisanie tylko ruchu w trybie Normal bez operatora przeniesie kursor
-       tak jak to okre�lono.
+       tak, jak to okre�lono.
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 		    Lekcja 2.4.: U�YCIE MNO�NIKA DLA RUCHU
@@ -266,32 +266,32 @@
 
   3. Wpisz  3e  aby przenie�� kursor do ko�ca trzeciego wyrazu w prz�d.
 
-  4. Wpisz  0  (zero) aby przenie�� kursor do pocz�tku linii.
+  4. Wpisz  0  (zero), aby przenie�� kursor na pocz�tek linii.
 
   5. Powt�rz kroki 2. i 3. z innymi liczbami.
 
 
- ---> To jest zwyk�y wiersz z wyrazami po kt�rych mo�esz si� porusza�.
+ ---> To jest zwyk�y wiersz z wyrazami, po kt�rych mo�esz si� porusza�.
 
   6. Przejd� do lekcji 2.5.
 
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-		Lekcja 2.5.: U�YCIE MNO�NIKA BY WI�CEJ USUN��
+		Lekcja 2.5.: U�YCIE MNO�NIKA, BY WI�CEJ USUN��
 
 
     ** Wpisanie liczby z operatorem powtarza go odpowiedni� ilo�� razy. **
 
   W wy�ej wspomnianej kombinacji operatora usuwania i ruchu podaj mno�nik
-  przed ruchem by wi�cej usun��:
+  przed ruchem, by wi�cej usun��:
 	d  liczba  ruch
 
   1. Przenie� kursor do pierwszego wyrazu KAPITALIKAMI w linii zaznaczonej --->.
 
   2. Wpisz  2dw  aby usun�� dwa wyrazy KAPITALIKAMI.
 
-  3. Powtarzaj kroki 1. i 2. z innymi mno�nikami aby usun�� kolejne wyrazy
+  3. Powtarzaj kroki 1. i 2. z innymi mno�nikami, aby usun�� kolejne wyrazy
      KAPITALIKAMI jednym poleceniem
 
 ---> ta ASD WE linia QWE ASDF ZXCV FG wyraz�w zosta�a ERT FGH CF oczyszczona.
@@ -312,7 +312,7 @@
   1. Przenie� kursor do drugiego zdania z wierszyka poni�ej.
   2. Wpisz  dd  aby usun�� wiersz.
   3. Teraz przenie� si� do czwartego wiersza.
-  4. Wpisz  2dd  aby usun�c dwa wiersze.
+  4. Wpisz  2dd  aby usun�� dwa wiersze.
 
 --->  1)  R�e s� czerwone,
 --->  2)  B�oto jest fajne,
@@ -335,12 +335,12 @@
   2. Wpisz  x  aby usun�� pierwszy niechciany znak.
   3. Teraz wci�nij  u  aby cofn�� skutki ostatniego polecenia.
   4. Tym razem popraw wszystkie b��dy w linii u�ywaj�c polecenia  x .
-  5. Teraz wci�nij wielkie U aby przywr�ci� lini� do oryginalnego stanu.
-  6. Teraz wci�nij  u  kilka razy by cofn��  U  i poprzednie polecenia.
+  5. Teraz wci�nij wielkie  U  aby przywr�ci� lini� do oryginalnego stanu.
+  6. Teraz wci�nij  u  kilka razy, by cofn��  U  i poprzednie polecenia.
   7. Teraz wpisz CTRL-R (trzymaj r�wnocze�nie wci�ni�te klawisze CTRL i R)
      kilka razy, by cofn�� cofni�cia.
 
----> Poopraw bl�dyyy w teej liniii i zaamiie� je prrzez coofnij.
+---> Poopraw b��dyyy w teej liniii i zaamiie� je prrzez coofnij.
 
   8. To s� bardzo po�yteczne polecenia.
 
@@ -350,22 +350,22 @@
 			     LEKCJA 2. PODSUMOWANIE
 
 
-  1. By usun�� znaki od kursora do nast�pnego wyrazu wpisz:   dw
-  2. By usun�� znaki od kursora do ko�ca linii wpisz:    d$
+  1. By usun�� znaki od kursora do nast�pnego wyrazu, wpisz:   dw
+  2. By usun�� znaki od kursora do ko�ca linii, wpisz:    d$
   3. By usun�� ca�� lini�:    dd
-  4. By powt�rzy� ruch poprzed� go liczb�:    2w
+  4. By powt�rzy� ruch, poprzed� go liczb�:    2w
   5. Format polecenia zmiany to:
                 operator  [liczba]  ruch
   gdzie:
-   operator  - to co trzeba zrobi� (np.  d  dla usuwania)
+   operator  - to, co trzeba zrobi� (np.  d  dla usuwania)
    [liczba]  - opcjonalne, ile razy powt�rzy� ruch
    ruch      - przenosi nad tekstem do operowania, takim jak  w (wyraz),
-	       $  (do ko�ca linii), etc.
+	       $  (do ko�ca linii) etc.
 
-  6. By przej�� do pocz�tku linii u�yj zera:  0
-  7. By cofn�� poprzednie polecenie, wpisz:	  u (ma�e u)
-     By cofn�� wszystkie zmiany w linii wpisz:	  U (wielkie U)
-     By cofn�� cofni�cia wpisz:			  CTRL-R
+  6. By przej�� do pocz�tku linii, u�yj zera:  0
+  7. By cofn�� poprzednie polecenie, wpisz:	  u  (ma�e u)
+     By cofn�� wszystkie zmiany w linii, wpisz:	  U  (wielkie U)
+     By cofn�� cofni�cie, wpisz:			  CTRL-R
 
 
 
@@ -379,7 +379,7 @@
 
   2. Wpisz  dd  aby usun�� lini� i przechowa� j� w rejestrze Vima.
 
-  3. Przenie� kursor do linii c), POWY�EJ tej gdzie usuni�ta linia powinna
+  3. Przenie� kursor do linii c), POWY�EJ tej, gdzie usuni�ta linia powinna
      si� znajdowa�.
 
   4. Wci�nij  p  by wstawi� lini� poni�ej kursora.
@@ -404,21 +404,21 @@
 
   3. Wpisz  r  a potem znak jaki powinien go zast�pi�.
 
-  4. Powtarzaj kroki 2. i 3. dop�ki pierwsza linia nie b�dzie taka jak druga.
+  4. Powtarzaj kroki 2. i 3. dop�ki pierwsza linia nie b�dzie taka, jak druga.
 
---->  Kjedy ten wiersz bi� wst�kiwany kto� wcizn�� per� z�ych klawirzy!
---->  Kiedy ten wiersz by� wstukiwany kto� wcisn�� par� z�ych klawiszy!
+--->  Kjedy ten wiersz bi� wst�kiwany, kto� wcizn�� per� z�ych klawirzy!
+--->  Kiedy ten wiersz by� wstukiwany, kto� wcisn�� par� z�ych klawiszy!
 
   5. Teraz czas na Lekcj� 3.3.
 
 
-UWAGA: Pami�taj by uczy� si� �wicz�c, a nie pami�ciowo.
+UWAGA: Pami�taj, by uczy� si� �wicz�c, a nie pami�ciowo.
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 		     Lekcja 3.3.: OPERATOR CHANGE (zmie�)
 
-		 ** By zmieni� do ko�ca wyrazu wpisz  ce . **
+		 ** By zmieni� do ko�ca wyrazu, wpisz  ce . **
 
   1. Przenie� kursor do pierwszej linii poni�ej oznaczonej --->.
 
@@ -428,7 +428,7 @@
 
   4. Wci�nij <ESC> i przejd� do nast�pnej planowanej zmiany.
 
-  5. Powtarzaj kroki 3. i 4. dop�ki pierwsze zdanie nie b�dzie takie same
+  5. Powtarzaj kroki 3. i 4. dop�ki pierwsze zdanie nie b�dzie takie same,
      jak drugie.
 
 ---> Ta lunos ma pire s��w, kt�re t�ina zbnic u�ifajonc pcmazu zmie�.
@@ -442,13 +442,13 @@
 		      Lekcja 3.4.: WI�CEJ ZMIAN U�YWAJ�C c
 
 
-	** Polecenie change u�ywa takich samych ruch�w jak delete. **
+	** Polecenie change u�ywa takich samych ruch�w, jak delete. **
 
-  1. Operator change dzia�a tak samo jak delete. Format wygl�da tak:
+  1. Operator change dzia�a tak samo, jak delete. Format wygl�da tak:
 
 	    c   [liczba]   ruch
 
-  2. Ruchy s� tak�e takie same, np.:  w  (wyraz),  $  (koniec linii), etc.
+  2. Ruchy s� tak�e takie same, np.:  w  (wyraz),  $  (koniec linii) etc.
 
   3. Przenie� si� do pierwszej linii poni�ej oznaczonej --->
 
@@ -456,7 +456,7 @@
 
   5. Wpisz  c$ , popraw koniec wiersza i wci�nij <ESC>.
 
----> Koniec tego wiersza musi by� poprawiony aby wygl�da� tak jak drugi.
+---> Koniec tego wiersza musi by� poprawiony, aby wygl�da� tak, jak drugi.
 ---> Koniec tego wiersza musi by� poprawiony u�ywaj�c polecenia  c$ .
 
 UWAGA:  Mo�esz u�ywa� <BS> aby poprawia� b��dy w czasie pisania.
@@ -469,11 +469,11 @@
      polecenie wstawia skasowany tekst PO kursorze (je�li ca�a linia
      zosta�a usuni�ta, zostanie ona umieszczona w linii poni�ej kursora).
 
-  2. By zamieni� znak pod kursorem wci�nij  r  a potem znak, kt�ry ma zast�pi�
+  2. By zamieni� znak pod kursorem, wci�nij  r  a potem znak, kt�ry ma zast�pi�
      oryginalny.
 
-  3. Operator change pozwala Ci na zast�pienie od kursora do miejsca gdzie
-     zabra�by ci� ruch. Np. wpisz  ce  aby zamieni� tekst od kursora do ko�ca
+  3. Operator change pozwala Ci na zast�pienie od kursora do miejsca, gdzie
+     zabra�by Ci� ruch. Np. wpisz  ce  aby zamieni� tekst od kursora do ko�ca
      wyrazu,  c$  aby zmieni� tekst do ko�ca linii.
 
   4. Format do polecenia change (zmie�):
@@ -497,12 +497,12 @@
      Zapami�taj numer linii dla potrzeb kroku 3.
 
 UWAGA: Mo�esz te� zobaczy� pozycj� kursora w prawym, dolnym rogu ekranu.
-       Dzieje si� tak kiedy ustawiona jest opcja 'ruler' (wyja�nione w lekcji 6.).
+       Dzieje si� tak kiedy ustawiona jest opcja 'ruler' (wi�cej w lekcji 6.).
 
   2. Wci�nij G aby przej�� na koniec pliku.
      Wci�nij  gg  aby przej�� do pocz�tku pliku.
 
-  3. Wpisz numer linii, w kt�rej by�e� a potem  G . To przeniesie ci�
+  3. Wpisz numer linii, w kt�rej by�e� a potem  G . To przeniesie Ci�
      z powrotem do linii, w kt�rej by�e� kiedy wcisn��e� CTRL-G.
 
   4. Je�li czujesz si� wystarczaj�co pewnie, wykonaj kroki 1-3.
@@ -511,10 +511,10 @@
 			 Lekcja 4.2.: POLECENIE SZUKAJ
 
 
-	     ** Wpisz  /  a nast�pnie wyra�enie aby je znale��. **
+	     ** Wpisz  /  a nast�pnie wyra�enie, aby je znale��. **
 
-  1. W trybie Normal wpisz  / . Zauwa�, �e znak ten, oraz kursor pojawi�
-     si� na dole ekranu tak samo jak polecenie  : .
+  1. W trybie Normal wpisz  / . Zauwa�, �e znak ten oraz kursor pojawi�
+     si� na dole ekranu tak samo, jak polecenie  : .
 
   2. Teraz wpisz  b�ond<ENTER> .  To jest s�owo, kt�rego chcesz szuka�.
 
@@ -523,11 +523,11 @@
 
   4. Je�li chcesz szuka� frazy do ty�u, u�yj polecenia  ?  zamiast  / .
 
-  5. Aby wr�ci� gdzie by�e� wci�nij  CTRL-O. Powtarzaj by wr�ci� dalej. CTRL-I
+  5. Aby wr�ci� gdzie by�e�, wci�nij  CTRL-O. Powtarzaj, by wr�ci� dalej. CTRL-I
      idzie do przodu.
 
-Uwaga:  'b�ond' to nie jest metoda by przeliterowa� b��d; 'b�ond' to b��d.
-Uwaga:  Kiedy szukanie osi�gnie koniec pliku b�dzie kontynuowa�o od pocz�tku
+Uwaga:  'b�ond' to nie jest metoda, by przeliterowa� b��d; 'b�ond' to b��d.
+Uwaga:  Kiedy szukanie osi�gnie koniec pliku, b�dzie kontynuowane od pocz�tku
         o ile opcja 'wrapscan' nie zosta�a przestawiona.
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -571,16 +571,16 @@
 
   4. Aby zmieni� wszystkie wyst�pienia �a�cucha znak�w pomi�dzy dwoma liniami,
      wpisz: :#,#s/stare/nowe/g gdzie #,# s� numerami linii ograniczaj�cych
-                               region gdzie ma nast�pi� zamiana.
+                               region, gdzie ma nast�pi� zamiana.
      wpisz  :%s/stare/nowe/g   by zmieni� wszystkie wyst�pienia w ca�ym pliku.
      wpisz  :%s/stare/nowe/gc  by zmieni� wszystkie wyst�pienia w ca�ym
-                               pliku, prosz�c o potwierdzenie za ka�dym razem
+                               pliku, prosz�c o potwierdzenie za ka�dym razem.
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 			     LEKCJA 4. PODSUMOWANIE
 
   1. CTRL-G   poka�e Twoj� pozycj� w pliku i status pliku.  SHIFT-G przenosi
-	      ci� do ko�ca pliku.
+	      Ci� do ko�ca pliku.
      G        przenosi do ko�ca pliku.
      liczba G przenosi do linii [liczba].
      gg       przenosi do pierwszej linii.
@@ -588,22 +588,22 @@
   2. Wpisanie  /  a nast�pnie �a�cucha znak�w szuka �a�cucha DO PRZODU.
      Wpisanie  ?  a nast�pnie �a�cucha znak�w szuka �a�cucha DO TY�U.
      Po wyszukiwaniu wci�nij  n  by znale�� nast�pne wyst�pienie szukanej
-     frazy tym samym kierunku lub  N  by szuka� w kierunku przeciwnym.
+     frazy w tym samym kierunku lub  N  by szuka� w kierunku przeciwnym.
      CTRL-O przenosi do starszych pozycji, CTRL-I do nowszych.
 
   3. Wpisanie  %  gdy kursor znajduje si� na (,),[,],{, lub } lokalizuje
      paruj�cy znak.
 
-  4. By zamieni� pierwszy stary na nowy w linii wpisz      :s/stary/nowy
-     By zamieni� wszystkie stary na nowy w linii wpisz     :s/stary/nowy/g
+  4. By zamieni� pierwszy stary na nowy w linii, wpisz      :s/stary/nowy
+     By zamieni� wszystkie stary na nowy w linii, wpisz     :s/stary/nowy/g
      By zamieni� frazy pomi�dzy dwoma liniami # wpisz      :#,#s/stary/nowy/g
-     By zamieni� wszystkie wyst�pienia w pliku wpisz       :%s/stary/nowy/g
-     By Vim prosi� Ci� o potwierdzenie dodaj 'c'	   :%s/stary/nowy/gc
+     By zamieni� wszystkie wyst�pienia w pliku, wpisz       :%s/stary/nowy/g
+     By Vim prosi� Ci� o potwierdzenie, dodaj 'c'	   :%s/stary/nowy/gc
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-		 Lekcja 5.1.: JAK WYKONA� POLECENIA ZEWN�TRZNE
+		 Lekcja 5.1.: JAK WYKONA� POLECENIA ZEWN�TRZNE?
 
 
-	** Wpisz  :!  a nast�pnie zewn�trzne polecenie by je wykona�. **
+	** Wpisz  :!  a nast�pnie zewn�trzne polecenie, by je wykona�. **
 
   1. Wpisz znajome polecenie  :  by ustawi� kursor na dole ekranu. To pozwala
      na wprowadzenie komendy linii polece�.
@@ -626,20 +626,20 @@
 		    Lekcja 5.2.: WI�CEJ O ZAPISYWANIU PLIK�W
 
 
-	   ** By zachowa� zmiany w tek�ci wpisz :w NAZWA_PLIKU . **
+	   ** By zachowa� zmiany w tek�cie, wpisz :w NAZWA_PLIKU . **
 
   1. Wpisz  :!dir  lub  :!ls  by zobaczy� spis plik�w w katalogu.
-     Ju� wiesz, �e musisz wcisn�� <ENTER> po tym.
+     Ju� wiesz, �e musisz po tym wcisn�� <ENTER>.
 
-  2. Wybierz nazw� pliku jaka jeszcze nie istnieje, np. TEST.
+  2. Wybierz nazw� pliku, jaka jeszcze nie istnieje, np. TEST.
 
   3. Teraz wpisz:   :w TEST   (gdzie TEST jest nazw� pliku jak� wybra�e�.)
 
   4. To polecenie zapami�ta ca�y plik (Vim Tutor) pod nazw� TEST.
-     By to sprawdzi� wpisz  :!dir  lub  :!ls , �eby znowu zobaczy� list� plik�w.
+     By to sprawdzi�, wpisz  :!dir  lub  :!ls  �eby znowu zobaczy� list� plik�w.
 
 Uwaga: Zauwa�, �e gdyby� teraz wyszed� z Vima, a nast�pnie wszed� ponownie
-       poleceniem  vim TEST , plik by�by dok�adn� kopi� tutoriala kiedy go
+       poleceniem  vim TEST , plik by�by dok�adn� kopi� tutoriala, kiedy go
        zapisywa�e�.
 
   5. Teraz usu� plik wpisuj�c (MS-DOS):		   :!del TEST
@@ -649,7 +649,7 @@
 		    Lekcja 5.3.: WYBRANIE TEKSTU DO ZAPISU
 
 
-	  ** By zachowa� cz�� pliku wpisz  v ruch :w NAZWA_PLIKU **
+	  ** By zachowa� cz�� pliku, wpisz  v ruch :w NAZWA_PLIKU **
 
   1. Przenie� kursor do tego wiersza.
 
@@ -664,26 +664,26 @@
   5. Vim zapisze wybrane linie do pliku TEST. U�yj  :!dir  lub  :!ls , �eby to
      zobaczy�. Jeszcze go nie usuwaj! U�yjemy go w nast�pnej lekcji.
 
-UWAGA: Wci�ni�cie  v  zaczyna tryb Wizualny. Mo�esz porusza� kursorem by
-       zmieni� rozmiary zaznaczenia. Mo�esz te� u�y� operatora by zrobi� co�
+UWAGA: Wci�ni�cie  v  zaczyna tryb Wizualny. Mo�esz porusza� kursorem, by
+       zmieni� rozmiary zaznaczenia. Mo�esz te� u�y� operatora, by zrobi� co�
        z tekstem. Na przyk�ad  d  usuwa tekst.
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 		   Lekcja 5.4.: WSTAWIANIE I ��CZENIE PLIK�W
 
 
-	    ** By wstawi� zawarto�� pliku wpisz   :r NAZWA_PLIKU **
+	    ** By wstawi� zawarto�� pliku, wpisz   :r NAZWA_PLIKU **
 
   1. Umie�� kursor tu� powy�ej tej linii.
 
 UWAGA: Po wykonaniu kroku 2. zobaczysz tekst z Lekcji 5.3. Potem przejd�
-       do DO�U by zobaczy� ponownie t� lekcj�.
+       do DO�U, by zobaczy� ponownie t� lekcj�.
 
   2. Teraz wczytaj plik TEST u�ywaj�c polecenia  :r TEST , gdzie TEST
      jest nazw� pliku.
      Wczytany plik jest umieszczony poni�ej linii z kursorem.
 
-  3. By sprawdzi� czy plik zosta� wczytany cofnij kursor i zobacz, �e
+  3. By sprawdzi� czy plik zosta� wczytany, cofnij kursor i zobacz, �e
      teraz s� dwie kopie Lekcji 5.3., orygina� i kopia z pliku.
 
 UWAGA: Mo�esz te� wczyta� wyj�cie zewn�trznego polecenia. Na przyk�ad
@@ -723,14 +723,14 @@
 
   1. Przenie� kursor do linii poni�ej oznaczonej --->.
 
-  2. Wpisz  o  (ma�e) by otworzy� lini� PONI�EJ kursora i przenie�� si�
+  2. Wpisz  o  (ma�e), by otworzy� lini� PONI�EJ kursora i przenie�� si�
      do trybu Insert (wprowadzanie).
 
   3. Wpisz troch� tekstu i wci�nij <ESC> by wyj�� z trybu Insert (wprowadzanie).
 
 ---> Po wci�ni�ciu  o  kursor znajdzie si� w otwartej linii w trybie Insert.
 
-  4. By otworzy� lini� POWY�EJ kursora wci�nij wielkie  O  zamiast ma�ego
+  4. By otworzy� lini� POWY�EJ kursora, wci�nij wielkie  O  zamiast ma�ego
      o . Wypr�buj to na linii poni�ej.
 
 ---> Otw�rz lini� powy�ej wciskaj�c SHIFT-O gdy kursor b�dzie na tej linii.
@@ -747,9 +747,9 @@
 
   2. Wciskaj  e  dop�ki kursor nie b�dzie na ko�cu li .
 
-  3. Wpisz  a  (ma�e) aby doda� tekst ZA znakiem pod kursorem.
+  3. Wpisz  a  (ma�e), aby doda� tekst ZA znakiem pod kursorem.
 
-  4. Doko�cz wyraz tak jak w linii poni�ej. Wci�nij <ESC> aby opu�ci� tryb
+  4. Doko�cz wyraz tak, jak w linii poni�ej. Wci�nij <ESC> aby opu�ci� tryb
      Insert.
 
   5. U�yj  e  by przej�� do kolejnego niedoko�czonego wyrazu i powtarzaj kroki
@@ -758,7 +758,7 @@
 ---> Ta li poz Ci �wi dodaw teks do ko� lin
 ---> Ta linia pozwoli Ci �wiczy� dodawanie tekstu do ko�ca linii.
 
-Uwaga:  a ,  i  oraz  A  prowadz� do trybu Insert, jedyn� r�nic� jest miejsce
+Uwaga:  a ,  i  oraz  A  prowadz� do trybu Insert, jedyn� r�nic� jest miejsce,
        gdzie nowe znaki b�d� dodawane.
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 		   Lekcja 6.3.: INNA WERSJA REPLACE (zamiana)
@@ -791,16 +791,16 @@
 
   1. Przejd� do linii oznaczonej ---> i umie�� kursor za "a)".
 
-  2. Wejd� w tryb Visual  v  i przenie� kursor na pocz�tek "pierwszy".
+  2. Wejd� w tryb Wizualny  v  i przenie� kursor na pocz�tek "pierwszy".
 
-  3. Wci�nij  y  aby yankowa� (kopiowa�) pod�wietlony tekst.
+  3. Wci�nij  y  aby kopiowa� (yankowa�) pod�wietlony tekst.
 
   4. Przenie� kursor do ko�ca nast�pnej linii:  j$
 
-  5. Wci�nij  p  aby wpakowa� (paste) tekst.  Dodaj:  a drugi<ESC> .
+  5. Wci�nij  p  aby wklei� (wpakowa�) tekst.  Dodaj:  a drugi<ESC> .
 
-  6. U�yj trybu Wizualnego aby wybra� " element.", yankuj go  y , przejd� do
-     ko�ca nast�pnej linii  j$ i upakuj tam tekst z  p .
+  6. U�yj trybu Wizualnego, aby wybra� " element.", yankuj go  y , przejd� do
+     ko�ca nast�pnej linii  j$  i upakuj tam tekst z  p .
 
 --->  a) to jest pierwszy element.
       b)
@@ -810,7 +810,7 @@
 			 Lekcja 6.5.: USTAWIANIE OPCJI
 
 
-** Ustawianie opcji tak by szukaj lub substytucja ignorowa�y wielko�� liter **
+** Ustawianie opcji tak, by szukaj lub substytucja ignorowa�y wielko�� liter **
 
   1. Szukaj 'ignore' wpisuj�c:    /ignore<ENTER>
      Powt�rz szukanie kilka razy naciskaj�c klawisz  n .
@@ -828,7 +828,7 @@
 
   6. Aby wy��czy� ignorowanie wielko�ci liter:  :set noic
 
-Uwaga: Aby usun�� pod�wietlanie dopasowa� wpisz:   :nohlsearch
+Uwaga: Aby usun�� pod�wietlanie dopasowa�, wpisz:   :nohlsearch
 Uwaga: Aby ignorowa� wielko�� liter dla jednego wyszukiwania: /ignore\c<ENTER>
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 			     LEKCJA 6. PODSUMOWANIE
@@ -837,36 +837,36 @@
   1. Wpisanie  o  otwiera lini� PONI�EJ kursora.
      Wpisanie  O  otwiera lini� POWY�EJ kursora.
 
-  2. Wpisanie  a  by wstawi� tekst ZA znakiem na, kt�rym jest kursor.
+  2. Wpisanie  a  wstawia tekst ZA znakiem, na kt�rym jest kursor.
      Wpisanie  A  dodaje tekst na ko�cu linii.
 
   3. Polecenie  e  przenosi do ko�ca wyrazu.
-  4. Operator  y  yankuje (kopiuje) tekst,  p  pakuje (wkleja, paste) go.
+  4. Operator  y  yankuje (kopiuje) tekst,  p  pakuje (wkleja) go.
   5. Wpisanie wielkiego  R  wprowadza w tryb Replace (zamiana) dop�ki
      nie zostanie wci�ni�ty <ESC>.
-  6. Wpisanie ":set xxx" ustawia opcj� "xxx". Nietk�re opcje:
+  6. Wpisanie ":set xxx" ustawia opcj� "xxx". Niekt�re opcje:
 	'ic'  'ignorecase'	ignoruj wielko�� znak�w
 	'is'  'incsearch'	poka� cz�ciowe dopasowania
 	'hls' 'hlsearch'	pod�wietl wszystkie dopasowania
-     Mo�esz u�y� zar�wno d�ugiej jak i kr�tkiej formy.
-  7. Dodaj "no" aby wy��czy� opcj�:   :set noic
+     Mo�esz u�y� zar�wno d�ugiej, jak i kr�tkiej formy.
+  7. Dodaj "no", aby wy��czy� opcj�:   :set noic
 
 
 
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-			LEKCJA 7.1. JAK UZYSKA� POMOC
+			 LEKCJA 7.1. JAK UZYSKA� POMOC?
 
 		      ** U�ycie systemu pomocy on-line **
 
-  Vim posiada bardzo dobry system pomocy on-line. By zacz�� spr�buj jednej
+  Vim posiada bardzo dobry system pomocy on-line. By zacz��, spr�buj jednej
   z trzech mo�liwo�ci:
 	- wci�nij klawisz <HELP> (je�li taki masz)
 	- wci�nij klawisz <F1> (je�li taki masz)
 	- wpisz   :help<ENTER>
 
-  Przeczytaj tekst w oknie pomocy  aby dowiedzie� si� jak dzia�a pomoc.
+  Przeczytaj tekst w oknie pomocy, aby dowiedzie� si� jak dzia�a pomoc.
   wpisz CTRL-W CTRL-W    aby przeskoczy� z jednego okna do innego
   wpisz :q<ENTER>        aby zamkn�� okno pomocy.
 
@@ -894,10 +894,10 @@
   3. Zapisz plik:
      :w
 
-  Nast�pnym razem gdy zaczniesz prac� w Vimie b�dzie on u�ywa� pod�wietlania
+  Nast�pnym razem, gdy zaczniesz prac� w Vimie b�dzie on u�ywa� pod�wietlania
   sk�adni. Mo�esz doda� wszystkie swoje ulubione ustawienia do tego pliku
   "vimrc".
-  Aby uzyska� wi�cej informacji wpisz     :help vimrc-intro
+  Aby uzyska� wi�cej informacji, wpisz     :help vimrc-intro
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 			  Lekcja 7.3.: UZUPE�NIANIE
@@ -907,11 +907,11 @@
 
   1. Upewnij si�, �e Vim nie jest w trybie kompatybilno�ci:   :set nocp
 
-  2. Zerknij jakie pliki s� w bie��cm katalogu:   :!ls   lub   :!dir
+  2. Zerknij, jakie pliki s� w bie��cym katalogu:   :!ls   lub   :!dir
 
   3. Wpisz pocz�tek polecenia:   :e
 
-  4. Wci�nij  CTRL-D  i Vim poka�e list� polece� jakie zaczynaj� si� na "e".
+  4. Wci�nij  CTRL-D  i Vim poka�e list� polece�, jakie zaczynaj� si� na "e".
 
   5. Wci�nij  <TAB>  i Vim uzupe�ni polecenie do ":edit".
 
@@ -925,7 +925,7 @@
 			    Lekcja 7. PODSUMOWANIE
 
 
-  1. Wpisz  :help  lub wci�nij <F1> lub <Help> aby otworzy� okno pomocy.
+  1. Wpisz  :help  albo wci�nij <F1> lub <Help> aby otworzy� okno pomocy.
 
   2. Wpisz  :help cmd  aby uzyska� pomoc o  cmd .
 
@@ -945,14 +945,14 @@
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-  Tutaj si� ko�czy tutorial Vima. Zosta� on pomy�lany tak aby da� kr�tki
+  Tutaj si� ko�czy tutorial Vima. Zosta� on pomy�lany tak, aby da� kr�tki
   przegl�d jego mo�liwo�ci, wystarczaj�cy by� m�g� go u�ywa�. Jest on
-  daleki od kompletno�ci poniewa� Vim ma o wiele, wiele wi�cej polece�.
+  daleki od kompletno�ci, poniewa� Vim ma o wiele, wiele wi�cej polece�.
 
   Dla dalszej nauki rekomendujemy ksi��k�:
 	Vim - Vi Improved - autor Steve Oualline
 	Wydawca: New Riders
-  Pierwsza ksi�zka ca�kowicie po�wi�cona Vimowi. U�yteczna zw�aszcza dla
+  Pierwsza ksi��ka ca�kowicie po�wi�cona Vimowi. U�yteczna zw�aszcza dla
   pocz�tkuj�cych. Zawiera wiele przyk�ad�w i ilustracji.
   Zobacz http://iccf-holland.org./click5.html
 
@@ -960,7 +960,7 @@
   polecenia:
 	Learning the Vi Editor - autor Linda Lamb
 	Wydawca: O'Reilly & Associates Inc.
-  To dobra ksi��ka by dowiedzie� si� niemal wszystkiego co chcia�by� zrobi�
+  To dobra ksi��ka, by dowiedzie� si� niemal wszystkiego, co chcia�by� zrobi�
   z Vi. Sz�sta edycja zawiera te� informacje o Vimie.
 
   Po polsku wydano:
@@ -991,4 +991,5 @@
   rev. Marzec 2002
   2nd rev. Wrzesie� 2004
   3rd rev. Marzec 2006
+  4th rev. Grudzie� 2008
   Wszelkie uwagi prosz� kierowa� na: [email protected]
diff -Nur runtime.patched/tutor/tutor.pl.utf-8 runtime/tutor/tutor.pl.utf-8
--- runtime.patched/tutor/tutor.pl.utf-8	2008-06-26 13:52:38.000000000 -0700
+++ runtime/tutor/tutor.pl.utf-8	2009-01-14 12:14:51.000000000 -0800
@@ -2,9 +2,9 @@
 =    W i t a j   w   t u t o r i a l u   V I M - a      -    Wersja  1.7.     =
 ===============================================================================
 
-     Vim to potężny edytor, który posiada wiele poleceń, zbyt dużo by
+     Vim to potężny edytor, który posiada wiele poleceń, zbyt dużo, by
      wyjaśnić je wszystkie w tym tutorialu. Ten przewodnik ma nauczyć
-     Cię posługiwać się wystarczająco wieloma komendami byś mógł łatwo
+     Cię posługiwać się wystarczająco wieloma komendami, byś mógł łatwo
      używać Vima jako edytora ogólnego przeznaczenia.
 
      Czas potrzebny na ukończenie tutoriala to 25 do 30 minut i zależy
@@ -13,14 +13,14 @@
 	 UWAGA:
 	 Polecenia wykonywane w czasie lekcji zmodyfikują tekst. Zrób
 	 wcześniej kopię tego pliku do ćwiczeń (jeśli zacząłeś komendą
-	 "vimtutor" to już pracujesz na kopii).
+	 "vimtutor", to już pracujesz na kopii).
 
-	 Pamiętaj że przewodnik ten został zaprojektowany do nauki poprzez
-	 ćwiczenia. Oznacza to, że musisz wykonywać polecenia by nauczyć się ich
-	 prawidłowo. Jeśli będziesz jedynie czytał tekst szybko zapomnisz wiele
+	 Pamiętaj, że przewodnik ten został zaprojektowany do nauki poprzez
+	 ćwiczenia. Oznacza to, że musisz wykonywać polecenia, by nauczyć się ich
+	 prawidłowo. Jeśli będziesz jedynie czytał tekst, szybko zapomnisz wiele
 	 poleceń!
 
-     Teraz upewnij się, że nie masz wciśniętego CapsLocka i wciskaj  j
+     Teraz upewnij się, że nie masz wciśniętego Caps Locka i wciskaj  j
      tak długo dopóki Lekcja 1.1. nie wypełni całkowicie ekranu.
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -40,28 +40,28 @@
 
   3. Używając strzałki w dół przejdź do następnej lekcji.
 
-Uwaga: Jeśli nie jesteś pewien czegoś co wpisałeś, wciśnij <ESC> by wrócić do
+Uwaga: Jeśli nie jesteś pewien czegoś co wpisałeś, wciśnij <ESC>, by wrócić do
        trybu Normal. Wtedy powtórz polecenie.
 
 Uwaga: Klawisze kursora także powinny działać, ale używając  hjkl  będziesz
-       w stanie poruszać się o wiele szybciej jak się tylko przyzwyczaisz.
+       w stanie poruszać się o wiele szybciej, jak się tylko przyzwyczaisz.
        Naprawdę!
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 		    Lekcja 1.2.: WYCHODZENIE Z VIM-a
 
- !! UWAGA: Przed wykonaniem jakiegokolwiek polecenia przeczytaj całą lekcję.!!
+ !! UWAGA: Przed wykonaniem jakiegokolwiek polecenia przeczytaj całą lekcję !!
 
   1. Wciśnij <ESC> (aby upewnić się, że jesteś w trybie Normal).
   2. Wpisz:			:q!<ENTER>.
-     To spowoduje wyjście z edytora PORZUCAJĄC wszelkie zmiany jakie
-     zdążyłeś zrobić. Jeśli chcesz zapamiętać zmiany i wyjść
+     To spowoduje wyjście z edytora PORZUCAJĄC wszelkie zmiany, jakie
+     zdążyłeś zrobić. Jeśli chcesz zapamiętać zmiany i wyjść,
      wpisz:			:wq<ENTER>
 
   3. Kiedy widzisz znak zachęty powłoki wpisz komendę, żeby wrócić
      do tutoriala. Czyli:	vimtutor<ENTER>
 
-  4. Jeśli chcesz zapamiętać polecenia, wykonaj kroki 1. do 3. aby
+  4. Jeśli chcesz zapamiętać polecenia, wykonaj kroki 1. do 3., aby
      wyjść i wrócić do edytora.
 
 UWAGA: :q!<ENTER> porzuca wszelkie zmiany jakie zrobiłeś. W następnych
@@ -85,7 +85,7 @@
 
 ---> Kkrowa prrzeskoczyła prrzez ksiiężycc.
 
-  5. Teraz kiedy zdanie jest poprawione przejdź do Lekcji 1.4.
+  5. Teraz, kiedy zdanie jest poprawione, przejdź do Lekcji 1.4.
 
 UWAGA: Ucz się przez ćwiczenie, nie wkuwanie.
 
@@ -101,18 +101,18 @@
 
   1. Przenieś kursor do pierwszej linii poniżej oznaczonej --->.
 
-  2. Aby poprawić pierwszy wiersz, ustaw kursor na pierwszym znaku PO tym
+  2. Aby poprawić pierwszy wiersz, ustaw kursor na pierwszym znaku PO tym,
      gdzie tekst ma być wstawiony.
 
   3. Wciśnij  i  a następnie wpisz konieczne poprawki.
 
-  4. Po poprawieniu błędu wciśnij <ESC> by wrócić do trybu Normal.
-     Powtarzaj kroki 2. do 4. aby poprawić całe zdanie.
+  4. Po poprawieniu błędu wciśnij <ESC>, by wrócić do trybu Normal.
+     Powtarzaj kroki 2. do 4., aby poprawić całe zdanie.
 
 ---> W tej brkje trochę .
 ---> W tej linii brakuje trochę tekstu.
 
-  5. Kiedy czujesz się swobodnie wstawiając tekst przejdź do
+  5. Kiedy czujesz się swobodnie wstawiając tekst, przejdź do
      podsumowania poniżej.
 
 
@@ -129,7 +129,7 @@
 
   3. Kiedy tekst został dodany, wciśnij <ESC> i wróć do trybu Normalnego.
 
-  4. Przenieś kursor do drugiej linii oznaczonej ---> i powtórz kroki 2 i 3
+  4. Przenieś kursor do drugiej linii oznaczonej ---> i powtórz kroki 2. i 3.,
      aby poprawić zdanie.
 
 ---> Brakuje tu tro
@@ -137,27 +137,27 @@
 ---> Tu też trochę bra
      Tu też trochę brakuje.
 
-  5. Kiedy już utrwaliłeś ćwiczenie przejdź do lekcji 1.6.
+  5. Kiedy już utrwaliłeś ćwiczenie, przejdź do lekcji 1.6.
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 			  Lekcja 1.6.: EDYCJA PLIKU
 
 		  ** Użyj  :wq  aby zapisać plik i wyjść. **
 
-   !! UWAGA: zanim wykonasz jakiekolwiek polecenia przeczyaj całą lekcję !!
+   !! UWAGA: zanim wykonasz jakiekolwiek polecenia przeczytaj całą lekcję !!
 
   1. Zakończ tutorial tak jak w lekcji 1.2.:  :q!
-     Lub jeśli masz dostęp do innego terminala zrób kolejne kroki tam.
+     lub, jeśli masz dostęp do innego terminala, wykonaj kolejne kroki tam.
 
   2. W powłoce wydaj polecenie:  vim tutor<ENTER>
-     "vim" jest poleceniem uruchamiającym edytor Vim. 'tutor' to nazwa pliku
-     jaki chcesz edytować. Użyj pliku jaki może zostać zmieniony.
+     "vim" jest poleceniem uruchamiającym edytor Vim. 'tutor' to nazwa pliku,
+     jaki chcesz edytować. Użyj pliku, który może zostać zmieniony.
 
-  3. Dodaj i usuń tekst tak jak się nauczyłeś w poprzednich lekcjach.
+  3. Dodaj i usuń tekst tak, jak się nauczyłeś w poprzednich lekcjach.
 
   4. Zapisz plik ze zmianami i opuść Vima:  :wq<ENTER>
 
-  5. Jeśli zakończyłeś vimtutor w kroku 1. uruchom go ponownie i przejdź
+  5. Jeśli zakończyłeś vimtutor w kroku 1., uruchom go ponownie i przejdź
      do podsumowania poniżej.
 
   6. Po przeczytaniu wszystkich kroków i ich zrozumieniu: wykonaj je.
@@ -168,14 +168,14 @@
   1. Poruszasz kursorem używając "strzałek" i klawiszy  hjkl .
        h (w lewo)	 j (w dół)	 k (do góry)		l (w prawo)
 
-  2. By wejść do Vima (z powłoki) wpisz:
+  2. By wejść do Vima, (z powłoki) wpisz:
 			    vim NAZWA_PLIKU<ENTER>
 
-  3. By wyjść z Vima wpisz:
-			    <ESC> :q!<ENTER>  by usunąc wszystkie zmiany.
+  3. By wyjść z Vima, wpisz:
+			    <ESC> :q!<ENTER>  by usunąć wszystkie zmiany.
 	     LUB:	    <ESC> :wq<ENTER>  by zmiany zachować.
 
-  4. By usunąć znak pod kursorem wciśnij:  x
+  4. By usunąć znak pod kursorem, wciśnij:  x
 
   5. By wstawić tekst przed kursorem lub dodać:
 	i   wpisz tekst   <ESC>         wstawi przed kursorem
@@ -189,18 +189,18 @@
 		  Lekcja 2.1.: POLECENIE DELETE (usuwanie)
 
 
-		      ** Wpisz  dw  by usunąc wyraz. **
+		      ** Wpisz  dw  by usunąć wyraz. **
 
-  1. Wciśnij  <ESC>  by upewnić się, że jesteś w trybie Normal.
+  1. Wciśnij  <ESC>, by upewnić się, że jesteś w trybie Normal.
 
   2. Przenieś kursor do linii poniżej oznaczonej --->.
 
-  3. Przesuń kursor na początek wyrazu, które chcesz usunąć.
+  3. Przesuń kursor na początek wyrazu, który chcesz usunąć.
 
   4. Wpisz   dw   by usunąć wyraz.
 
   UWAGA: Litera  d  pojawi się na dole ekranu. Vim czeka na wpisanie  w .
-	 Jeśli zobaczysz inny znak oznacza to, że wpisałeś coś źle, wciśnij
+	 Jeśli zobaczysz inny znak, oznacza to, że wpisałeś coś źle; wciśnij
 	 <ESC> i zacznij od początku.
 
 ---> Jest tu parę papier wyrazów, które kamień nie należą do nożyce tego zdania.
@@ -225,7 +225,7 @@
 ---> Ktoś wpisał koniec tego zdania dwukrotnie. zdania dwukrotnie.
 
 
-  5. Przejdź do Lekcji 2.3. by zrozumieć co się stało.
+  5. Przejdź do Lekcji 2.3., by zrozumieć co się stało.
 
 
 
@@ -235,12 +235,12 @@
 		     Lekcja 2.3.: O OPERATORACH I RUCHACH
 
 
-  Wiele poleceń zmieniających tekst są złożone z operatora i ruchu.
-  Format dla polecenia usuwającego z operatorem  d  jest taki:
+  Wiele poleceń zmieniających tekst jest złożonych z operatora i ruchu.
+  Format dla polecenia usuwającego z operatorem  d  jest następujący:
 
 	    d  ruch
 
-  Gdzie:
+  gdzie:
    d      - operator usuwania.
    ruch   - na czym polecenie będzie wykonywane (lista poniżej).
 
@@ -252,7 +252,7 @@
 W ten sposób wpisanie  de  usunie znaki od kursora do końca wyrazu.
 
 UWAGA: Wpisanie tylko ruchu w trybie Normal bez operatora przeniesie kursor
-       tak jak to określono.
+       tak, jak to określono.
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 		    Lekcja 2.4.: UŻYCIE MNOŻNIKA DLA RUCHU
@@ -266,32 +266,32 @@
 
   3. Wpisz  3e  aby przenieść kursor do końca trzeciego wyrazu w przód.
 
-  4. Wpisz  0  (zero) aby przenieść kursor do początku linii.
+  4. Wpisz  0  (zero), aby przenieść kursor na początek linii.
 
   5. Powtórz kroki 2. i 3. z innymi liczbami.
 
 
- ---> To jest zwykły wiersz z wyrazami po których możesz się poruszać.
+ ---> To jest zwykły wiersz z wyrazami, po których możesz się poruszać.
 
   6. Przejdź do lekcji 2.5.
 
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-		Lekcja 2.5.: UŻYCIE MNOŻNIKA BY WIĘCEJ USUNĄĆ
+		Lekcja 2.5.: UŻYCIE MNOŻNIKA, BY WIĘCEJ USUNĄĆ
 
 
     ** Wpisanie liczby z operatorem powtarza go odpowiednią ilość razy. **
 
   W wyżej wspomnianej kombinacji operatora usuwania i ruchu podaj mnożnik
-  przed ruchem by więcej usunąć:
+  przed ruchem, by więcej usunąć:
 	d  liczba  ruch
 
   1. Przenieś kursor do pierwszego wyrazu KAPITALIKAMI w linii zaznaczonej --->.
 
   2. Wpisz  2dw  aby usunąć dwa wyrazy KAPITALIKAMI.
 
-  3. Powtarzaj kroki 1. i 2. z innymi mnożnikami aby usunąć kolejne wyrazy
+  3. Powtarzaj kroki 1. i 2. z innymi mnożnikami, aby usunąć kolejne wyrazy
      KAPITALIKAMI jednym poleceniem
 
 ---> ta ASD WE linia QWE ASDF ZXCV FG wyrazów została ERT FGH CF oczyszczona.
@@ -312,7 +312,7 @@
   1. Przenieś kursor do drugiego zdania z wierszyka poniżej.
   2. Wpisz  dd  aby usunąć wiersz.
   3. Teraz przenieś się do czwartego wiersza.
-  4. Wpisz  2dd  aby usunąc dwa wiersze.
+  4. Wpisz  2dd  aby usunąć dwa wiersze.
 
 --->  1)  Róże są czerwone,
 --->  2)  Błoto jest fajne,
@@ -335,12 +335,12 @@
   2. Wpisz  x  aby usunąć pierwszy niechciany znak.
   3. Teraz wciśnij  u  aby cofnąć skutki ostatniego polecenia.
   4. Tym razem popraw wszystkie błędy w linii używając polecenia  x .
-  5. Teraz wciśnij wielkie U aby przywrócić linię do oryginalnego stanu.
-  6. Teraz wciśnij  u  kilka razy by cofnąć  U  i poprzednie polecenia.
+  5. Teraz wciśnij wielkie  U  aby przywrócić linię do oryginalnego stanu.
+  6. Teraz wciśnij  u  kilka razy, by cofnąć  U  i poprzednie polecenia.
   7. Teraz wpisz CTRL-R (trzymaj równocześnie wciśnięte klawisze CTRL i R)
      kilka razy, by cofnąć cofnięcia.
 
----> Poopraw blędyyy w teej liniii i zaamiień je prrzez coofnij.
+---> Poopraw błędyyy w teej liniii i zaamiień je prrzez coofnij.
 
   8. To są bardzo pożyteczne polecenia.
 
@@ -350,22 +350,22 @@
 			     LEKCJA 2. PODSUMOWANIE
 
 
-  1. By usunąć znaki od kursora do następnego wyrazu wpisz:   dw
-  2. By usunąć znaki od kursora do końca linii wpisz:    d$
+  1. By usunąć znaki od kursora do następnego wyrazu, wpisz:   dw
+  2. By usunąć znaki od kursora do końca linii, wpisz:    d$
   3. By usunąć całą linię:    dd
-  4. By powtórzyć ruch poprzedź go liczbą:    2w
+  4. By powtórzyć ruch, poprzedź go liczbą:    2w
   5. Format polecenia zmiany to:
                 operator  [liczba]  ruch
   gdzie:
-   operator  - to co trzeba zrobić (np.  d  dla usuwania)
+   operator  - to, co trzeba zrobić (np.  d  dla usuwania)
    [liczba]  - opcjonalne, ile razy powtórzyć ruch
    ruch      - przenosi nad tekstem do operowania, takim jak  w (wyraz),
-	       $  (do końca linii), etc.
+	       $  (do końca linii) etc.
 
-  6. By przejść do początku linii użyj zera:  0
-  7. By cofnąć poprzednie polecenie, wpisz:	  u (małe u)
-     By cofnąć wszystkie zmiany w linii wpisz:	  U (wielkie U)
-     By cofnąć cofnięcia wpisz:			  CTRL-R
+  6. By przejść do początku linii, użyj zera:  0
+  7. By cofnąć poprzednie polecenie, wpisz:	  u  (małe u)
+     By cofnąć wszystkie zmiany w linii, wpisz:	  U  (wielkie U)
+     By cofnąć cofnięcie, wpisz:			  CTRL-R
 
 
 
@@ -379,7 +379,7 @@
 
   2. Wpisz  dd  aby usunąć linię i przechować ją w rejestrze Vima.
 
-  3. Przenieś kursor do linii c), POWYŻEJ tej gdzie usunięta linia powinna
+  3. Przenieś kursor do linii c), POWYŻEJ tej, gdzie usunięta linia powinna
      się znajdować.
 
   4. Wciśnij  p  by wstawić linię poniżej kursora.
@@ -404,21 +404,21 @@
 
   3. Wpisz  r  a potem znak jaki powinien go zastąpić.
 
-  4. Powtarzaj kroki 2. i 3. dopóki pierwsza linia nie będzie taka jak druga.
+  4. Powtarzaj kroki 2. i 3. dopóki pierwsza linia nie będzie taka, jak druga.
 
---->  Kjedy ten wiersz bił wstókiwany ktoś wciznął perę złych klawirzy!
---->  Kiedy ten wiersz był wstukiwany ktoś wcisnął parę złych klawiszy!
+--->  Kjedy ten wiersz bił wstókiwany, ktoś wciznął perę złych klawirzy!
+--->  Kiedy ten wiersz był wstukiwany, ktoś wcisnął parę złych klawiszy!
 
   5. Teraz czas na Lekcję 3.3.
 
 
-UWAGA: Pamiętaj by uczyć się ćwicząc, a nie pamięciowo.
+UWAGA: Pamiętaj, by uczyć się ćwicząc, a nie pamięciowo.
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 		     Lekcja 3.3.: OPERATOR CHANGE (zmień)
 
-		 ** By zmienić do końca wyrazu wpisz  ce . **
+		 ** By zmienić do końca wyrazu, wpisz  ce . **
 
   1. Przenieś kursor do pierwszej linii poniżej oznaczonej --->.
 
@@ -428,7 +428,7 @@
 
   4. Wciśnij <ESC> i przejdź do następnej planowanej zmiany.
 
-  5. Powtarzaj kroki 3. i 4. dopóki pierwsze zdanie nie będzie takie same
+  5. Powtarzaj kroki 3. i 4. dopóki pierwsze zdanie nie będzie takie same,
      jak drugie.
 
 ---> Ta lunos ma pire słów, które tżina zbnic użifajonc pcmazu zmień.
@@ -442,13 +442,13 @@
 		      Lekcja 3.4.: WIĘCEJ ZMIAN UŻYWAJĄC c
 
 
-	** Polecenie change używa takich samych ruchów jak delete. **
+	** Polecenie change używa takich samych ruchów, jak delete. **
 
-  1. Operator change działa tak samo jak delete. Format wygląda tak:
+  1. Operator change działa tak samo, jak delete. Format wygląda tak:
 
 	    c   [liczba]   ruch
 
-  2. Ruchy są także takie same, np.:  w  (wyraz),  $  (koniec linii), etc.
+  2. Ruchy są także takie same, np.:  w  (wyraz),  $  (koniec linii) etc.
 
   3. Przenieś się do pierwszej linii poniżej oznaczonej --->
 
@@ -456,7 +456,7 @@
 
   5. Wpisz  c$ , popraw koniec wiersza i wciśnij <ESC>.
 
----> Koniec tego wiersza musi być poprawiony aby wyglądał tak jak drugi.
+---> Koniec tego wiersza musi być poprawiony, aby wyglądał tak, jak drugi.
 ---> Koniec tego wiersza musi być poprawiony używając polecenia  c$ .
 
 UWAGA:  Możesz używać <BS> aby poprawiać błędy w czasie pisania.
@@ -469,11 +469,11 @@
      polecenie wstawia skasowany tekst PO kursorze (jeśli cała linia
      została usunięta, zostanie ona umieszczona w linii poniżej kursora).
 
-  2. By zamienić znak pod kursorem wciśnij  r  a potem znak, który ma zastąpić
+  2. By zamienić znak pod kursorem, wciśnij  r  a potem znak, który ma zastąpić
      oryginalny.
 
-  3. Operator change pozwala Ci na zastąpienie od kursora do miejsca gdzie
-     zabrałby cię ruch. Np. wpisz  ce  aby zamienić tekst od kursora do końca
+  3. Operator change pozwala Ci na zastąpienie od kursora do miejsca, gdzie
+     zabrałby Cię ruch. Np. wpisz  ce  aby zamienić tekst od kursora do końca
      wyrazu,  c$  aby zmienić tekst do końca linii.
 
   4. Format do polecenia change (zmień):
@@ -497,12 +497,12 @@
      Zapamiętaj numer linii dla potrzeb kroku 3.
 
 UWAGA: Możesz też zobaczyć pozycję kursora w prawym, dolnym rogu ekranu.
-       Dzieje się tak kiedy ustawiona jest opcja 'ruler' (wyjaśnione w lekcji 6.).
+       Dzieje się tak kiedy ustawiona jest opcja 'ruler' (więcej w lekcji 6.).
 
   2. Wciśnij G aby przejść na koniec pliku.
      Wciśnij  gg  aby przejść do początku pliku.
 
-  3. Wpisz numer linii, w której byłeś a potem  G . To przeniesie cię
+  3. Wpisz numer linii, w której byłeś a potem  G . To przeniesie Cię
      z powrotem do linii, w której byłeś kiedy wcisnąłeś CTRL-G.
 
   4. Jeśli czujesz się wystarczająco pewnie, wykonaj kroki 1-3.
@@ -511,10 +511,10 @@
 			 Lekcja 4.2.: POLECENIE SZUKAJ
 
 
-	     ** Wpisz  /  a następnie wyrażenie aby je znaleźć. **
+	     ** Wpisz  /  a następnie wyrażenie, aby je znaleźć. **
 
-  1. W trybie Normal wpisz  / . Zauważ, że znak ten, oraz kursor pojawią
-     się na dole ekranu tak samo jak polecenie  : .
+  1. W trybie Normal wpisz  / . Zauważ, że znak ten oraz kursor pojawią
+     się na dole ekranu tak samo, jak polecenie  : .
 
   2. Teraz wpisz  błond<ENTER> .  To jest słowo, którego chcesz szukać.
 
@@ -523,11 +523,11 @@
 
   4. Jeśli chcesz szukać frazy do tyłu, użyj polecenia  ?  zamiast  / .
 
-  5. Aby wrócić gdzie byłeś wciśnij  CTRL-O. Powtarzaj by wrócić dalej. CTRL-I
+  5. Aby wrócić gdzie byłeś, wciśnij  CTRL-O. Powtarzaj, by wrócić dalej. CTRL-I
      idzie do przodu.
 
-Uwaga:  'błond' to nie jest metoda by przeliterować błąd; 'błond' to błąd.
-Uwaga:  Kiedy szukanie osiągnie koniec pliku będzie kontynuowało od początku
+Uwaga:  'błond' to nie jest metoda, by przeliterować błąd; 'błond' to błąd.
+Uwaga:  Kiedy szukanie osiągnie koniec pliku, będzie kontynuowane od początku
         o ile opcja 'wrapscan' nie została przestawiona.
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -571,16 +571,16 @@
 
   4. Aby zmienić wszystkie wystąpienia łańcucha znaków pomiędzy dwoma liniami,
      wpisz: :#,#s/stare/nowe/g gdzie #,# są numerami linii ograniczających
-                               region gdzie ma nastąpić zamiana.
+                               region, gdzie ma nastąpić zamiana.
      wpisz  :%s/stare/nowe/g   by zmienić wszystkie wystąpienia w całym pliku.
      wpisz  :%s/stare/nowe/gc  by zmienić wszystkie wystąpienia w całym
-                               pliku, prosząc o potwierdzenie za każdym razem
+                               pliku, prosząc o potwierdzenie za każdym razem.
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 			     LEKCJA 4. PODSUMOWANIE
 
   1. CTRL-G   pokaże Twoją pozycję w pliku i status pliku.  SHIFT-G przenosi
-	      cię do końca pliku.
+	      Cię do końca pliku.
      G        przenosi do końca pliku.
      liczba G przenosi do linii [liczba].
      gg       przenosi do pierwszej linii.
@@ -588,22 +588,22 @@
   2. Wpisanie  /  a następnie łańcucha znaków szuka łańcucha DO PRZODU.
      Wpisanie  ?  a następnie łańcucha znaków szuka łańcucha DO TYŁU.
      Po wyszukiwaniu wciśnij  n  by znaleźć następne wystąpienie szukanej
-     frazy tym samym kierunku lub  N  by szukać w kierunku przeciwnym.
+     frazy w tym samym kierunku lub  N  by szukać w kierunku przeciwnym.
      CTRL-O przenosi do starszych pozycji, CTRL-I do nowszych.
 
   3. Wpisanie  %  gdy kursor znajduje się na (,),[,],{, lub } lokalizuje
      parujący znak.
 
-  4. By zamienić pierwszy stary na nowy w linii wpisz      :s/stary/nowy
-     By zamienić wszystkie stary na nowy w linii wpisz     :s/stary/nowy/g
+  4. By zamienić pierwszy stary na nowy w linii, wpisz      :s/stary/nowy
+     By zamienić wszystkie stary na nowy w linii, wpisz     :s/stary/nowy/g
      By zamienić frazy pomiędzy dwoma liniami # wpisz      :#,#s/stary/nowy/g
-     By zamienić wszystkie wystąpienia w pliku wpisz       :%s/stary/nowy/g
-     By Vim prosił Cię o potwierdzenie dodaj 'c'	   :%s/stary/nowy/gc
+     By zamienić wszystkie wystąpienia w pliku, wpisz       :%s/stary/nowy/g
+     By Vim prosił Cię o potwierdzenie, dodaj 'c'	   :%s/stary/nowy/gc
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-		 Lekcja 5.1.: JAK WYKONAĆ POLECENIA ZEWNĘTRZNE
+		 Lekcja 5.1.: JAK WYKONAĆ POLECENIA ZEWNĘTRZNE?
 
 
-	** Wpisz  :!  a następnie zewnętrzne polecenie by je wykonać. **
+	** Wpisz  :!  a następnie zewnętrzne polecenie, by je wykonać. **
 
   1. Wpisz znajome polecenie  :  by ustawić kursor na dole ekranu. To pozwala
      na wprowadzenie komendy linii poleceń.
@@ -626,20 +626,20 @@
 		    Lekcja 5.2.: WIĘCEJ O ZAPISYWANIU PLIKÓW
 
 
-	   ** By zachować zmiany w tekści wpisz :w NAZWA_PLIKU . **
+	   ** By zachować zmiany w tekście, wpisz :w NAZWA_PLIKU . **
 
   1. Wpisz  :!dir  lub  :!ls  by zobaczyć spis plików w katalogu.
-     Już wiesz, że musisz wcisnąć <ENTER> po tym.
+     Już wiesz, że musisz po tym wcisnąć <ENTER>.
 
-  2. Wybierz nazwę pliku jaka jeszcze nie istnieje, np. TEST.
+  2. Wybierz nazwę pliku, jaka jeszcze nie istnieje, np. TEST.
 
   3. Teraz wpisz:   :w TEST   (gdzie TEST jest nazwą pliku jaką wybrałeś.)
 
   4. To polecenie zapamięta cały plik (Vim Tutor) pod nazwą TEST.
-     By to sprawdzić wpisz  :!dir  lub  :!ls , żeby znowu zobaczyć listę plików.
+     By to sprawdzić, wpisz  :!dir  lub  :!ls  żeby znowu zobaczyć listę plików.
 
 Uwaga: Zauważ, że gdybyś teraz wyszedł z Vima, a następnie wszedł ponownie
-       poleceniem  vim TEST , plik byłby dokładną kopią tutoriala kiedy go
+       poleceniem  vim TEST , plik byłby dokładną kopią tutoriala, kiedy go
        zapisywałeś.
 
   5. Teraz usuń plik wpisując (MS-DOS):		   :!del TEST
@@ -649,7 +649,7 @@
 		    Lekcja 5.3.: WYBRANIE TEKSTU DO ZAPISU
 
 
-	  ** By zachować część pliku wpisz  v ruch :w NAZWA_PLIKU **
+	  ** By zachować część pliku, wpisz  v ruch :w NAZWA_PLIKU **
 
   1. Przenieś kursor do tego wiersza.
 
@@ -664,26 +664,26 @@
   5. Vim zapisze wybrane linie do pliku TEST. Użyj  :!dir  lub  :!ls , żeby to
      zobaczyć. Jeszcze go nie usuwaj! Użyjemy go w następnej lekcji.
 
-UWAGA: Wciśnięcie  v  zaczyna tryb Wizualny. Możesz poruszać kursorem by
-       zmienić rozmiary zaznaczenia. Możesz też użyć operatora by zrobić coś
+UWAGA: Wciśnięcie  v  zaczyna tryb Wizualny. Możesz poruszać kursorem, by
+       zmienić rozmiary zaznaczenia. Możesz też użyć operatora, by zrobić coś
        z tekstem. Na przykład  d  usuwa tekst.
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 		   Lekcja 5.4.: WSTAWIANIE I ŁĄCZENIE PLIKÓW
 
 
-	    ** By wstawić zawartość pliku wpisz   :r NAZWA_PLIKU **
+	    ** By wstawić zawartość pliku, wpisz   :r NAZWA_PLIKU **
 
   1. Umieść kursor tuż powyżej tej linii.
 
 UWAGA: Po wykonaniu kroku 2. zobaczysz tekst z Lekcji 5.3. Potem przejdź
-       do DOŁU by zobaczyć ponownie tę lekcję.
+       do DOŁU, by zobaczyć ponownie tę lekcję.
 
   2. Teraz wczytaj plik TEST używając polecenia  :r TEST , gdzie TEST
      jest nazwą pliku.
      Wczytany plik jest umieszczony poniżej linii z kursorem.
 
-  3. By sprawdzić czy plik został wczytany cofnij kursor i zobacz, że
+  3. By sprawdzić czy plik został wczytany, cofnij kursor i zobacz, że
      teraz są dwie kopie Lekcji 5.3., oryginał i kopia z pliku.
 
 UWAGA: Możesz też wczytać wyjście zewnętrznego polecenia. Na przykład
@@ -723,14 +723,14 @@
 
   1. Przenieś kursor do linii poniżej oznaczonej --->.
 
-  2. Wpisz  o  (małe) by otworzyć linię PONIŻEJ kursora i przenieść się
+  2. Wpisz  o  (małe), by otworzyć linię PONIŻEJ kursora i przenieść się
      do trybu Insert (wprowadzanie).
 
   3. Wpisz trochę tekstu i wciśnij <ESC> by wyjść z trybu Insert (wprowadzanie).
 
 ---> Po wciśnięciu  o  kursor znajdzie się w otwartej linii w trybie Insert.
 
-  4. By otworzyć linię POWYŻEJ kursora wciśnij wielkie  O  zamiast małego
+  4. By otworzyć linię POWYŻEJ kursora, wciśnij wielkie  O  zamiast małego
      o . Wypróbuj to na linii poniżej.
 
 ---> Otwórz linię powyżej wciskając SHIFT-O gdy kursor będzie na tej linii.
@@ -747,9 +747,9 @@
 
   2. Wciskaj  e  dopóki kursor nie będzie na końcu li .
 
-  3. Wpisz  a  (małe) aby dodać tekst ZA znakiem pod kursorem.
+  3. Wpisz  a  (małe), aby dodać tekst ZA znakiem pod kursorem.
 
-  4. Dokończ wyraz tak jak w linii poniżej. Wciśnij <ESC> aby opuścić tryb
+  4. Dokończ wyraz tak, jak w linii poniżej. Wciśnij <ESC> aby opuścić tryb
      Insert.
 
   5. Użyj  e  by przejść do kolejnego niedokończonego wyrazu i powtarzaj kroki
@@ -758,7 +758,7 @@
 ---> Ta li poz Ci ćwi dodaw teks do koń lin
 ---> Ta linia pozwoli Ci ćwiczyć dodawanie tekstu do końca linii.
 
-Uwaga:  a ,  i  oraz  A  prowadzą do trybu Insert, jedyną różnicą jest miejsce
+Uwaga:  a ,  i  oraz  A  prowadzą do trybu Insert, jedyną różnicą jest miejsce,
        gdzie nowe znaki będą dodawane.
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 		   Lekcja 6.3.: INNA WERSJA REPLACE (zamiana)
@@ -791,16 +791,16 @@
 
   1. Przejdź do linii oznaczonej ---> i umieść kursor za "a)".
 
-  2. Wejdź w tryb Visual  v  i przenieś kursor na początek "pierwszy".
+  2. Wejdź w tryb Wizualny  v  i przenieś kursor na początek "pierwszy".
 
-  3. Wciśnij  y  aby yankować (kopiować) podświetlony tekst.
+  3. Wciśnij  y  aby kopiować (yankować) podświetlony tekst.
 
   4. Przenieś kursor do końca następnej linii:  j$
 
-  5. Wciśnij  p  aby wpakować (paste) tekst.  Dodaj:  a drugi<ESC> .
+  5. Wciśnij  p  aby wkleić (wpakować) tekst.  Dodaj:  a drugi<ESC> .
 
-  6. Użyj trybu Wizualnego aby wybrać " element.", yankuj go  y , przejdź do
-     końca następnej linii  j$ i upakuj tam tekst z  p .
+  6. Użyj trybu Wizualnego, aby wybrać " element.", yankuj go  y , przejdź do
+     końca następnej linii  j$  i upakuj tam tekst z  p .
 
 --->  a) to jest pierwszy element.
       b)
@@ -810,7 +810,7 @@
 			 Lekcja 6.5.: USTAWIANIE OPCJI
 
 
-** Ustawianie opcji tak by szukaj lub substytucja ignorowały wielkość liter **
+** Ustawianie opcji tak, by szukaj lub substytucja ignorowały wielkość liter **
 
   1. Szukaj 'ignore' wpisując:    /ignore<ENTER>
      Powtórz szukanie kilka razy naciskając klawisz  n .
@@ -828,7 +828,7 @@
 
   6. Aby wyłączyć ignorowanie wielkości liter:  :set noic
 
-Uwaga: Aby usunąć podświetlanie dopasowań wpisz:   :nohlsearch
+Uwaga: Aby usunąć podświetlanie dopasowań, wpisz:   :nohlsearch
 Uwaga: Aby ignorować wielkość liter dla jednego wyszukiwania: /ignore\c<ENTER>
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 			     LEKCJA 6. PODSUMOWANIE
@@ -837,36 +837,36 @@
   1. Wpisanie  o  otwiera linię PONIŻEJ kursora.
      Wpisanie  O  otwiera linię POWYŻEJ kursora.
 
-  2. Wpisanie  a  by wstawić tekst ZA znakiem na, którym jest kursor.
+  2. Wpisanie  a  wstawia tekst ZA znakiem, na którym jest kursor.
      Wpisanie  A  dodaje tekst na końcu linii.
 
   3. Polecenie  e  przenosi do końca wyrazu.
-  4. Operator  y  yankuje (kopiuje) tekst,  p  pakuje (wkleja, paste) go.
+  4. Operator  y  yankuje (kopiuje) tekst,  p  pakuje (wkleja) go.
   5. Wpisanie wielkiego  R  wprowadza w tryb Replace (zamiana) dopóki
      nie zostanie wciśnięty <ESC>.
-  6. Wpisanie ":set xxx" ustawia opcję "xxx". Nietkóre opcje:
+  6. Wpisanie ":set xxx" ustawia opcję "xxx". Niektóre opcje:
 	'ic'  'ignorecase'	ignoruj wielkość znaków
 	'is'  'incsearch'	pokaż częściowe dopasowania
 	'hls' 'hlsearch'	podświetl wszystkie dopasowania
-     Możesz użyć zarówno długiej jak i krótkiej formy.
-  7. Dodaj "no" aby wyłączyć opcję:   :set noic
+     Możesz użyć zarówno długiej, jak i krótkiej formy.
+  7. Dodaj "no", aby wyłączyć opcję:   :set noic
 
 
 
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-			LEKCJA 7.1. JAK UZYSKAĆ POMOC
+			 LEKCJA 7.1. JAK UZYSKAĆ POMOC?
 
 		      ** Użycie systemu pomocy on-line **
 
-  Vim posiada bardzo dobry system pomocy on-line. By zacząć spróbuj jednej
+  Vim posiada bardzo dobry system pomocy on-line. By zacząć, spróbuj jednej
   z trzech możliwości:
 	- wciśnij klawisz <HELP> (jeśli taki masz)
 	- wciśnij klawisz <F1> (jeśli taki masz)
 	- wpisz   :help<ENTER>
 
-  Przeczytaj tekst w oknie pomocy  aby dowiedzieć się jak działa pomoc.
+  Przeczytaj tekst w oknie pomocy, aby dowiedzieć się jak działa pomoc.
   wpisz CTRL-W CTRL-W    aby przeskoczyć z jednego okna do innego
   wpisz :q<ENTER>        aby zamknąć okno pomocy.
 
@@ -894,10 +894,10 @@
   3. Zapisz plik:
      :w
 
-  Następnym razem gdy zaczniesz pracę w Vimie będzie on używać podświetlania
+  Następnym razem, gdy zaczniesz pracę w Vimie będzie on używać podświetlania
   składni. Możesz dodać wszystkie swoje ulubione ustawienia do tego pliku
   "vimrc".
-  Aby uzyskać więcej informacji wpisz     :help vimrc-intro
+  Aby uzyskać więcej informacji, wpisz     :help vimrc-intro
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 			  Lekcja 7.3.: UZUPEŁNIANIE
@@ -907,11 +907,11 @@
 
   1. Upewnij się, że Vim nie jest w trybie kompatybilności:   :set nocp
 
-  2. Zerknij jakie pliki są w bieżącm katalogu:   :!ls   lub   :!dir
+  2. Zerknij, jakie pliki są w bieżącym katalogu:   :!ls   lub   :!dir
 
   3. Wpisz początek polecenia:   :e
 
-  4. Wciśnij  CTRL-D  i Vim pokaże listę poleceń jakie zaczynają się na "e".
+  4. Wciśnij  CTRL-D  i Vim pokaże listę poleceń, jakie zaczynają się na "e".
 
   5. Wciśnij  <TAB>  i Vim uzupełni polecenie do ":edit".
 
@@ -925,7 +925,7 @@
 			    Lekcja 7. PODSUMOWANIE
 
 
-  1. Wpisz  :help  lub wciśnij <F1> lub <Help> aby otworzyć okno pomocy.
+  1. Wpisz  :help  albo wciśnij <F1> lub <Help> aby otworzyć okno pomocy.
 
   2. Wpisz  :help cmd  aby uzyskać pomoc o  cmd .
 
@@ -945,14 +945,14 @@
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-  Tutaj się kończy tutorial Vima. Został on pomyślany tak aby dać krótki
+  Tutaj się kończy tutorial Vima. Został on pomyślany tak, aby dać krótki
   przegląd jego możliwości, wystarczający byś mógł go używać. Jest on
-  daleki od kompletności ponieważ Vim ma o wiele, wiele więcej poleceń.
+  daleki od kompletności, ponieważ Vim ma o wiele, wiele więcej poleceń.
 
   Dla dalszej nauki rekomendujemy książkę:
 	Vim - Vi Improved - autor Steve Oualline
 	Wydawca: New Riders
-  Pierwsza ksiązka całkowicie poświęcona Vimowi. Użyteczna zwłaszcza dla
+  Pierwsza książka całkowicie poświęcona Vimowi. Użyteczna zwłaszcza dla
   początkujących. Zawiera wiele przykładów i ilustracji.
   Zobacz http://iccf-holland.org./click5.html
 
@@ -960,7 +960,7 @@
   polecenia:
 	Learning the Vi Editor - autor Linda Lamb
 	Wydawca: O'Reilly & Associates Inc.
-  To dobra książka by dowiedzieć się niemal wszystkiego co chciałbyś zrobić
+  To dobra książka, by dowiedzieć się niemal wszystkiego, co chciałbyś zrobić
   z Vi. Szósta edycja zawiera też informacje o Vimie.
 
   Po polsku wydano:
@@ -991,4 +991,5 @@
   rev. Marzec 2002
   2nd rev. Wrzesień 2004
   3rd rev. Marzec 2006
+  4th rev. Grudzień 2008
   Wszelkie uwagi proszę kierować na: [email protected]
diff -Nur runtime.patched/vimrc_example.vim runtime/vimrc_example.vim
--- runtime.patched/vimrc_example.vim	2008-07-02 13:11:53.000000000 -0700
+++ runtime/vimrc_example.vim	2009-01-14 12:14:38.000000000 -0800
@@ -1,7 +1,7 @@
 " An example for a vimrc file.
 "
 " Maintainer:	Bram Moolenaar <[email protected]>
-" Last change:	2008 Jul 02
+" Last change:	2008 Dec 17
 "
 " To use it, copy it to
 "     for Unix and OS/2:  ~/.vimrc
@@ -14,7 +14,7 @@
   finish
 endif
 
-" Use Vim settings, rather then Vi settings (much better!).
+" Use Vim settings, rather than Vi settings (much better!).
 " This must be first, because it changes other options as a side effect.
 set nocompatible