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 <NdrOchip@ScampbellPfamily.AbizM-NOSPAM>
 " 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 <Bram@vim.org>
-" 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 <fishburn@ianywhere.com>
-" 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 <now@bitwi.se>
-" 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/04/27*\\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 <hwang@mizi.co.kr>
-				    Nam SungHyun <namsh@kldp.org>
+				    SungHyun Nam <goweol@gmail.com>
 
  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 <hwang@mizi.co.kr>
-	Nam SungHyun <namsh@kldp.org>
+	SungHyun Nam <goweol@gmail.com>
 	K.Nagano <nagano@atese.advantest.co.jp>
 	Taro Muraoka  <koron@tka.att.ne.jp>
 	Yasuhiro Matsumoto <mattn@mail.goo.ne.jp>
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 <arpadffy@polarhome.com>
+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 @@
 .\" (richard.hitier@dial.oleane.com)
 .\" Mise à jour de la traduction par David Blanchet
 .\" (david.blanchet@free.fr) 2006-06-10
+.\" Mise à jour de la traduction par Dominique Pellé
+.\" (dominique.pelle@gmail.com) 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 @@
 .\" (richard.hitier@dial.oleane.com)
 .\" Mise Ã  jour de la traduction par David Blanchet
 .\" (david.blanchet@free.fr) 2006-06-10
+.\" Mise Ã  jour de la traduction par Dominique PellÃ©
+.\" (dominique.pelle@gmail.com) 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: bware@mines.colorado.edu
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: bware@mines.colorado.edu
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 <Bram@vim.org>
-" 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 <osterwischc@asme.org>
-" 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 <now@bitwi.se>
-" 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 <mrw@eandem.co.uk>
-" 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 <Bram@vim.org>
-" 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 <namsh@kldp.org>
-" Last Change:	2007 Nov 30
+" Maintainer:	SungHyun Nam <goweol@gmail.com>
+" 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 <sigzero@gmail.com>
+" 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 <cthuang@larc.ee.nthu.edu.tw>
-" 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 <Bram@vim.org>
-" 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 <Bram@vim.org>
-" 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 <Bram@vim.org>
+" 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 <johannes@zellner.org>
-" 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 <wahjava@members.fsf.org>
+" 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 <dradul@users.sourceforge.net>
-" Version:		6.4.p0-1
-" Last Change:		2005 Dec 01
+" Previous translator:	Alejandro López-Valencia <dradul@users.sourceforge.net>
+" Last translator:	Omar Campagne Polaino <ocampagne@gmail.com>
+" 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 <namsh@kldp.org>
-" Last Change:		2003 Apr 25
+" Maintainer:		SungHyun Nam <goweol@gmail.com>
+" 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 <namsh@kldp.org>
-" Last Change:		2003 Apr 25
+" Maintainer:		SungHyun Nam <goweol@gmail.com>
+" 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 <namsh@kldp.org>
-" Last Change:		2003 Feb 24
+" Translated By:	SungHyun Nam <goweol@gmail.com>
+" 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 <Bram@vim.org>
-" 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 <Bram@vim.org>
-" 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 <Bram@vim.org>
-" 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 <NdrOchip@ScampbellPfamily.AbizM-NOSPAM>
 " 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 <Bram@vim.org>
-" 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 <Bram@vim.org>
-" Last Change: 2008 Jul 17
+" Last Change: 2009 Jul 14
 "	       (modified by David Ne\v{c}as (Yeti) <yeti@physics.muni.cz>)
 "	       (XHTML support by Panagiotis Issaris <takis@lumumba.luc.ac.be>)
 "	       (made w3 compliant by Edd Barrett <vext01@gmail.com>)
 "	       (added html_font. Edd Barrett <vext01@gmail.com>)
+"	       (dynamic folding by Ben Fritz <fritzophrenic@gmail.com>)
 
 " 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 <Bram@vim.org>
-" 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 <ch@lathspell.westend.com>
-" 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 <awithers@anduin.com>
 " Former Maintainer:	Johannes Zellner <johannes@zellner.org>
-" 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 <pkg-vim-maintainers@lists.alioth.debian.org>
 " Former Maintainers: Gerfried Fuchs <alfie@ist.org>
 "                     Wichert Akkerman <wakkerma@debian.org>
-" 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 <pkg-vim-maintainers@lists.alioth.debian.org>
 " Former Maintainers: Gerfried Fuchs <alfie@ist.org>
 "                     Wichert Akkerman <wakkerma@debian.org>
-" 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 <pkg-vim-maintainers@lists.alioth.debian.org>
 " Former Maintainer: Matthijs Mohlmann <matthijs@cacholong.nl>
-" 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 <dmh@dmh.org.uk>
-" 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 <mrw@eandem.co.uk>
 " 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 <vimmer@frog.wheelycreek.net>
 " 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 <radu.dineiu@gmail.com>
 " 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) <yeti@physics.muni.cz>
 "   Stefano Zacchiroli <zack@debian.org>
 "   Georgi Georgiev <chutz@gg3.net>
 "   James Vega <jamessan@debian.org>
+"   Elias Probst <mail@eliasprobst.eu>
 "
 " 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 <claudio@fleiner.com>
 " 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 <haskell-cafe@haskell.org>
-" Last Change:		2004 Feb 23
+" Last Change:		2008 Dec 15
 " Original Author:	John Williams <jrw@pobox.com>
 "
 " 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 (Bram@vim.org)
-" 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 <claudio@fleiner.com>
 " 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 <now@bitwi.se>
-" 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. <NdrOchipS@PcampbellAfamily.Mbiz>
-" Last Change:	Sep 06, 2005
-" Version:	7
+" Maintainer:	Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz>
+" 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 <haskell-cafe@haskell.org>
 " Original Author:	Arthur van Leeuwen <arthurvl@cs.uu.nl>
-" 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) <yeti@physics.muni.cz>
-" Last Change: 2004-07-20
-" URL: http://trific.ath.cx/Ftp/vim/syntax/lilo.vim
-
+" Maintainer: help wanted!
+" Previous Maintainer: David Necas (Yeti) <yeti@physics.muni.cz>
+" 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. <NdrOchipS@PcampbellAfamily.Mbiz>
-" 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 <pmoura@logtalk.org>
-" 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 <leitner@math.fu-berlin.de>
 " Maintainer:		Gautam Iyer <gi1242@users.sourceforge.net>
-" 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 <namsh@kldp.org>
+" Maintainer:	SungHyun Nam <goweol@gmail.com>
 " Previous Maintainer:	Gautam H. Mudunuri <gmudunur@informatica.com>
 " Version Info:
-" Last Change:	2007 Dec 30
+" Last Change:	2008 Sep 17
 
 " Additional highlighting by Johannes Tanzler <johannes.tanzler@aon.at>:
 "	* 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 <peppe-vim@wielders.org>
+" Maintainer:	Maurizio Tranchero - maurizio.tranchero@gmail.com
+" Credits:	Preben 'Peppe' Guldberg <peppe-vim@wielders.org>
 "		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 <pronovic@ieee.org>
-" 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 <dwayne@translate.org.za>
-" Last Change:	2008 Jan 08
+" Last Change:	2008 Sep 17
 " Contributors: Dwayne Bailey (Most advanced syntax highlighting)
 "               Leonardo Fontenelle (Spell checking)
-"               Nam SungHyun <namsh@kldp.org> (Original maintainer)
+"               SungHyun Nam <goweol@gmail.com> (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 <jean-luc@picard.franken.de>
-" 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 <marco.bari@people.it>
 " 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 <nas@python.ca>
-" Updated:	2006-10-15
-"		Added Python 2.4 features 2006 May 4 (Dmitry Vasiliev)
+" Last Change:	2009-10-13
+" Credits:	Zvezdan Petkovic <zpetkovic@acm.org>
+"		Neil Schemenauer <nas@python.ca>
+"		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 <now@bitwi.se>
-" 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 <alberanid@libero.it>
-" 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 <jranke@uni-bremen.de>
-" 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 <jranke@uni-bremen.de>
-" 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 <feferraz@ime.usp.br>
 "			     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 <now@bitwi.se>
-" 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 <rgarciasuarez@free.fr>
 " 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 <sergey.khorev@gmail.com>
 " Original author:	Dirk van Deun <dirk@igwe.vub.ac.be>
 
@@ -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.][-#+/0-9a-f@i.boxesfdl]*"
-syn match	schemeError	oneline    ![-#+0-9.][-#+/0-9a-f@i.boxesfdl]*[^-#+/0-9a-f@i.boxesfdl \t\[\]()";][^ \t\[\]()";]*!
+syn match	schemeNumber	"[-#+.]\=[0-9][-#+/0-9a-f@i.boxesfdl]*"
+syn match	schemeError	![-#+0-9.][-#+/0-9a-f@i.boxesfdl]*[^-#+/0-9a-f@i.boxesfdl \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 - maurizio.tranchero@gmail.com
+" 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 <namsh@kldp.org>
-" Last Change:	2001 Apr 26
+" Maintainer:	SungHyun Nam <goweol@gmail.com>
+" 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.  <NdrOchipS@PcampbellAfamily.Mbiz>
 " Previous Maintainer:	Lennart Schultz <Lennart.Schultz@ecmwf.int>
-" 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 (eric.brunet@ens.fr)
@@ -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 <ralph@amissah.com>
-"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) <yeti@physics.muni.cz>
-" 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) <yeti@physics.muni.cz>
+" 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) <yeti@physics.muni.cz>
-" Last Change: 2006-03-05
-" URL: http://trific.ath.cx/Ftp/vim/syntax/sshdconfig.vim
+" Maintainer: David Necas (Yeti) <yeti@physics.muni.cz>
+" 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 <jflorian@doubledog.org>
+" 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 <jflorian@doubledog.org>
+" 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 <brett@python.org>
+" Language:	Tcl/Tk
+" Maintainer:	Taylor Venable <taylor@metasyntax.net>
+" 		(previously Brett Cannon <brett@python.org>)
 " 		(previously Dean Copsey <copsey@cs.ucdavis.edu>)
 "		(previously Matt Neumann <mattneu@purpleturtle.com>)
 "		(previously Allan Kelly <allan@fruitloaf.co.uk>)
 " Original:	Robin Becker <robin@jessikat.demon.co.uk>
-" 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. <NdrchipO@ScampbellPfamily.AbizM>
-" 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 <now@bitwi.se>
-" 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. <NdrOchipS@PcampbellAfamily.Mbiz>
-" 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 <johannes@zellner.org>
 "		Author and previous maintainer:
 "		Paul Siegmann <pauls@euronet.nl>
-" 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. <NdrOchipS@PcampbellAfamily.Mbiz>
-" 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: bware@mines.colorado.edu.
+
+  Modifita por Vim de Bram Moolenaar.
+
+  Tradukita en Esperanto de Dominique Pellé, 2008-04-01
+  Retpoþto: dominique.pelle@gmail.com
+  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: dominique.pelle@gmail.com
-  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: bware@mines.colorado.edu.
+  Université d'État du Colorado. E-mail : bware@mines.colorado.edu.
 
   Modifié pour Vim par Bram Moolenar.
-
   Traduit en Français par Adrien Beau, en avril 2001.
-  E-mail:	version.francaise@free.fr
-  Last Change:	2003 May 29
+  Dernières mises à jour par Dominique Pellé.
+
+  E-mail :      dominique.pelle@gmail.com
+  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: bware@mines.colorado.edu.
+  UniversitÃ© d'Ã‰tat du Colorado. E-mail : bware@mines.colorado.edu.
 
   ModifiÃ© pour Vim par Bram Moolenar.
-
   Traduit en FranÃ§ais par Adrien Beau, en avril 2001.
-  E-mail:	version.francaise@free.fr
-  Last Change:	2003 May 29
+  DerniÃ¨res mises Ã  jour par Dominique PellÃ©.
+
+  E-mail :      dominique.pelle@gmail.com
+  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: bware@mines.colorado.edu.
+  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: bware@mines.colorado.edu.
+
+  A Vimhez idomította Bram Moolenaar.
+
+  Magyarította: Horváth Árpád <horvath.arpad@roik.bmf.hu>, 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: bware@mines.colorado.edu.
+  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: bware@mines.colorado.edu.
+
+  A Vimhez idomította Bram Moolenaar.
+
+  Magyarította: Horváth Árpád <horvath.arpad@roik.bmf.hu>, 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: bware@mines.colorado.edu.
+  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: bware@mines.colorado.edu.
+
+  A Vimhez idomÃ­totta Bram Moolenaar.
+
+  MagyarÃ­totta: HorvÃ¡th Ã�rpÃ¡d <horvath.arpad@roik.bmf.hu>, 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‚ð’Ç‰Á‚·‚é‚É‚Í 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: mikmach@wp.pl
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: mikmach@wp.pl
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: mikmach@wp.pl
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 <Bram@vim.org>
-" 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
 
