diff --git a/runtime/autoload/netrw.vim b/runtime/autoload/netrw.vim
index 79abec5947ed12821a00c22e8fb323d29b2bac35..f0767abeaa71876182483e35da2fe10bd571dd85 100644
--- a/runtime/autoload/netrw.vim
+++ b/runtime/autoload/netrw.vim
@@ -1,7 +1,7 @@
 " netrw.vim: Handles file transfer and remote directory listing across a network
 "            AUTOLOAD PORTION
-" Date:		Apr 14, 2006
-" Version:	88
+" Date:		Apr 21, 2006
+" Version:	91
 " Maintainer:	Charles E Campbell, Jr <drchipNOSPAM at campbellfamily dot biz>
 " GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim
 " Copyright:    Copyright (C) 1999-2005 Charles E. Campbell, Jr. {{{1
@@ -23,7 +23,7 @@
 if &cp || exists("g:loaded_netrw")
   finish
 endif
-let g:loaded_netrw = "v88"
+let g:loaded_netrw = "v91"
 if v:version < 700
  echohl WarningMsg | echo "***netrw*** you need vim version 7.0 or later for version ".g:loaded_netrw." of netrw" | echohl None
  finish
@@ -396,7 +396,7 @@ fun! netrw#NetRead(mode,...)
     let choice = substitute(choice,'\\','/','ge')
 "    call Decho("fixing up windows url to <".choice."> tmpfile<".tmpfile)
 
-    exe 'lcd ' . fnamemodify(tmpfile,':h')
+    exe 'cd ' . fnamemodify(tmpfile,':h')
     let tmpfile = fnamemodify(tmpfile,':t')
    endif
 
@@ -890,7 +890,7 @@ fun! netrw#NetWrite(...) range
    if has("win32") || has("win95") || has("win64") || has("win16")
     let choice= substitute(choice,'\\','/','ge')
     "ER: see NetRead()
-    exe 'lcd ' . fnamemodify(tmpfile,':h')
+    exe 'cd ' . fnamemodify(tmpfile,':h')
     let tmpfile = fnamemodify(tmpfile,':t')
    endif
 
@@ -1233,6 +1233,7 @@ fun! s:NetBrowse(dirname)
 "   call Decho("new path<".path.">")
 
    " remote-read the requested file into current buffer
+   mark '
    keepjumps keepalt enew!
    set ma
 "   call Decho("exe file ".method."://".user.machine."/".escape(path,s:netrw_cd_escape))
@@ -1257,6 +1258,7 @@ fun! s:NetBrowse(dirname)
   let bufname   = method.'://'.user.machine.'/'.path
   let bufnamenr = bufnr(bufname.'$')
 "  call Decho("bufname<".bufname."> bufnamenr=".bufnamenr)
+  mark '
   if bufnamenr != -1
    " buffer already exists, switch to it!
 "   call Decho("buffer already exists, switching to it")
@@ -1324,7 +1326,7 @@ fun! s:NetBrowse(dirname)
   setlocal ma nonu nowrap
 
   " Set up the banner
-"  call Decho("set up the banner: sortby<".g:netrw_sort_by."> method<".method.">")
+"  call Decho("set up the banner: sortby<".g:netrw_sort_by."> method<".method."> direction<".g:netrw_sort_direction.">")
   keepjumps put ='\" ==========================================================================='
   keepjumps put ='\" Netrw Remote Directory Listing                                 (netrw '.g:loaded_netrw.')'
   keepjumps put ='\"   '.bufname
@@ -2148,10 +2150,10 @@ fun! s:NetrwWideListing()
    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'
-  else
-"   call Dret("NetrwWideListing")
-   return
-  endif
+   else
+"    call Dret("NetrwWideListing")
+    return
+   endif
 "   call Decho("max file strlen+1=".b:netrw_cpf)
    let b:netrw_cpf= b:netrw_cpf + 1
 
@@ -2163,7 +2165,7 @@ fun! s:NetrwWideListing()
 "   call Decho("fpl= ".winwidth(0)."/[b:netrw_cpf=".b:netrw_cpf.']='.w:netrw_fpl)
 
    " make wide display
-   exe 'silent keepjumps '.w:netrw_bannercnt.',$s/^.*$/\=printf("%-'.b:netrw_cpf.'s",submatch(0))/'
+   exe 'silent keepjumps '.w:netrw_bannercnt.',$s/^.*$/\=printf("%-'.b:netrw_cpf.'s",escape(submatch(0),"\\"))/'
    let fpc         = (line("$") - w:netrw_bannercnt + w:netrw_fpl)/w:netrw_fpl
    let newcolstart = w:netrw_bannercnt + fpc
    let newcolend   = newcolstart + fpc - 1
@@ -2252,11 +2254,15 @@ fun! s:NetMakeDir(usrhost)
     call mkdir(fullnewdir,"p")
    else
     let netrw_origdir= s:NetGetcwd(1)
-    exe 'cd '.b:netrw_curdir
-"    call Decho("netrw_origdir<".netrw_origdir."> b:netrw_curdir<".b:netrw_curdir.">")
+    exe 'keepjumps cd '.b:netrw_curdir
+"    call Decho("netrw_origdir<".netrw_origdir.">: cd b:netrw_curdir<".b:netrw_curdir.">")
 "    call Decho("exe silent! !".g:netrw_local_mkdir.' "'.newdirname.'"')
     exe "silent! !".g:netrw_local_mkdir.' "'.newdirname.'"'
     if !g:netrw_keepdir | exe 'keepjumps cd '.netrw_origdir | endif
+    if !g:netrw_keepdir
+     exe 'keepjumps cd '.netrw_origdir
+"     call Decho("netrw_keepdir=".g:netrw_keepdir.": cd ".netrw_origdir)
+    endif
    endif
 
    if v:shell_error == 0
@@ -2770,6 +2776,11 @@ fun! netrw#DirBrowse(dirname)
   endif
 
   call s:NetOptionSave()
+  if w:acdkeep
+   exe 'cd '.escape(a:dirname,s:netrw_cd_escape)
+"   call Decho("cd ".escape(a:dirname,s:netrw_cd_escape))
+"   call Decho("getcwd<".getcwd().">")
+  endif
 
   if v:version < 603
    if !exists("g:netrw_quiet")
@@ -2807,6 +2818,7 @@ fun! netrw#DirBrowse(dirname)
   endif
 
   " get cleared buffer
+  mark '
   if bufnum < 0 || !bufexists(bufnum)
    keepjumps keepalt enew!
 "   call Decho("enew buffer")
@@ -2815,8 +2827,8 @@ fun! netrw#DirBrowse(dirname)
    if exists("s:last_sort_by") && g:netrw_sort_by == s:last_sort_by
     if getline(2) =~ '^" Netrw Directory Listing '
      if !g:netrw_keepdir
-"      call Decho("change directory: cd ".b:netrw_curdir)
       exe 'cd '.escape(b:netrw_curdir,s:netrw_cd_escape)
+"      call Decho("netrw_keepdir=".g:netrw_keepdir.": cd ".escape(b:netrw_curdir,s:netrw_cd_escape))
      endif
      call s:NetOptionRestore()
 "     call Dret("DirBrowse : reusing buffer#".bufnum."<".a:dirname.">")
@@ -2847,7 +2859,7 @@ fun! netrw#DirBrowse(dirname)
 
   " make netrw's idea of the current directory vim's if the user wishes
   if !g:netrw_keepdir
-"   call Decho("change directory: cd ".b:netrw_curdir)
+"   call Decho("netrw_keepdir=".g:netrw_keepdir.": cd ".escape(b:netrw_curdir,s:netrw_cd_escape))
    try
     exe 'cd '.escape(b:netrw_curdir,s:netrw_cd_escape)
    catch /^Vim\%((\a\+)\)\=:E472/
@@ -2916,8 +2928,12 @@ fun! netrw#DirBrowse(dirname)
   nnoremap <buffer> <silent> v		:call <SID>NetSplit(3)<cr>
   nnoremap <buffer> <silent> x		:call netrw#NetBrowseX(<SID>LocalBrowseChgDir(b:netrw_curdir,<SID>NetGetWord(),0),0)"<cr>
   nnoremap <buffer> <silent> <2-leftmouse>	:call <SID>LocalBrowse(<SID>LocalBrowseChgDir(b:netrw_curdir,<SID>NetGetWord()))<cr>
-  nnoremap <buffer> <silent> <s-up>	:Pexplore<cr>
-  nnoremap <buffer> <silent> <s-down>	:Nexplore<cr>
+  if s:didstarstar || !mapcheck("<s-down>","n")
+   nnoremap <buffer> <silent> <s-down>	:Nexplore<cr>
+  endif
+  if s:didstarstar || !mapcheck("<s-up>","n")
+   nnoremap <buffer> <silent> <s-up>	:Pexplore<cr>
+  endif
   exe 'nnoremap <buffer> <silent> <del>	:call <SID>LocalBrowseRm("'.b:netrw_curdir.'")<cr>'
   exe 'vnoremap <buffer> <silent> <del>	:call <SID>LocalBrowseRm("'.b:netrw_curdir.'")<cr>'
   exe 'nnoremap <buffer> <silent> D	:call <SID>LocalBrowseRm("'.b:netrw_curdir.'")<cr>'
@@ -3040,7 +3056,7 @@ endfun
 " ---------------------------------------------------------------------
 "  LocalBrowseList: does the job of "ls" for local directories {{{2
 fun! s:LocalBrowseList()
-"  call Dfunc("LocalBrowseList() b:netrw_curdir<".b:netrw_curdir.">")
+"  call Dfunc("LocalBrowseList() b:netrw_curdir<".b:netrw_curdir."> sortby<".g:netrw_sort_by.">")
 
   " get the list of files contained in the current directory
   let dirname    = escape(b:netrw_curdir,s:netrw_glob_escape)
@@ -3070,7 +3086,11 @@ fun! s:LocalBrowseList()
 "  call Decho("filelist<".filelist.">")
   endif
   let filelist= substitute(filelist,'\n\{2,}','\n','ge')
-  let filelist= substitute(filelist,'\','/','ge')
+  if (has("win32") || has("win95") || has("win64") || has("win16"))
+   let filelist= substitute(filelist,'\','/','ge')
+  else
+   let filelist= substitute(filelist,'\','\\','ge')
+  endif
 
 "  call Decho("dirname<".dirname.">")
 "  call Decho("dirnamelen<".dirnamelen.">")
@@ -3503,6 +3523,12 @@ fun! netrw#Explore(indx,dosplit,style,...)
   endif
   norm! 0
 
+  if a:1 =~ '\*/'
+   " Explore */pattern
+   let pattern= substitute(a:1,'^\*/\(.*\)$','\1','')
+"   call Decho("Explore */".pattern)
+  endif
+
   if a:1 == "" && a:indx >= 0
    " Explore Hexplore Vexplore Sexplore
 "   call Decho("Explore Hexplore Vexplore Sexplore")
@@ -3516,26 +3542,61 @@ fun! netrw#Explore(indx,dosplit,style,...)
     call s:LocalBrowse(newdir)
    endif
 
-  elseif a:1 =~ '\*\*/' || a:indx < 0
-   " Nexplore Pexplore -or-  Explore **/...
-"   call Decho("Nexplore Pexplore -or-  Explore **/...")
+  elseif a:1 =~ '^\*\*/' || a:indx < 0 || a:1 =~ '^\*/'
+   " Nexplore, Pexplore, Explore **/... , or Explore */pattern
+"   call Decho("Nexplore, Pexplore, <s-down>, <s-up>, Explore ".a:1)
+   let s:didstarstar= 1
+   if exists("b:netrw_curdir")
+    nnoremap <buffer> <silent> <s-up>	:Pexplore<cr>
+    nnoremap <buffer> <silent> <s-down>	:Nexplore<cr>
+   endif
 
    if has("path_extra")
     if !exists("w:netrw_explore_indx")
      let w:netrw_explore_indx= 0
     endif
     let indx = a:indx
+"    call Decho("input indx=".indx)
+"
     if indx == -1
+     if !exists("w:netrw_explore_list") " sanity check
+      echohl WarningMsg | echo "***netrw*** using Nexplore or <s-down> improperly; see help for netrw-starstar" | echohl None
+      call inputsave()|call input("Press <cr> to continue")|call inputrestore()
+"      call Dret("Explore")
+      return
+     endif
      let indx= w:netrw_explore_indx + 1
+"     call Decho("indx= [w:netrw_explore_indx=".w:netrw_explore_indx."]=".indx)
+
     elseif indx == -2
+     if !exists("w:netrw_explore_list") " sanity check
+      echohl WarningMsg | echo "***netrw*** using Pexplore or <s-up> improperly; see help for netrw-starstar" | echohl None
+      call inputsave()|call input("Press <cr> to continue")|call inputrestore()
+"      call Dret("Explore")
+      return
+     endif
      let indx= w:netrw_explore_indx - 1
+"     call Decho("indx= [w:netrw_explore_indx=".w:netrw_explore_indx."]=".indx)
+
     else
+     " build list of files to Explore with Nexplore/Pexplore
      let w:netrw_explore_indx    = 0
      if !exists("b:netrw_curdir")
       let b:netrw_curdir= getcwd()
      endif
-     let w:netrw_explore_list    = split(expand(b:netrw_curdir."/".a:1),'\n')
+"     call Decho("b:netrw_curdir<".b:netrw_curdir.">")
+     if exists("pattern")
+"      call Decho("building list based on pattern<".pattern."> cwd<".getcwd().">")
+      exe "vimgrep /".pattern."/gj ".b:netrw_curdir."/*"
+      let w:netrw_explore_list = map(getqflist(),'b:netrw_curdir.bufname(v:val.bufnr)')
+     else
+"      call Decho("building list based on ".b:netrw_curdir."/".a:1)
+      let w:netrw_explore_list= split(expand(b:netrw_curdir."/".a:1),'\n')
+     endif
+
      let w:netrw_explore_listlen = len(w:netrw_explore_list)
+"     call Decho("w:netrw_explore_list<".string(w:netrw_explore_list)."> listlen=".w:netrw_explore_listlen)
+
      if w:netrw_explore_listlen == 1 && w:netrw_explore_list[0] =~ '\*\*\/'
       echohl WarningMsg | echo "***netrw*** no files matched" | echohl None
       call inputsave()|call input("Press <cr> to continue")|call inputrestore()
@@ -3928,14 +3989,9 @@ fun! s:NetOptionSave()
   endif
 
   " Get Temporary Filename
-  let w:aikeep   = &ai
-"  " netrw and the acd option do not work together properly
-"  if &acd && (has("netbeans_intg") || has("sun_workshop"))
-"   set noacd
-"   echohl Warning | echomsg "***warning*** directory browsing and the acd setting are incompatible" |echohl None
-"  endif
-  let w:fokeep    = &fo
+  let w:acdkeep   = &acd
   let w:aikeep    = &ai
+  let w:fokeep    = &fo
   let w:cikeep    = &ci
   let w:cinkeep   = &cin
   let w:cinokeep  = &cino
@@ -3943,9 +3999,6 @@ fun! s:NetOptionSave()
   let w:cpokeep   = &cpo
   let w:hidkeep   = &hidden
   let w:magickeep = &magic
-  if !g:netrw_keepdir
-   let w:dirkeep  = getcwd()
-  endif
   let w:gdkeep    = &gd
   let w:repkeep   = &report
   let w:spellkeep = &spell
@@ -3953,7 +4006,7 @@ fun! s:NetOptionSave()
   setlocal cino =
   setlocal com  =
   setlocal cpo -=aA
-  setlocal nocin noai noci magic nospell fo=nroql2 nohid
+  setlocal noacd nocin noai noci magic nospell fo=nroql2 nohid
   setlocal tw   =0
   setlocal report=10000
   if has("win32") && !has("win95")
@@ -3975,14 +4028,13 @@ fun! s:NetOptionRestore()
   endif
   unlet w:netoptionsave
 
-  if exists("w:aikeep")| let &ai= w:aikeep|endif
+  if exists("w:acdkeep")  |let &acd    = w:acdkeep     |unlet w:acdkeep  |endif
   if exists("w:aikeep")   |let &ai     = w:aikeep      |unlet w:aikeep   |endif
   if exists("w:cikeep")   |let &ci     = w:cikeep      |unlet w:cikeep   |endif
   if exists("w:cinkeep")  |let &cin    = w:cinkeep     |unlet w:cinkeep  |endif
   if exists("w:cinokeep") |let &cino   = w:cinokeep    |unlet w:cinokeep |endif
   if exists("w:comkeep")  |let &com    = w:comkeep     |unlet w:comkeep  |endif
   if exists("w:cpokeep")  |let &cpo    = w:cpokeep     |unlet w:cpokeep  |endif
-  if exists("w:dirkeep")  |exe "lcd ".w:dirkeep        |unlet w:dirkeep  |endif
   if exists("w:fokeep")   |let &fo     = w:fokeep      |unlet w:fokeep   |endif
   if exists("w:gdkeep")   |let &gd     = w:gdkeep      |unlet w:gdkeep   |endif
   if exists("w:hidkeep")  |let &hidden = w:hidkeep     |unlet w:hidkeep  |endif
diff --git a/runtime/autoload/paste.vim b/runtime/autoload/paste.vim
index 435c5e623509fcc05c755a6c77245a0aff8e58f3..a61cec64f83931339cbc7accdd0eb219b23bdcd2 100644
--- a/runtime/autoload/paste.vim
+++ b/runtime/autoload/paste.vim
@@ -1,6 +1,6 @@
 " Vim support file to help with paste mappings and menus
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2006 Mar 09
+" Last Change:	2006 Apr 21
 
 " Define the string to use for items that are present both in Edit, Popup and
 " Toolbar menu.  Also used in mswin.vim and macmap.vim.
@@ -33,7 +33,3 @@ else
   let paste#paste_cmd['v'] = '"-c<Esc>gix<Esc>' . paste#paste_cmd['n'] . '"_x'
   let paste#paste_cmd['i'] = 'x<Esc>' . paste#paste_cmd['n'] . '"_s'
 endif
-
-if has("virtualedit")
-else
-endif
diff --git a/runtime/colors/darkblue.vim b/runtime/colors/darkblue.vim
index 4bf05d0447ce65f75c9cc1d8f4e08d5ee19ece2f..9812e989011b5d586033c3e8319ae8d22b6617eb 100644
--- a/runtime/colors/darkblue.vim
+++ b/runtime/colors/darkblue.vim
@@ -1,6 +1,6 @@
 " Vim color file
 " Maintainer:	Bohdan Vlasyuk <bohdan@vstu.edu.ua>
-" Last Change:	2005 Mar 28
+" Last Change:	2006 Apr 21
 
 " darkblue -- for those who prefer dark background
 " [note: looks bit uglier with come terminal palettes,
@@ -58,5 +58,3 @@ hi PreProc	ctermfg=magenta guifg=#ff80ff gui=none cterm=none
 hi type		ctermfg=green guifg=#60ff60 gui=none cterm=none
 hi Underlined	cterm=underline term=underline
 hi Ignore	guifg=bg ctermfg=bg
-
-
diff --git a/runtime/compiler/bdf.vim b/runtime/compiler/bdf.vim
index a30a9b6907a9b8cc1c6995127abc5b42a0f35935..ca33776988a20ede1ae83787a8ebc61600f4abbf 100644
--- a/runtime/compiler/bdf.vim
+++ b/runtime/compiler/bdf.vim
@@ -1,7 +1,7 @@
 " Vim compiler file
 " Compiler:         BDF to PCF Conversion
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("current_compiler")
   finish
@@ -11,9 +11,9 @@ let current_compiler = "bdf"
 let s:cpo_save = &cpo
 set cpo-=C
 
-CompilerSet makeprg=bdftopcf\ $*
+setlocal makeprg=bdftopcf\ $*
 
-CompilerSet errorformat=%ABDF\ %trror\ on\ line\ %l:\ %m,
+setlocal errorformat=%ABDF\ %trror\ on\ line\ %l:\ %m,
       \%-Z%p^,
       \%Cbdftopcf:\ bdf\ input\\,\ %f\\,\ corrupt,
       \%-G%.%#
diff --git a/runtime/compiler/gcc.vim b/runtime/compiler/gcc.vim
index 11f7714da191d04bfaa773325dd0a1116d7d166d..699d14f5f46e36f4bcd21113e606e7c2c6d3333e 100644
--- a/runtime/compiler/gcc.vim
+++ b/runtime/compiler/gcc.vim
@@ -1,7 +1,7 @@
 " Vim compiler file
 " Compiler:         GNU C Compiler
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("current_compiler")
   finish
diff --git a/runtime/compiler/rst.vim b/runtime/compiler/rst.vim
index d0ff88b37bc83abd8ab5173a71dd2a46be3a9200..07c7d4139c4be4ed6673e315d3286fd111b2e691 100644
--- a/runtime/compiler/rst.vim
+++ b/runtime/compiler/rst.vim
@@ -1,7 +1,7 @@
 " Vim compiler file
 " Compiler:         reStructuredText Documentation Format
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("current_compiler")
   finish
@@ -11,7 +11,7 @@ let current_compiler = "rst"
 let s:cpo_save = &cpo
 set cpo-=C
 
-CompilerSet errorformat=
+setlocal errorformat=
       \%f:%l:\ (%tEBUG/0)\ %m,
       \%f:%l:\ (%tNFO/1)\ %m,
       \%f:%l:\ (%tARNING/2)\ %m,
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 80a0c1d5431cb611795b7688c9d396f2f068343c..4fff9d0a91aa0330bc5a4a80affe0ca7159d4ae6 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*      For Vim version 7.0e.  Last change: 2006 Apr 15
+*eval.txt*      For Vim version 7.0e.  Last change: 2006 Apr 21
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1369,9 +1369,9 @@ v:lc_time	The current locale setting for time messages of the runtime
 
 						*v:lnum* *lnum-variable*
 v:lnum		Line number for the 'foldexpr' |fold-expr| and 'indentexpr'
-		expressions, tab page number for 'guitablabel'.  Only valid
-		while one of these expressions is being evaluated.  Read-only
-		when in the |sandbox|.
+		expressions, tab page number for 'guitablabel' and
+		'guitabtooltip'.  Only valid while one of these expressions is
+		being evaluated.  Read-only when in the |sandbox|.
 
 					*v:prevcount* *prevcount-variable*
 v:prevcount	The count given for the last but one Normal mode command.
diff --git a/runtime/doc/index.txt b/runtime/doc/index.txt
index 8fc3cef9c6da18010843da2b1e9c21e5897d82e5..77ebed95f2b41c524dfe4a52504325ef79cf5220 100644
--- a/runtime/doc/index.txt
+++ b/runtime/doc/index.txt
@@ -552,6 +552,9 @@ tag		command		   action in Normal mode	~
 |CTRL-W_g}|	CTRL-W g }	   do a |:ptjump| to the tag under the cursor
 |CTRL-W_gf|	CTRL-W g f	   edit file name under the cursor in a new
 				   tab page
+|CTRL-W_gF|	CTRL-W g F	   edit file name under the cursor in a new
+				   tab page and jump to the line number
+				   following the file name.
 |CTRL-W_h|	CTRL-W h	   go to Nth left window (stop at first window)
 |CTRL-W_i|	CTRL-W i	   split window and jump to declaration of
 				   identifier under the cursor
diff --git a/runtime/doc/mbyte.txt b/runtime/doc/mbyte.txt
index b660d2c77900d436393ec034bfaa22d39234ba0e..44cbea903149b05b14773b00bf4f825a77a30f95 100644
--- a/runtime/doc/mbyte.txt
+++ b/runtime/doc/mbyte.txt
@@ -1,4 +1,4 @@
-*mbyte.txt*     For Vim version 7.0e.  Last change: 2006 Apr 02
+*mbyte.txt*     For Vim version 7.0e.  Last change: 2006 Apr 21
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar et al.
@@ -1035,7 +1035,7 @@ use a brightly colored cursor: >
 	:highlight Cursor guifg=NONE guibg=Green
 	:highlight lCursor guifg=NONE guibg=Cyan
 <
-			*keymap-file-format* *:loadk* *:loadkeymap* *E105*
+		*keymap-file-format* *:loadk* *:loadkeymap* *E105* *E791*
 The keymap file looks something like this: >
 
 	" Maintainer:	name <email@address>
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index beee11d9e5ec5003d877953d3fbb25861e1664ca..7bbd96949e418c9493922215b33c97c2d7d52ec5 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt*	For Vim version 7.0e.  Last change: 2006 Apr 20
+*options.txt*	For Vim version 7.0e.  Last change: 2006 Apr 21
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -2092,12 +2092,16 @@ A jump table for the options with a short description can be found at |Q_op|.
 'debug'			string	(default "")
 			global
 			{not in Vi}
-	When set to "msg", error messages that would otherwise be omitted will
-	be given anyway.  This is useful when debugging 'foldexpr',
-	'formatexpr' or 'indentexpr'.
-	When set to "beep", a message will be given when otherwise only a beep
-	would be produced.
+	These values can be used:
+	msg	Error messages that would otherwise be omitted will be given
+		anyway.
+	throw	Error messages that would otherwise be omitted will be given
+		anyway and also throw an exception and set |v:errmsg|.
+	beep	A message will be given when otherwise only a beep would be
+		produced.
 	The values can be combined, separated by a comma.
+	"msg" and "throw" are useful for debugging 'foldexpr', 'formatexpr' or
+	'indentexpr'.
 
 						*'define'* *'def'*
 'define' 'def'		string	(default "^\s*#\s*define")
@@ -3407,11 +3411,25 @@ A jump table for the options with a short description can be found at |Q_op|.
 	|setting-guitablabel| for more info.
 
 	The format of this option is like that of 'statusline'.
+	'guitabtooltip' is used for the tooltip, see below.
 
 	Only used when the GUI tab pages line is displayed.  'e' must be
 	present in 'guioptions'.  For the non-GUI tab pages line 'tabline' is
 	used.
 
+						*'guitabtooltip'* *'gtt'*
+'guitabtooltip' 'gtt'	string	(default empty)
+			global
+			{not in Vi}
+			{only available when compiled with GUI enabled and
+			with the +windows feature}
+	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.
+
+	The tooltip only works for some systems.
+
+
 						*'helpfile'* *'hf'*
 'helpfile' 'hf'		string	(default (MSDOS)  "$VIMRUNTIME\doc\help.txt"
 					 (others) "$VIMRUNTIME/doc/help.txt")
diff --git a/runtime/doc/pi_netrw.txt b/runtime/doc/pi_netrw.txt
index 8cb8010fd0d9acb1e324e0c5e31a0df72835bdee..ee59953160e93a08c6e78ca05abd72eb35552298 100644
--- a/runtime/doc/pi_netrw.txt
+++ b/runtime/doc/pi_netrw.txt
@@ -1,4 +1,4 @@
-*pi_netrw.txt*  For Vim version 7.0e.  Last change: Apr 12, 2006
+*pi_netrw.txt*  For Vim version 7.0e.  Last change: Apr 21, 2006
 
 		VIM REFERENCE MANUAL    by Charles E. Campbell, Jr.
 
@@ -782,7 +782,7 @@ NETRW BROWSER VARIABLES					*netrw-browse-var*
 				=0 keep the current directory the same as the
 				   browsing directory.
 				The current browsing directory is contained in
-				b:netrw_curdir
+				b:netrw_curdir (also see |netrw-c|)
 
   *g:netrw_list_cmd*		command for listing remote directories
 				 default: (if ssh is executable)
@@ -919,15 +919,16 @@ DIRECTORY EXPLORING COMMANDS	*netrw-nexplore* *netrw-vexplore*
 By default, these commands use the current file's directory.  However, one
 may explicitly provide a directory (path) to use.
 
-(Following needs v7.0 or later)			*netrw-starstar*
-When Explore, Sexplore, Hexplore, or Vexplore are used with a **,
+							*netrw-starstar*
+When Explore, Sexplore, Hexplore, or Vexplore are used with a **/filepat,
 such as:
 >
 	:Explore **/filename_pattern
 <
-netrw will attempt to find a (sub)directory which matches the filename
-pattern.  Internally, it produces a list of files which match the pattern
-and their paths; to that extent it resembles the Unix operation:
+netrw will attempt to find a file in the current directory or any subdirectory
+which matches the filename pattern.  Internally, it produces a list of files
+which match the pattern and their paths; to that extent it resembles the Unix
+operation:
 >
 	find $(pwd) -name "$1" -exec "echo" "{}" ";" 2> /dev/null
 <
@@ -951,6 +952,18 @@ As an example, consider
 The status line will show, on the right hand side of the status line, a
 message like "Match 3 of 20".
 
+							*netrw-starpat*
+When Explore, Sexplore, Hexplore, or Vexplore are used with a */pattern,
+such as:
+>
+	:Explore */pattern
+<
+netrw will use |:vimgrep| to find files which contain the given pattern.
+Like what happens with |netrw-starstar|, a list of files which contain
+matches to the given pattern is generated.  The cursor will then jump
+to the first file with the given pattern; |:Nexplore|, |:Pexplore|, and
+the shifted-down and -up arrows work with the list to move to the next
+or previous files in that list.
 
 REFRESHING THE LISTING					*netrw-ctrl-l*
 
@@ -1261,14 +1274,16 @@ to forward a copy to me for future inclusion in the distribution.
 
 MAKING THE BROWSING DIRECTORY THE CURRENT DIRECTORY	*netrw-c* *netrw-curdir*
 
-By default, g:netrw_keepdir is 1.  This setting means that the current
+By default, |g:netrw_keepdir| is 1.  This setting means that the current
 directory will not track the browsing directory.  However, setting
-g:netrw_keepdir to 0 (say, in your <.vimrc>) will tell netrw to have the
-currently browsed directory be the current directory.
+g:netrw_keepdir to 0 (say, in your <.vimrc>) will tell netrw to make the
+currently browsed directory also be the current directory.
 
-With the default setting for g:netrw_keepdir, in order to make the two
-directories the same, use the "c" map (just type c).  That map will set the
-current directory to the current browsing directory.
+However, with the default setting for g:netrw_keepdir of 1 where netrw
+maintains its own separate notion of the current directory, in order to make
+the two directories the same, use the "c" map (just type c).  That map will
+set Vim's notion of the current directory to the netrw's current browsing
+directory.
 
 
 BOOKMARKING A DIRECTORY		*netrw-b* *netrw-bookmark* *netrw-bookmarks*
@@ -1447,6 +1462,17 @@ which is loaded automatically at startup (assuming :set nocp).
 ==============================================================================
 11. History						*netrw-history* {{{1
 
+	v91: * :Explore */pattern implemented
+	     * |'acd'| option bypassed
+	v90: * mark ', as suggested by Yegappan Lakshmanan, used to help
+	       guarantee entry into the jump list when appropriate.
+	     * <s-down> and <s-up> are no longer defined until a
+	       :Explore **/pattern  is used (if the user already has a map
+	       for them).  They will be defined for new browser windows
+	       from that point forward.
+	v89: * A <s-down>, <s-up>, :Nexplore, or a :Pexplore without having
+	       first done an :Explore **/pattern (see |netrw-starstar|) caused
+	       a lot of unhelpful error messages to appear
 	v88: * moved DrChip.Netrw menu to Netrw.  Now has priority 80 by
 	       default.  g:NetrwTopLvlMenu == "Netrw" and can be changed
 	       by the user to suit.  The priority is g:NetrwMenuPriority.
diff --git a/runtime/doc/print.txt b/runtime/doc/print.txt
index 54412daf1b45f3e5a3f795b1a5dc96d8ab6a8da9..b10157d7e2f8147f3216a6c2ae4135a4352cbaca 100644
--- a/runtime/doc/print.txt
+++ b/runtime/doc/print.txt
@@ -1,4 +1,4 @@
-*print.txt*     For Vim version 7.0e.  Last change: 2005 Apr 01
+*print.txt*     For Vim version 7.0e.  Last change: 2006 Apr 21
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -287,7 +287,7 @@ another font will be used as follows:
 
   if b: is missing, then use r:
   if i: is missing, then use r:
-  if o: is missing, then use i:
+  if o: is missing, then use b:
 
 Some CJK fonts do not contain characters for codes in the ASCII code range.
 Also, some characters in the CJK ASCII code ranges differ in a few code points
diff --git a/runtime/doc/quickref.txt b/runtime/doc/quickref.txt
index 8cefeafcbe5f9d7edeb710132e00faba33c3418f..78721196cf2457aca2ebe018b4a5f8a773841db7 100644
--- a/runtime/doc/quickref.txt
+++ b/runtime/doc/quickref.txt
@@ -1,4 +1,4 @@
-*quickref.txt*  For Vim version 7.0e.  Last change: 2006 Mar 23
+*quickref.txt*  For Vim version 7.0e.  Last change: 2006 Apr 21
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -707,6 +707,7 @@ Short explanation of each option:		*option-list*
 'guioptions'      'go'      GUI: Which components and options are used
 'guipty'                    GUI: try to use a pseudo-tty for ":!" commands
 'guitablabel'     'gtl'     GUI: custom label for a tab page
+'guitabtooltip'   'gtt'     GUI: custom tooltip for a tab page
 'helpfile'        'hf'      full path name of the main help file
 'helpheight'      'hh'      minimum height of a new help window
 'helplang'        'hlg'     preferred help languages
diff --git a/runtime/doc/sponsor.txt b/runtime/doc/sponsor.txt
index fe7ab27f4fdc756e8e2364b77f5bb53c6b03d761..2f9090dcdbe589e49d5089873097a00afb0e0e49 100644
--- a/runtime/doc/sponsor.txt
+++ b/runtime/doc/sponsor.txt
@@ -1,4 +1,4 @@
-*sponsor.txt*   For Vim version 7.0e.  Last change: 2006 Mar 29
+*sponsor.txt*   For Vim version 7.0e.  Last change: 2006 Apr 21
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -202,8 +202,8 @@ Are the donations tax deductible?
 
 That depends on your country.  The donations to help the children in |Uganda|
 are tax deductible in Holland, Germany, Canada and in the USA.  See the ICCF
-website http://www.iccf.nl/donate.html.  You must send an e-mail to Bram to
-let him know that the donation is done because of the use of Vim.
+website http://iccf-holland.org/donate.html.  You must send an e-mail to Bram
+to let him know that the donation is done because of the use of Vim.
 
 
 Can you send me a bill?
diff --git a/runtime/doc/tabpage.txt b/runtime/doc/tabpage.txt
index 566c802ad2189c8148e26dbb09ea8a9e4ce4aaa6..f8d1223509852bad197dc5bef39f4fcc36c6ffb1 100644
--- a/runtime/doc/tabpage.txt
+++ b/runtime/doc/tabpage.txt
@@ -1,4 +1,4 @@
-*tabpage.txt*   For Vim version 7.0e.  Last change: 2006 Apr 13
+*tabpage.txt*   For Vim version 7.0e.  Last change: 2006 Apr 21
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -82,6 +82,9 @@ In the GUI tab pages line you can use the right mouse button to open menu.
 CTRL-W gf	Open a new tab page and edit the file name under the cursor.
 		See |CTRL-W_gf|.
 
+CTRL-W gF	Open a new tab page and edit the file name under the cursor
+		and jump to the line number following the file name.
+		See |CTRL-W_gF|.
 
 CLOSING A TAB PAGE:
 
@@ -306,21 +309,25 @@ specify the label to display for each tab page.  Unlike 'tabline', which
 specifies the whole tab pages line at once, 'guitablabel' is used for each
 label separately.
 
+'guitabtooltip' is very similar and is used for the tooltip of the same label.
+This only appears when the mouse pointer hovers over the label, thus it
+usually is longer.  Only supported on some systems though.
+
 See the 'statusline' option for the format of the value.
 
 The "%N" item can be used for the current tab page number.  The |v:lnum|
-variable is also set to this number when 'guitablabel' is evaluated.
+variable is also set to this number when the option is evaluated.
 The items that use a file name refer to the current window of the tab page.
 
-Note that syntax highlighting is not used for 'guitablabel'.  The %T and %X
+Note that syntax highlighting is not used for the option.  The %T and %X
 items are also ignored.
 
 A simple example that puts the tab page number and the buffer name in the
 label: >
 	:set guitablabel=%N\ %f
 
-An example that resembles the default: Show the number of windows in the tab
-page and a '+' if there is a modifed buffer: >
+An example that resembles the default 'guitablabel': Show the number of
+windows in the tab page and a '+' if there is a modifed buffer: >
 
 	function GuiTabLabel()
 	  let label = ''
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 82fc5dd2db4ecd8064463c935374dcd4fe3860fe..08e85d8bd602958f97e9aabec738f00478873218 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 7.0e.  Last change: 2006 Apr 20
+*todo.txt*      For Vim version 7.0e.  Last change: 2006 Apr 21
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -30,7 +30,7 @@ be worked on, but only if you sponsor Vim development.  See |sponsor|.
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
-For a tooltip of at GUI tab label we need a new field.  Also 'guitabtip'?
+Win32: Crash when adding many menu entries. (Karl Waedt)
 
 Crash in "z=" when the change triggers checking out the file, FileChangedRO
 event.  Problem in move_lines()?  FileChangedShell also involved? (Neil Bird)
@@ -39,6 +39,7 @@ Added a few checks for valid buffer, did that help?
 Fix coverity false positives?
 
 Add more tests for all new functionality in Vim 7.  Especially new functions.
+    :undojoin
 
 Win32: Describe how to do debugging. (George Reilly)
 
diff --git a/runtime/doc/undo.txt b/runtime/doc/undo.txt
index 432c8558701793be8fce47d4f1c6a5fa9ffd984e..5e7b4ed8e93927a1d3b280939e5433c95e950e14 100644
--- a/runtime/doc/undo.txt
+++ b/runtime/doc/undo.txt
@@ -1,4 +1,4 @@
-*undo.txt*      For Vim version 7.0e.  Last change: 2006 Apr 12
+*undo.txt*      For Vim version 7.0e.  Last change: 2006 Apr 21
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -87,10 +87,11 @@ undone together.
 If you want to write a function or script that doesn't create a new undoable
 change but joins in with the previous change use this command:
 
-							*:undoj* *:undojoin*
+						*:undoj* *:undojoin* *E790*
 :undoj[oin]		Join further changes with the previous undo block.
 			Warning: Use with care, it may prevent the user from
-			properly undoing changes.
+			properly undoing changes.  Don't use this after undo
+			or redo.
 			{not in Vi}
 
 This is most useful when you need to prompt the user halfway a change.  For
diff --git a/runtime/doc/version7.txt b/runtime/doc/version7.txt
index 6c701e18091c6b7e8f7d0ca1c9ef234e175231ce..1aa93b6b7f5fe1fafa16573cee833db9b8f234ae 100644
--- a/runtime/doc/version7.txt
+++ b/runtime/doc/version7.txt
@@ -1,4 +1,4 @@
-*version7.txt*  For Vim version 7.0e.  Last change: 2006 Apr 20
+*version7.txt*  For Vim version 7.0e.  Last change: 2006 Apr 21
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -280,9 +280,9 @@ argument.  The maximum number of pages can be set with 'tabpagemax'.
 
 The line with tab labels is either made with plain text an highlighting or
 with a GUI mechanism.  The GUI labels look better but are only available on a
-few systems.  The line can be customized with 'tabline' and 'guitablabel'.
-Whether it is displayed is set with 'showtabline'.  Whether to use the GUI
-labels is set with the "e" flag in 'guioptions'.
+few systems.  The line can be customized with 'tabline', 'guitablabel' and
+'guitabtooltip'.  Whether it is displayed is set with 'showtabline'.  Whether
+to use the GUI labels is set with the "e" flag in 'guioptions'.
 
 The |:tab| command modifier can be used to have most commands that open a new
 window open a new tab instead.
@@ -895,6 +895,7 @@ BibTeX indent file. (Dorai Sitaram)
 BTM ftplugin file. (Bram Moolenaar)
 calendar ftplugin file. (Nikolai Weibull)
 Changelog indent file. (Nikolai Weibull)
+ChordPro syntax file. (Niels Bo Andersen)
 Cmake indent and syntax file. (Andy Cedilnik)
 conf ftplugin file. (Nikolai Weibull)
 context syntax and ftplugin file. (Nikolai Weibull)
@@ -2569,5 +2570,17 @@ It was possible to switch to another tab page when the cmdline window is open.
 
 Completion could hang when 'lines' is 6 and a preview window was opened.
 
+Added CTRL-W gF: open file under cursor in new tab page and jump to the line
+number following the file name.
+Added 'guitabtooltip', but it's not implemented anywhere yet.
+
+Added "throw" to 'debug' option: thow an exception for error messages even
+whey they would otherwise be ignored.
+
+When 'keymap' is set and a line contains an invalid entry could get a "No
+mapping found" warning instead of a proper error message.
+
+Motif: default to using XpmAttributes instead of XpmAttributes_21.
+
 
  vim:tw=78:ts=8:ft=help:norl:
diff --git a/runtime/doc/windows.txt b/runtime/doc/windows.txt
index f3e1c4545d0e05af4c7f77347fb16d1209876a66..2e5db8b511d1f2e0f804e14366acf6e121be2b07 100644
--- a/runtime/doc/windows.txt
+++ b/runtime/doc/windows.txt
@@ -729,6 +729,8 @@ CTRL-W F						*CTRL-W_F*
 		Split current window in two.  Edit file name under cursor and
 		jump to the line number following the file name. See |gF| for
 		details on how the line number is obtained.
+		{not available when the |+file_in_path| feature was disabled
+		at compile time}
 
 CTRL-W gf						*CTRL-W_gf*
 		Open a new tab page and edit the file name under the cursor.
@@ -737,6 +739,14 @@ CTRL-W gf						*CTRL-W_gf*
 		{not available when the |+file_in_path| feature was disabled
 		at compile time}
 
+CTRL-W gF						*CTRL-W_gF*
+		Open a new tab page and edit the file name under the cursor
+		and jump to the line number following the file name.  Like
+		"tab split" and "gF", but the new tab page isn't created if
+		the file does not exist.
+		{not available when the |+file_in_path| feature was disabled
+		at compile time}
+
 Also see |CTRL-W_CTRL-I|: open window for an included file that includes
 the keyword under the cursor.
 
diff --git a/runtime/filetype.vim b/runtime/filetype.vim
index ef59e536448ab98019fd6aba2e86d7f0b46f5fd7..617cbe6dd92063099edda5956163431ce7357bf0 100644
--- a/runtime/filetype.vim
+++ b/runtime/filetype.vim
@@ -1,7 +1,7 @@
 " Vim support file to detect file types
 "
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2006 Apr 19
+" Last Change:	2006 Apr 21
 
 " Listen very carefully, I will say this only once
 if exists("did_load_filetypes")
@@ -390,6 +390,9 @@ fun! s:FTchange()
   setf chill
 endfun
 
+" ChordPro
+au BufNewFile,BufRead *.chopro,*.crd,*.cho,*.crdpro,*.chordpro	setf chordpro
+
 " Clean
 au BufNewFile,BufRead *.dcl,*.icl		setf clean
 
diff --git a/runtime/ftplugin/a2ps.vim b/runtime/ftplugin/a2ps.vim
index e590c98067c5e311992a293613bf5da76bcfaba8..a596fc83963e664f565e81725b9d2405f52141bb 100644
--- a/runtime/ftplugin/a2ps.vim
+++ b/runtime/ftplugin/a2ps.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         a2ps(1) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/ada.vim b/runtime/ftplugin/ada.vim
index 06c057fc835041f5596cfb77afc39e2d323a80ff..13fa8f93f475f84fccd799541de8d553eb1a4185 100644
--- a/runtime/ftplugin/ada.vim
+++ b/runtime/ftplugin/ada.vim
@@ -1,7 +1,7 @@
 " Vim Ada plugin file
 " Language:	Ada
 " Maintainer:	Neil Bird <neil@fnxweb.com>
-" Last Change:	2003 May 11
+" Last Change:	2006 Apr 21
 " Version:	$Id$
 " Look for the latest version at http://vim.sourceforge.net/
 "
@@ -14,7 +14,6 @@
 " Exports 'AdaWord()' function to return full name of Ada entity under the
 " cursor( or at given line/column), stripping whitespace/newlines as necessary.
 
-
 " Only do this when not done yet for this buffer
 if exists("b:did_ftplugin")
   finish
@@ -27,11 +26,9 @@ let b:did_ftplugin = 1
 let s:cpoptions = &cpoptions
 set cpo-=C
 
-
 " Ada comments
 setlocal comments+=O:--
 
-
 " Make local tag mappings for this buffer (if not already set)
 if mapcheck('<C-]>','n') == ''
   nnoremap <unique> <buffer> <C-]>    :call JumpToTag_ada('')<cr>
diff --git a/runtime/ftplugin/alsaconf.vim b/runtime/ftplugin/alsaconf.vim
index c0e13a7e9a7b0bf07c7fb107b0f0354db96f1014..0ef6991d38c8b336d1a49b02ed375a953f15c980 100644
--- a/runtime/ftplugin/alsaconf.vim
+++ b/runtime/ftplugin/alsaconf.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         alsaconf(8) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/arch.vim b/runtime/ftplugin/arch.vim
index 9433f100931415d09f30bfb3e01872fd405f7eea..2da9e40ac1433da8cf125ca89aea0486b909fed4 100644
--- a/runtime/ftplugin/arch.vim
+++ b/runtime/ftplugin/arch.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         GNU Arch inventory file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/automake.vim b/runtime/ftplugin/automake.vim
index 1ef28d1ec37ef0df2689566d871c542d559d56f6..c48ea13e15c40ff1a5ed671d425eb839d9668cd0 100644
--- a/runtime/ftplugin/automake.vim
+++ b/runtime/ftplugin/automake.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         Automake
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-22
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/bdf.vim b/runtime/ftplugin/bdf.vim
index 92ee66bfc44b2a0bf97d7acb7db75e7b9bd8dc2c..a010c2c5aeb73cce74bd86bdb726f850cf4073ef 100644
--- a/runtime/ftplugin/bdf.vim
+++ b/runtime/ftplugin/bdf.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         BDF font definition
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/calendar.vim b/runtime/ftplugin/calendar.vim
index c786203dbed66f96f64b16010f957f937dfcd17f..ca5651118cb9b6cbce3b0c48f84ce901743c0d92 100644
--- a/runtime/ftplugin/calendar.vim
+++ b/runtime/ftplugin/calendar.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         calendar(1) input file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/changelog.vim b/runtime/ftplugin/changelog.vim
index b229dbe84c21d4d04cd8091cabb7b0fdf0987df8..b4206a200906da135d96222c45358a608e396d2c 100644
--- a/runtime/ftplugin/changelog.vim
+++ b/runtime/ftplugin/changelog.vim
@@ -1,11 +1,14 @@
 " Vim filetype plugin file
 " Language:         generic Changelog file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 " Variables:
-"   g:changelog_timeformat -
+"   g:changelog_timeformat (deprecated: use g:changelog_dateformat instead) -
 "       description: the timeformat used in ChangeLog entries.
 "       default: "%Y-%m-%d".
+"   g:changelog_dateformat -
+"       description: the format sent to strftime() to generate a date string.
+"       default: "%Y-%m-%d".
 "   g:changelog_username -
 "       description: the username to use in ChangeLog entries
 "       default: try to deduce it from environment variables and system files.
@@ -25,8 +28,8 @@
 "  Problem is that you might end up with ChangeLog files all over the place.
 
 " If 'filetype' isn't "changelog", we must have been to add ChangeLog opener
-if &filetype == "changelog"
-  if exists("b:did_ftplugin")
+if &filetype == 'changelog'
+  if exists('b:did_ftplugin')
     finish
   endif
   let b:did_ftplugin = 1
@@ -34,20 +37,25 @@ if &filetype == "changelog"
   let s:cpo_save = &cpo
   set cpo&vim
 
-  " The format of the date-time field (should have been called dateformat)
-  if !exists("g:changelog_timeformat")
-    let g:changelog_timeformat = "%Y-%m-%d"
+  " Set up the format used for dates.
+  if !exists('g:changelog_dateformat')
+    if exists('g:changelog_timeformat')
+      let g:changelog_dateformat = g:changelog_timeformat
+    else
+      let g:changelog_dateformat = "%Y-%m-%d"
+    endif
   endif
 
   " Try to figure out a reasonable username of the form:
-  " Full Name <user@host>
-  if !exists("g:changelog_username")
-    if exists("$EMAIL_ADDRESS")
-      let g:changelog_username = $EMAIL_ADDRESS
-    elseif exists("$EMAIL")
+  "   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
+      " Get the users login name.
       let login = system('whoami')
       if v:shell_error
         let login = 'unknown'
@@ -58,43 +66,42 @@ if &filetype == "changelog"
         endif
       endif
 
-      " Try to full name from gecos field in /etc/passwd
+      " Try to get the full name from gecos field in /etc/passwd.
       if filereadable('/etc/passwd')
-        let name = substitute(
-              \system('cat /etc/passwd | grep ^`whoami`'),
-              \'^\%([^:]*:\)\{4}\([^:]*\):.*$', '\1', '')
+        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
 
-      " If there is no such file, or there was some other problem try
-      " others
-      if !filereadable('/etc/passwd') || v:shell_error
-        " Maybe the environment has something of interest
+      " 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
+          " character.
           let name = toupper(login[0]) . strpart(login, 1)
         endif
       endif
 
-      " 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
-
-      " Get our hostname
-      let hostname = system("hostname")
+      " Get our hostname.
+      let hostname = system('hostname')
       if v:shell_error
-        let hostname = 'unknownhost'
+        let hostname = 'localhost'
       else
         let newline = stridx(hostname, "\n")
         if newline != -1
@@ -102,102 +109,99 @@ if &filetype == "changelog"
         endif
       endif
 
-      " And finally set the username
-      let g:changelog_username = name.'  <'.login.'@'.hostname.'>'
+      " And finally set the username.
+      let g:changelog_username = name . '  <' . login . '@' . hostname . '>'
     endif
   endif
 
-  " Format used for new date-entries
-  if !exists("g:changelog_new_date_format")
+  " Format used for new date entries.
+  if !exists('g:changelog_new_date_format')
     let g:changelog_new_date_format = "%d  %u\n\n\t* %c\n\n"
   endif
 
-  " Format used for new entries to current date-entry
-  if !exists("g:changelog_new_entry_format")
+  " Format used for new entries to current date entry.
+  if !exists('g:changelog_new_entry_format')
     let g:changelog_new_entry_format = "\t* %c"
   endif
 
-  if !exists("g:changelog_date_entry_search")
+  " Regular expression used to find a given date entry.
+  if !exists('g:changelog_date_entry_search')
     let g:changelog_date_entry_search = '^\s*%d\_s*%u'
   endif
 
-  " Substitutes specific items in new date-entry formats and search strings
-  " Can be done with substitute of course, but unclean, and need \@! then
+  " Substitutes specific items in new date-entry formats and search strings.
+  " Can be done with substitute of course, but unclean, and need \@! then.
   function! s:substitute_items(str, date, user)
     let str = a:str
+    let middles = {'%': '%', 'd': a:date, 'u': a:user, 'c': '{cursor}'}
     let i = stridx(str, '%')
     while i != -1
-      let char = str[i + 1]
-      if char == '%'
-        let middle = '%'
-      elseif char == 'd'
-        let middle = a:date
-      elseif char == 'u'
-        let middle = a:user
-      elseif char == 'c'
-        let middle = '{cursor}'
-      else
-        let middle = char
+      let inc = 0
+      if has_key(middles, str[i + 1])
+        let mid = middles[str[i + 1]]
+        let str = strpart(str, 0, i) . mid . strpart(str, i + 2)
+        let inc = strlen(mid)
       endif
-      let str = strpart(str, 0, i) . middle . strpart(str, i + 2)
-      let i = stridx(str, '%')
+      let i = stridx(str, '%', i + 1 + inc)
     endwhile
     return str
   endfunction
 
+  " Position the cursor once we've done all the funky substitution.
   function! s:position_cursor()
     if search('{cursor}') > 0
-      let pos = line('.')
-      let line = getline(pos)
+      let lnum = line('.')
+      let line = getline(lnum)
       let cursor = stridx(line, '{cursor}')
-      call setline(pos, substitute(line, '{cursor}', '', ''))
+      call setline(lnum, substitute(line, '{cursor}', '', ''))
     endif
     startinsert!
   endfunction
 
-  " Internal function to create a new entry in the ChangeLog
+  " Internal function to create a new entry in the ChangeLog.
   function! s:new_changelog_entry()
-    " Deal with 'paste' option
+    " Deal with 'paste' option.
     let save_paste = &paste
     let &paste = 1
-    1
-    " Look for an entry for today by our user
-    let date = strftime(g:changelog_timeformat)
+    call cursor(1, 1)
+    " Look for an entry for today by our user.
+    let date = strftime(g:changelog_dateformat)
     let search = s:substitute_items(g:changelog_date_entry_search, date,
-          \g:changelog_username)
+                                  \ g:changelog_username)
     if search(search) > 0
-      " Ok, now we look for the end of the date-entry, and add an entry
-      let pos = nextnonblank(line('.') + 1)
-      let line = getline(pos)
-      while line =~ '^\s\+\S\+'
-        let pos = pos + 1
-        let line = getline(pos)
-      endwhile
-      let insert = s:substitute_items(g:changelog_new_entry_format,
-            \'', '')
-      execute "normal! ".(pos - 1)."Go".insert
-      execute pos
+      " Ok, now we look for the end of the date entry, and add an entry.
+      call cursor(nextnonblank(line('.') + 1), 1)
+      if search('^\s*$', 'W') > 0
+        let p = line('.') - 1
+      else
+        let p = line('.')
+      endif
+      let ls = split(s:substitute_items(g:changelog_new_entry_format, '', ''),
+                   \ '\n')
+      call append(p, ls)
+      call cursor(p + 1, 1)
     else
-      " Flag for removing empty lines at end of new ChangeLogs
+      " Flag for removing empty lines at end of new ChangeLogs.
       let remove_empty = line('$') == 1
 
-      " No entry today, so create a date-user header and insert an entry
+      " No entry today, so create a date-user header and insert an entry.
       let todays_entry = s:substitute_items(g:changelog_new_date_format,
-            \date, g:changelog_username)
-      " Make sure we have a cursor positioning
+                                          \ date, g:changelog_username)
+      " Make sure we have a cursor positioning.
       if stridx(todays_entry, '{cursor}') == -1
-        let todays_entry = todays_entry.'{cursor}'
+        let todays_entry = todays_entry . '{cursor}'
       endif
 
-      " Now do the work
-      execute "normal! i".todays_entry
+      " Now do the work.
+      call append(0, split(todays_entry, '\n'))
+      
+      " Remove empty lines at end of file.
       if remove_empty
-        while getline('$') == ''
-          $delete
-        endwhile
+        $-/^\s*$/-1,$delete
       endif
 
-      1
+      " Reposition cursor once we're done.
+      call cursor(1, 1)
     endif
 
     call s:position_cursor()
@@ -211,16 +215,18 @@ if &filetype == "changelog"
     command! -nargs=0 NewChangelogEntry call s:new_changelog_entry()
   endif
 
-  let b:undo_ftplugin = "setl com< tw< fo< et< ai<"
+  let b:undo_ftplugin = "setl com< fo< et< ai<"
 
-  if &textwidth == 0
-    setlocal textwidth=78
-  endif
   setlocal comments=
   setlocal formatoptions+=t
   setlocal noexpandtab
   setlocal autoindent
 
+  if &textwidth == 0
+    setlocal textwidth=78
+    let b:undo_ftplugin .= " tw<"
+  endif
+
   let &cpo = s:cpo_save
   unlet s:cpo_save
 else
@@ -228,23 +234,20 @@ else
   nmap <silent> <Leader>o :call <SID>open_changelog()<CR>
 
   function! s:open_changelog()
-    if filereadable('ChangeLog')
-      if bufloaded('ChangeLog')
-        let buf = bufnr('ChangeLog')
-        execute "normal! \<C-W>t"
-        while winbufnr(winnr()) != buf
-          execute "normal! \<C-W>w"
-        endwhile
-      else
-        split ChangeLog
-      endif
-
-      if exists("g:mapleader")
-        execute "normal " . g:mapleader . "o"
+    if !filereadable('ChangeLog')
+      return
+    endif
+    let buf = bufnr('ChangeLog')
+    if buf != -1
+      if bufwinnr(buf) != -1
+        execute buf . 'wincmd w'
       else
-        execute "normal \\o"
+        execute 'bsplit' buf
       endif
-      startinsert!
+    else
+      split ChangeLog
     endif
+
+    call s:new_changelog_entry()
   endfunction
 endif
diff --git a/runtime/ftplugin/conf.vim b/runtime/ftplugin/conf.vim
index 6087c21928316205b0d1f6c9f01d560bde8fefc3..8e0b7f8d212010f622f4b743f4852c726e7f3a11 100644
--- a/runtime/ftplugin/conf.vim
+++ b/runtime/ftplugin/conf.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         generic configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/context.vim b/runtime/ftplugin/context.vim
index 10be14cb0ecf23fcafe301fdbbce9a41618abfec..c74be071415572c57a05f742c3d73c754a996a4c 100644
--- a/runtime/ftplugin/context.vim
+++ b/runtime/ftplugin/context.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         ConTeXt typesetting engine
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
@@ -13,7 +13,7 @@ set cpo&vim
 
 let b:undo_ftplugin = "setl com< cms< def< inc< sua< fo<"
 
-setlocal comments=:%,b:%D,b:%C,b:%M commentstring=%\ %s formatoptions+=tcroql
+setlocal comments=b:%D,b:%C,b:%M,:% commentstring=%\ %s formatoptions+=tcroql
 
 let &l:define='\\\%([egx]\|char\|mathchar\|count\|dimen\|muskip\|skip\|toks\)\='
         \ .     'def\|\\font\|\\\%(future\)\=let'
diff --git a/runtime/ftplugin/crm.vim b/runtime/ftplugin/crm.vim
index 71ae83f1864175a3209b99c3170603f790217d7b..8ec42a90c2840e9bd0b7e3e63f4b83726295d399 100644
--- a/runtime/ftplugin/crm.vim
+++ b/runtime/ftplugin/crm.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         CRM114
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/css.vim b/runtime/ftplugin/css.vim
index d9d90055362719a25186c93bd9c7c1928b878423..13a0f9ff463cb25eb4a5480d006f20b7886eeff3 100644
--- a/runtime/ftplugin/css.vim
+++ b/runtime/ftplugin/css.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         CSS
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/cvsrc.vim b/runtime/ftplugin/cvsrc.vim
index beb222fd7c9c03e39bc9e3c6f0750d9299143d4e..2a49f8d60b4439f53a0f9e8cabe9e9c88e579370 100644
--- a/runtime/ftplugin/cvsrc.vim
+++ b/runtime/ftplugin/cvsrc.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         cvs(1) RC file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/dictconf.vim b/runtime/ftplugin/dictconf.vim
index b818ff1d10158cb9a35957062b030279c5093395..6ebd94adf1fb022cb9a8c6367bf9a566b7bfaab2 100644
--- a/runtime/ftplugin/dictconf.vim
+++ b/runtime/ftplugin/dictconf.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         dict(1) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-30
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/dictdconf.vim b/runtime/ftplugin/dictdconf.vim
index 68111b12f02a44d8a2ded8572acc00de926e99ed..bda87821a011033e0440fa1e781054dbc7c41c7f 100644
--- a/runtime/ftplugin/dictdconf.vim
+++ b/runtime/ftplugin/dictdconf.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         dictd(8) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-01
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/dircolors.vim b/runtime/ftplugin/dircolors.vim
index 4bda7ea8e97741ef2846b968704b224f3c83e686..bdbecc0196bc0c7c49249f5aaef603ddcb03f77a 100644
--- a/runtime/ftplugin/dircolors.vim
+++ b/runtime/ftplugin/dircolors.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         dircolors(1) input file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/elinks.vim b/runtime/ftplugin/elinks.vim
index ac1642dcad57ccc1e83860d7cfdeea3cc60ae1c2..c7c11f642f83222941dfff821c26700be5708e95 100644
--- a/runtime/ftplugin/elinks.vim
+++ b/runtime/ftplugin/elinks.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         elinks(1) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/eterm.vim b/runtime/ftplugin/eterm.vim
index 257a4154c72e7490e04e03cac162eb4ec906491e..df5bf5007d2f71f7734b1e7336657361e6cdd993 100644
--- a/runtime/ftplugin/eterm.vim
+++ b/runtime/ftplugin/eterm.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         eterm(1) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/fetchmail.vim b/runtime/ftplugin/fetchmail.vim
index e9f195f41d978547b95924de9b7bbea3ca20e27a..174ed448bf398cf4a167766bbb389455db875fa4 100644
--- a/runtime/ftplugin/fetchmail.vim
+++ b/runtime/ftplugin/fetchmail.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         fetchmail(1) RC File
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/gpg.vim b/runtime/ftplugin/gpg.vim
index b68424451445206583b221014f8f1d8392a57790..d4bed143b5a43e551c83896fe0cf0b1d938a7c27 100644
--- a/runtime/ftplugin/gpg.vim
+++ b/runtime/ftplugin/gpg.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         gpg(1) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/group.vim b/runtime/ftplugin/group.vim
index 443c4eb95b249dbbbe9f502fc35024fb9b02bf43..447ba183c5a0a6ce0f728fe9e51ebe3bbb8245ed 100644
--- a/runtime/ftplugin/group.vim
+++ b/runtime/ftplugin/group.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         group(5) user group file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/grub.vim b/runtime/ftplugin/grub.vim
index 6230ec3eebd591c497107a16ed1fefa9146476fa..162fcd3eb8c5ee837355f40240a63cb671a19df5 100644
--- a/runtime/ftplugin/grub.vim
+++ b/runtime/ftplugin/grub.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         grub(8) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/haskell.vim b/runtime/ftplugin/haskell.vim
index 141e90ae910a5bdcbfab125afa48fe9c738115ff..a16dadb0011cc818f5a152e3edcec19f9c52038c 100644
--- a/runtime/ftplugin/haskell.vim
+++ b/runtime/ftplugin/haskell.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         Haskell
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/help.vim b/runtime/ftplugin/help.vim
index e2439ba0e6ffaa63699223b6c1101a1b7e3f1ca2..7e82081a565c63e6e6f915b537373eac634089c3 100644
--- a/runtime/ftplugin/help.vim
+++ b/runtime/ftplugin/help.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         Vim help file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/indent.vim b/runtime/ftplugin/indent.vim
index 8266e937c289eae029b01a1ff9565fca0f2c0ffd..2047b1de026e9ac312e0ba4bee10c87c671dce74 100644
--- a/runtime/ftplugin/indent.vim
+++ b/runtime/ftplugin/indent.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         indent(1) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/ld.vim b/runtime/ftplugin/ld.vim
index f8ba5896c3ca565cdf419a8af5fc2c0c620a4b51..544fc0d0ed26df137fae91b572f4db94c5e321a1 100644
--- a/runtime/ftplugin/ld.vim
+++ b/runtime/ftplugin/ld.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         ld(1) script
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/lftp.vim b/runtime/ftplugin/lftp.vim
index 8b26e55064a2bc66d61fab737f6d4ec892c8950b..e81684c2dcfa51198d436e4c42c34d935b1e1a9b 100644
--- a/runtime/ftplugin/lftp.vim
+++ b/runtime/ftplugin/lftp.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         lftp(1) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/libao.vim b/runtime/ftplugin/libao.vim
index 83a00f3fa50a455c21db8444147fc8b4a16a6ee0..8845b17fc13333ea9d3ba335dae7bd6475424b6f 100644
--- a/runtime/ftplugin/libao.vim
+++ b/runtime/ftplugin/libao.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         libao.conf(5) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/limits.vim b/runtime/ftplugin/limits.vim
index 586372303d57c68c1d7736d796bc7b92de446967..6b18c83731d49adb340c4d6d4097a879c5f921ee 100644
--- a/runtime/ftplugin/limits.vim
+++ b/runtime/ftplugin/limits.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         limits(5) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/loginaccess.vim b/runtime/ftplugin/loginaccess.vim
index 616ff0b6cb11e8dfd83d25bd3ce11a116649fb5d..c5cb1b1cb10be74978cee7e7f91cc7dbf3f09b2b 100644
--- a/runtime/ftplugin/loginaccess.vim
+++ b/runtime/ftplugin/loginaccess.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         login.access(5) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/logindefs.vim b/runtime/ftplugin/logindefs.vim
index e51a38318dfbda283c07297e0835046fecd806db..431755e52d7ce99773dab3698b952e891fc9cf40 100644
--- a/runtime/ftplugin/logindefs.vim
+++ b/runtime/ftplugin/logindefs.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         login.defs(5) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/m4.vim b/runtime/ftplugin/m4.vim
index 1754fd0678c2b1a146e46d0f5bccb1707c104bf5..870258409a4c7c998fa0020df08217631fdd6e03 100644
--- a/runtime/ftplugin/m4.vim
+++ b/runtime/ftplugin/m4.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         m4
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/mailcap.vim b/runtime/ftplugin/mailcap.vim
index ec1143f9f9127492152c68685f1df6c66187bc54..df4e994c044debf04bf56da321d1409e305ebf1a 100644
--- a/runtime/ftplugin/mailcap.vim
+++ b/runtime/ftplugin/mailcap.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         Mailcap configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/manconf.vim b/runtime/ftplugin/manconf.vim
index ac4b1fae25bb984e4f4694de7db80c70d0dfae96..69cf6f504dfcbf1320cac38eb21ee401415f6e12 100644
--- a/runtime/ftplugin/manconf.vim
+++ b/runtime/ftplugin/manconf.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         man.conf(5) - man configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-30
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/mf.vim b/runtime/ftplugin/mf.vim
index d9c9c90bd5bee8f981c791ae239e9e875d9aed6b..e351a13612b00c027b7fb6ce7ecf251086327e40 100644
--- a/runtime/ftplugin/mf.vim
+++ b/runtime/ftplugin/mf.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         MetaFont
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/modconf.vim b/runtime/ftplugin/modconf.vim
index a33a8f65ef4addc86db9b453d8fc17e9dbfff1d5..97102a1ee7a5a7b409a5905e91e2689c91314346 100644
--- a/runtime/ftplugin/modconf.vim
+++ b/runtime/ftplugin/modconf.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         modules.conf(5) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/mp.vim b/runtime/ftplugin/mp.vim
index aad8d9519fa945378ab089fac63976d9f9314699..1d709ea7546e3126351bd0b9609a4ae57119500b 100644
--- a/runtime/ftplugin/mp.vim
+++ b/runtime/ftplugin/mp.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         MetaPost
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/mplayerconf.vim b/runtime/ftplugin/mplayerconf.vim
index 15ff201098da5cb5a504768202e3a72d27cf9bf9..e410667d298150d6a82387c0704b2292a92c6b63 100644
--- a/runtime/ftplugin/mplayerconf.vim
+++ b/runtime/ftplugin/mplayerconf.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         mplayer(1) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/muttrc.vim b/runtime/ftplugin/muttrc.vim
index 184d6e53edcc000efee00db0fbd49f40c61d7e1d..18b06d81396373216e13d942e8bbba3c7b01203c 100644
--- a/runtime/ftplugin/muttrc.vim
+++ b/runtime/ftplugin/muttrc.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         mutt RC File
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/nanorc.vim b/runtime/ftplugin/nanorc.vim
index 539ee024361b723c56c1da45aa52fad42bd30ccc..67a2a48cc0d559d9268cae41c4e7b643ed478bd1 100644
--- a/runtime/ftplugin/nanorc.vim
+++ b/runtime/ftplugin/nanorc.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         nanorc(5) - GNU nano configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-30
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/netrc.vim b/runtime/ftplugin/netrc.vim
index 206dfd08f90573bebfafa2a0aceda37127b3a231..0f9417a831b774a2451c4d5aa46c29ad7c5b7136 100644
--- a/runtime/ftplugin/netrc.vim
+++ b/runtime/ftplugin/netrc.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         netrc(5) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/pamconf.vim b/runtime/ftplugin/pamconf.vim
index 860c0d029e87eee8080c067a8677ee50bdcc6d02..cf9707aab6289aaefa723e1ebd53f748118c6ad6 100644
--- a/runtime/ftplugin/pamconf.vim
+++ b/runtime/ftplugin/pamconf.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         pam(8) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/passwd.vim b/runtime/ftplugin/passwd.vim
index 3b08ae4fc5f4da181820f4d72270bf68e0b36288..20f2b7f58dae29b247563e33fc53e4ca4c31bbfd 100644
--- a/runtime/ftplugin/passwd.vim
+++ b/runtime/ftplugin/passwd.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         passwd(5) password file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/pinfo.vim b/runtime/ftplugin/pinfo.vim
index f56467f320c0a9c0864269dc683fde3336678d31..7f1ecdfb59352b487bc18e873f70fbe5a92c3128 100644
--- a/runtime/ftplugin/pinfo.vim
+++ b/runtime/ftplugin/pinfo.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         pinfo(1) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/procmail.vim b/runtime/ftplugin/procmail.vim
index f3edc369cd25aee28655bb1376cb90e86401f20f..a8db58eb96a596d16ebfcf3a36c7dbbdc4c13a8d 100644
--- a/runtime/ftplugin/procmail.vim
+++ b/runtime/ftplugin/procmail.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         procmail(1) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/prolog.vim b/runtime/ftplugin/prolog.vim
index eebbdab0024ff9527cceb27b88264a795ed50084..cf191a90beb64b84bf82637a31ec38a42a01da1d 100644
--- a/runtime/ftplugin/prolog.vim
+++ b/runtime/ftplugin/prolog.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         Prolog
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/protocols.vim b/runtime/ftplugin/protocols.vim
index 2e04d8591cb50de1112b083bc1107bfd7966052f..b3679bd591571c92ee64c721c2230801ca799195 100644
--- a/runtime/ftplugin/protocols.vim
+++ b/runtime/ftplugin/protocols.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         protocols(5) - Internet protocols definition file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-30
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/quake.vim b/runtime/ftplugin/quake.vim
index e658eb0b5fa53448a040bae1d2997de48a9b70be..25c6e7e50e22baad229dc5ed200e9753731ddabd 100644
--- a/runtime/ftplugin/quake.vim
+++ b/runtime/ftplugin/quake.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         Quake[1-3] configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/racc.vim b/runtime/ftplugin/racc.vim
index 6969080bd3a34bbb7ffaa32ee241772b3d94dc8b..72c1e14cdc480b3ed94e6ee30158613562c58fe7 100644
--- a/runtime/ftplugin/racc.vim
+++ b/runtime/ftplugin/racc.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         Racc input file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/readline.vim b/runtime/ftplugin/readline.vim
index bf29a41d01c0605cd7475dc5ed568eb16de2676c..9656c57572022a4772606de216d635f834cb9dbb 100644
--- a/runtime/ftplugin/readline.vim
+++ b/runtime/ftplugin/readline.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         readline(3) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/rnc.vim b/runtime/ftplugin/rnc.vim
index ca875b8b3577bd4bbca4bb2471c3c6327396bcad..a5d21fb26de8c7607fff8afe087a33d511cdff1e 100644
--- a/runtime/ftplugin/rnc.vim
+++ b/runtime/ftplugin/rnc.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         Relax NG compact syntax
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/rst.vim b/runtime/ftplugin/rst.vim
index 7c297b8f6d18d264d1a12081522ca35e89123182..8fc25e9e242241650b8fc9fe3e34da0d48576976 100644
--- a/runtime/ftplugin/rst.vim
+++ b/runtime/ftplugin/rst.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         reStructuredText documentation format
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/screen.vim b/runtime/ftplugin/screen.vim
index 03b9b98267b13810baf214b64d0b36d017ee59e8..92ce475b8e654549bb8747e829e82c1c8cbc056b 100644
--- a/runtime/ftplugin/screen.vim
+++ b/runtime/ftplugin/screen.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         screen(1) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/sensors.vim b/runtime/ftplugin/sensors.vim
index d675cd911ab0daab7c197c111fcf006ba2ff0cb6..e1f66fc07e1fa798f83455c14baea5432c69f221 100644
--- a/runtime/ftplugin/sensors.vim
+++ b/runtime/ftplugin/sensors.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         sensors.conf(5) - libsensors configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/services.vim b/runtime/ftplugin/services.vim
index de7d15e0a8bd646b8a5189a1a6841080e98b64b3..d670cd90a8092300a72c33ad709e6d0d4e6aa02d 100644
--- a/runtime/ftplugin/services.vim
+++ b/runtime/ftplugin/services.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         services(5) - Internet network services list
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-30
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/setserial.vim b/runtime/ftplugin/setserial.vim
index ea0cb964e0dc9070f37a26f16c58c645b67ebf8a..4b4796bc03f1da885a3b60d06e5e9c38200a2cae 100644
--- a/runtime/ftplugin/setserial.vim
+++ b/runtime/ftplugin/setserial.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         setserial(8) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/sieve.vim b/runtime/ftplugin/sieve.vim
index 39b5d7673e20c369ed2d731e3ae418de1a408660..d906e19875d7d4f49714756615ab5cdf319a5432 100644
--- a/runtime/ftplugin/sieve.vim
+++ b/runtime/ftplugin/sieve.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         Sieve filtering language input file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/slpconf.vim b/runtime/ftplugin/slpconf.vim
index dea5dfd23991f7a24e7e1db9ccb3975745ed64f9..8c92a55b2ca88cac89068116ee8eedcf75190dd3 100644
--- a/runtime/ftplugin/slpconf.vim
+++ b/runtime/ftplugin/slpconf.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         RFC 2614 - An API for Service Location configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/slpreg.vim b/runtime/ftplugin/slpreg.vim
index 71e865bf00384e6994fd5ecf0c1553dba8d13311..07e42c1f267a41898039b98be5a86ca8ef5e5994 100644
--- a/runtime/ftplugin/slpreg.vim
+++ b/runtime/ftplugin/slpreg.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         RFC 2614 - An API for Service Location registration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/slpspi.vim b/runtime/ftplugin/slpspi.vim
index 181a7ece75ebcb8f7cdf37cfce1e213f5c7e7954..d6a67517449ecc7e217de8a89b445973da2224c6 100644
--- a/runtime/ftplugin/slpspi.vim
+++ b/runtime/ftplugin/slpspi.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         RFC 2614 - An API for Service Location SPI file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/sshconfig.vim b/runtime/ftplugin/sshconfig.vim
index f02bc7a89356743a479e54540d2e6562516a38ed..3552696a6eafdc81bd854bbc265c6a0a726fef39 100644
--- a/runtime/ftplugin/sshconfig.vim
+++ b/runtime/ftplugin/sshconfig.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         OpenSSH client configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/sudoers.vim b/runtime/ftplugin/sudoers.vim
index 30c1f5c0a5a384044e2ccece6836dc9b3aeae2fb..a698f04d6acad242addbfbedab7f3c90bef4175c 100644
--- a/runtime/ftplugin/sudoers.vim
+++ b/runtime/ftplugin/sudoers.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         sudoers(5) configuration files
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/sysctl.vim b/runtime/ftplugin/sysctl.vim
index 90618f97b75bfe3fc1a89926754733e1907619d1..6b1ac6c0453f4d1732207d36f86cf1ae3281d32b 100644
--- a/runtime/ftplugin/sysctl.vim
+++ b/runtime/ftplugin/sysctl.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         sysctl.conf(5) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/terminfo.vim b/runtime/ftplugin/terminfo.vim
index 822cac49963c9fcf14cb45a7e2294c482f232471..a473bcd06e487d7dcb2580aabe11bc8c2fd45079 100644
--- a/runtime/ftplugin/terminfo.vim
+++ b/runtime/ftplugin/terminfo.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         terminfo(5) definition
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/udevconf.vim b/runtime/ftplugin/udevconf.vim
index b7a7f840f2eff1e583c06ceb09c6da02cc9b8e62..c0a09827b595528be9517d5b8b91b46dc405f73a 100644
--- a/runtime/ftplugin/udevconf.vim
+++ b/runtime/ftplugin/udevconf.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         udev(8) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-01
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/udevperm.vim b/runtime/ftplugin/udevperm.vim
index 584a4e78f0d876284bf870a1b58564b9690a7bc4..82602b1ea42560c7086a447442da507ec9b9fff7 100644
--- a/runtime/ftplugin/udevperm.vim
+++ b/runtime/ftplugin/udevperm.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         udev(8) permissions file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-01
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/udevrules.vim b/runtime/ftplugin/udevrules.vim
index 29c02b0da2ae7583639d684ff8a78e5949697a74..3cb4c33467f66b50eda3c184d189ccab0e2f4190 100644
--- a/runtime/ftplugin/udevrules.vim
+++ b/runtime/ftplugin/udevrules.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         udev(8) rules file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-01
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/updatedb.vim b/runtime/ftplugin/updatedb.vim
index 20354628d1106325c9ca37e8ceb5966d56124d19..db35fee153a918bb6de86d153ef401531036d0b5 100644
--- a/runtime/ftplugin/updatedb.vim
+++ b/runtime/ftplugin/updatedb.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         updatedb.conf(5) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/xdefaults.vim b/runtime/ftplugin/xdefaults.vim
index e65cfdd264bf6066a5631405f94ec7a955d3b64b..b441dfe7f7bd50e3bb7210fa2b18afed77bab43b 100644
--- a/runtime/ftplugin/xdefaults.vim
+++ b/runtime/ftplugin/xdefaults.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         X resources files like ~/.Xdefaults (xrdb)
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/xf86conf.vim b/runtime/ftplugin/xf86conf.vim
index 2973dcd7bb70b8dbc1e9b8ff6caf33b765e1f1da..29e9eac66c7679d7ed7915a506bf6b72c528b50d 100644
--- a/runtime/ftplugin/xf86conf.vim
+++ b/runtime/ftplugin/xf86conf.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         XFree86 Configuration File
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/xinetd.vim b/runtime/ftplugin/xinetd.vim
index b789a9da424fd724804c78f2d83725bf9f9c3945..b62dec57bf8641de159828e97b4ee349e6fb9e35 100644
--- a/runtime/ftplugin/xinetd.vim
+++ b/runtime/ftplugin/xinetd.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         xinetd.conf(5) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/xmodmap.vim b/runtime/ftplugin/xmodmap.vim
index c9bdec4930eee185dcfddec30ea63da883175def..a0d913ea458f16ccb9c124cbf9c0577dd54e5925 100644
--- a/runtime/ftplugin/xmodmap.vim
+++ b/runtime/ftplugin/xmodmap.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         xmodmap(1) definition file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/yaml.vim b/runtime/ftplugin/yaml.vim
index 0b77f67c1bd72e6679c283860d8c87854ba9913a..a2893cdad8c8d4564facc649c36ad4cbdab6c015 100644
--- a/runtime/ftplugin/yaml.vim
+++ b/runtime/ftplugin/yaml.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         YAML (YAML Ain't Markup Language)
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/ftplugin/zsh.vim b/runtime/ftplugin/zsh.vim
index cd82fa4f2324dcf13cf70447d96169dcc03f2bf9..c8f82a561797bb93580a573501677bf4e3572425 100644
--- a/runtime/ftplugin/zsh.vim
+++ b/runtime/ftplugin/zsh.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         Zsh shell script
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_ftplugin")
   finish
diff --git a/runtime/indent/automake.vim b/runtime/indent/automake.vim
index 0f8dbadf805a9c7dc5e79954d50c3b75042f1b9f..28d77a8144d1448fc69c70acdbfc32785a3cb1fc 100644
--- a/runtime/indent/automake.vim
+++ b/runtime/indent/automake.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:         automake
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_indent")
   finish
diff --git a/runtime/indent/cmake.vim b/runtime/indent/cmake.vim
index e36937df5b853cea77fb4ec036054f5703849417..a1ad832f24c7cecdbbbc57c9bc69129a74cc856a 100644
--- a/runtime/indent/cmake.vim
+++ b/runtime/indent/cmake.vim
@@ -56,7 +56,7 @@ fun! CMakeGetIndent(lnum)
                     \       or . '[^()\\#"]' . or . '\\.' . '\)*'
 
   let cmake_indent_comment_line = '^\s*' . cmake_regex_comment
-  let cmake_indent_blank_regex = '^\s*$')
+  let cmake_indent_blank_regex = '^\s*$'
   let cmake_indent_open_regex = '^\s*' . cmake_regex_identifier .
                     \           '\s*(' . cmake_regex_arguments .
                     \           '\(' . cmake_regex_comment . '\)\?$'
@@ -65,8 +65,8 @@ fun! CMakeGetIndent(lnum)
                     \            ')\s*' .
                     \            '\(' . cmake_regex_comment . '\)\?$'
 
-  let cmake_indent_begin_regex = '^\s*\(IF\|MACRO\|FOREACH\|ELSE\)\s*('
-  let cmake_indent_end_regex = '^\s*\(ENDIF\|ENDFOREACH\|ENDMACRO\|ELSE\)\s*('
+  let cmake_indent_begin_regex = '^\s*\(IF\|MACRO\|FOREACH\|ELSE\|WHILE\)\s*('
+  let cmake_indent_end_regex = '^\s*\(ENDIF\|ENDFOREACH\|ENDMACRO\|ELSE\|ENDWHILE\)\s*('
 
   " Add
   if previous_line =~? cmake_indent_comment_line " Handle comments
diff --git a/runtime/indent/config.vim b/runtime/indent/config.vim
index c6c54b25f7165dd7b8e9ea65f1228923239134b9..d763db0dcc1b6a6c1015b149fc02d5d6c9f2a43e 100644
--- a/runtime/indent/config.vim
+++ b/runtime/indent/config.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:         Autoconf configure.{ac,in} file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2006-02-11
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 " TODO:             how about nested [()]'s in one line
 "                   what's wrong with '\\\@!'?
 
diff --git a/runtime/indent/css.vim b/runtime/indent/css.vim
index b0560b473d83f57864e298083ec6807ff90870b5..8c6f114fb67a94b038dea32a46be73a6384dd1f4 100644
--- a/runtime/indent/css.vim
+++ b/runtime/indent/css.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:	    CSS
-" Maintainer:	    Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-30
+" Maintainer:	    Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_indent")
   finish
diff --git a/runtime/indent/dictconf.vim b/runtime/indent/dictconf.vim
index dcaf1e152056cedd840c7f4c1564d05d7e7cc7d4..adb096103f4e87d88757731783f220af7b544449 100644
--- a/runtime/indent/dictconf.vim
+++ b/runtime/indent/dictconf.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:         dict(1) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-30
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_indent")
   finish
diff --git a/runtime/indent/dictdconf.vim b/runtime/indent/dictdconf.vim
index f8f567064a3be0bdb433a0085b0f476ae8f0ae22..235cecd34d8f09b621f42085b51d26dedc7bb407 100644
--- a/runtime/indent/dictdconf.vim
+++ b/runtime/indent/dictdconf.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:         dictd(8) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-01
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_indent")
   finish
diff --git a/runtime/indent/docbk.vim b/runtime/indent/docbk.vim
index 575b91f006b10622141b6699b41ceeeefc0edd9c..b8af5f2a1005a2691d32a64e4f266b49da298063 100644
--- a/runtime/indent/docbk.vim
+++ b/runtime/indent/docbk.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:         DocBook Documentation Format
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_indent")
   finish
diff --git a/runtime/indent/eterm.vim b/runtime/indent/eterm.vim
index 938b94a72afccb39a8e1e63f440b469aa1ddd927..730924068b429daf58c8f879106109f5cf786300 100644
--- a/runtime/indent/eterm.vim
+++ b/runtime/indent/eterm.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:         Eterm configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_indent")
   finish
diff --git a/runtime/indent/ld.vim b/runtime/indent/ld.vim
index 440b106f1201c985df88f671a9d4c96ba96d6489..e50b703b20fbe8c041476e54199f99db72452605 100644
--- a/runtime/indent/ld.vim
+++ b/runtime/indent/ld.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:         ld(1) script
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-30
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_indent")
   finish
diff --git a/runtime/indent/make.vim b/runtime/indent/make.vim
index 9db77f004aa992d06b390d9a656bb5d9cef1af46..58504929f2b2a8726504759d7badd4d4e8b3b2e9 100644
--- a/runtime/indent/make.vim
+++ b/runtime/indent/make.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:         Makefile
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_indent")
   finish
@@ -15,18 +15,9 @@ if exists("*GetMakeIndent")
   finish
 endif
 
-function s:GetStringWidth(line, str)
-  let end = matchend(a:line, a:str)
-  let width = 0
-  for c in a:line
-    if c == "\t"
-      let width += &ts - (width % &ts)
-    else
-      let width += 1
-    endif
-  endfor
-  return width
-endfunction
+let s:rule_rx = '^[^ \t#:][^#:]*:\{1,2}\%([^=:]\|$\)'
+let s:continuation_rx = '\\$'
+let s:assignment_rx = '^\s*\h\w*\s*+\==\s*\zs.*\\$'
 
 function GetMakeIndent()
   let lnum = v:lnum - 1
@@ -35,11 +26,27 @@ function GetMakeIndent()
   endif
 
   let line = getline(lnum)
-  if line == ''
-    return 0
-  elseif line =~ '^[^ \t#:][^#:]*:\{1,2}\%([^=:]\|$\)'
-    return indent(lnum) + &ts
-  elseif line =~ '^\s*\h\w*\s*+\==\s*.\+\\$'
-    return s:GetStringWidth(line, '+\==\s*')
+  let ind = indent(lnum)
+
+  if line =~ s:rule_rx
+    return ind + &ts
+  elseif line =~ s:continuation_rx
+    while lnum > 0 && line =~ s:continuation_rx && line !~ s:assignment_rx
+      let lnum -= 1
+      let line = getline(lnum)
+    endwhile
+    if line =~ s:assignment_rx
+      call cursor(lnum, 1)
+      return search(s:assignment_rx, 'W') != 0 ? virtcol('.') - 1 : 0
+    else
+      return 0
+    endif
+  else
+    let pnum = lnum - 1
+    if pnum == 0
+      return ind
+    endif
+
+    return getline(pnum) =~ s:continuation_rx ? 0 : ind
   endif
 endfunction
diff --git a/runtime/indent/python.vim b/runtime/indent/python.vim
index f268bf9e5089d1f37930c217c2586f8d81f57d00..4b8e81bac7b2f4e650741de93ae5006408bc0539 100644
--- a/runtime/indent/python.vim
+++ b/runtime/indent/python.vim
@@ -2,7 +2,7 @@
 " Language:		Python
 " Maintainer:		Bram Moolenaar <Bram@vim.org>
 " Original Author:	David Bustos <bustos@caltech.edu>
-" Last Change:		2006 Mar 26
+" Last Change:		2006 Apr 21
 
 " Only load this indent file when no other was loaded.
 if exists("b:did_indent")
diff --git a/runtime/indent/readline.vim b/runtime/indent/readline.vim
index 52d2a71314d116e71df2a4e27a174bce72c60205..94e4ea40335da8d51a016d0a271ed0eb527f5099 100644
--- a/runtime/indent/readline.vim
+++ b/runtime/indent/readline.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:         readline configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_indent")
   finish
diff --git a/runtime/indent/rst.vim b/runtime/indent/rst.vim
index f98e7556db0e08522fd51c3b32732df5ae701e7a..ac5e9bb5c7948256d57ab3441caad18a3977a5d7 100644
--- a/runtime/indent/rst.vim
+++ b/runtime/indent/rst.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:         reStructuredText Documentation Format
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_indent")
   finish
diff --git a/runtime/indent/sh.vim b/runtime/indent/sh.vim
index b6ce774595b1974877cac329521d6cac1b5a6493..7919c096055a2d9f14efc2667e0afad5c39675c3 100644
--- a/runtime/indent/sh.vim
+++ b/runtime/indent/sh.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:         Shell Script
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_indent")
   finish
diff --git a/runtime/indent/sml.vim b/runtime/indent/sml.vim
index 30d3108a605944b73d3c9a2f1a28c53dfe181aa3..fbbb15ed85fd5129801bf7b3f95d1473c58bec0a 100644
--- a/runtime/indent/sml.vim
+++ b/runtime/indent/sml.vim
@@ -130,14 +130,16 @@ function! GetSMLIndent()
 	elseif line =~ '^\s*else\>'
 	  	if lline !~ '^\s*\(if\|else\|then\)\>'
 				return s:FindPair('\<if\>', '', '\<then\>')
-	  	else return ind
+	  	else
+		  return ind
 		endif
 
 	" Match 'then' with 'if'
 	elseif line =~ '^\s*then\>'
   	if lline !~ '^\s*\(if\|else\|then\)\>'
 		  return s:FindPair('\<if\>', '', '\<then\>')
-	else return ind
+	else
+	  return ind
 	endif
 
 	" Indent if current line begins with ']'
diff --git a/runtime/indent/tcl.vim b/runtime/indent/tcl.vim
index 546b60daf8a49357470fbccd4aae0c5fa0e6ed92..1b0cc16d5b5954aeb4f91df064130cb7e0cb704a 100644
--- a/runtime/indent/tcl.vim
+++ b/runtime/indent/tcl.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:	    Tcl
-" Maintainer:	    Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-30
+" Maintainer:	    Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_indent")
   finish
diff --git a/runtime/indent/xf86conf.vim b/runtime/indent/xf86conf.vim
index f1f1c8ed58eb5cd72381d42bff45c2e58bfe21af..5b2be6d3e03fd7a9aac84bfc820117050d97dd23 100644
--- a/runtime/indent/xf86conf.vim
+++ b/runtime/indent/xf86conf.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:         XFree86 Configuration File
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_indent")
   finish
diff --git a/runtime/indent/xinetd.vim b/runtime/indent/xinetd.vim
index 6838163bf86096bee3339325720489bd4d54ef4b..398e05af9885ca3bf47153ca6bbeca278f8cd5a3 100644
--- a/runtime/indent/xinetd.vim
+++ b/runtime/indent/xinetd.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:         xinetd.conf(5) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-28
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_indent")
   finish
diff --git a/runtime/indent/yacc.vim b/runtime/indent/yacc.vim
index 9d0798d49237589cad495b582caf7426830554ed..d100ceb38b7eb01ebafa0ea862700ffe43629339 100644
--- a/runtime/indent/yacc.vim
+++ b/runtime/indent/yacc.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:         YACC input file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 " Only load this indent file when no other was loaded.
 if exists("b:did_indent")
diff --git a/runtime/indent/zsh.vim b/runtime/indent/zsh.vim
index 72b00b8c736702c19ba3d1616e1d0b27bc50cc4b..5bf231521b356dfe19f167b5f223e42ccaf981a2 100644
--- a/runtime/indent/zsh.vim
+++ b/runtime/indent/zsh.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:         Zsh Shell Script
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_indent")
   finish
diff --git a/runtime/keymap/persian-iranian_utf-8.vim b/runtime/keymap/persian-iranian_utf-8.vim
index 2cd56995c65f362f3dfbfa59bb8ffd717391bce3..e8dcd76e7dfd0a6920c5d912f45904caee72c3bf 100644
--- a/runtime/keymap/persian-iranian_utf-8.vim
+++ b/runtime/keymap/persian-iranian_utf-8.vim
@@ -1,7 +1,7 @@
 " Vim Keymap file for Persian Standard Keyboard Layout
 " Maintainers: Behnam 'ZWNJ' Esfahbod <behnam@zwnj.org>,
 "	       Amir Hedayaty <hedayaty@gmail.com>
-" Last Change: 2005 Nov 30
+" Last Change: 2006 Apr 21
 
 scriptencoding utf-8
 
@@ -58,7 +58,7 @@ m	Ù¾
 ,	Ùˆ
 .	.
 /	/
-\	\
+\\	\\
 
 ~	÷
 !	!
diff --git a/runtime/lang/menu_chinese_gb.936.vim b/runtime/lang/menu_chinese_gb.936.vim
index 55a24422d3cac522c1ab299f11f597ebda746de2..d11a4b2267f34a6d7f5cd6a02690296855ec9b5e 100644
--- a/runtime/lang/menu_chinese_gb.936.vim
+++ b/runtime/lang/menu_chinese_gb.936.vim
@@ -52,7 +52,7 @@ menutrans &Paste<Tab>"+gP		Õ³
 menutrans Put\ &Before<Tab>[p		Õ³Ìùµ½¹â±êǰ(&B)<Tab>[p
 menutrans Put\ &After<Tab>]p		Õ³Ìùµ½¹â±êºó(&A)<Tab>]p
 menutrans &Delete<Tab>x			ɾ³ý(&D)<Tab>x
-menutrans &Select\ all<Tab>ggVG		ȫѡ(&S)<Tab>ggVG
+menutrans &Select\ All<Tab>ggVG		ȫѡ(&S)<Tab>ggVG
 menutrans &Find\.\.\.			²éÕÒ(&F)\.\.\.
 menutrans Find\ and\ Rep&lace\.\.\.	²éÕÒºÍÌæ»»(&L)\.\.\.
 menutrans &Find<Tab>/			²éÕÒ(&F)<Tab>/
diff --git a/runtime/lang/menu_zh_cn.gb2312.vim b/runtime/lang/menu_zh_cn.gb2312.vim
index 78840ec43b60ee68ea7b69971848f45e32af9a0a..1ec0fbdcd6b9c63e3cea080da8255d7652d42304 100644
--- a/runtime/lang/menu_zh_cn.gb2312.vim
+++ b/runtime/lang/menu_zh_cn.gb2312.vim
@@ -52,7 +52,7 @@ menutrans &Paste<Tab>"+gP		Õ³
 menutrans Put\ &Before<Tab>[p		Õ³Ìùµ½¹â±êǰ(&B)<Tab>[p
 menutrans Put\ &After<Tab>]p		Õ³Ìùµ½¹â±êºó(&A)<Tab>]p
 menutrans &Delete<Tab>x			ɾ³ý(&D)<Tab>x
-menutrans &Select\ all<Tab>ggVG		ȫѡ(&S)<Tab>ggVG
+menutrans &Select\ All<Tab>ggVG		ȫѡ(&S)<Tab>ggVG
 menutrans &Find\.\.\.			²éÕÒ(&F)\.\.\.
 menutrans Find\ and\ Rep&lace\.\.\.	²éÕÒºÍÌæ»»(&L)\.\.\.
 menutrans &Find<Tab>/			²éÕÒ(&F)<Tab>/
diff --git a/runtime/lang/menu_zh_cn.utf-8.vim b/runtime/lang/menu_zh_cn.utf-8.vim
index 0df32429d18af95c9dd1360814166b8569642055..d3edd58e88febec3d25258ec1dfc5e95e5d88abf 100644
--- a/runtime/lang/menu_zh_cn.utf-8.vim
+++ b/runtime/lang/menu_zh_cn.utf-8.vim
@@ -52,7 +52,7 @@ menutrans &Paste<Tab>"+gP		粘贴(&P)<Tab>"+gP
 menutrans Put\ &Before<Tab>[p		粘贴到光标前(&B)<Tab>[p
 menutrans Put\ &After<Tab>]p		粘贴到光标后(&A)<Tab>]p
 menutrans &Delete<Tab>x			删除(&D)<Tab>x
-menutrans &Select\ all<Tab>ggVG		全选(&S)<Tab>ggVG
+menutrans &Select\ All<Tab>ggVG		全选(&S)<Tab>ggVG
 menutrans &Find\.\.\.			查找(&F)\.\.\.
 menutrans Find\ and\ Rep&lace\.\.\.	查找和替换(&L)\.\.\.
 menutrans &Find<Tab>/			查找(&F)<Tab>/
diff --git a/runtime/makemenu.vim b/runtime/makemenu.vim
index 845393db03be94d72445d8858ca9284bbf023aa3..5aa74fa7967bed32e96700f495dcd5d67b810ce0 100644
--- a/runtime/makemenu.vim
+++ b/runtime/makemenu.vim
@@ -1,6 +1,6 @@
 " Script to define the syntax menu in synmenu.vim
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2006 Apr 18
+" Last Change:	2006 Apr 21
 
 " This is used by "make menu" in the src directory.
 edit <sfile>:p:h/synmenu.vim
@@ -116,6 +116,7 @@ SynMenu C.CH\ script:ch
 SynMenu C.ChangeLog:changelog
 SynMenu C.Cheetah\ template:cheetah
 SynMenu C.CHILL:chill
+SynMenu C.ChordPro:chordpro
 SynMenu C.Clean:clean
 SynMenu C.Clever:cl
 SynMenu C.Clipper:clipper
diff --git a/runtime/optwin.vim b/runtime/optwin.vim
index 78df1defe182e2974706783811598fdfb88b65a3..3595e1598e81f938aab3ab11ca63bc89da2a79c4 100644
--- a/runtime/optwin.vim
+++ b/runtime/optwin.vim
@@ -1,7 +1,7 @@
 " These commands create the option window.
 "
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2006 Mar 18
+" Last Change:	2006 Apr 21
 
 " If there already is an option window, jump to that one.
 if bufwinnr("option-window") > 0
@@ -481,6 +481,8 @@ call append("$", "tabline\tcustom tab pages line")
 call <SID>OptionG("tal", &tal)
 call append("$", "guitablabel\tcustom tab page label for the GUI")
 call <SID>OptionG("gtl", &gtl)
+call append("$", "guitabtooltip\tcustom tab page tooltip for the GUI")
+call <SID>OptionG("gtt", &gtt)
 
 
 call <SID>Header("terminal")
diff --git a/runtime/spell/es/es_ES.diff b/runtime/spell/es/es_ES.diff
index 13c6e15a89fae477b9d113e5f96ede9dfee198f8..cc4f3fb53e6ffa6eec75bdfb2ac31f2abd559368 100644
--- a/runtime/spell/es/es_ES.diff
+++ b/runtime/spell/es/es_ES.diff
@@ -1,8 +1,8 @@
-*** es_ES.orig.aff	Thu Aug 25 19:19:44 2005
---- es_ES.aff	Thu Aug 25 19:19:44 2005
+*** es_ES.orig.aff	Fri Apr 21 10:57:12 2006
+--- es_ES.aff	Fri Apr 21 11:10:16 2006
 ***************
-*** 3,4 ****
---- 3,22 ----
+*** 4,5 ****
+--- 4,12 ----
   
 + FOL  ßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ
 + LOW  ßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ
@@ -11,77 +11,28 @@
 + SOFOFROM abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ¿
 + SOFOTO   ebctefghejklnnepkrstevvkesebctefghejklnnepkrstevvkeseeeeeeeceeeeeeeedneeeeeeeeeeepseeeeeeeeceeeeeeeedneeeeeeeeeeep?
 + 
-+ MAP 9
-+ MAP aàáâãäå
-+ MAP eèéêë
-+ MAP iìíîï
-+ MAP oòóôõö
-+ MAP uùúûü
-+ MAP nñ
-+ MAP cç
-+ MAP yÿý
-+ MAP sß
-+ 
-  SFX J Y 12
-*** es_ES.orig.dic	Thu Aug 25 19:19:44 2005
---- es_ES.dic	Thu Apr 20 20:30:24 2006
-***************
-*** 485,487 ****
-  acercóse
-- acercóse
-  acería/S
---- 485,486 ----
-***************
-*** 708,710 ****
-  acríticamente
-- acrítico
-  acrítico/PS
---- 707,708 ----
-***************
-*** 948,950 ****
-  adónde
-- adónde
-  adondequiera
---- 946,947 ----
-***************
-*** 1435,1437 ****
-  ah
-- ah
-  ahajar/PSTVWX
---- 1432,1433 ----
-***************
-*** 3887,3889 ****
-  apostolado
-- apostolado
-  apostolados
---- 3883,3884 ----
+  REP 20
 ***************
-*** 12926,12928 ****
-  dame
-- dame
-  dámelo
---- 12921,12922 ----
-***************
-*** 15561,15563 ****
-  dime
-- dime
-  dímelo
---- 15555,15556 ----
-***************
-*** 25133,25135 ****
-  inadaptado/PS
-- inadecuación
-  inadecuación/S
---- 25126,25127 ----
-***************
-*** 28008,28010 ****
-  líbranos
-- líbranos
-  libranza/S
---- 28000,28001 ----
-***************
-*** 48480,48481 ****
---- 48471,48473 ----
-  xilotila/S
-+ y
-  ya
+*** 26,33 ****
+  
+! MAP 5
+! MAP aáAÁ
+! MAP eéEÉ
+! MAP iíIÍ
+! MAP oóOÓ
+! MAP uúüUÚÜ
+  PFX a Y 2
+--- 33,45 ----
+  
+! MAP 9
+! MAP aàáâãäå
+! MAP eèéêë
+! MAP iìíîï
+! MAP oòóôõö
+! MAP uùúûü
+! MAP nñ
+! MAP cç
+! MAP yÿý
+! MAP sß
+! 
+  PFX a Y 2
diff --git a/runtime/spell/es/main.aap b/runtime/spell/es/main.aap
index 9ff082ce5e0b3b5635ed951508d6f6407d1d5fb2..3a03bffe0af3b5f5433dc26a7198be255235b85d 100644
--- a/runtime/spell/es/main.aap
+++ b/runtime/spell/es/main.aap
@@ -48,7 +48,7 @@ es_ES.aff es_ES.dic: {buildcheck=}
         :assertpkg unzip patch
         :fetch $ZIPFILE_ES
         :sys $UNZIP $ZIPFILE_ES
-        :delete add-to--dictionary.lst.example
+        :delete Changelog_es_ES.txt
         :delete $ZIPFILE_ES
         @if not os.path.exists('es_ES.orig.aff'):
             :copy es_ES.aff es_ES.orig.aff
diff --git a/runtime/syntax/a2ps.vim b/runtime/syntax/a2ps.vim
index a5594439dee8d028b6e2e8455dd1539a7f29c391..2a87d62f90faed44862604ad2daf6bf4e5f5e1a3 100644
--- a/runtime/syntax/a2ps.vim
+++ b/runtime/syntax/a2ps.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         a2ps(1) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-30
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/alsaconf.vim b/runtime/syntax/alsaconf.vim
index f2bda1894b0d3d8e55128e2a28d712ccda0efb7f..8fd51f0ac479e470c0b1977f1e4722b3839d7f3d 100644
--- a/runtime/syntax/alsaconf.vim
+++ b/runtime/syntax/alsaconf.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         alsaconf(8) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/arch.vim b/runtime/syntax/arch.vim
index b9789d26038c7c2b68d688c2f3cdba2b03bb637a..1e7856d2c86b7a28a3a5a9cdf37054990e22eb8b 100644
--- a/runtime/syntax/arch.vim
+++ b/runtime/syntax/arch.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         GNU Arch inventory file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/bdf.vim b/runtime/syntax/bdf.vim
index e79a6487b74d6307b52f5dd598a4527981ea86d2..d0c73eb601f67b6d1a4a83489511d41cb9328ce1 100644
--- a/runtime/syntax/bdf.vim
+++ b/runtime/syntax/bdf.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         BDF font definition
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-27
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/calendar.vim b/runtime/syntax/calendar.vim
index c47ef32e00a25c7125563eaf7a41c6b208ab24dd..588b41a4b8a8cd0a3a95a9bbd07ccda5f9fe954c 100644
--- a/runtime/syntax/calendar.vim
+++ b/runtime/syntax/calendar.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         calendar(1) input file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/chordpro.vim b/runtime/syntax/chordpro.vim
new file mode 100644
index 0000000000000000000000000000000000000000..a251a6945f899b52cdbf388e929836c41d1caa05
--- /dev/null
+++ b/runtime/syntax/chordpro.vim
@@ -0,0 +1,67 @@
+" Vim syntax file
+" Language:     ChordPro (v. 3.6.2)
+" Maintainer:   Niels Bo Andersen <niels@niboan.dk>
+" Last Change:	2006 Apr 20 
+" Remark:       Requires VIM version 6.00 or greater
+
+" Quit when a syntax file was already loaded
+if exists("b:current_syntax")
+  finish
+endif
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+setlocal iskeyword+=-
+
+syn case ignore
+
+syn keyword chordproDirective contained
+  \ start_of_chorus soc end_of_chorus eoc new_song ns no_grid ng grid g
+  \ new_page np new_physical_page npp start_of_tab sot end_of_tab eot
+  \ column_break colb
+
+syn keyword chordproDirWithOpt contained
+  \ comment c comment_italic ci comment_box cb title t subtitle st define
+  \ textfont textsize chordfont chordsize columns col
+
+syn keyword chordproDefineKeyword contained base-fret frets
+
+syn match chordproDirMatch /{\w*}/ contains=chordproDirective contained transparent
+syn match chordproDirOptMatch /{\w*:/ contains=chordproDirWithOpt contained transparent
+
+" Workaround for a bug in VIM 6, which causes incorrect coloring of the first {
+if version < 700
+  syn region chordproOptions start=/{\w*:/ end=/}/ contains=chordproDirOptMatch contained transparent
+  syn region chordproOptions start=/{define:/ end=/}/ contains=chordproDirOptMatch, chordproDefineKeyword contained transparent
+else
+  syn region chordproOptions start=/{\w*:/hs=e+1 end=/}/he=s-1 contains=chordproDirOptMatch contained
+  syn region chordproOptions start=/{define:/hs=e+1 end=/}/he=s-1 contains=chordproDirOptMatch, chordproDefineKeyword contained
+endif
+
+syn region chordproTag start=/{/ end=/}/ contains=chordproDirMatch,chordproOptions oneline
+
+syn region chordproChord matchgroup=chordproBracket start=/\[/ end=/]/ oneline
+
+syn region chordproTab start=/{start_of_tab}\|{sot}/hs=e+1 end=/{end_of_tab}\|{eot}/he=s-1 contains=chordproTag,chordproComment keepend
+
+syn region chordproChorus start=/{start_of_chorus}\|{soc}/hs=e+1 end=/{end_of_chorus}\|{eoc}/he=s-1 contains=chordproTag,chordproChord,chordproComment keepend
+
+syn match chordproComment /^#.*/
+
+" Define the default highlighting.
+hi def link chordproDirective Statement
+hi def link chordproDirWithOpt Statement
+hi def link chordproOptions Special
+hi def link chordproChord Type
+hi def link chordproTag Constant
+hi def link chordproTab PreProc
+hi def link chordproComment Comment
+hi def link chordproBracket Constant
+hi def link chordproDefineKeyword Type
+hi def chordproChorus term=bold cterm=bold gui=bold
+
+let b:current_syntax = "chordpro"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/cmake.vim b/runtime/syntax/cmake.vim
index 8dfe3d713e518b86b6ddc9f4f299733c1eecc739..302417e5ff8e28fa29fcad1356912885c393dbd0 100644
--- a/runtime/syntax/cmake.vim
+++ b/runtime/syntax/cmake.vim
@@ -49,7 +49,7 @@ syn region cmakeArguments start=/\s*(/ end=/)/
 syn keyword cmakeDeprecated ABSTRACT_FILES BUILD_NAME SOURCE_FILES SOURCE_FILES_REMOVE VTK_MAKE_INSTANTIATOR VTK_WRAP_JAVA VTK_WRAP_PYTHON VTK_WRAP_TCL WRAP_EXCLUDE_FILES
            \ nextgroup=cmakeArgument
 syn keyword cmakeStatement
-           \ ADD_CUSTOM_COMMAND ADD_CUSTOM_TARGET ADD_DEFINITIONS ADD_DEPENDENCIES ADD_EXECUTABLE ADD_LIBRARY ADD_SUBDIRECTORY ADD_TEST AUX_SOURCE_DIRECTORY BUILD_COMMAND BUILD_NAME CMAKE_MINIMUM_REQUIRED CONFIGURE_FILE CREATE_TEST_SOURCELIST ELSE ENABLE_LANGUAGE ENABLE_TESTING ENDFOREACH ENDIF ENDWHILE EXEC_PROGRAM EXECUTE_PROCESS EXPORT_LIBRARY_DEPENDENCIES FILE FIND_FILE FIND_LIBRARY FIND_PACKAGE FIND_PATH FIND_PROGRAM FLTK_WRAP_UI FOREACH GET_CMAKE_PROPERTY GET_DIRECTORY_PROPERTY GET_FILENAME_COMPONENT GET_SOURCE_FILE_PROPERTY GET_TARGET_PROPERTY GET_TEST_PROPERTY IF INCLUDE INCLUDE_DIRECTORIES INCLUDE_EXTERNAL_MSPROJECT INCLUDE_REGULAR_EXPRESSION INSTALL INSTALL_FILES INSTALL_PROGRAMS INSTALL_TARGETS LINK_DIRECTORIES LINK_LIBRARIES LIST LOAD_CACHE LOAD_COMMAND MACRO MAKE_DIRECTORY MARK_AS_ADVANCED MATH MESSAGE OPTION OUTPUT_REQUIRED_FILES PROJECT QT_WRAP_CPP QT_WRAP_UI REMOVE REMOVE_DEFINITIONS SEPARATE_ARGUMENTS SET SET_DIRECTORY_PROPERTIES SET_SOURCE_FILES_PROPERTIES SET_TARGET_PROPERTIES SET_TESTS_PROPERTIES SITE_NAME SOURCE_GROUP STRING SUBDIR_DEPENDS SUBDIRS TARGET_LINK_LIBRARIES TRY_COMPILE TRY_RUN USE_MANGLED_MESA UTILITY_SOURCE VARIABLE_REQUIRES VTK_MAKE_INSTANTIATOR VTK_WRAP_JAVA VTK_WRAP_PYTHON VTK_WRAP_TCL WHILE WRITE_FILE
+           \ ADD_CUSTOM_COMMAND ADD_CUSTOM_TARGET ADD_DEFINITIONS ADD_DEPENDENCIES ADD_EXECUTABLE ADD_LIBRARY ADD_SUBDIRECTORY ADD_TEST AUX_SOURCE_DIRECTORY BUILD_COMMAND BUILD_NAME CMAKE_MINIMUM_REQUIRED CONFIGURE_FILE CREATE_TEST_SOURCELIST ELSE ENABLE_LANGUAGE ENABLE_TESTING ENDFOREACH ENDIF ENDWHILE EXEC_PROGRAM EXECUTE_PROCESS EXPORT_LIBRARY_DEPENDENCIES FILE FIND_FILE FIND_LIBRARY FIND_PACKAGE FIND_PATH FIND_PROGRAM FLTK_WRAP_UI FOREACH GET_CMAKE_PROPERTY GET_DIRECTORY_PROPERTY GET_FILENAME_COMPONENT GET_SOURCE_FILE_PROPERTY GET_TARGET_PROPERTY GET_TEST_PROPERTY IF INCLUDE INCLUDE_DIRECTORIES INCLUDE_EXTERNAL_MSPROJECT INCLUDE_REGULAR_EXPRESSION INSTALL INSTALL_FILES INSTALL_PROGRAMS INSTALL_TARGETS LINK_DIRECTORIES LINK_LIBRARIES LIST LOAD_CACHE LOAD_COMMAND MACRO MAKE_DIRECTORY MARK_AS_ADVANCED MATH MESSAGE OPTION OUTPUT_REQUIRED_FILES PROJECT QT_WRAP_CPP QT_WRAP_UI REMOVE REMOVE_DEFINITIONS SEPARATE_ARGUMENTS SET SET_DIRECTORY_PROPERTIES SET_SOURCE_FILES_PROPERTIES SET_TARGET_PROPERTIES SET_TESTS_PROPERTIES SITE_NAME SOURCE_GROUP STRING SUBDIR_DEPENDS SUBDIRS TARGET_LINK_LIBRARIES TRY_COMPILE TRY_RUN USE_MANGLED_MESA UTILITY_SOURCE VARIABLE_REQUIRES VTK_MAKE_INSTANTIATOR VTK_WRAP_JAVA VTK_WRAP_PYTHON VTK_WRAP_TCL WHILE WRITE_FILE ENDMACRO
            \ nextgroup=cmakeArgumnts
 
 "syn match cmakeMacro /^\s*[A-Z_]\+/ nextgroup=cmakeArgumnts
diff --git a/runtime/syntax/context.vim b/runtime/syntax/context.vim
index 1b3d2446fb1a10eb3c055d59eb34ec88a4ed0e62..93b14b194f7e0d2aea9df3f9ace71bb79507df92 100644
--- a/runtime/syntax/context.vim
+++ b/runtime/syntax/context.vim
@@ -1,30 +1,24 @@
 " Vim syntax file
 " Language:         ConTeXt typesetting engine
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
 endif
 
+runtime! syntax/plaintex.vim
+
 let s:cpo_save = &cpo
 set cpo&vim
 
-syn keyword contextTodo       TODO FIXME XXX NOTE
-
-syn region  contextComment    display oneline start='%' end='$'
-                              \ contains=contextTodo
-syn region  contextComment    display oneline start='^\s*%[CDM]' end='$'
-                              \ contains=ALL
-
-syn match   contextStatement  display '\\[a-zA-Z@]\+' contains=@NoSpell
+if !exists('g:context_include')
+  let g:context_include = ['mp', 'javascript', 'xml']
+endif
 
 syn match   contextBlockDelim display '\\\%(start\|stop\)\a\+'
                               \ contains=@NoSpell
 
-syn match   contextDelimiter  '[][{}]'
-
-syn match   contextEscaped    display '\\\_[\{}|&%$ ]'
 syn region  contextEscaped    display matchgroup=contextPreProc
                               \ start='\\type\z(\A\)' end='\z1'
 syn region  contextEscaped    display matchgroup=contextPreProc
@@ -39,34 +33,52 @@ syn region  contextEscaped    display matchgroup=contextPreProc
 syn region  contextEscaped    display matchgroup=contextPreProc
                               \ start='\\Typed\h\+{' end='}'
 
-"syn region  contextMath       matchgroup=contextMath start='\$' end='\$'
-"                              \ contains=contextStatement
-
-syn match   contextBuiltin    '\\\%(newif\|def\|gdef\|global\|let\|glet\|bgroup\)\>'
-                              \ contains=@NoSpell
-syn match   contextBuiltin    '\\\%(begingroup\|egroup\|endgroup\|long\|catcode\)\>'
-                              \ contains=@NoSpell
-syn match   contextBuiltin    '\\\%(unprotect\|unexpanded\|if\|else\|fi\|ifx\)\>'
-                              \ contains=@NoSpell
-syn match   contextBuiltin    '\\\%(futurelet\|protect\)\>' contains=@NoSpell
-syn match   contextBuiltin    '\\\%([lr]q\)\>' contains=@NoSpell
+syn match   contextBuiltin    display contains=@NoSpell
+      \ '\\\%(unprotect\|protect\|unexpanded\)' 
 
 syn match   contextPreProc    '^\s*\\\%(start\|stop\)\=\%(component\|environment\|project\|product\).*$'
                               \ contains=@NoSpell
-syn match   contextPreProc    '^\s*\\input\s\+.*$' contains=@NoSpell
+
+if index(g:context_include, 'mp') != -1
+  syn include @mpTop          syntax/mp.vim
+  unlet b:current_syntax
+
+  syn region  contextMPGraphic  transparent matchgroup=contextBlockDelim
+                                \ start='\\start\z(\a*MPgraphic\|MP\%(page\|inclusions\|run\)\).*'
+                                \ end='\\stop\z1'
+                                \ contains=@mpTop
+endif
+
+" TODO: also need to implement this for \\typeC or something along those
+" lines.
+function! s:include_syntax(name, group)
+  if index(g:context_include, a:name) != -1
+    execute 'syn include @' . a:name . 'Top' 'syntax/' . a:name . '.vim'
+    unlet b:current_syntax
+    execute 'syn region context' . a:group . 'Code'
+          \ 'transparent matchgroup=contextBlockDelim'
+          \ 'start=+\\start' . a:group . '+ end=+\\stop' . a:group . '+'
+          \ 'contains=@' . a:name . 'Top'
+  endif
+endfunction
+
+call s:include_syntax('c', 'C')
+call s:include_syntax('ruby', 'Ruby')
+call s:include_syntax('javascript', 'JS')
+call s:include_syntax('xml', 'XML')
 
 syn match   contextSectioning '\\chapter\>' contains=@NoSpell
 syn match   contextSectioning '\\\%(sub\)*section\>' contains=@NoSpell
 
 syn match   contextSpecial    '\\crlf\>\|\\par\>\|-\{2,3}\||[<>/]\=|'
                               \ contains=@NoSpell
-syn match   contextSpecial    '\\[`'"]'
+syn match   contextSpecial    /\\[`'"]/
 syn match   contextSpecial    +\\char\%(\d\{1,3}\|'\o\{1,3}\|"\x\{1,2}\)\>+
                               \ contains=@NoSpell
 syn match   contextSpecial    '\^\^.'
 syn match   contextSpecial    '`\%(\\.\|\^\^.\|.\)'
 
-syn match   contextStyle      '\\\%(em\|tt\|rm\|ss\|hw\|cg\)\>'
+syn match   contextStyle      '\\\%(em\|ss\|hw\|cg\|mf\)\>'
                               \ contains=@NoSpell
 syn match   contextFont       '\\\%(CAP\|Cap\|cap\|Caps\|kap\|nocap\)\>'
                               \ contains=@NoSpell
@@ -74,29 +86,18 @@ syn match   contextFont       '\\\%(Word\|WORD\|Words\|WORDS\)\>'
                               \ contains=@NoSpell
 syn match   contextFont       '\\\%(vi\{1,3}\|ix\|xi\{0,2}\)\>'
                               \ contains=@NoSpell
-syn match   contextFont       '\\\%(tf[abcdx]\|bfx\|[is]lx\)\>'
-                              \ contains=@NoSpell
-syn match   contextFont       '\\\%(b[fsi]\|s[cl]\|it\|os\|mf\)\>'
+syn match   contextFont       '\\\%(tf\|b[si]\|s[cl]\|os\)\%(xx\|[xabcd]\)\=\>'
                               \ contains=@NoSpell
 
-syn match   contextDimension  '[+-]\=\s*\%(\d\+\%([.,]\d*\)\=\|[.,]\d\+\)\s*\%(true\)\=\s*\%(p[tc]\|in\|bp\|c[mc]\|mm\|dd\|sp\|e[mx]\)\>'
-                              \ contains=@NoSpell
-
-hi def link contextTodo       Todo
-hi def link contextComment    Comment
-hi def link contextEscaped    Special
-hi def link contextStatement  Identifier
-hi def link contextMath       String
 hi def link contextBlockDelim Keyword
 hi def link contextBuiltin    Keyword
 hi def link contextDelimiter  Delimiter
 hi def link contextPreProc    PreProc
 hi def link contextSectioning PreProc
 hi def link contextSpecial    Special
+hi def link contextType       Type
 hi def link contextStyle      contextType
 hi def link contextFont       contextType
-hi def link contextType       Type
-hi def link contextDimension  Number
 
 let b:current_syntax = "context"
 
diff --git a/runtime/syntax/crm.vim b/runtime/syntax/crm.vim
index 35d9e50c589364da0398590bfd6c7e36a3b8fb50..17b67d44f0a746d9c10567646709d81522ea2d4b 100644
--- a/runtime/syntax/crm.vim
+++ b/runtime/syntax/crm.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         CRM114
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/cvsrc.vim b/runtime/syntax/cvsrc.vim
index d901ae1fd24cad437c796bf69fe5a211d37de7ed..6c2c4eea04adfa4f68412764dae3c26a4d84e562 100644
--- a/runtime/syntax/cvsrc.vim
+++ b/runtime/syntax/cvsrc.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         cvs(1) RC file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/dictconf.vim b/runtime/syntax/dictconf.vim
index 21474fa06514a98c4350ec2798d2cfb8243c8c1b..e7fa47697529b481dcad952270b32fe0fe25a1b0 100644
--- a/runtime/syntax/dictconf.vim
+++ b/runtime/syntax/dictconf.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         dict(1) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-30
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/dictdconf.vim b/runtime/syntax/dictdconf.vim
index 5651d7c777762f4e7f1ccc4b25f03ffdfe0a8039..44bf6f8bad2ea2e92a33c129bd1e7f98dadf5df6 100644
--- a/runtime/syntax/dictdconf.vim
+++ b/runtime/syntax/dictdconf.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         dictd(8) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-01
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/dircolors.vim b/runtime/syntax/dircolors.vim
index 8a22b1d0fd699773b7c7ef0bc292d7b64aebb6a4..da01907992ac47ca4df9e457f3037d28492a22c7 100644
--- a/runtime/syntax/dircolors.vim
+++ b/runtime/syntax/dircolors.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         dircolors(1) input file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-27
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/elinks.vim b/runtime/syntax/elinks.vim
index dea04babf6a0a406f243bd06448954926f9d8957..5b3a3f1afde426354df102f485424a79adca69c9 100644
--- a/runtime/syntax/elinks.vim
+++ b/runtime/syntax/elinks.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         elinks(1) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/esterel.vim b/runtime/syntax/esterel.vim
index 30383554d244cbfa859c9d32812f965c6ee7d158..7498364214c028f0f7acdc07e2434cb5f1b7db41 100644
--- a/runtime/syntax/esterel.vim
+++ b/runtime/syntax/esterel.vim
@@ -32,7 +32,7 @@ syn keyword esterelStatement	every do loop abort weak
 syn keyword esterelStatement	emit present await
 syn keyword esterelStatement	if then else
 syn keyword esterelBoolean		and or not xor xnor nor nand
-syn keyword esterelOperator		\[ \] 
+"syn keyword esterelOperator		\[ \] 
 syn keyword esterelPippo		pippo
 " Esterel Types
 syn keyword esterelType integer float bolean
diff --git a/runtime/syntax/eterm.vim b/runtime/syntax/eterm.vim
index 8bc436705f38ee7fc3674d1f83fcf901bad581c9..f6c50a20cb1cb081676643197ff48184e363e676 100644
--- a/runtime/syntax/eterm.vim
+++ b/runtime/syntax/eterm.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         eterm(1) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-21
 
 if exists("b:current_syntax")
   finish
@@ -61,7 +61,7 @@ syn match   etermColorNumber      contained display '\<\%(\d\|1[0-5]\)'
 syn match   etermColorSpec        contained display '\S\+'
 
 syn region  etermColorContext     fold transparent matchgroup=etermContext
-                                  \ start='^\s*begin\s\+color'
+                                  \ start='^\s*begin\s\+color\>'
                                   \ end='^\s*end\>'
                                   \ contains=@etermGeneral,etermColorOptions
 
@@ -99,7 +99,7 @@ syn keyword etermAttrOptions      contained scrollbar_width desktop
                                   \ nextgroup=etermNumber skipwhite
 
 syn region  etermAttrContext      fold transparent matchgroup=etermContext
-                                  \ start='^\s*begin\s\+attributes\'
+                                  \ start='^\s*begin\s\+attributes\>'
                                   \ end='^\s*end\>'
                                   \ contains=@etermGeneral,etermAttrOptions
 
@@ -111,7 +111,7 @@ syn keyword etermIClassOptions    contained anim nextgroup=etermNumber
                                   \ skipwhite
 
 syn region  etermIClassContext    fold transparent matchgroup=etermContext
-                                  \ start='^\s*begin\s\+imageclasses'
+                                  \ start='^\s*begin\s\+imageclasses\>'
                                   \ end='^\s*end\>'
                                   \ contains=@etermGeneral,etermImageContext,
                                   \ etermIClassOptions
@@ -176,7 +176,7 @@ syn region  etermImageOptions     contained display oneline
 
 syn region  etermImageContext     contained fold transparent
                                   \ matchgroup=etermContext
-                                  \ start='^\s*begin\s\+image'
+                                  \ start='^\s*begin\s\+image\>'
                                   \ end='^\s*end\>'
                                   \ contains=@etermGeneral,etermImageOptions
 
@@ -193,7 +193,7 @@ syn keyword etermMenuItemOptions  contained text rtext nextgroup=etermString
 
 syn region  etermMenuItemContext  contained fold transparent
                                   \ matchgroup=etermContext
-                                  \ start='^\s*begin\s\+menuitem'
+                                  \ start='^\s*begin\s\+menuitem\>'
                                   \ end='^\s*end\>'
                                   \ contains=@etermGeneral,etermMenuItemOptions
 
@@ -206,7 +206,7 @@ syn keyword etermMenuOptions      contained font_name nextgroup=etermFont
 syn match   etermMenuOptions      contained display '\<sep\>\|-'
 
 syn region  etermMenuContext      fold transparent matchgroup=etermContext
-                                  \ start='^\s*begin\s\+menu'
+                                  \ start='^\s*begin\s\+menu\>'
                                   \ end='^\s*end\>'
                                   \ contains=@etermGeneral,etermMenuOptions,
                                   \ etermMenuItemContext
@@ -227,7 +227,7 @@ syn keyword etermBindType         contained string echo menu script
 syn match   etermBindParam        contained display '\S\+'
 
 syn region  etermActionsContext   fold transparent matchgroup=etermContext
-                                  \ start='^\s*begin\s\+actions'
+                                  \ start='^\s*begin\s\+actions\>'
                                   \ end='^\s*end\>'
                                   \ contains=@etermGeneral,etermActionsOptions
 
@@ -256,7 +256,7 @@ syn keyword etermButtonAction     contained action nextgroup=etermBindType
                                   \ skipwhite
 
 syn region  etermButtonContext    fold transparent matchgroup=etermContext
-                                  \ start='^\s*begin\s\+button_bar'
+                                  \ start='^\s*begin\s\+button_bar\>'
                                   \ end='^\s*end\>'
                                   \ contains=@etermGeneral,etermButtonOptions
 
@@ -270,8 +270,8 @@ syn keyword etermMultiOptions     contained font nextgroup=etermFontType
                                   \ skipwhite
 
 syn region  etermMultiContext     fold transparent matchgroup=etermContext
-                                  \ start='^\s*begin\s\+multichar'
-                                  \ end="^\s*end\>'
+                                  \ start='^\s*begin\s\+multichar\>'
+                                  \ end='^\s*end\>'
                                   \ contains=@etermGeneral,etermMultiOptions
 
 syn keyword etermXimOptions       contained input_method
@@ -285,8 +285,8 @@ syn keyword etermXimOptions       contained preedit_type
 syn keyword etermPreeditType      contained OverTheSpot OffTheSpot Root
 
 syn region  etermXimContext       fold transparent matchgroup=etermContext
-                                  \ start='^\s*begin\s\+xim'
-                                  \ end="^\s*end\>'
+                                  \ start='^\s*begin\s\+xim\>'
+                                  \ end='^\s*end\>'
                                   \ contains=@etermGeneral,etermXimOptions
 
 syn keyword etermTogOptions       contained map_alert visual_bell login_shell
@@ -301,7 +301,7 @@ syn keyword etermTogOptions       contained map_alert visual_bell login_shell
                                   \ skipwhite
 
 syn region  etermTogContext       fold transparent matchgroup=etermContext
-                                  \ start='^\s*begin\s\+toggles'
+                                  \ start='^\s*begin\s\+toggles\>'
                                   \ end='^\s*end\>'
                                   \ contains=@etermGeneral,etermTogOptions
 
@@ -318,7 +318,7 @@ syn keyword etermKeyboardOptions  contained greek app_keypad app_cursor
                                   \ nextgroup=etermBoolean skipwhite
 
 syn region  etermKeyboardContext  fold transparent matchgroup=etermContext
-                                  \ start='^\s*begin\s\+keyboard'
+                                  \ start='^\s*begin\s\+keyboard\>'
                                   \ end='^\s*end\>'
                                   \ contains=@etermGeneral,etermKeyboardOptions
 
@@ -330,7 +330,7 @@ syn keyword etermMiscOptions      contained save_lines min_anchor_size
                                   \ border_width line_space
 
 syn region  etermMiscContext      fold transparent matchgroup=etermContext
-                                  \ start='^\s*begin\s\+misc'
+                                  \ start='^\s*begin\s\+misc\>'
                                   \ end='^\s*end\>'
                                   \ contains=@etermGeneral,etermMiscOptions
 
@@ -351,7 +351,7 @@ syn keyword etermEScreenOptions   contained bbar_dock nextgroup=etermDockOption
                                   \ skipwhite
 
 syn region  etermEScreenContext   fold transparent matchgroup=etermContext
-                                  \ start='^\s*begin\s\+escreen'
+                                  \ start='^\s*begin\s\+escreen\>'
                                   \ end='^\s*end\>'
                                   \ contains=@etermGeneral,etermEScreenOptions
 
diff --git a/runtime/syntax/fetchmail.vim b/runtime/syntax/fetchmail.vim
index 671598cbb4744142a0d52e5f2d451b3ddf4e7f0d..89de1ff80d1c830e7839ee1a1b51f285c651d945 100644
--- a/runtime/syntax/fetchmail.vim
+++ b/runtime/syntax/fetchmail.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         fetchmail(1) RC File
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2006-01-25
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/gpg.vim b/runtime/syntax/gpg.vim
index b84c30213bbabfaafcad3b7b7dc77cbe2f70bbea..0fc8f0084691563e8cb4ec87b7cbdc13cf546a0f 100644
--- a/runtime/syntax/gpg.vim
+++ b/runtime/syntax/gpg.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         gpg(1) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/group.vim b/runtime/syntax/group.vim
index 9b3e5002233b74cfadff44b9e340723146e5066c..ae5bfd8553cf080833be2293143c52a20a36c30e 100644
--- a/runtime/syntax/group.vim
+++ b/runtime/syntax/group.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         group(5) user group file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-30
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
@@ -25,7 +25,7 @@ syn match   groupShadow         contained display '[x*]' nextgroup=groupGIDColon
 
 syn match   groupGIDColon       contained display ':' nextgroup=groupGID
 
-syn match   groupGID            contained display '\d\+'
+syn match   groupGID            contained display '\d*'
                                 \ nextgroup=groupUserListColon
 
 syn match   groupUserListColon  contained display ':' nextgroup=groupUserList
diff --git a/runtime/syntax/grub.vim b/runtime/syntax/grub.vim
index 2e04d87bfaa04b93ee858579f4941c870aba2151..f63449db0ec6ebabeaf15a76897c3b3179e37c60 100644
--- a/runtime/syntax/grub.vim
+++ b/runtime/syntax/grub.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         grub(8) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/indent.vim b/runtime/syntax/indent.vim
index 9310c4914f70fdf73a3ca8f92fe70eb07fb714be..ef4df5f5cc11c7af3465f737ca199be7d4a37fec 100644
--- a/runtime/syntax/indent.vim
+++ b/runtime/syntax/indent.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         indent(1) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 "   indent_is_bsd:  If exists, will change somewhat to match BSD implementation
 "
 " TODO: is the deny-all (a la lilo.vim nice or no?)...
@@ -15,7 +15,7 @@ endif
 let s:cpo_save = &cpo
 set cpo&vim
 
-setlocal iskeyword=@,48-57,-,_
+setlocal iskeyword=@,48-57,-,+,_
 
 syn match   indentError   '\S\+'
 
diff --git a/runtime/syntax/ld.vim b/runtime/syntax/ld.vim
index 2b39bea7d53a35d0d1617a9a858843ecc14395bb..fc12919c501580e1ca6a9a6e255ef70e117c2376 100644
--- a/runtime/syntax/ld.vim
+++ b/runtime/syntax/ld.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         ld(1) script
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/lftp.vim b/runtime/syntax/lftp.vim
index 9b346a1394e14e8bf915e77d61b3a0dde4e92ba2..7de5a560ead691a93dadcf46d3bf12235ac84521 100644
--- a/runtime/syntax/lftp.vim
+++ b/runtime/syntax/lftp.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         lftp(1) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/libao.vim b/runtime/syntax/libao.vim
index fdf85940b80642dc3768280a7a504337523b32be..25b6e8284e71fc277e591757c4d035414c847700 100644
--- a/runtime/syntax/libao.vim
+++ b/runtime/syntax/libao.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         libao.conf(5) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/limits.vim b/runtime/syntax/limits.vim
index f6dfd8a73dffc96e18b94700725d3ec0f816aba1..a6d245ae1122f9c45c5e9e67e2f6f80e1aa6fdff 100644
--- a/runtime/syntax/limits.vim
+++ b/runtime/syntax/limits.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         limits(5) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/loginaccess.vim b/runtime/syntax/loginaccess.vim
index 84a059d62ba1ea97f1a58aa7a5e3a21984619047..07d60eeca0347e04e39286df84e4575396be58a8 100644
--- a/runtime/syntax/loginaccess.vim
+++ b/runtime/syntax/loginaccess.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         login.access(5) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/logindefs.vim b/runtime/syntax/logindefs.vim
index 2bbc6da969d2830ebd5a58f72d8ce7f1e3af1e31..7c2b122ae6c34fd299bb7386fff1fd25a656e5d5 100644
--- a/runtime/syntax/logindefs.vim
+++ b/runtime/syntax/logindefs.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         login.defs(5) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/manconf.vim b/runtime/syntax/manconf.vim
index cdf89b9b3ea78f401dbf3347a64456047013cc49..90ecc8ec17cad6e4c1387cebcb559187ba2b314e 100644
--- a/runtime/syntax/manconf.vim
+++ b/runtime/syntax/manconf.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         man.conf(5) - man configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/modconf.vim b/runtime/syntax/modconf.vim
index 82cb980541ba21e30ea5cd5698e304919b497f9c..e982b8c58966e972671a40797c7ce92671d72915 100644
--- a/runtime/syntax/modconf.vim
+++ b/runtime/syntax/modconf.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         modules.conf(5) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/mplayerconf.vim b/runtime/syntax/mplayerconf.vim
index 90592060e48d6d735bc776efbbac10c5765c127c..55f7e1a5836ebdbb8d7929836386fac0433ffdd1 100644
--- a/runtime/syntax/mplayerconf.vim
+++ b/runtime/syntax/mplayerconf.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         mplayer(1) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/nanorc.vim b/runtime/syntax/nanorc.vim
index c13b30b7a4d70cce9749f6e514d320386db202dc..2ae4961fdbc9b50b07b7c72c65dc9740aa640299 100644
--- a/runtime/syntax/nanorc.vim
+++ b/runtime/syntax/nanorc.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         nanorc(5) - GNU nano configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-30
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/netrc.vim b/runtime/syntax/netrc.vim
index 9d5d3ae53af7892e1364299786e2afebc9badad9..d8eba30a8a57f02d63860f957683ebdd83dc16f0 100644
--- a/runtime/syntax/netrc.vim
+++ b/runtime/syntax/netrc.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         netrc(5) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-27
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/pamconf.vim b/runtime/syntax/pamconf.vim
index 58eaf4b7ec3b424574a5e2dccd0f83364bae4b88..46cd3c3095390b01c1cbccb2f88c49b42fc7f629 100644
--- a/runtime/syntax/pamconf.vim
+++ b/runtime/syntax/pamconf.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         pam(8) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 
 if exists("b:current_syntax")
diff --git a/runtime/syntax/passwd.vim b/runtime/syntax/passwd.vim
index ffb979f71c876858a7ba2bb41acf2a7b5e721eff..2261d99dcb8e00b24de25624ff14dc470da141d0 100644
--- a/runtime/syntax/passwd.vim
+++ b/runtime/syntax/passwd.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         passwd(5) password file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-30
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
@@ -12,7 +12,7 @@ set cpo&vim
 
 syn match   passwdBegin         display '^' nextgroup=passwdAccount
 
-syn match   passwdAccount       contained display '[a-z_][a-z0-9_-]*'
+syn match   passwdAccount       contained display '[+-]\=[a-z_][a-z0-9_-]*'
                                 \ nextgroup=passwdPasswordColon
 
 syn match   passwdPasswordColon contained display ':'
@@ -26,12 +26,12 @@ syn match   passwdShadow        contained display '[x*!]'
 
 syn match   passwdUIDColon      contained display ':' nextgroup=passwdUID
 
-syn match   passwdUID           contained display '\d\+'
+syn match   passwdUID           contained display '\d*'
                                 \ nextgroup=passwdGIDColon
 
 syn match   passwdGIDColon      contained display ':' nextgroup=passwdGID
 
-syn match   passwdGID           contained display '\d\+'
+syn match   passwdGID           contained display '\d*'
                                 \ nextgroup=passwdGecosColon
 
 syn match   passwdGecosColon    contained display ':' nextgroup=passwdGecos
@@ -47,7 +47,7 @@ syn match   passwdDir           contained display '/[^:]*'
 syn match   passwdShellColon    contained display ':'
                                 \ nextgroup=passwdShell
 
-syn match   passwdShell         contained display '[/*][^:]*'
+syn match   passwdShell         contained display '.*'
 
 hi def link passwdColon         Normal
 hi def link passwdAccount       Identifier
diff --git a/runtime/syntax/pinfo.vim b/runtime/syntax/pinfo.vim
index 88d490cc24779bb67572360b1cb89a6d041881d5..57d37d471576502d45d2f372ebe9001ada64e28c 100644
--- a/runtime/syntax/pinfo.vim
+++ b/runtime/syntax/pinfo.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         pinfo(1) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/protocols.vim b/runtime/syntax/protocols.vim
index ab586bcff7799c15842d0d6d4eae3cfa8a956036..1dc109caf65172fdf9155ea24c343cb842ca9b85 100644
--- a/runtime/syntax/protocols.vim
+++ b/runtime/syntax/protocols.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         protocols(5) - Internet protocols definition file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-30
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/quake.vim b/runtime/syntax/quake.vim
index b86d52804cddd5bd21db767684217dd019acd787..7840f7cc449279ff6323914e6f010bcb262359f2 100644
--- a/runtime/syntax/quake.vim
+++ b/runtime/syntax/quake.vim
@@ -1,9 +1,11 @@
 " Vim syntax file
 " Language:         Quake[1-3] configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
+"               quake_is_quake1 - the syntax is to be used for quake1 configs
 "               quake_is_quake2 - the syntax is to be used for quake2 configs
 "               quake_is_quake3 - the syntax is to be used for quake3 configs
+" Credits:          Tomasz Kalkosinski wrote the original quake3Colors stuff
 
 if exists("b:current_syntax")
   finish
@@ -20,20 +22,24 @@ syn region  quakeComment      display oneline start='//' end='$' end=';'
                               \ keepend contains=quakeTodo,@Spell
 
 syn region  quakeString       display oneline start=+"+ skip=+\\\\\|\\"+
-                              \ end=+"\|$+ contains=quakeNumbers,@quakeCommands
+                              \ end=+"\|$+ contains=quakeNumbers,
+                              \ @quakeCommands,@quake3Colors
 
 syn case ignore
 
-syn match quakeNumbers        display transparent '\<\d\|\.\d'
+syn match quakeNumbers        display transparent '\<-\=\d\|\.\d'
                               \ contains=quakeNumber,quakeFloat,
                               \ quakeOctalError,quakeOctal
 syn match quakeNumber         contained display '\d\+\>'
-syn match quakeOctal          contained display '0\o\+\>'
-                              \ contains=quakeOctalZero
-syn match quakeOctalZero      contained display '\<0'
 syn match quakeFloat          contained display '\d\+\.\d*'
 syn match quakeFloat          contained display '\.\d\+\>'
-syn match quakeOctalError     contained display '0\o*[89]\d*'
+
+if exists("quake_is_quake1") || exists("quake_is_quake2")
+  syn match quakeOctal        contained display '0\o\+\>'
+                              \ contains=quakeOctalZero
+  syn match quakeOctalZero    contained display '\<0'
+  syn match quakeOctalError   contained display '0\o*[89]\d*'
+endif
 
 syn cluster quakeCommands     contains=quakeCommand,quake1Command,
                               \ quake12Command,Quake2Command,Quake23Command,
@@ -80,8 +86,6 @@ if exists("quake_is_quake2")
   syn keyword quake2Command   weaplast
 endif
 
-syn case match
-
 if exists("quake_is_quake2") || exists("quake_is_quake3")
   syn keyword quake23Command  imagelist modellist path z_stats
 endif
@@ -112,6 +116,24 @@ if exists("quake_is_quake3")
   syn match   quake3Command   display "\<[+-]button\(\d\|1[0-4]\)\>"
 endif
 
+if exists("quake_is_quake3")
+  syn cluster quake3Colors    contains=quake3Red,quake3Green,quake3Yellow,
+                              \ quake3Blue,quake3Cyan,quake3Purple,quake3White,
+                              \ quake3Orange,quake3Grey,quake3Black,quake3Shadow
+
+  syn region quake3Red        contained start=+\^1+hs=e+1 end=+[$^"\n]+he=e-1
+  syn region quake3Green      contained start=+\^2+hs=e+1 end=+[$^"\n]+he=e-1
+  syn region quake3Yellow     contained start=+\^3+hs=e+1 end=+[$^"\n]+he=e-1
+  syn region quake3Blue       contained start=+\^4+hs=e+1 end=+[$^"\n]+he=e-1
+  syn region quake3Cyan       contained start=+\^5+hs=e+1 end=+[$^"\n]+he=e-1
+  syn region quake3Purple     contained start=+\^6+hs=e+1 end=+[$^"\n]+he=e-1
+  syn region quake3White      contained start=+\^7+hs=e+1 end=+[$^"\n]+he=e-1
+  syn region quake3Orange     contained start=+\^8+hs=e+1 end=+[$^\"\n]+he=e-1
+  syn region quake3Grey       contained start=+\^9+hs=e+1 end=+[$^"\n]+he=e-1
+  syn region quake3Black      contained start=+\^0+hs=e+1 end=+[$^"\n]+he=e-1
+  syn region quake3Shadow     contained start=+\^[Xx]+hs=e+1 end=+[$^"\n]+he=e-1
+endif
+
 hi def link quakeComment      Comment
 hi def link quakeTodo         Todo
 hi def link quakeString       String
@@ -128,6 +150,20 @@ hi def link quake23Command    quakeCommands
 hi def link quake3Command     quakeCommands
 hi def link quakeCommands     Keyword
 
+if exists("quake_is_quake3")
+  hi quake3Red                ctermfg=Red         guifg=Red
+  hi quake3Green              ctermfg=Green       guifg=Green
+  hi quake3Yellow             ctermfg=Yellow      guifg=Yellow
+  hi quake3Blue               ctermfg=Blue        guifg=Blue
+  hi quake3Cyan               ctermfg=Cyan        guifg=Cyan
+  hi quake3Purple             ctermfg=DarkMagenta guifg=Purple
+  hi quake3White              ctermfg=White       guifg=White
+  hi quake3Black              ctermfg=Black       guifg=Black
+  hi quake3Orange             ctermfg=Brown       guifg=Orange
+  hi quake3Grey               ctermfg=LightGrey   guifg=LightGrey
+  hi quake3Shadow             cterm=underline     gui=underline
+endif
+
 let b:current_syntax = "quake"
 
 let &cpo = s:cpo_save
diff --git a/runtime/syntax/racc.vim b/runtime/syntax/racc.vim
index a8a8c055de543535454291b8e49606d605388915..c0bfa303de145d0d621f984d091683fc323280ac 100644
--- a/runtime/syntax/racc.vim
+++ b/runtime/syntax/racc.vim
@@ -1,7 +1,7 @@
 " Vim default file
 " Language:         Racc input file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/readline.vim b/runtime/syntax/readline.vim
index cd7b10f4a8dea74132d4c7dfba49625d877d564a..81175fee19de8312e13800a8d43fd297d3d7cd5b 100644
--- a/runtime/syntax/readline.vim
+++ b/runtime/syntax/readline.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         readline(3) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 "   readline_has_bash - if defined add support for bash specific
 "                       settings/functions
 
diff --git a/runtime/syntax/rnc.vim b/runtime/syntax/rnc.vim
index 3758ec5b8ed1a2073f0518e8b5a1672a144fcd5a..d510f0476cd268aefb9448e0bfa0f9e59d618234 100644
--- a/runtime/syntax/rnc.vim
+++ b/runtime/syntax/rnc.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         Relax NG compact syntax
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/screen.vim b/runtime/syntax/screen.vim
index 1baaa5b16157dc4ddf110b4559d7b13cfe0a696f..e1ff4ecea5c0b1ae88c78f63d99c1bc43a415d4a 100644
--- a/runtime/syntax/screen.vim
+++ b/runtime/syntax/screen.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         screen(1) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/sensors.vim b/runtime/syntax/sensors.vim
index 41c13e80076baa5ad5b3d20d4407e7a6dd0f7719..63cececc684231458fb36f0d9eb2a40ad1adf67d 100644
--- a/runtime/syntax/sensors.vim
+++ b/runtime/syntax/sensors.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         sensors.conf(5) - libsensors configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/services.vim b/runtime/syntax/services.vim
index a2db7b1ac355ae67ec1dda6c5eab535cb8ac5093..661f57a7e878215839a48de939fb494cd280adc8 100644
--- a/runtime/syntax/services.vim
+++ b/runtime/syntax/services.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         services(5) - Internet network services list
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-30
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/setserial.vim b/runtime/syntax/setserial.vim
index 6d410f57b3fd5863a1bc7c9e5700fa5956d0135b..cdd309d7f279129f8fa21bf7ec1478eb7d9a9485 100644
--- a/runtime/syntax/setserial.vim
+++ b/runtime/syntax/setserial.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         setserial(8) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/sieve.vim b/runtime/syntax/sieve.vim
index fa369fc7371313a6752c3a71f63fc6b37597a860..f651cbd4e17913bc2b3b9bcfa629ca75752a7eae 100644
--- a/runtime/syntax/sieve.vim
+++ b/runtime/syntax/sieve.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         Sieve filtering language input file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/slpconf.vim b/runtime/syntax/slpconf.vim
index 4b3c5a17ae2f62677c7f0802c10150a09afc86cf..9fe4503780f4918bb2a80019d31464b3502893dc 100644
--- a/runtime/syntax/slpconf.vim
+++ b/runtime/syntax/slpconf.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         RFC 2614 - An API for Service Location configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/slpreg.vim b/runtime/syntax/slpreg.vim
index c4e16a9efa601d4445744fc8d32d92db1fcbe831..f3c8a7fc8ef18ff556501f11c2085bf3a3a4fd4f 100644
--- a/runtime/syntax/slpreg.vim
+++ b/runtime/syntax/slpreg.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         RFC 2614 - An API for Service Location registration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/slpspi.vim b/runtime/syntax/slpspi.vim
index e6d0c154a05acd01cbc0ef516f064d9c7b187c47..8507e3de696cbabb4d6cf8ccf150713e39a96ec8 100644
--- a/runtime/syntax/slpspi.vim
+++ b/runtime/syntax/slpspi.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         RFC 2614 - An API for Service Location SPI file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/sqlj.vim b/runtime/syntax/sqlj.vim
index ba64bdfc076d68bf597793a062c5f207cadfd5ad..51398ef9c2b15014f4aa926dd77a83d8d89fd5ca 100644
--- a/runtime/syntax/sqlj.vim
+++ b/runtime/syntax/sqlj.vim
@@ -94,6 +94,8 @@ if version >= 508 || !exists("did_sqlj_syn_inits")
   HiLink sqljString	String
   HiLink sqljType	Type
   HiLink sqljPre	PreProc
+
+  delcommand HiLink
 endif
 
 let b:current_syntax = "sqlj"
diff --git a/runtime/syntax/sudoers.vim b/runtime/syntax/sudoers.vim
index 81d808fef33d4c5ed59eeae3dd7233ca2e93137a..2e2d7448d84c3ebfed47fcca628743e09067e8d3 100644
--- a/runtime/syntax/sudoers.vim
+++ b/runtime/syntax/sudoers.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         sudoers(5) configuration files
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/sysctl.vim b/runtime/syntax/sysctl.vim
index 460d0ac1fa1017f176ef78886b9ec3a6faa41c68..d16d458a99977e87a2161bcd1aa226f8630c973b 100644
--- a/runtime/syntax/sysctl.vim
+++ b/runtime/syntax/sysctl.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         sysctl.conf(5) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/terminfo.vim b/runtime/syntax/terminfo.vim
index 9fd7845169e7c41c2b3be8130d9d0ff535a0c463..0ea112ad4705f46d99acc8c4f494c5fcc4aafbe8 100644
--- a/runtime/syntax/terminfo.vim
+++ b/runtime/syntax/terminfo.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         terminfo(5) definition
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
@@ -74,7 +74,7 @@ syn keyword terminfoStrings     acsc cbt bel cr cpi lpi chr cvr csr rmp tbc mgc
 syn match terminfoStrings       display '\<kf\([0-9]\|[0-5][0-9]\|6[0-3]\)\>'
 
 syn match terminfoParameters    '%[%dcspl+*/mAO&|^=<>!~i?te;-]'
-syn match terminfoParameters    '%\('[A-Z]'\|{[0-9]\{1,2}}\|p[1-9]\|P[a-z]\|g[A-Z]\)'
+syn match terminfoParameters    "%\('[A-Z]'\|{[0-9]\{1,2}}\|p[1-9]\|P[a-z]\|g[A-Z]\)"
 
 hi def link terminfoComment     Comment
 hi def link terminfoTodo        Todo
diff --git a/runtime/syntax/udevconf.vim b/runtime/syntax/udevconf.vim
index 487a8acd8ff9987ae3a30e57117ed34365ea0fcf..a294604906e84ea869a30daf4e95a82d58b4be80 100644
--- a/runtime/syntax/udevconf.vim
+++ b/runtime/syntax/udevconf.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         udev(8) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-01
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/udevperm.vim b/runtime/syntax/udevperm.vim
index c2029a4f276ca3c2279487d018e44be2952ed983..9d3af09d076fca7e24f92f7c4080a326fad41110 100644
--- a/runtime/syntax/udevperm.vim
+++ b/runtime/syntax/udevperm.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         udev(8) permissions file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-01
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/udevrules.vim b/runtime/syntax/udevrules.vim
index 7deac2ab28579d264caef66ff034d74750e18ec4..2dca8787c322131fec72a5f1e59611803df506ef 100644
--- a/runtime/syntax/udevrules.vim
+++ b/runtime/syntax/udevrules.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         udev(8) rules file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/updatedb.vim b/runtime/syntax/updatedb.vim
index e2b79031156b5d113f7e7f5ffa69314ae5215faf..dd8e6f7a5cd5bcd54eddfbf1ac69414d5eb887a7 100644
--- a/runtime/syntax/updatedb.vim
+++ b/runtime/syntax/updatedb.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         updatedb.conf(5) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/xinetd.vim b/runtime/syntax/xinetd.vim
index e8e57bebf696e2d7a0a9eb0a622e039cf8feb553..9010a48a1df0bf3d85064883de5e6f37d2f54c55 100644
--- a/runtime/syntax/xinetd.vim
+++ b/runtime/syntax/xinetd.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         xinetd.conf(5) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-30
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/xmodmap.vim b/runtime/syntax/xmodmap.vim
index 2b097dfe6820c639ec1763b8a3048000b114ad30..69c70c563d386aa402028f679f0c3014eaa5cad8 100644
--- a/runtime/syntax/xmodmap.vim
+++ b/runtime/syntax/xmodmap.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         xmodmap(1) definition file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/yaml.vim b/runtime/syntax/yaml.vim
index 5a94fb6f4ce2a56511a0cc10c70a7020e535ac2e..9ebab70689ba2452341785c39f5b18de237b7457 100644
--- a/runtime/syntax/yaml.vim
+++ b/runtime/syntax/yaml.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         YAML (YAML Ain't Markup Language)
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
diff --git a/src/auto/configure b/src/auto/configure
index 7a308a7e8ded077b8c2095ce0577b831b0bf76c2..319fd4e5af536327b8d3466d1b6c349905d0a995 100755
--- a/src/auto/configure
+++ b/src/auto/configure
@@ -9197,7 +9197,7 @@ fi
 rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
   else
     cat >>confdefs.h <<\_ACEOF
-#define XPMATTRIBUTES_TYPE XpmAttributes_21
+#define XPMATTRIBUTES_TYPE XpmAttributes
 _ACEOF
 
   fi
diff --git a/src/configure.in b/src/configure.in
index 6a1a56f082f75107d4d602cbae19641ddb10ac68..5c6dd516f7779fdaf450207e206ca4ebcb02ca03 100644
--- a/src/configure.in
+++ b/src/configure.in
@@ -1911,7 +1911,7 @@ if test -z "$SKIP_MOTIF"; then
 	AC_MSG_RESULT(no); AC_DEFINE(XPMATTRIBUTES_TYPE, XpmAttributes)
 	)
   else
-    AC_DEFINE(XPMATTRIBUTES_TYPE, XpmAttributes_21)
+    AC_DEFINE(XPMATTRIBUTES_TYPE, XpmAttributes)
   fi
   CPPFLAGS=$cppflags_save
 fi
diff --git a/src/digraph.c b/src/digraph.c
index 892a3ed6278d31c00e5ffe32c8fba59159117fda..667ff07169dc38c112108e73d3e57d95b9ffc9d4 100644
--- a/src/digraph.c
+++ b/src/digraph.c
@@ -2439,8 +2439,11 @@ ex_loadkeymap(eap)
 	    kp->to = vim_strnsave(p, (int)(s - p));
 
 	    if (kp->from == NULL || kp->to == NULL
-		    || STRLEN(kp->from) + STRLEN(kp->to) >= KMAP_LLEN)
+		    || STRLEN(kp->from) + STRLEN(kp->to) >= KMAP_LLEN
+		    || *kp->from == NUL || *kp->to == NUL)
 	    {
+		if (kp->to != NULL && *kp->to == NUL)
+		    EMSG(_("E791: Empty keymap entry"));
 		vim_free(kp->from);
 		vim_free(kp->to);
 	    }
diff --git a/src/ex_eval.c b/src/ex_eval.c
index 1da7f1bc134d6abf25b7f1119161686e5b12f2e8..c89cb2bd0ff2b9c40ee66d554bf0636c994835df 100644
--- a/src/ex_eval.c
+++ b/src/ex_eval.c
@@ -155,22 +155,22 @@ cause_errthrow(mesg, severe, ignore)
     struct msglist **plist;
 
     /*
-     * Do nothing when displaying the interrupt message or reporting an uncaught
-     * exception (which has already been discarded then) at the top level.  Also
-     * when no exception can be thrown.  The message will be displayed by
-     * emsg().
+     * Do nothing when displaying the interrupt message or reporting an
+     * uncaught exception (which has already been discarded then) at the top
+     * level.  Also when no exception can be thrown.  The message will be
+     * displayed by emsg().
      */
     if (suppress_errthrow)
 	return FALSE;
 
     /*
-     * If emsg() has not been called previously, temporarily reset "force_abort"
-     * until the throw point for error messages has been reached.  This ensures
-     * that aborting() returns the same value for all errors that appear in the
-     * same command.  This means particularly that for parsing errors during
-     * expression evaluation emsg() will be called multiply, even when the
-     * expression is evaluated from a finally clause that was activated due to
-     * an aborting error, interrupt, or exception.
+     * If emsg() has not been called previously, temporarily reset
+     * "force_abort" until the throw point for error messages has been
+     * reached.  This ensures that aborting() returns the same value for all
+     * errors that appear in the same command.  This means particularly that
+     * for parsing errors during expression evaluation emsg() will be called
+     * multiply, even when the expression is evaluated from a finally clause
+     * that was activated due to an aborting error, interrupt, or exception.
      */
     if (!did_emsg)
     {
@@ -181,18 +181,18 @@ cause_errthrow(mesg, severe, ignore)
     /*
      * If no try conditional is active and no exception is being thrown and
      * there has not been an error in a try conditional or a throw so far, do
-     * nothing (for compatibility of non-EH scripts).  The message will then be
-     * displayed by emsg().  When ":silent!" was used and we are not currently
-     * throwing an exception, do nothing.  The message text will then be stored
-     * to v:errmsg by emsg() without displaying it.
+     * nothing (for compatibility of non-EH scripts).  The message will then
+     * be displayed by emsg().  When ":silent!" was used and we are not
+     * currently throwing an exception, do nothing.  The message text will
+     * then be stored to v:errmsg by emsg() without displaying it.
      */
     if (((trylevel == 0 && !cause_abort) || emsg_silent) && !did_throw)
 	return FALSE;
 
     /*
      * Ignore an interrupt message when inside a try conditional or when an
-     * exception is being thrown or when an error in a try conditional or throw
-     * has been detected previously.  This is important in order that an
+     * exception is being thrown or when an error in a try conditional or
+     * throw has been detected previously.  This is important in order that an
      * interrupt exception is catchable by the innermost try conditional and
      * not replaced by an interrupt message error exception.
      */
diff --git a/src/gui.c b/src/gui.c
index 755c20c1f45517d0aec06065822af3feaccca3bc..0fdcabe5a463afa49886d8911c154e916cf1130d 100644
--- a/src/gui.c
+++ b/src/gui.c
@@ -3407,31 +3407,36 @@ gui_update_tabline()
 }
 
 /*
- * Get the label for tab page "tp" into NameBuff[].
+ * Get the label or tooltip for tab page "tp" into NameBuff[].
  */
     void
-get_tabline_label(tp)
+get_tabline_label(tp, tooltip)
     tabpage_T	*tp;
+    int		tooltip;	/* TRUE: get tooltip */
 {
     int		modified = FALSE;
     char_u	buf[40];
     int		wincount;
     win_T	*wp;
+    char_u	*opt;
 
-    /* Use 'guitablabel' if it's set. */
-    if (*p_gtl != NUL)
+    /* Use 'guitablabel' or 'guitabtooltip' if it's set. */
+    opt = (tooltip ? p_gtt : p_gtl);
+    if (*opt != NUL)
     {
 	int	use_sandbox = FALSE;
 	int	save_called_emsg = called_emsg;
 	char_u	res[MAXPATHL];
 	tabpage_T *save_curtab;
+	char_u	*opt_name = (char_u *)(tooltip ? "guitabtooltip"
+							     : "guitablabel");
 
 	called_emsg = FALSE;
 
 	printer_page_num = tabpage_index(tp);
 # ifdef FEAT_EVAL
 	set_vim_var_nr(VV_LNUM, printer_page_num);
-	use_sandbox = was_set_insecurely((char_u *)"guitablabel", 0);
+	use_sandbox = was_set_insecurely(opt_name, 0);
 # endif
 	/* It's almost as going to the tabpage, but without autocommands. */
 	curtab->tp_firstwin = firstwin;
@@ -3446,7 +3451,7 @@ get_tabline_label(tp)
 	curbuf = curwin->w_buffer;
 
 	/* Can't use NameBuff directly, build_stl_str_hl() uses it. */
-	build_stl_str_hl(curwin, res, MAXPATHL, p_gtl, use_sandbox,
+	build_stl_str_hl(curwin, res, MAXPATHL, opt, use_sandbox,
 						 0, (int)Columns, NULL, NULL);
 	STRCPY(NameBuff, res);
 
@@ -3459,7 +3464,7 @@ get_tabline_label(tp)
 	curbuf = curwin->w_buffer;
 
 	if (called_emsg)
-	    set_string_option_direct((char_u *)"guitablabel", -1,
+	    set_string_option_direct(opt_name, -1,
 					   (char_u *)"", OPT_FREE, SID_ERROR);
 	called_emsg |= save_called_emsg;
     }
@@ -3467,7 +3472,8 @@ get_tabline_label(tp)
     {
 	/* Get the buffer name into NameBuff[] and shorten it. */
 	get_trans_bufname(tp == curtab ? curbuf : tp->tp_curwin->w_buffer);
-	shorten_dir(NameBuff);
+	if (!tooltip)
+	    shorten_dir(NameBuff);
 
 	wp = (tp == curtab) ? firstwin : tp->tp_firstwin;
 	for (wincount = 0; wp != NULL; wp = wp->w_next, ++wincount)
diff --git a/src/gui_gtk_x11.c b/src/gui_gtk_x11.c
index 23318bb7a3e30f4094f962d94a1a59ac29b80fb0..79557a834b73779c526a3a748495da35a7035e16 100644
--- a/src/gui_gtk_x11.c
+++ b/src/gui_gtk_x11.c
@@ -3320,7 +3320,7 @@ gui_mch_update_tabline(void)
 		    nr++);
 	}
 
-	get_tabline_label(tp);
+	get_tabline_label(tp, FALSE);
 	labeltext = CONVERT_TO_UTF8(NameBuff);
 	gtk_notebook_set_tab_label_text(GTK_NOTEBOOK(gui.tabline), page,
 						     (const gchar *)labeltext);
diff --git a/src/gui_motif.c b/src/gui_motif.c
index 9e28be2b05e65a5d9ebcf3977aa99a1d2a3b4a48..ccc97782da6ee8b3322bc33ede4c0b5ea1084d0b 100644
--- a/src/gui_motif.c
+++ b/src/gui_motif.c
@@ -3359,8 +3359,9 @@ gui_mch_update_tabline(void)
 	XtVaGetValues(tab, XmNlabelString, &label_str, NULL);
 	if (XmStringGetLtoR(label_str, XmSTRING_DEFAULT_CHARSET, &label_cstr))
 	{
-	    get_tabline_label(tp);
-	    if (STRCMP(label_cstr, NameBuff) != 0) {
+	    get_tabline_label(tp, FALSE);
+	    if (STRCMP(label_cstr, NameBuff) != 0)
+	    {
 		XtVaSetValues(tab, XtVaTypedArg, XmNlabelString, XmRString,
 			      NameBuff, STRLEN(NameBuff) + 1, NULL);
 		/*
diff --git a/src/gui_w48.c b/src/gui_w48.c
index 6e4ec1ad6935fffa850883b1058f0a0a41642b7f..2e43557f24e85d7207d04ef0d2c8e2c08088bf33 100644
--- a/src/gui_w48.c
+++ b/src/gui_w48.c
@@ -2334,7 +2334,7 @@ gui_mch_update_tabline(void)
 	    TabCtrl_InsertItem(s_tabhwnd, nr, &tie);
 	}
 
-	get_tabline_label(tp);
+	get_tabline_label(tp, FALSE);
 	tie.pszText = NameBuff;
 #ifdef FEAT_MBYTE
 	wstr = NULL;
diff --git a/src/message.c b/src/message.c
index 69b194d4e51e6287794dca63d27f533f2a791bf9..c0146c962a08bf58497a803a95aaaa94aac88c48 100644
--- a/src/message.c
+++ b/src/message.c
@@ -561,17 +561,18 @@ emsg(s)
 
     /*
      * If "emsg_off" is set: no error messages at the moment.
-     * If 'debug' is set: do error message anyway, but without side effects.
+     * If "msg" is in 'debug': do error message but without side effects.
      * If "emsg_skip" is set: never do error messages.
      */
-    if ((emsg_off > 0 && vim_strchr(p_debug, 'm') == NULL)
+    if ((emsg_off > 0 && vim_strchr(p_debug, 'm') == NULL
+					  && vim_strchr(p_debug, 't') == NULL)
 #ifdef FEAT_EVAL
 	    || emsg_skip > 0
 #endif
 	    )
 	return TRUE;
 
-    if (!emsg_off)
+    if (!emsg_off || vim_strchr(p_debug, 't') != NULL)
     {
 #ifdef FEAT_EVAL
 	/*
diff --git a/src/misc2.c b/src/misc2.c
index f8a583bc7c4aa635fa92853a50da68d0e89ad546..4667a563dced7c67441d03c52301bc747de9cf0e 100644
--- a/src/misc2.c
+++ b/src/misc2.c
@@ -5816,7 +5816,8 @@ filewritable(fname)
 emsg3(s, a1, a2)
     char_u *s, *a1, *a2;
 {
-    if ((emsg_off > 0 && vim_strchr(p_debug, 'm') == NULL)
+    if ((emsg_off > 0 && vim_strchr(p_debug, 'm') == NULL
+					  && vim_strchr(p_debug, 't') == NULL)
 #ifdef FEAT_EVAL
 	    || emsg_skip > 0
 #endif
@@ -5835,7 +5836,8 @@ emsgn(s, n)
     char_u	*s;
     long	n;
 {
-    if ((emsg_off > 0 && vim_strchr(p_debug, 'm') == NULL)
+    if ((emsg_off > 0 && vim_strchr(p_debug, 'm') == NULL
+					  && vim_strchr(p_debug, 't') == NULL)
 #ifdef FEAT_EVAL
 	    || emsg_skip > 0
 #endif
diff --git a/src/option.c b/src/option.c
index cfca188d9b253568516a077b15c2bccf1959a557..c1fc7dc3d87063d872007dabf81e3bb4ec80bc70 100644
--- a/src/option.c
+++ b/src/option.c
@@ -1265,6 +1265,15 @@ static struct vimoption
 #else
 			    (char_u *)NULL, PV_NONE,
 			    {(char_u *)NULL, (char_u *)0L}
+#endif
+				    },
+    {"guitabtooltip",  "gtl", P_STRING|P_VI_DEF|P_RWIN,
+#if defined(FEAT_GUI_TABLINE)
+			    (char_u *)&p_gtt, PV_NONE,
+			    {(char_u *)"", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(char_u *)NULL, (char_u *)0L}
 #endif
 				    },
     {"hardtabs",    "ht",   P_NUM|P_VI_DEF,
@@ -2812,7 +2821,7 @@ static char *(p_bsdir_values[]) = {"current", "last", "buffer", NULL};
 static char *(p_scbopt_values[]) = {"ver", "hor", "jump", NULL};
 #endif
 static char *(p_swb_values[]) = {"useopen", "usetab", "split", NULL};
-static char *(p_debug_values[]) = {"msg", "beep", NULL};
+static char *(p_debug_values[]) = {"msg", "throw", "beep", NULL};
 #ifdef FEAT_VERTSPLIT
 static char *(p_ead_values[]) = {"both", "ver", "hor", NULL};
 #endif
@@ -6188,7 +6197,7 @@ did_set_string_option(opt_idx, varp, new_value_alloced, oldval, errbuf,
     /* 'debug' */
     else if (varp == &p_debug)
     {
-	if (check_opt_strings(p_debug, p_debug_values, FALSE) != OK)
+	if (check_opt_strings(p_debug, p_debug_values, TRUE) != OK)
 	    errmsg = e_invarg;
     }
 
diff --git a/src/option.h b/src/option.h
index 39c03e181f3efb898211fb7796f50362abb72d12..d512a2055f9a711fd9a0070f6f416ff28b5f13db 100644
--- a/src/option.h
+++ b/src/option.h
@@ -508,6 +508,7 @@ EXTERN char_u	*p_go;		/* 'guioptions' */
 #endif
 #if defined(FEAT_GUI_TABLINE)
 EXTERN char_u	*p_gtl;		/* 'guitablabel' */
+EXTERN char_u	*p_gtt;		/* 'guitabtooltip' */
 #endif
 EXTERN char_u	*p_hf;		/* 'helpfile' */
 #ifdef FEAT_WINDOWS
diff --git a/src/po/it.po b/src/po/it.po
index 2673c63a73e09631bce2cdc32a35a641afe9c8e2..22584cdcacdcdee2468ea030708ece2127e4385f 100644
--- a/src/po/it.po
+++ b/src/po/it.po
@@ -12,8 +12,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: vim 7.0\n"
-"POT-Creation-Date: 2006-04-08 09:01+0200\n"
-"PO-Revision-Date:  2006-04-08 09:01+0200\n"
+"POT-Creation-Date: 2006-04-21 09:26+0200\n"
+"PO-Revision-Date:  2006-04-21 09:26+0200\n"
 "Last-Translator:   Vlad Sandrini   <vlad.gently@gmail.com>\n"
 "Language-Team:     Italian"
 "                   Antonio Colombo <azc100@gmail.com>"
@@ -494,6 +494,22 @@ msgstr "E723: Manca '}' a fine Dizionario: %s"
 msgid "E724: variable nested too deep for displaying"
 msgstr "E724: variabile troppo nidificata per la visualizzazione"
 
+#, c-format
+msgid "E117: Unknown function: %s"
+msgstr "E117: Funzione sconosciuta: %s"
+
+#, c-format
+msgid "E119: Not enough arguments for function: %s"
+msgstr "E119: La funzione: %s richiede più argomenti"
+
+#, c-format
+msgid "E120: Using <SID> not in a script context: %s"
+msgstr "E120: Uso di <SID> fuori dal contesto di uno script: %s"
+
+#, c-format
+msgid "E725: Calling dict function without Dictionary: %s"
+msgstr "E725: Chiamata di funzione dict in assenza di Dizionario: %s"
+
 msgid "E699: Too many arguments"
 msgstr "E699: Troppi argomenti"
 
@@ -2517,12 +2533,33 @@ msgstr "<finestra %d>"
 msgid "no such window"
 msgstr "finestra inesistente"
 
+msgid "E265: $_ must be an instance of String"
+msgstr "E265: $_ deve essere un'istanza di String"
+
 msgid ""
 "E266: Sorry, this command is disabled, the Ruby library could not be loaded."
 msgstr ""
 "E266: Spiacente, comando non disponibile, non riesco a caricare libreria "
 "programmi Ruby."
 
+msgid "E267: unexpected return"
+msgstr "E267: return imprevisto"
+
+msgid "E268: unexpected next"
+msgstr "E268: next imprevisto"
+
+msgid "E269: unexpected break"
+msgstr "E269: break imprevisto"
+
+msgid "E270: unexpected redo"
+msgstr "E270: redo imprevisto"
+
+msgid "E271: retry outside of rescue clause"
+msgstr "E271: retry fuori da clausola rescue"
+
+msgid "E272: unhandled exception"
+msgstr "E272: eccezione non gestita"
+
 #, c-format
 msgid "E273: unknown longjmp status %d"
 msgstr "E273: tipo sconosciuto di salto nel programma %d"
@@ -4232,9 +4269,6 @@ msgstr "ANCHOR_BUF_SIZE troppo piccolo."
 msgid "I/O ERROR"
 msgstr "ERRORE I/O"
 
-msgid "...(truncated)"
-msgstr "...(troncato)"
-
 msgid "Message"
 msgstr "Messaggio"
 
@@ -4660,6 +4694,16 @@ msgstr "E388: Non sono riuscito a trovare la definizione"
 msgid "E389: Couldn't find pattern"
 msgstr "E389: Non sono riuscito a trovare il modello"
 
+#, c-format
+msgid ""
+"\n"
+"# Last %sSearch Pattern:\n"
+"~"
+msgstr ""
+"\n"
+"# Ult. %sEspressione di Ricerca:\n"
+"~"
+
 msgid "E759: Format error in spell file"
 msgstr "E759: Errore di formato nel file ortografico"
 
@@ -4739,7 +4783,7 @@ msgid ""
 "Defining COMPOUNDFORBIDFLAG after PFX item may give wrong results in %s line "
 "%d"
 msgstr ""
-"Definire COMPOUNDFORBIDFLAG dop l'elemento PFX potrebbe dare risultati "
+"Definire COMPOUNDFORBIDFLAG dopo l'elemento PFX potrebbe dare risultati "
 "errati in %s linea %d"
 
 #, c-format
@@ -4747,7 +4791,7 @@ msgid ""
 "Defining COMPOUNDPERMITFLAG after PFX item may give wrong results in %s line "
 "%d"
 msgstr ""
-"Definire COMPOUNDPERMITFLAG dop l'elemento PFX potrebbe dare risultati "
+"Definire COMPOUNDPERMITFLAG dopo l'elemento PFX potrebbe dare risultati "
 "errati in %s linea %d"
 
 #, c-format
@@ -5380,6 +5424,10 @@ msgstr "Nessuna modifica, Undo impossibile"
 msgid "number changes  time"
 msgstr "numero modif.   ora"
 
+#, c-format
+msgid "%ld seconds ago"
+msgstr "%ld secondi fa"
+
 msgid "E439: undo list corrupt"
 msgstr "E439: lista 'undo' non valida"
 
@@ -5686,6 +5734,9 @@ msgstr "ATTENZIONE: Trovato Windows 95/98/ME"
 msgid "type  :help windows95<Enter>  for info on this"
 msgstr "batti :help windows95<Enter>  per info al riguardo"
 
+msgid "Already only one window"
+msgstr "C'è già una finestra sola"
+
 msgid "E441: There is no preview window"
 msgstr "E441: Non c'è una finestra di pre-visualizzazione"
 
@@ -5698,9 +5749,6 @@ msgstr "E443: Non posso ruotare quando un'altra finestra 
 msgid "E444: Cannot close last window"
 msgstr "E444: Non riesco a chiudere l'ultima finestra"
 
-msgid "Already only one window"
-msgstr "C'è già una finestra sola"
-
 msgid "E445: Other window contains changes"
 msgstr "E445: Altre finestre contengono modifiche"
 
diff --git a/src/po/zh_CN.UTF-8.po b/src/po/zh_CN.UTF-8.po
index de60cda76a7520ee1a6a278a21f6a1cff32dfded..cb516e609893cf209b5050dab07721614dc12d55 100644
--- a/src/po/zh_CN.UTF-8.po
+++ b/src/po/zh_CN.UTF-8.po
@@ -4,6 +4,10 @@
 # Do ":help credits" in Vim to see a list of people who contributed.
 #
 # FIRST AUTHOR  Wang Jun <junw@turbolinux.com.cn>
+# 
+# TRANSLATORS
+#   Edyfox <edyfox@gmail.com>
+#   Yuheng Xie <elephant@linux.net.cn>
 #
 # Original translations.
 #
@@ -11,8 +15,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Vim(Simplified Chinese)\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-03-28 21:47+0800\n"
-"PO-Revision-Date: 2006-04-18 18:00+0800\n"
+"POT-Creation-Date: 2006-04-21 15:16+0800\n"
+"PO-Revision-Date: 2006-04-21 14:00+0800\n"
 "Last-Translator: Yuheng Xie <elephant@linux.net.cn>\n"
 "Language-Team: Simplified Chinese <i18n-translation@lists.linux.net.cn>\n"
 "MIME-Version: 1.0\n"
@@ -209,6 +213,9 @@ msgstr "E102: 找不到缓冲区 \"%s\""
 msgid "E103: Buffer \"%s\" is not in diff mode"
 msgstr "E103: 缓冲区 \"%s\" 不在 diff 模式"
 
+msgid "E787: Buffer changed unexpectedly"
+msgstr "E787: 意外地改变了缓冲区"
+
 msgid "E104: Escape not allowed in digraph"
 msgstr "E104: 复合字符(digraph)中不能使用 Escape"
 
@@ -222,8 +229,8 @@ msgid " Keyword completion (^N^P)"
 msgstr " 关键字补全 (^N^P)"
 
 #. ctrl_x_mode == 0, ^P/^N compl.
-msgid " ^X mode (^]^D^E^F^I^K^L^N^O^P^S^U^V^Y)"
-msgstr " ^X 模式 (^]^D^E^F^I^K^L^N^O^P^S^U^V^Y)"
+msgid " ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)"
+msgstr " ^X 模式 (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)"
 
 msgid " Whole line completion (^L^N^P)"
 msgstr " 整行补全 (^L^N^P)"
@@ -256,8 +263,8 @@ msgstr " 用户自定义补全 (^U^N^P)"
 msgid " Omni completion (^O^N^P)"
 msgstr " 全能补全 (^O^N^P)"
 
-msgid " Spelling suggestion (^S^N^P)"
-msgstr " 拼写建议 (^S^N^P)"
+msgid " Spelling suggestion (s^N^P)"
+msgstr " 拼写建议 (s^N^P)"
 
 msgid " Keyword Local completion (^N^P)"
 msgstr " 关键字局部补全 (^N^P)"
@@ -489,9 +496,8 @@ msgstr "E722: Dictionary 中缺少逗号: %s"
 msgid "E723: Missing end of Dictionary '}': %s"
 msgstr "E723: Dictionary 缺少结束符 '}': %s"
 
-#, fuzzy
-#~ msgid "E724: variable nested too deep for displaying"
-#~ msgstr "E724: 变量嵌套过深"
+msgid "E724: variable nested too deep for displaying"
+msgstr "E724: 变量嵌套过深无法显示"
 
 msgid "E699: Too many arguments"
 msgstr "E699: 参数过多"
@@ -529,8 +535,8 @@ msgstr ""
 msgid "called inputrestore() more often than inputsave()"
 msgstr "inputrestore() 的调用次数多于 inputsave()"
 
-msgid "E745: Range not allowed"
-msgstr "E745: 不允许的范围"
+msgid "E786: Range not allowed"
+msgstr "E786: 不允许的范围"
 
 msgid "E701: Invalid type for len()"
 msgstr "E701: len() 的类型无效"
@@ -560,9 +566,8 @@ msgstr "E655: 符号连接过多(循环?)"
 msgid "E258: Unable to send to client"
 msgstr "E258: 无法发送到客户端"
 
-#, fuzzy
-#~ msgid "E702: Sort compare function failed"
-#~ msgstr "E702: Sort 比较函数失败"
+msgid "E702: Sort compare function failed"
+msgstr "E702: Sort 比较函数失败"
 
 msgid "(Invalid)"
 msgstr "(无效)"
@@ -611,9 +616,8 @@ msgstr "未知"
 msgid "E742: Cannot change value of %s"
 msgstr "E742: 无法改变 %s 的值"
 
-#, fuzzy
-#~ msgid "E698: variable nested too deep for making a copy"
-#~ msgstr "E698: 变量嵌套过深"
+msgid "E698: variable nested too deep for making a copy"
+msgstr "E698: 变量嵌套过深无法复制"
 
 #, c-format
 msgid "E124: Missing '(': %s"
@@ -682,136 +686,6 @@ msgstr ""
 "\n"
 "\t最近修改于 "
 
-msgid "Entering Debug mode.  Type \"cont\" to continue."
-msgstr "进入调试模式。输入 \"cont\" 继续运行。"
-
-#, c-format
-msgid "line %ld: %s"
-msgstr "第 %ld 行: %s"
-
-#, c-format
-msgid "cmd: %s"
-msgstr "命令: %s"
-
-#, c-format
-msgid "Breakpoint in \"%s%s\" line %ld"
-msgstr "断点 \"%s%s\" 第 %ld 行"
-
-#, c-format
-msgid "E161: Breakpoint not found: %s"
-msgstr "E161: 找不到断点: %s"
-
-msgid "No breakpoints defined"
-msgstr "没有定义断点"
-
-#, c-format
-msgid "%3d  %s %s  line %ld"
-msgstr "%3d  %s %s  第 %ld 行"
-
-msgid "E750: First use :profile start <fname>"
-msgstr "E750: 请先使用 :profile start <fname>"
-
-msgid "Save As"
-msgstr "另存为"
-
-#, c-format
-msgid "Save changes to \"%s\"?"
-msgstr "将改变保存到 \"%s\" 吗?"
-
-msgid "Untitled"
-msgstr "未命名"
-
-#, c-format
-msgid "E162: No write since last change for buffer \"%s\""
-msgstr "E162: 缓冲区 \"%s\" 已修改但尚未保存"
-
-msgid "Warning: Entered other buffer unexpectedly (check autocommands)"
-msgstr "警告: 意外地进入了其它缓冲区 (请检查自动命令)"
-
-msgid "E163: There is only one file to edit"
-msgstr "E163: 只有一个文件可编辑"
-
-msgid "E164: Cannot go before first file"
-msgstr "E164: 无法切换,已是第一个文件"
-
-msgid "E165: Cannot go beyond last file"
-msgstr "E165: 无法切换,已是最后一个文件"
-
-#, c-format
-msgid "E666: compiler not supported: %s"
-msgstr "E666: 不支持编译器: %s"
-
-#, c-format
-msgid "Searching for \"%s\" in \"%s\""
-msgstr "正在查找 \"%s\",在 \"%s\" 中"
-
-#, c-format
-msgid "Searching for \"%s\""
-msgstr "正在查找 \"%s\""
-
-#, c-format
-msgid "not found in 'runtimepath': \"%s\""
-msgstr "在 'runtimepath' 中找不到 \"%s\""
-
-msgid "Source Vim script"
-msgstr "执行 Vim 脚本"
-
-#, c-format
-msgid "Cannot source a directory: \"%s\""
-msgstr "不能执行目录: \"%s\""
-
-#, c-format
-msgid "could not source \"%s\""
-msgstr "不能执行 \"%s\""
-
-#, c-format
-msgid "line %ld: could not source \"%s\""
-msgstr "第 %ld 行: 不能执行 \"%s\""
-
-#, c-format
-msgid "sourcing \"%s\""
-msgstr "执行 \"%s\""
-
-#, c-format
-msgid "line %ld: sourcing \"%s\""
-msgstr "第 %ld 行: 执行 \"%s\""
-
-#, c-format
-msgid "finished sourcing %s"
-msgstr "结束执行 %s"
-
-msgid "modeline"
-msgstr "modeline"
-
-msgid "--cmd argument"
-msgstr "--cmd 参数"
-
-msgid "-c argument"
-msgstr "-c 参数"
-
-msgid "environment variable"
-msgstr "环境变量"
-
-#~ msgid "error handler"
-#~ msgstr ""
-
-msgid "W15: Warning: Wrong line separator, ^M may be missing"
-msgstr "W15: 警告: 错误的行分隔符,可能是少了 ^M"
-
-msgid "E167: :scriptencoding used outside of a sourced file"
-msgstr "E167: 在脚本文件外使用了 :scriptencoding"
-
-msgid "E168: :finish used outside of a sourced file"
-msgstr "E168: 在脚本文件外使用了 :finish"
-
-#, c-format
-msgid "Current %slanguage: \"%s\""
-msgstr "当前的 %s语言: \"%s\""
-
-#, c-format
-msgid "E197: Cannot set language to \"%s\""
-msgstr "E197: 不能设定语言为 \"%s\""
-
 #, c-format
 msgid "<%s>%s%s  %d,  Hex %02x,  Octal %03o"
 msgstr "<%s>%s%s  %d,  十六进制 %02x,  八进制 %03o"
@@ -844,8 +718,8 @@ msgstr "E135: *Filter* 自动命令不可以改变当前缓冲区"
 msgid "[No write since last change]\n"
 msgstr "[已修改但尚未保存]\n"
 
-#, c-format
 # bad to translate
+#, c-format
 msgid "%sviminfo: %s in line: "
 msgstr "%sviminfo: %s 位于行: "
 
@@ -877,14 +751,14 @@ msgstr "E138: 无法写入 viminfo 文件 %s!"
 msgid "Writing viminfo file \"%s\""
 msgstr "写入 viminfo 文件 \"%s\""
 
+# do not translate to avoid writing Chinese in files
 #. Write the info:
 #, fuzzy, c-format
-# do not translate to avoid writing Chinese in files
-msgid "# This viminfo file was generated by Vim %s.\n"
-msgstr "# 这个 viminfo 文件是由 vim %s 生成的。\n"
+#~ msgid "# This viminfo file was generated by Vim %s.\n"
+#~ msgstr "# 这个 viminfo 文件是由 Vim %s 生成的。\n"
 
-#, fuzzy, c-format
 # do not translate to avoid writing Chinese in files
+#, fuzzy, c-format
 msgid ""
 "# You may edit it if you're careful!\n"
 "\n"
@@ -892,14 +766,17 @@ msgstr ""
 "# 如果要自行修改请特别小心!\n"
 "\n"
 
-#, fuzzy, c-format
 # do not translate to avoid writing Chinese in files
-msgid "# Value of 'encoding' when this file was written\n"
-msgstr "# 'encoding' 在此文件建立时的值\n"
+#, fuzzy, c-format
+#~ msgid "# Value of 'encoding' when this file was written\n"
+#~ msgstr "# 'encoding' 在此文件建立时的值\n"
 
 msgid "Illegal starting char"
 msgstr "无效的启动字符"
 
+msgid "Save As"
+msgstr "另存为"
+
 msgid "Write partial file?"
 msgstr "要写入部分文件吗?"
 
@@ -987,8 +864,8 @@ msgstr "E148: global 缺少正则表达式"
 msgid "Pattern found in every line: %s"
 msgstr "每行都匹配表达式: %s"
 
-#, fuzzy, c-format
 # do not translate to avoid writing Chinese in files
+#, fuzzy, c-format
 msgid ""
 "\n"
 "# Last Substitute String:\n"
@@ -1071,6 +948,133 @@ msgstr " (不支持)"
 msgid "[Deleted]"
 msgstr "[已删除]"
 
+msgid "Entering Debug mode.  Type \"cont\" to continue."
+msgstr "进入调试模式。输入 \"cont\" 继续运行。"
+
+#, c-format
+msgid "line %ld: %s"
+msgstr "第 %ld 行: %s"
+
+#, c-format
+msgid "cmd: %s"
+msgstr "命令: %s"
+
+#, c-format
+msgid "Breakpoint in \"%s%s\" line %ld"
+msgstr "断点 \"%s%s\" 第 %ld 行"
+
+#, c-format
+msgid "E161: Breakpoint not found: %s"
+msgstr "E161: 找不到断点: %s"
+
+msgid "No breakpoints defined"
+msgstr "没有定义断点"
+
+#, c-format
+msgid "%3d  %s %s  line %ld"
+msgstr "%3d  %s %s  第 %ld 行"
+
+msgid "E750: First use :profile start <fname>"
+msgstr "E750: 请先使用 :profile start <fname>"
+
+#, c-format
+msgid "Save changes to \"%s\"?"
+msgstr "将改变保存到 \"%s\" 吗?"
+
+msgid "Untitled"
+msgstr "未命名"
+
+#, c-format
+msgid "E162: No write since last change for buffer \"%s\""
+msgstr "E162: 缓冲区 \"%s\" 已修改但尚未保存"
+
+msgid "Warning: Entered other buffer unexpectedly (check autocommands)"
+msgstr "警告: 意外地进入了其它缓冲区 (请检查自动命令)"
+
+msgid "E163: There is only one file to edit"
+msgstr "E163: 只有一个文件可编辑"
+
+msgid "E164: Cannot go before first file"
+msgstr "E164: 无法切换,已是第一个文件"
+
+msgid "E165: Cannot go beyond last file"
+msgstr "E165: 无法切换,已是最后一个文件"
+
+#, c-format
+msgid "E666: compiler not supported: %s"
+msgstr "E666: 不支持编译器: %s"
+
+#, c-format
+msgid "Searching for \"%s\" in \"%s\""
+msgstr "正在查找 \"%s\",在 \"%s\" 中"
+
+#, c-format
+msgid "Searching for \"%s\""
+msgstr "正在查找 \"%s\""
+
+#, c-format
+msgid "not found in 'runtimepath': \"%s\""
+msgstr "在 'runtimepath' 中找不到 \"%s\""
+
+msgid "Source Vim script"
+msgstr "执行 Vim 脚本"
+
+#, c-format
+msgid "Cannot source a directory: \"%s\""
+msgstr "不能执行目录: \"%s\""
+
+#, c-format
+msgid "could not source \"%s\""
+msgstr "不能执行 \"%s\""
+
+#, c-format
+msgid "line %ld: could not source \"%s\""
+msgstr "第 %ld 行: 不能执行 \"%s\""
+
+#, c-format
+msgid "sourcing \"%s\""
+msgstr "执行 \"%s\""
+
+#, c-format
+msgid "line %ld: sourcing \"%s\""
+msgstr "第 %ld 行: 执行 \"%s\""
+
+#, c-format
+msgid "finished sourcing %s"
+msgstr "结束执行 %s"
+
+msgid "modeline"
+msgstr "modeline"
+
+msgid "--cmd argument"
+msgstr "--cmd 参数"
+
+msgid "-c argument"
+msgstr "-c 参数"
+
+msgid "environment variable"
+msgstr "环境变量"
+
+#~ msgid "error handler"
+#~ msgstr ""
+
+msgid "W15: Warning: Wrong line separator, ^M may be missing"
+msgstr "W15: 警告: 错误的行分隔符,可能是少了 ^M"
+
+msgid "E167: :scriptencoding used outside of a sourced file"
+msgstr "E167: 在脚本文件外使用了 :scriptencoding"
+
+msgid "E168: :finish used outside of a sourced file"
+msgstr "E168: 在脚本文件外使用了 :finish"
+
+#, c-format
+msgid "Current %slanguage: \"%s\""
+msgstr "当前的 %s语言: \"%s\""
+
+#, c-format
+msgid "E197: Cannot set language to \"%s\""
+msgstr "E197: 不能设定语言为 \"%s\""
+
 msgid "Entering Ex mode.  Type \"visual\" to go to Normal mode."
 msgstr "进入 Ex 模式。输入 \"visual\" 回到正常模式。"
 
@@ -1179,7 +1183,7 @@ msgstr "E467: Custom 补全需要一个函数参数"
 
 #, c-format
 msgid "E185: Cannot find color scheme %s"
-msgstr "E185: 找不到颜色主题 %s"
+msgstr "E185: 找不到配色方案 %s"
 
 msgid "Greetings, Vim user!"
 msgstr "您好,Vim 用户!"
@@ -1391,6 +1395,9 @@ msgstr "E602: :endtry 缺少对应的 :try"
 msgid "E193: :endfunction not inside a function"
 msgstr "E193: :endfunction 不在函数内"
 
+msgid "E788: Not allowed to edit another buffer now"
+msgstr "E788: 目前不允许编辑别的缓冲区"
+
 msgid "tagname"
 msgstr "tag 名"
 
@@ -1400,8 +1407,8 @@ msgstr " 类型 文件\n"
 msgid "'history' option is zero"
 msgstr "选项 'history' 为零"
 
-#, fuzzy, c-format
 # do not translate to avoid writing Chinese in files
+#, fuzzy, c-format
 msgid ""
 "\n"
 "# %s History (newest to oldest):\n"
@@ -1409,17 +1416,25 @@ msgstr ""
 "\n"
 "# %s 历史记录 (从新到旧):\n"
 
-msgid "Command Line"
-msgstr "命令行"
+# do not translate to avoid writing Chinese in files
+#, fuzzy
+#~ msgid "Command Line"
+#~ msgstr "命令行"
 
-msgid "Search String"
-msgstr "查找字符串"
+# do not translate to avoid writing Chinese in files
+#, fuzzy
+#~ msgid "Search String"
+#~ msgstr "查找字符串"
 
-msgid "Expression"
-msgstr "表达式"
+# do not translate to avoid writing Chinese in files
+#, fuzzy
+#~ msgid "Expression"
+#~ msgstr "表达式"
 
-msgid "Input Line"
-msgstr "输入行"
+# do not translate to avoid writing Chinese in files
+#, fuzzy
+#~ msgid "Input Line"
+#~ msgstr "输入行"
 
 msgid "E198: cmd_pchar beyond the command length"
 msgstr "E198: cmd_pchar 超过命令长度"
@@ -1550,9 +1565,8 @@ msgstr "E509: 无法创建备份文件 (请加 ! 强制执行)"
 msgid "E510: Can't make backup file (add ! to override)"
 msgstr "E510: 无法生成备份文件 (请加 ! 强制执行)"
 
-#, fuzzy
-#~ msgid "E460: The resource fork would be lost (add ! to override)"
-#~ msgstr "E460: Resource fork 会消失 (请加 ! 强制执行)"
+msgid "E460: The resource fork would be lost (add ! to override)"
+msgstr "E460: Resource fork 会丢失 (请加 ! 强制执行)"
 
 msgid "E214: Can't find temp file for writing"
 msgstr "E214: 找不到用于写入的临时文件"
@@ -1836,6 +1850,29 @@ msgstr "找不到映射"
 msgid "E228: makemap: Illegal mode"
 msgstr "E228: makemap: 无效的模式"
 
+msgid "E229: Cannot start the GUI"
+msgstr "E229: 无法启动图形界面"
+
+#, c-format
+msgid "E230: Cannot read from \"%s\""
+msgstr "E230: 无法读取文件 \"%s\""
+
+msgid "E665: Cannot start GUI, no valid font found"
+msgstr "E665: 无法启动图形界面,找不到有效的字体"
+
+msgid "E231: 'guifontwide' invalid"
+msgstr "E231: 无效的 'guifontwide'"
+
+msgid "E599: Value of 'imactivatekey' is invalid"
+msgstr "E599: 'imactivatekey' 的值无效"
+
+#, c-format
+msgid "E254: Cannot allocate color %s"
+msgstr "E254: 无法分配颜色 %s"
+
+msgid "No match at cursor, finding next"
+msgstr "在光标处没有匹配,查找下一个"
+
 msgid "<cannot open> "
 msgstr "<无法打开>"
 
@@ -1858,38 +1895,15 @@ msgstr "确定"
 msgid "Cancel"
 msgstr "取消"
 
-msgid "Vim dialog"
-msgstr "Vim 对话框"
-
 msgid "Scrollbar Widget: Could not get geometry of thumb pixmap."
 msgstr "滚动条部件: 无法获取滑块图像的几何大小"
 
+msgid "Vim dialog"
+msgstr "Vim 对话框"
+
 msgid "E232: Cannot create BalloonEval with both message and callback"
 msgstr "E232: 不能同时使用消息和回调函数来创建 BalloonEval"
 
-msgid "E229: Cannot start the GUI"
-msgstr "E229: 无法启动图形界面"
-
-#, c-format
-msgid "E230: Cannot read from \"%s\""
-msgstr "E230: 不能读取文件 \"%s\""
-
-msgid "E665: Cannot start GUI, no valid font found"
-msgstr "E665: 无法启动图形界面,找不到有效的字体"
-
-msgid "E231: 'guifontwide' invalid"
-msgstr "E231: 无效的 'guifontwide'"
-
-msgid "E599: Value of 'imactivatekey' is invalid"
-msgstr "E599: 'imactivatekey' 的值无效"
-
-#, c-format
-msgid "E254: Cannot allocate color %s"
-msgstr "E254: 无法分配颜色 %s"
-
-msgid "No match at cursor, finding next"
-msgstr "在光标处没有匹配,查找下一个"
-
 msgid "Vim dialog..."
 msgstr "Vim 对话框..."
 
@@ -2027,6 +2041,12 @@ msgstr "E243: 不支持的参数: \"-%s\";请使用 OLE 版本。"
 msgid "E672: Unable to open window inside MDI application"
 msgstr "E672: 无法在 MDI 应用程序中打开窗口"
 
+msgid "Close tab"
+msgstr "关闭标签"
+
+msgid "Open tab..."
+msgstr "打开标签..."
+
 msgid "Find string (use '\\\\' to find  a '\\')"
 msgstr "查找字符串 (使用 '\\\\' 来查找 '\\')"
 
@@ -2084,40 +2104,36 @@ msgstr ""
 "字体1的宽度: %ld\n"
 "\n"
 
-#, fuzzy
-#~ msgid "Invalid font specification"
-#~ msgstr "不正确的字体集(Fontset)"
+msgid "Invalid font specification"
+msgstr "指定了无效的字体"
 
-#~ msgid "&Dismiss"
-#~ msgstr ""
+msgid "&Dismiss"
+msgstr "取消(&D)"
 
-#~ msgid "no specific match"
-#~ msgstr ""
+msgid "no specific match"
+msgstr "找不到匹配的项"
 
-#, fuzzy
-#~ msgid "Vim - Font Selector"
-#~ msgstr "字体选择"
+msgid "Vim - Font Selector"
+msgstr "Vim - 字体选择器"
 
-#~ msgid "Name:"
-#~ msgstr ""
+msgid "Name:"
+msgstr "名称:"
 
 #. create toggle button
 #~ msgid "Show size in Points"
 #~ msgstr ""
 
-#, fuzzy
-#~ msgid "Encoding:"
-#~ msgstr "记录中"
+msgid "Encoding:"
+msgstr "编码:"
 
-#, fuzzy
-#~ msgid "Font:"
-#~ msgstr "字体1: %s\n"
+msgid "Font:"
+msgstr "字体:"
 
-#~ msgid "Style:"
-#~ msgstr ""
+msgid "Style:"
+msgstr "风格:"
 
-#~ msgid "Size:"
-#~ msgstr ""
+msgid "Size:"
+msgstr "尺寸:"
 
 msgid "E256: Hangul automata ERROR"
 msgstr "E256: Hangul automata 错误"
@@ -3021,8 +3037,8 @@ msgstr ""
 msgid "-display <display>\tRun vim on <display> (also: --display)"
 msgstr "-display <display>\t在 <display> 上运行 vim (也可用 --display)"
 
-#~ msgid "--role <role>\tSet a unique role to identify the main window"
-#~ msgstr ""
+msgid "--role <role>\tSet a unique role to identify the main window"
+msgstr "--role <role>\t设置用于区分主窗口的窗口角色名"
 
 msgid "--socketid <xid>\tOpen Vim inside another GTK widget"
 msgstr "--socketid <xid>\t在另一个 GTK 部件中打开 Vim"
@@ -3030,8 +3046,8 @@ msgstr "--socketid <xid>\t在另一个 GTK 部件中打开 Vim"
 msgid "-P <parent title>\tOpen Vim inside parent application"
 msgstr "-P <parent title>\t在父应用程序中打开 Vim"
 
-#~ msgid "No display"
-#~ msgstr ""
+msgid "No display"
+msgstr "没有 display"
 
 #. Failed to send, abort.
 msgid ": Send failed.\n"
@@ -3045,9 +3061,8 @@ msgstr ": 发送失败。尝试本地执行\n"
 msgid "%d of %d edited"
 msgstr "%d 中 %d 已编辑"
 
-#, fuzzy
-#~ msgid "No display: Send expression failed.\n"
-#~ msgstr "发送表达式失败。\n"
+msgid "No display: Send expression failed.\n"
+msgstr "没有 display: 发送表达式失败。\n"
 
 msgid ": Send expression failed.\n"
 msgstr ": 发送表达式失败。\n"
@@ -3241,49 +3256,49 @@ msgstr "E308: 警告: 原始文件可能已被修改"
 msgid "E309: Unable to read block 1 from %s"
 msgstr "E309: 无法从 %s 读取块 1"
 
-#, fuzzy
 # do not translate to avoid writing Chinese in files
-msgid "???MANY LINES MISSING"
-msgstr "???缺少了太多行"
-
 #, fuzzy
-# do not translate to avoid writing Chinese in files
-msgid "???LINE COUNT WRONG"
-msgstr "???行数错误"
+#~ msgid "???MANY LINES MISSING"
+#~ msgstr "???缺少了太多行"
 
-#, fuzzy
 # do not translate to avoid writing Chinese in files
-msgid "???EMPTY BLOCK"
-msgstr "???空的块"
+#, fuzzy
+#~ msgid "???LINE COUNT WRONG"
+#~ msgstr "???行数错误"
 
+# do not translate to avoid writing Chinese in files
 #, fuzzy
+#~ msgid "???EMPTY BLOCK"
+#~ msgstr "???空的块"
+
 # do not translate to avoid writing Chinese in files
-msgid "???LINES MISSING"
-msgstr "???缺少了一些行"
+#, fuzzy
+#~ msgid "???LINES MISSING"
+#~ msgstr "???缺少了一些行"
 
 #, c-format
 msgid "E310: Block 1 ID wrong (%s not a .swp file?)"
 msgstr "E310: 块 1 ID 错误 (%s 不是交换文件?)"
 
-#, fuzzy
 # do not translate to avoid writing Chinese in files
-msgid "???BLOCK MISSING"
-msgstr "???缺少块"
-
 #, fuzzy
-# do not translate to avoid writing Chinese in files
-msgid "??? from here until ???END lines may be messed up"
-msgstr "??? 从这里到 ???END 的行可能已混乱"
+#~ msgid "???BLOCK MISSING"
+#~ msgstr "???缺少块"
 
-#, fuzzy
 # do not translate to avoid writing Chinese in files
-msgid "??? from here until ???END lines may have been inserted/deleted"
-msgstr "??? 从这里到 ???END 的行可能已被插入/删除过"
+#, fuzzy
+#~ msgid "??? from here until ???END lines may be messed up"
+#~ msgstr "??? 从这里到 ???END 的行可能已混乱"
 
+# do not translate to avoid writing Chinese in files
 #, fuzzy
+#~ msgid "??? from here until ???END lines may have been inserted/deleted"
+#~ msgstr "??? 从这里到 ???END 的行可能已被插入/删除过"
+
 # do not translate to avoid writing Chinese in files
-msgid "???END"
-msgstr "???END"
+#, fuzzy
+#~ msgid "???END"
+#~ msgstr "???END"
 
 msgid "E311: Recovery Interrupted"
 msgstr "E311: 恢复已被中断"
@@ -3810,18 +3825,18 @@ msgid "E347: No more file \"%s\" found in path"
 msgstr "E347: 在路径中找不到更多的文件 \"%s\""
 
 #. Get here when the server can't be found.
-#~ msgid "Cannot connect to Netbeans #2"
-#~ msgstr ""
+msgid "Cannot connect to Netbeans #2"
+msgstr "无法连接到 Netbeans #2"
 
-#~ msgid "Cannot connect to Netbeans"
-#~ msgstr ""
+msgid "Cannot connect to Netbeans"
+msgstr "无法连接到 Netbeans"
 
 #, c-format
-#~ msgid "E668: Wrong access mode for NetBeans connection info file: \"%s\""
-#~ msgstr ""
+msgid "E668: Wrong access mode for NetBeans connection info file: \"%s\""
+msgstr "E668: NetBeans 连接信息文件中错误的访问模式: \"%s\""
 
-#~ msgid "read from Netbeans socket"
-#~ msgstr ""
+msgid "read from Netbeans socket"
+msgstr "从 Netbeans 套接字读取"
 
 #, c-format
 msgid "E658: NetBeans connection lost for buffer %ld"
@@ -3950,26 +3965,27 @@ msgstr "E574: 未知的寄存器类型 %d"
 msgid "%ld Cols; "
 msgstr "%ld 列; "
 
-#, fuzzy, c-format
-#~ msgid "Selected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld Bytes"
-#~ msgstr "选择了 %s%ld/%ld 行; %ld/%ld 字(Word); %ld/%ld 字符(Bytes)"
+#, c-format
+msgid "Selected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld Bytes"
+msgstr "选择了 %s%ld/%ld 行; %ld/%ld 个词; %ld/%ld 个字节"
 
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "Selected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld Chars; %ld of %ld "
 "Bytes"
-msgstr "选择了 %s%ld/%ld 行; %ld/%ld 字(Word); %ld/%ld 字符(Chars); %ld/%ld"
+msgstr "选择了 %s%ld/%ld 行; %ld/%ld 个词; %ld/%ld 个字符; %ld/%ld 个字节"
 
-#, fuzzy, c-format
-#~ msgid "Col %s of %s; Line %ld of %ld; Word %ld of %ld; Byte %ld of %ld"
-#~ msgstr "列 %s/%s; 行 %ld/%ld; 字(Word) %ld/%ld; 字符(Byte) %ld/%ld"
+#, c-format
+msgid "Col %s of %s; Line %ld of %ld; Word %ld of %ld; Byte %ld of %ld"
+msgstr "第 %s/%s 列; 第 %ld/%ld 行; 第 %ld/%ld 个词; 第 %ld/%ld 个字节"
 
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "Col %s of %s; Line %ld of %ld; Word %ld of %ld; Char %ld of %ld; Byte %ld of "
 "%ld"
 msgstr ""
-"列 %s/%s; 行 %ld/%ld; 字(Word) %ld/%ld; 字符(Char) %ld/%ld; 字符(Byte) %ld/%ld"
+"第 %s/%s 列; 第 %ld/%ld 行; 第 %ld/%ld 个词; 第 %ld/%ld 个字符; 第 %ld/%ld 个"
+"字节"
 
 #, c-format
 #~ msgid "(+%ld for BOM)"
@@ -4177,17 +4193,14 @@ msgstr "ANCHOR_BUF_SIZE 太小"
 msgid "I/O ERROR"
 msgstr "I/O 错误"
 
-#~ msgid "...(truncated)"
-#~ msgstr ""
-
-#~ msgid "Message"
-#~ msgstr ""
+msgid "Message"
+msgstr "消息"
 
 msgid "'columns' is not 80, cannot execute external commands"
 msgstr "'columns' 不是 80, 不能执行外部命令"
 
 msgid "E237: Printer selection failed"
-msgstr "E237: 不能选择此打印机"
+msgstr "E237: 选择打印机失败"
 
 #, c-format
 msgid "to %s on %s"
@@ -4203,7 +4216,7 @@ msgstr "E238: 打印错误: %s"
 
 #, c-format
 msgid "Printing '%s'"
-msgstr "已打印: '%s'"
+msgstr "打印 '%s'"
 
 #, c-format
 msgid "E244: Illegal charset name \"%s\" in font name \"%s\""
@@ -4214,22 +4227,22 @@ msgid "E245: Illegal char '%c' in font name \"%s\""
 msgstr "E245: 不正确的字符 '%c' 出现在字体名称 \"%s\" 内"
 
 msgid "E366: Invalid 'osfiletype' option - using Text"
-msgstr "E366: 不正确的 'filetype' 选项 - 使用纯文字模式"
+msgstr "E366: 不正确的 'osfiletype' 选项 - 使用纯文字模式"
 
 msgid "Vim: Double signal, exiting\n"
-msgstr "Vim: 双重信号, 退出中\n"
+msgstr "Vim: 双重信号,退出中\n"
 
 #, c-format
 msgid "Vim: Caught deadly signal %s\n"
-msgstr "Vim: CVim: 拦截到信号(signal) %s\n"
+msgstr "Vim: 拦截到致命信号(deadly signal) %s\n"
 
 #, c-format
 msgid "Vim: Caught deadly signal\n"
-msgstr "Vim: 拦截到致命的信号(deadly signale)\n"
+msgstr "Vim: 拦截到致命信号(deadly signal)\n"
 
 #, c-format
 msgid "Opening the X display took %ld msec"
-msgstr "打开 X Window 用时 %ld 秒"
+msgstr "打开 X display 用时 %ld 秒"
 
 msgid ""
 "\n"
@@ -4239,24 +4252,24 @@ msgstr ""
 "Vim: X 错误\n"
 
 msgid "Testing the X display failed"
-msgstr "测试 X Window 失败"
+msgstr "测试 X display 失败"
 
 msgid "Opening the X display timed out"
-msgstr "打开 X Window 超时"
+msgstr "打开 X display 超时"
 
 msgid ""
 "\n"
 "Cannot execute shell "
 msgstr ""
 "\n"
-"不能执行 shell"
+"无法执行 shell"
 
 msgid ""
 "\n"
 "Cannot execute shell sh\n"
 msgstr ""
 "\n"
-"不能执行 shell sh\n"
+"无法执行 shell sh\n"
 
 msgid ""
 "\n"
@@ -4270,14 +4283,14 @@ msgid ""
 "Cannot create pipes\n"
 msgstr ""
 "\n"
-"不能建立管道\n"
+"无法建立管道\n"
 
 msgid ""
 "\n"
 "Cannot fork\n"
 msgstr ""
 "\n"
-"不能 fork\n"
+"无法 fork\n"
 
 msgid ""
 "\n"
@@ -4286,46 +4299,45 @@ msgstr ""
 "\n"
 "命令已结束\n"
 
-#, fuzzy
-#~ msgid "XSMP lost ICE connection"
-#~ msgstr "显示连接"
+msgid "XSMP lost ICE connection"
+msgstr "XSMP 丢失了到 ICE 的连接"
 
+# do not translate
 #, c-format
-#~ msgid "dlerror = \"%s\""
-#~ msgstr ""
+msgid "dlerror = \"%s\""
+msgstr "dlerror = \"%s\""
 
 msgid "Opening the X display failed"
-msgstr "打开 X Window 失败"
+msgstr "打开 X display 失败"
 
-#~ msgid "XSMP handling save-yourself request"
-#~ msgstr ""
+msgid "XSMP handling save-yourself request"
+msgstr "XSMP 处理 save-yourself 请求"
 
-#, fuzzy
-#~ msgid "XSMP opening connection"
-#~ msgstr "没有 cscope 连接"
+msgid "XSMP opening connection"
+msgstr "XSMP 打开连接"
 
-#~ msgid "XSMP ICE connection watch failed"
-#~ msgstr ""
+msgid "XSMP ICE connection watch failed"
+msgstr "XSMP ICE 连接监视失败"
 
 #, c-format
-#~ msgid "XSMP SmcOpenConnection failed: %s"
-#~ msgstr ""
+msgid "XSMP SmcOpenConnection failed: %s"
+msgstr "XSMP SmcOpenConnection 调用失败: %s"
 
 msgid "At line"
 msgstr "在行号 "
 
 msgid "Could not load vim32.dll!"
-msgstr "不能加载 vim32.dll!"
+msgstr "无法加载 vim32.dll!"
 
 msgid "VIM Error"
 msgstr "VIM 错误"
 
 msgid "Could not fix up function pointers to the DLL!"
-msgstr "不能修正函数指针到 DLL!"
+msgstr "无法修正到 DLL 的函数指针!"
 
 #, c-format
 msgid "shell returned %d"
-msgstr "Shell 返回值 %d"
+msgstr "Shell 返回 %d"
 
 #, c-format
 msgid "Vim: Caught %s event\n"
@@ -4348,8 +4360,8 @@ msgid ""
 "External commands will not pause after completion.\n"
 "See  :help win32-vimrun  for more information."
 msgstr ""
-"在你的 $PATH 中找不到 VIMRUN.EXE.\n"
-"外部命令执行完毕后将不会暂停.\n"
+"在你的 $PATH 中找不到 VIMRUN.EXE。\n"
+"外部命令执行完毕后将不会暂停。\n"
 "进一步说明请见 :help win32-vimrun"
 
 msgid "Vim Warning"
@@ -4407,8 +4419,8 @@ msgstr "错误列表 %d / %d;共 %d 个错误"
 msgid "E382: Cannot write, 'buftype' option is set"
 msgstr "E382: 无法写入,已设定选项 'buftype'"
 
-#~ msgid "E683: File name missing or invalid pattern"
-#~ msgstr ""
+msgid "E683: File name missing or invalid pattern"
+msgstr "E683: 缺少文件名或模式无效"
 
 #, c-format
 msgid "Cannot open file \"%s\""
@@ -4603,9 +4615,9 @@ msgstr "  找不到"
 msgid "Scanning included file: %s"
 msgstr "查找包含文件: %s"
 
-#, fuzzy, c-format
-#~ msgid "Searching included file %s"
-#~ msgstr "查找包含文件: %s"
+#, c-format
+msgid "Searching included file %s"
+msgstr "查找包含的文件 %s"
 
 msgid "E387: Match is on current line"
 msgstr "E387: 当前行匹配"
@@ -4622,339 +4634,339 @@ msgstr "E388: 找不到定义"
 msgid "E389: Couldn't find pattern"
 msgstr "E389: 找不到 pattern"
 
-#, fuzzy
-#~ msgid "E759: Format error in spell file"
-#~ msgstr "E297: 交换文件写入错误"
+msgid "E759: Format error in spell file"
+msgstr "E759: 拼写文件格式错误"
 
-#, fuzzy
-#~ msgid "E758: Truncated spell file"
-#~ msgstr "E237: 不能选择此打印机"
+msgid "E758: Truncated spell file"
+msgstr "E758: 已截断的拼写文件"
 
-#, fuzzy, c-format
-#~ msgid "Trailing text in %s line %d: %s"
-#~ msgstr "\"%s%s\" 中断点: 第 %ld 行"
+#, c-format
+msgid "Trailing text in %s line %d: %s"
+msgstr "%s 第 %d 行,多余的后续字符: %s"
 
 #, c-format
-#~ msgid "Affix name too long in %s line %d: %s"
-#~ msgstr ""
+msgid "Affix name too long in %s line %d: %s"
+msgstr "%s 第 %d 行,附加项名字太长: %s"
 
-#, fuzzy
-#~ msgid "E761: Format error in affix file FOL, LOW or UPP"
-#~ msgstr "E431: Tag 文件 \"%s\" 格式错误"
+msgid "E761: Format error in affix file FOL, LOW or UPP"
+msgstr "E761: 附加文件 FOL、LOW 或 UPP 中格式错误"
 
-#~ msgid "E762: Character in FOL, LOW or UPP is out of range"
-#~ msgstr ""
+msgid "E762: Character in FOL, LOW or UPP is out of range"
+msgstr "E762: FOL、LOW 或 UPP 中字符超出范围"
 
-#~ msgid "Compressing word tree..."
-#~ msgstr ""
+msgid "Compressing word tree..."
+msgstr "压缩单词树……"
 
-#~ msgid "E756: Spell checking is not enabled"
-#~ msgstr ""
+msgid "E756: Spell checking is not enabled"
+msgstr "E756: 拼写检查未启用"
 
 #, c-format
-#~ msgid "Warning: Cannot find word list \"%s.%s.spl\" or \"%s.ascii.spl\""
-#~ msgstr ""
+msgid "Warning: Cannot find word list \"%s.%s.spl\" or \"%s.ascii.spl\""
+msgstr "警告: 找不到单词列表 \"%s.%s.spl\" or \"%s.ascii.spl\""
 
-#, fuzzy, c-format
-#~ msgid "Reading spell file \"%s\""
-#~ msgstr "使用交换文件 \"%s\""
+#, c-format
+msgid "Reading spell file \"%s\""
+msgstr "读取拼写文件 \"%s\""
 
-#, fuzzy
-#~ msgid "E757: This does not look like a spell file"
-#~ msgstr "E307: %s 看起来不像是 Vim 交换文件"
+msgid "E757: This does not look like a spell file"
+msgstr "E757: 这看起来不像是拼写文件"
 
-#, fuzzy
-#~ msgid "E771: Old spell file, needs to be updated"
-#~ msgstr "E173: 还有 %ld 个文件未编辑"
+msgid "E771: Old spell file, needs to be updated"
+msgstr "E771: 旧版本的拼写文件,需要更新"
 
-#~ msgid "E772: Spell file is for newer version of Vim"
-#~ msgstr ""
+msgid "E772: Spell file is for newer version of Vim"
+msgstr "E772: 为更高版本的 Vim 所用的拼写文件"
 
-#, fuzzy
-#~ msgid "E770: Unsupported section in spell file"
-#~ msgstr "E297: 交换文件写入错误"
+msgid "E770: Unsupported section in spell file"
+msgstr "E770: 拼写文件中存在不支持的节"
 
-#, fuzzy, c-format
-#~ msgid "Warning: region %s not supported"
-#~ msgstr "不支持该选项"
+#, c-format
+msgid "Warning: region %s not supported"
+msgstr "警告: 区域 %s 不支持"
 
-#, fuzzy, c-format
-#~ msgid "Reading affix file %s ..."
-#~ msgstr "查找 tag 文件 \"%s\""
+#, c-format
+msgid "Reading affix file %s ..."
+msgstr "读取附加文件 %s ……"
 
 #, c-format
-#~ msgid "Conversion failure for word in %s line %d: %s"
-#~ msgstr ""
+msgid "Conversion failure for word in %s line %d: %s"
+msgstr "单词 %s 转换失败,第 %d 行: %s"
 
 #, c-format
-#~ msgid "Conversion in %s not supported: from %s to %s"
-#~ msgstr ""
+msgid "Conversion in %s not supported: from %s to %s"
+msgstr "不支持 %s 中的转换: 从 %s 到 %s"
 
-#, fuzzy, c-format
-#~ msgid "Conversion in %s not supported"
-#~ msgstr "不支持该选项"
+#, c-format
+msgid "Conversion in %s not supported"
+msgstr "不支持 %s 中的转换"
 
-#, fuzzy, c-format
-#~ msgid "Invalid value for FLAG in %s line %d: %s"
-#~ msgstr "不正确的服务器 id : %s"
+#, c-format
+msgid "Invalid value for FLAG in %s line %d: %s"
+msgstr "%s 第 %d 行,FLAG 的值无效: %s"
 
 #, c-format
-#~ msgid "FLAG after using flags in %s line %d: %s"
-#~ msgstr ""
+msgid "FLAG after using flags in %s line %d: %s"
+msgstr "%s 第 %d 行,在使用标志后出现 FLAG: %s"
 
 #, c-format
-#~ msgid "Wrong COMPOUNDWORDMAX value in %s line %d: %s"
+#~ msgid ""
+#~ "Defining COMPOUNDFORBIDFLAG after PFX item may give wrong results in %s line "
+#~ "%d"
 #~ msgstr ""
 
 #, c-format
-#~ msgid "Wrong COMPOUNDMIN value in %s line %d: %s"
+#~ msgid ""
+#~ "Defining COMPOUNDPERMITFLAG after PFX item may give wrong results in %s line "
+#~ "%d"
 #~ msgstr ""
 
 #, c-format
-#~ msgid "Wrong COMPOUNDSYLMAX value in %s line %d: %s"
-#~ msgstr ""
+msgid "Wrong COMPOUNDWORDMAX value in %s line %d: %s"
+msgstr "%s 第 %d 行,错误的 COMPOUNDWORDMAX 值: %s"
 
 #, c-format
-#~ msgid "Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %s"
-#~ msgstr ""
+msgid "Wrong COMPOUNDMIN value in %s line %d: %s"
+msgstr "%s 第 %d 行,错误的 COMPOUNDMIN 值: %s"
 
 #, c-format
-#~ msgid "Different combining flag in continued affix block in %s line %d: %s"
-#~ msgstr ""
+msgid "Wrong COMPOUNDSYLMAX value in %s line %d: %s"
+msgstr "%s 第 %d 行,错误的 COMPOUNDSYLMAX 值: %s"
 
-#, fuzzy, c-format
-#~ msgid "Duplicate affix in %s line %d: %s"
-#~ msgstr "E154: 标签(tag) \"%s\" 在文件 %s 里重复出现多次"
+#, c-format
+msgid "Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %s"
+msgstr "%s 第 %d 行,错误的 CHECKCOMPOUNDPATTERN 值: %s"
 
 #, c-format
-#~ msgid ""
-#~ "Affix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s "
-#~ "line %d: %s"
-#~ msgstr ""
+msgid "Different combining flag in continued affix block in %s line %d: %s"
+msgstr "%s 第 %d 行,在连续的附加块中出现不同的组合标志: %s"
 
 #, c-format
-#~ msgid "Expected Y or N in %s line %d: %s"
-#~ msgstr ""
+msgid "Duplicate affix in %s line %d: %s"
+msgstr "%s 第 %d 行,重复的附加项: %s"
 
-#, fuzzy, c-format
-#~ msgid "Broken condition in %s line %d: %s"
-#~ msgstr "\"%s%s\" 中断点: 第 %ld 行"
+#, c-format
+msgid ""
+"Affix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s "
+"line %d: %s"
+msgstr ""
+"%s 第 %d 行,附加项被 BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST 使"
+"用: %s"
 
 #, c-format
-#~ msgid "Affix flags ignored when PFXPOSTPONE used in %s line %d: %s"
-#~ msgstr ""
+msgid "Expected Y or N in %s line %d: %s"
+msgstr "%s 第 %d 行,此处需要 Y 或 N: %s"
 
 #, c-format
-#~ msgid "Expected REP(SAL) count in %s line %d"
-#~ msgstr ""
+msgid "Broken condition in %s line %d: %s"
+msgstr "%s 第 %d 行,错误的条件: %s"
 
 #, c-format
-#~ msgid "Expected MAP count in %s line %d"
-#~ msgstr ""
+msgid "Expected REP(SAL) count in %s line %d"
+msgstr "%s 第 %d 行,此处需要 REP(SAL) 计数"
 
 #, c-format
-#~ msgid "Duplicate character in MAP in %s line %d"
-#~ msgstr ""
+msgid "Expected MAP count in %s line %d"
+msgstr "%s 第 %d 行,此处需要 MAP 计数"
 
 #, c-format
-#~ msgid "Unrecognized or duplicate item in %s line %d: %s"
-#~ msgstr ""
+msgid "Duplicate character in MAP in %s line %d"
+msgstr "%s 第 %d 行,MAP 中存在重复的字符"
 
 #, c-format
-#~ msgid "Missing FOL/LOW/UPP line in %s"
-#~ msgstr ""
+msgid "Unrecognized or duplicate item in %s line %d: %s"
+msgstr "%s 第 %d 行,无法识别或重复的项: %s"
 
-#~ msgid "COMPOUNDSYLMAX used without SYLLABLE"
-#~ msgstr ""
+#, c-format
+msgid "Missing FOL/LOW/UPP line in %s"
+msgstr "%s 中缺少 FOL/LOW/UPP 行"
 
-#, fuzzy
-#~ msgid "Too many postponed prefixes"
-#~ msgstr "太多编辑参数"
+msgid "COMPOUNDSYLMAX used without SYLLABLE"
+msgstr "在没有 SYLLABLE 的情况下使用了 COMPOUNDSYLMAX"
 
-#, fuzzy
-#~ msgid "Too many compound flags"
-#~ msgstr "太多编辑参数"
+msgid "Too many postponed prefixes"
+msgstr "太多延迟前缀"
 
-#~ msgid "Too many posponed prefixes and/or compound flags"
-#~ msgstr ""
+msgid "Too many compound flags"
+msgstr "太多组合标志"
+
+msgid "Too many posponed prefixes and/or compound flags"
+msgstr "太多延迟前缀和/或组合标志"
 
 #, c-format
-#~ msgid "Missing SOFO%s line in %s"
-#~ msgstr ""
+msgid "Missing SOFO%s line in %s"
+msgstr "%s 中缺少 SOFO%s 行"
 
 #, c-format
-#~ msgid "Both SAL and SOFO lines in %s"
-#~ msgstr ""
+msgid "Both SAL and SOFO lines in %s"
+msgstr "%s 同时出现 SQL 和 SOFO 行"
 
 #, c-format
-#~ msgid "Flag is not a number in %s line %d: %s"
-#~ msgstr ""
+msgid "Flag is not a number in %s line %d: %s"
+msgstr "%s 第 %d 行,标志不是数字: %s"
 
 #, c-format
-#~ msgid "Illegal flag in %s line %d: %s"
-#~ msgstr ""
+msgid "Illegal flag in %s line %d: %s"
+msgstr "%s 第 %d 行,无效的标志: %s"
 
 #, c-format
-#~ msgid "%s value differs from what is used in another .aff file"
-#~ msgstr ""
+msgid "%s value differs from what is used in another .aff file"
+msgstr "%s 的值与另一个 .aff 文件中使用的值不相同"
 
-#, fuzzy, c-format
-#~ msgid "Reading dictionary file %s ..."
-#~ msgstr "扫描字典: %s"
+#, c-format
+msgid "Reading dictionary file %s ..."
+msgstr "读取字典文件 %s ……"
 
 #, c-format
-#~ msgid "E760: No word count in %s"
-#~ msgstr ""
+msgid "E760: No word count in %s"
+msgstr "E760: %s 中没有单词计数"
 
 #, c-format
-#~ msgid "line %6d, word %6d - %s"
-#~ msgstr ""
+msgid "line %6d, word %6d - %s"
+msgstr "第 %6d 行,第 %6d 个单词 - %s"
 
-#, fuzzy, c-format
-#~ msgid "Duplicate word in %s line %d: %s"
-#~ msgstr "每一行都找不到模式: %s"
+#, c-format
+msgid "Duplicate word in %s line %d: %s"
+msgstr "%s 第 %d 行,重复的单词: %s"
 
 #, c-format
-#~ msgid "First duplicate word in %s line %d: %s"
-#~ msgstr ""
+msgid "First duplicate word in %s line %d: %s"
+msgstr "%s 第 %d 行,首次重复的单词: %s"
 
 #, c-format
-#~ msgid "%d duplicate word(s) in %s"
-#~ msgstr ""
+msgid "%d duplicate word(s) in %s"
+msgstr "存在 %d 个重复的单词,在 %s 中"
 
 #, c-format
-#~ msgid "Ignored %d word(s) with non-ASCII characters in %s"
-#~ msgstr ""
+msgid "Ignored %d word(s) with non-ASCII characters in %s"
+msgstr "忽略了含有非 ASCII 字符的 %d 个单词,在 %s 中"
 
-#, fuzzy, c-format
-#~ msgid "Reading word file %s ..."
-#~ msgstr "从标准输入读..."
+#, c-format
+msgid "Reading word file %s ..."
+msgstr "读取单词文件 %s ……"
 
 #, c-format
 #~ msgid "Duplicate /encoding= line ignored in %s line %d: %s"
 #~ msgstr ""
 
 #, c-format
-#~ msgid "/encoding= line after word ignored in %s line %d: %s"
-#~ msgstr ""
+msgid "/encoding= line after word ignored in %s line %d: %s"
+msgstr "%s 第 %d 行,单词后的 /encoding= 行已被忽略: %s"
 
 #, c-format
-#~ msgid "Duplicate /regions= line ignored in %s line %d: %s"
-#~ msgstr ""
+msgid "Duplicate /regions= line ignored in %s line %d: %s"
+msgstr "%s 第 %d 行,重复的 /regions= 行已被忽略: %s"
 
 #, c-format
-#~ msgid "Too many regions in %s line %d: %s"
-#~ msgstr ""
+msgid "Too many regions in %s line %d: %s"
+msgstr "%s 第 %d 行,太多区域: %s"
 
 #, c-format
-#~ msgid "/ line ignored in %s line %d: %s"
-#~ msgstr ""
+msgid "/ line ignored in %s line %d: %s"
+msgstr "%s 第 %d 行,/ 行已被忽略: %s"
 
-#, fuzzy, c-format
-#~ msgid "Invalid region nr in %s line %d: %s"
-#~ msgstr "不正确的服务器 id : %s"
+#, c-format
+msgid "Invalid region nr in %s line %d: %s"
+msgstr "%s 第 %d 行,无效的区域号: %s"
 
 #, c-format
-#~ msgid "Unrecognized flags in %s line %d: %s"
-#~ msgstr ""
+msgid "Unrecognized flags in %s line %d: %s"
+msgstr "%s 第 %d 行,不可识别的标志: %s"
 
 #, c-format
-#~ msgid "Ignored %d words with non-ASCII characters"
-#~ msgstr ""
+msgid "Ignored %d words with non-ASCII characters"
+msgstr "忽略了含有非 ASCII 字符的 %d 个单词"
 
 #, c-format
-#~ msgid "Compressed %d of %d nodes; %d (%d%%) remaining"
-#~ msgstr ""
+msgid "Compressed %d of %d nodes; %d (%d%%) remaining"
+msgstr "压缩了 %d/%d 个节点;剩余 %d (%d%%)"
 
-#~ msgid "Reading back spell file..."
-#~ msgstr ""
+msgid "Reading back spell file..."
+msgstr "读取拼写文件……"
 
 #.
 #. * Go through the trie of good words, soundfold each word and add it to
 #. * the soundfold trie.
 #.
-#~ msgid "Performing soundfolding..."
-#~ msgstr ""
+msgid "Performing soundfolding..."
+msgstr "正在 soundfolding……"
 
 #, c-format
-#~ msgid "Number of words after soundfolding: %ld"
-#~ msgstr ""
+msgid "Number of words after soundfolding: %ld"
+msgstr "soundfolding 后的单词数: %ld"
 
 #, c-format
-#~ msgid "Total number of words: %d"
-#~ msgstr ""
+msgid "Total number of words: %d"
+msgstr "单词总数: %d"
 
-#, fuzzy, c-format
-#~ msgid "Writing suggestion file %s ..."
-#~ msgstr "写入 viminfo 文件 \"%s\" 中"
+#, c-format
+msgid "Writing suggestion file %s ..."
+msgstr "写入建议文件 %s ……"
 
 #, c-format
-#~ msgid "Estimated runtime memory use: %d bytes"
-#~ msgstr ""
+msgid "Estimated runtime memory use: %d bytes"
+msgstr "估计运行时内存用量: %d 字节"
 
-#~ msgid "E751: Output file name must not have region name"
-#~ msgstr ""
+msgid "E751: Output file name must not have region name"
+msgstr "E751: 输出文件名不能含有区域名"
 
-#~ msgid "E754: Only up to 8 regions supported"
-#~ msgstr ""
+msgid "E754: Only up to 8 regions supported"
+msgstr "E754: 最多只支持 8 个区域"
 
-#, fuzzy, c-format
-#~ msgid "E755: Invalid region in %s"
-#~ msgstr "E15: 不正确的表达式: %s"
+#, c-format
+msgid "E755: Invalid region in %s"
+msgstr "E755: %s 出现无效的范围"
 
-#~ msgid "Warning: both compounding and NOBREAK specified"
-#~ msgstr ""
+msgid "Warning: both compounding and NOBREAK specified"
+msgstr "警告: 同时指定了 compounding 和 NOBREAK"
 
-#, fuzzy, c-format
-#~ msgid "Writing spell file %s ..."
-#~ msgstr "写入 viminfo 文件 \"%s\" 中"
+#, c-format
+msgid "Writing spell file %s ..."
+msgstr "写入拼写文件 %s ……"
 
-#, fuzzy
-#~ msgid "Done!"
-#~ msgstr "向下"
+msgid "Done!"
+msgstr "完成!"
 
 #, c-format
-#~ msgid "E765: 'spellfile' does not have %ld entries"
-#~ msgstr ""
+msgid "E765: 'spellfile' does not have %ld entries"
+msgstr "E765: 'spellfile' 没有 %ld 项"
 
 #, c-format
-#~ msgid "Word removed from %s"
-#~ msgstr ""
+msgid "Word removed from %s"
+msgstr "从 %s 中删除了单词"
 
 #, c-format
-#~ msgid "Word added to %s"
-#~ msgstr ""
+msgid "Word added to %s"
+msgstr "向 %s 中添加了单词"
 
-#~ msgid "E763: Word characters differ between spell files"
-#~ msgstr ""
+msgid "E763: Word characters differ between spell files"
+msgstr "E763: 拼写文件之间的字符不相同"
 
-#~ msgid "Sorry, no suggestions"
-#~ msgstr ""
+msgid "Sorry, no suggestions"
+msgstr "抱歉,没有建议"
 
 #, c-format
-#~ msgid "Sorry, only %ld suggestions"
-#~ msgstr ""
+msgid "Sorry, only %ld suggestions"
+msgstr "抱歉,只有 %ld 条建议"
 
 #. avoid more prompt
-#, fuzzy, c-format
-#~ msgid "Change \"%.*s\" to:"
-#~ msgstr "将改变保存到 \"%.*s\"?"
+#, c-format
+msgid "Change \"%.*s\" to:"
+msgstr "将 \"%.*s\" 改为:"
 
 #, c-format
-#~ msgid " < \"%.*s\""
-#~ msgstr ""
+msgid " < \"%.*s\""
+msgstr " < \"%.*s\""
 
-#, fuzzy
-#~ msgid "E752: No previous spell replacement"
-#~ msgstr "E35: 没有前一个查找命令"
+msgid "E752: No previous spell replacement"
+msgstr "E752: 之前没有拼写替换"
 
-#, fuzzy, c-format
-#~ msgid "E753: Not found: %s"
-#~ msgstr "E334: [菜单] 找不到 %s"
+#, c-format
+msgid "E753: Not found: %s"
+msgstr "E753: 找不到: %s"
 
-#, fuzzy, c-format
-#~ msgid "E778: This does not look like a .sug file: %s"
-#~ msgstr "E307: %s 看起来不像是 Vim 交换文件"
+#, c-format
+msgid "E778: This does not look like a .sug file: %s"
+msgstr "E778: 看起来不像是 .sug 文件: %s"
 
 #, c-format
 #~ msgid "E779: Old .sug file, needs to be updated: %s"
@@ -5056,8 +5068,8 @@ msgid "E397: Filename required"
 msgstr "E397: 需要文件名称"
 
 #, c-format
-msgid "E789: Missing ']': %s"
-msgstr "E789: 缺少 ']': %s"
+msgid "E747: Missing ']': %s"
+msgstr "E747: 缺少 ']': %s"
 
 #, c-format
 msgid "E398: Missing '=': %s"
@@ -5109,8 +5121,8 @@ msgstr "E409: 不正确的组名: %s"
 msgid "E410: Invalid :syntax subcommand: %s"
 msgstr "E410: 不正确的 :syntax 子命令: %s"
 
-#~ msgid "E679: recursive loop loading syncolor.vim"
-#~ msgstr ""
+msgid "E679: recursive loop loading syncolor.vim"
+msgstr "E679: 加载 syncolor.vim 时出现嵌套循环"
 
 #, c-format
 msgid "E411: highlight group not found: %s"
@@ -5164,12 +5176,11 @@ msgstr "E423: 无效的参数: %s"
 msgid "E424: Too many different highlighting attributes in use"
 msgstr "E424: 使用了太多不同的高亮度属性"
 
-#~ msgid "E669: Unprintable character in group name"
-#~ msgstr ""
+msgid "E669: Unprintable character in group name"
+msgstr "E669: 组名中存在不可显示字符"
 
-#, fuzzy
-#~ msgid "W18: Invalid character in group name"
-#~ msgstr "E182: 命令名称不正确"
+msgid "W18: Invalid character in group name"
+msgstr "W18: 组名中含有无效字符"
 
 msgid "E555: at bottom of tag stack"
 msgstr "E555: 已在 tag 堆栈底部"
@@ -5648,6 +5659,9 @@ msgstr "警告: 检测到 Windows 95/98/ME"
 msgid "type  :help windows95<Enter>  for info on this"
 msgstr "输入  :help windows95<Enter>  查看相关说明    "
 
+msgid "Already only one window"
+msgstr "已经只剩一个窗口了"
+
 msgid "E441: There is no preview window"
 msgstr "E441: 没有预览窗口"
 
@@ -5660,9 +5674,6 @@ msgstr "E443: 有其它分割窗口时不能旋转"
 msgid "E444: Cannot close last window"
 msgstr "E444: 不能关闭最后一个窗口"
 
-msgid "Already only one window"
-msgstr "已经只剩一个窗口了"
-
 msgid "E445: Other window contains changes"
 msgstr "E445: 其它窗口有改变的内容"
 
@@ -6050,6 +6061,9 @@ msgstr "已查找到文件开头,再从结尾继续查找"
 msgid "search hit BOTTOM, continuing at TOP"
 msgstr "已查找到文件结尾,再从开头继续查找"
 
+#~ msgid "Affix flags ignored when PFXPOSTPONE used in %s line %d: %s"
+#~ msgstr "%s 第 %d 行,使用 PFXPOSTPONE 时附加标志被忽略: %s"
+
 #~ msgid "[No file]"
 #~ msgstr "[未命名]"
 
diff --git a/src/po/zh_CN.cp936.po b/src/po/zh_CN.cp936.po
index dd4df46e5cc2dbc97c1601cd677c12553f3c5de7..591839f40bbf474a8a478f50e05268cee0043599 100644
--- a/src/po/zh_CN.cp936.po
+++ b/src/po/zh_CN.cp936.po
@@ -4,6 +4,10 @@
 # Do ":help credits" in Vim to see a list of people who contributed.
 #
 # FIRST AUTHOR  Wang Jun <junw@turbolinux.com.cn>
+# 
+# TRANSLATORS
+#   Edyfox <edyfox@gmail.com>
+#   Yuheng Xie <elephant@linux.net.cn>
 #
 # Generated from zh_CN.po, DO NOT EDIT.
 #
@@ -11,8 +15,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Vim(Simplified Chinese)\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-03-28 21:47+0800\n"
-"PO-Revision-Date: 2006-04-18 18:00+0800\n"
+"POT-Creation-Date: 2006-04-21 15:16+0800\n"
+"PO-Revision-Date: 2006-04-21 14:00+0800\n"
 "Last-Translator: Yuheng Xie <elephant@linux.net.cn>\n"
 "Language-Team: Simplified Chinese <i18n-translation@lists.linux.net.cn>\n"
 "MIME-Version: 1.0\n"
@@ -209,6 +213,9 @@ msgstr "E102: 
 msgid "E103: Buffer \"%s\" is not in diff mode"
 msgstr "E103: »º³åÇø \"%s\" ²»ÔÚ diff ģʽ"
 
+msgid "E787: Buffer changed unexpectedly"
+msgstr "E787: ÒâÍâµØ¸Ä±äÁË»º³åÇø"
+
 msgid "E104: Escape not allowed in digraph"
 msgstr "E104: ¸´ºÏ×Ö·û(digraph)Öв»ÄÜʹÓà Escape"
 
@@ -222,8 +229,8 @@ msgid " Keyword completion (^N^P)"
 msgstr " ¹Ø¼ü×Ö²¹È« (^N^P)"
 
 #. ctrl_x_mode == 0, ^P/^N compl.
-msgid " ^X mode (^]^D^E^F^I^K^L^N^O^P^S^U^V^Y)"
-msgstr " ^X ģʽ (^]^D^E^F^I^K^L^N^O^P^S^U^V^Y)"
+msgid " ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)"
+msgstr " ^X ģʽ (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)"
 
 msgid " Whole line completion (^L^N^P)"
 msgstr " ÕûÐв¹È« (^L^N^P)"
@@ -256,8 +263,8 @@ msgstr " 
 msgid " Omni completion (^O^N^P)"
 msgstr " È«Äܲ¹È« (^O^N^P)"
 
-msgid " Spelling suggestion (^S^N^P)"
-msgstr " ƴд½¨Òé (^S^N^P)"
+msgid " Spelling suggestion (s^N^P)"
+msgstr " ƴд½¨Òé (s^N^P)"
 
 msgid " Keyword Local completion (^N^P)"
 msgstr " ¹Ø¼ü×Ö¾Ö²¿²¹È« (^N^P)"
@@ -489,9 +496,8 @@ msgstr "E722: Dictionary 
 msgid "E723: Missing end of Dictionary '}': %s"
 msgstr "E723: Dictionary ȱÉÙ½áÊø·û '}': %s"
 
-#, fuzzy
-#~ msgid "E724: variable nested too deep for displaying"
-#~ msgstr "E724: ±äÁ¿Ç¶Ì×¹ýÉî"
+msgid "E724: variable nested too deep for displaying"
+msgstr "E724: ±äÁ¿Ç¶Ì×¹ýÉîÎÞ·¨ÏÔʾ"
 
 msgid "E699: Too many arguments"
 msgstr "E699: ²ÎÊý¹ý¶à"
@@ -529,8 +535,8 @@ msgstr ""
 msgid "called inputrestore() more often than inputsave()"
 msgstr "inputrestore() µÄµ÷ÓôÎÊý¶àÓÚ inputsave()"
 
-msgid "E745: Range not allowed"
-msgstr "E745: ²»ÔÊÐíµÄ·¶Î§"
+msgid "E786: Range not allowed"
+msgstr "E786: ²»ÔÊÐíµÄ·¶Î§"
 
 msgid "E701: Invalid type for len()"
 msgstr "E701: len() µÄÀàÐÍÎÞЧ"
@@ -560,9 +566,8 @@ msgstr "E655: 
 msgid "E258: Unable to send to client"
 msgstr "E258: ÎÞ·¨·¢Ë͵½¿Í»§¶Ë"
 
-#, fuzzy
-#~ msgid "E702: Sort compare function failed"
-#~ msgstr "E702: Sort ±È½Ïº¯Êýʧ°Ü"
+msgid "E702: Sort compare function failed"
+msgstr "E702: Sort ±È½Ïº¯Êýʧ°Ü"
 
 msgid "(Invalid)"
 msgstr "(ÎÞЧ)"
@@ -611,9 +616,8 @@ msgstr "δ֪"
 msgid "E742: Cannot change value of %s"
 msgstr "E742: ÎÞ·¨¸Ä±ä %s µÄÖµ"
 
-#, fuzzy
-#~ msgid "E698: variable nested too deep for making a copy"
-#~ msgstr "E698: ±äÁ¿Ç¶Ì×¹ýÉî"
+msgid "E698: variable nested too deep for making a copy"
+msgstr "E698: ±äÁ¿Ç¶Ì×¹ýÉîÎÞ·¨¸´ÖÆ"
 
 #, c-format
 msgid "E124: Missing '(': %s"
@@ -682,136 +686,6 @@ msgstr ""
 "\n"
 "\t×î½üÐÞ¸ÄÓÚ "
 
-msgid "Entering Debug mode.  Type \"cont\" to continue."
-msgstr "½øÈëµ÷ÊÔģʽ¡£ÊäÈë \"cont\" ¼ÌÐøÔËÐС£"
-
-#, c-format
-msgid "line %ld: %s"
-msgstr "µÚ %ld ÐÐ: %s"
-
-#, c-format
-msgid "cmd: %s"
-msgstr "ÃüÁî: %s"
-
-#, c-format
-msgid "Breakpoint in \"%s%s\" line %ld"
-msgstr "¶Ïµã \"%s%s\" µÚ %ld ÐÐ"
-
-#, c-format
-msgid "E161: Breakpoint not found: %s"
-msgstr "E161: ÕÒ²»µ½¶Ïµã: %s"
-
-msgid "No breakpoints defined"
-msgstr "ûÓж¨Òå¶Ïµã"
-
-#, c-format
-msgid "%3d  %s %s  line %ld"
-msgstr "%3d  %s %s  µÚ %ld ÐÐ"
-
-msgid "E750: First use :profile start <fname>"
-msgstr "E750: ÇëÏÈʹÓà :profile start <fname>"
-
-msgid "Save As"
-msgstr "Áí´æÎª"
-
-#, c-format
-msgid "Save changes to \"%s\"?"
-msgstr "½«¸Ä±ä±£´æµ½ \"%s\" Âð£¿"
-
-msgid "Untitled"
-msgstr "δÃüÃû"
-
-#, c-format
-msgid "E162: No write since last change for buffer \"%s\""
-msgstr "E162: »º³åÇø \"%s\" ÒÑÐ޸ĵ«ÉÐδ±£´æ"
-
-msgid "Warning: Entered other buffer unexpectedly (check autocommands)"
-msgstr "¾¯¸æ: ÒâÍâµØ½øÈëÁËÆäËü»º³åÇø (Çë¼ì²é×Ô¶¯ÃüÁî)"
-
-msgid "E163: There is only one file to edit"
-msgstr "E163: Ö»ÓÐÒ»¸öÎļþ¿É±à¼­"
-
-msgid "E164: Cannot go before first file"
-msgstr "E164: ÎÞ·¨Çл»£¬ÒÑÊǵÚÒ»¸öÎļþ"
-
-msgid "E165: Cannot go beyond last file"
-msgstr "E165: ÎÞ·¨Çл»£¬ÒÑÊÇ×îºóÒ»¸öÎļþ"
-
-#, c-format
-msgid "E666: compiler not supported: %s"
-msgstr "E666: ²»Ö§³Ö±àÒëÆ÷: %s"
-
-#, c-format
-msgid "Searching for \"%s\" in \"%s\""
-msgstr "ÕýÔÚ²éÕÒ \"%s\"£¬ÔÚ \"%s\" ÖÐ"
-
-#, c-format
-msgid "Searching for \"%s\""
-msgstr "ÕýÔÚ²éÕÒ \"%s\""
-
-#, c-format
-msgid "not found in 'runtimepath': \"%s\""
-msgstr "ÔÚ 'runtimepath' ÖÐÕÒ²»µ½ \"%s\""
-
-msgid "Source Vim script"
-msgstr "Ö´ÐÐ Vim ½Å±¾"
-
-#, c-format
-msgid "Cannot source a directory: \"%s\""
-msgstr "²»ÄÜÖ´ÐÐĿ¼: \"%s\""
-
-#, c-format
-msgid "could not source \"%s\""
-msgstr "²»ÄÜÖ´ÐÐ \"%s\""
-
-#, c-format
-msgid "line %ld: could not source \"%s\""
-msgstr "µÚ %ld ÐÐ: ²»ÄÜÖ´ÐÐ \"%s\""
-
-#, c-format
-msgid "sourcing \"%s\""
-msgstr "Ö´ÐÐ \"%s\""
-
-#, c-format
-msgid "line %ld: sourcing \"%s\""
-msgstr "µÚ %ld ÐÐ: Ö´ÐÐ \"%s\""
-
-#, c-format
-msgid "finished sourcing %s"
-msgstr "½áÊøÖ´ÐÐ %s"
-
-msgid "modeline"
-msgstr "modeline"
-
-msgid "--cmd argument"
-msgstr "--cmd ²ÎÊý"
-
-msgid "-c argument"
-msgstr "-c ²ÎÊý"
-
-msgid "environment variable"
-msgstr "»·¾³±äÁ¿"
-
-#~ msgid "error handler"
-#~ msgstr ""
-
-msgid "W15: Warning: Wrong line separator, ^M may be missing"
-msgstr "W15: ¾¯¸æ: ´íÎóµÄÐзָô·û£¬¿ÉÄÜÊÇÉÙÁË ^M"
-
-msgid "E167: :scriptencoding used outside of a sourced file"
-msgstr "E167: Ôڽű¾ÎļþÍâʹÓÃÁË :scriptencoding"
-
-msgid "E168: :finish used outside of a sourced file"
-msgstr "E168: Ôڽű¾ÎļþÍâʹÓÃÁË :finish"
-
-#, c-format
-msgid "Current %slanguage: \"%s\""
-msgstr "µ±Ç°µÄ %sÓïÑÔ: \"%s\""
-
-#, c-format
-msgid "E197: Cannot set language to \"%s\""
-msgstr "E197: ²»ÄÜÉ趨ÓïÑÔΪ \"%s\""
-
 #, c-format
 msgid "<%s>%s%s  %d,  Hex %02x,  Octal %03o"
 msgstr "<%s>%s%s  %d,  Ê®Áù½øÖÆ %02x,  °Ë½øÖÆ %03o"
@@ -844,8 +718,8 @@ msgstr "E135: *Filter* 
 msgid "[No write since last change]\n"
 msgstr "[ÒÑÐ޸ĵ«ÉÐδ±£´æ]\n"
 
-#, c-format
 # bad to translate
+#, c-format
 msgid "%sviminfo: %s in line: "
 msgstr "%sviminfo: %s λÓÚÐÐ: "
 
@@ -877,14 +751,14 @@ msgstr "E138: 
 msgid "Writing viminfo file \"%s\""
 msgstr "дÈë viminfo Îļþ \"%s\""
 
+# do not translate to avoid writing Chinese in files
 #. Write the info:
 #, fuzzy, c-format
-# do not translate to avoid writing Chinese in files
-msgid "# This viminfo file was generated by Vim %s.\n"
-msgstr "# Õâ¸ö viminfo ÎļþÊÇÓÉ vim %s Éú³ÉµÄ¡£\n"
+#~ msgid "# This viminfo file was generated by Vim %s.\n"
+#~ msgstr "# Õâ¸ö viminfo ÎļþÊÇÓÉ Vim %s Éú³ÉµÄ¡£\n"
 
-#, fuzzy, c-format
 # do not translate to avoid writing Chinese in files
+#, fuzzy, c-format
 msgid ""
 "# You may edit it if you're careful!\n"
 "\n"
@@ -892,14 +766,17 @@ msgstr ""
 "# Èç¹ûÒª×ÔÐÐÐÞ¸ÄÇëÌØ±ðСÐÄ£¡\n"
 "\n"
 
-#, fuzzy, c-format
 # do not translate to avoid writing Chinese in files
-msgid "# Value of 'encoding' when this file was written\n"
-msgstr "# 'encoding' ÔÚ´ËÎļþ½¨Á¢Ê±µÄÖµ\n"
+#, fuzzy, c-format
+#~ msgid "# Value of 'encoding' when this file was written\n"
+#~ msgstr "# 'encoding' ÔÚ´ËÎļþ½¨Á¢Ê±µÄÖµ\n"
 
 msgid "Illegal starting char"
 msgstr "ÎÞЧµÄÆô¶¯×Ö·û"
 
+msgid "Save As"
+msgstr "Áí´æÎª"
+
 msgid "Write partial file?"
 msgstr "ҪдÈ벿·ÖÎļþÂð£¿"
 
@@ -987,8 +864,8 @@ msgstr "E148: global ȱ
 msgid "Pattern found in every line: %s"
 msgstr "ÿÐж¼Æ¥Åä±í´ïʽ: %s"
 
-#, fuzzy, c-format
 # do not translate to avoid writing Chinese in files
+#, fuzzy, c-format
 msgid ""
 "\n"
 "# Last Substitute String:\n"
@@ -1071,6 +948,133 @@ msgstr " (
 msgid "[Deleted]"
 msgstr "[ÒÑɾ³ý]"
 
+msgid "Entering Debug mode.  Type \"cont\" to continue."
+msgstr "½øÈëµ÷ÊÔģʽ¡£ÊäÈë \"cont\" ¼ÌÐøÔËÐС£"
+
+#, c-format
+msgid "line %ld: %s"
+msgstr "µÚ %ld ÐÐ: %s"
+
+#, c-format
+msgid "cmd: %s"
+msgstr "ÃüÁî: %s"
+
+#, c-format
+msgid "Breakpoint in \"%s%s\" line %ld"
+msgstr "¶Ïµã \"%s%s\" µÚ %ld ÐÐ"
+
+#, c-format
+msgid "E161: Breakpoint not found: %s"
+msgstr "E161: ÕÒ²»µ½¶Ïµã: %s"
+
+msgid "No breakpoints defined"
+msgstr "ûÓж¨Òå¶Ïµã"
+
+#, c-format
+msgid "%3d  %s %s  line %ld"
+msgstr "%3d  %s %s  µÚ %ld ÐÐ"
+
+msgid "E750: First use :profile start <fname>"
+msgstr "E750: ÇëÏÈʹÓà :profile start <fname>"
+
+#, c-format
+msgid "Save changes to \"%s\"?"
+msgstr "½«¸Ä±ä±£´æµ½ \"%s\" Âð£¿"
+
+msgid "Untitled"
+msgstr "δÃüÃû"
+
+#, c-format
+msgid "E162: No write since last change for buffer \"%s\""
+msgstr "E162: »º³åÇø \"%s\" ÒÑÐ޸ĵ«ÉÐδ±£´æ"
+
+msgid "Warning: Entered other buffer unexpectedly (check autocommands)"
+msgstr "¾¯¸æ: ÒâÍâµØ½øÈëÁËÆäËü»º³åÇø (Çë¼ì²é×Ô¶¯ÃüÁî)"
+
+msgid "E163: There is only one file to edit"
+msgstr "E163: Ö»ÓÐÒ»¸öÎļþ¿É±à¼­"
+
+msgid "E164: Cannot go before first file"
+msgstr "E164: ÎÞ·¨Çл»£¬ÒÑÊǵÚÒ»¸öÎļþ"
+
+msgid "E165: Cannot go beyond last file"
+msgstr "E165: ÎÞ·¨Çл»£¬ÒÑÊÇ×îºóÒ»¸öÎļþ"
+
+#, c-format
+msgid "E666: compiler not supported: %s"
+msgstr "E666: ²»Ö§³Ö±àÒëÆ÷: %s"
+
+#, c-format
+msgid "Searching for \"%s\" in \"%s\""
+msgstr "ÕýÔÚ²éÕÒ \"%s\"£¬ÔÚ \"%s\" ÖÐ"
+
+#, c-format
+msgid "Searching for \"%s\""
+msgstr "ÕýÔÚ²éÕÒ \"%s\""
+
+#, c-format
+msgid "not found in 'runtimepath': \"%s\""
+msgstr "ÔÚ 'runtimepath' ÖÐÕÒ²»µ½ \"%s\""
+
+msgid "Source Vim script"
+msgstr "Ö´ÐÐ Vim ½Å±¾"
+
+#, c-format
+msgid "Cannot source a directory: \"%s\""
+msgstr "²»ÄÜÖ´ÐÐĿ¼: \"%s\""
+
+#, c-format
+msgid "could not source \"%s\""
+msgstr "²»ÄÜÖ´ÐÐ \"%s\""
+
+#, c-format
+msgid "line %ld: could not source \"%s\""
+msgstr "µÚ %ld ÐÐ: ²»ÄÜÖ´ÐÐ \"%s\""
+
+#, c-format
+msgid "sourcing \"%s\""
+msgstr "Ö´ÐÐ \"%s\""
+
+#, c-format
+msgid "line %ld: sourcing \"%s\""
+msgstr "µÚ %ld ÐÐ: Ö´ÐÐ \"%s\""
+
+#, c-format
+msgid "finished sourcing %s"
+msgstr "½áÊøÖ´ÐÐ %s"
+
+msgid "modeline"
+msgstr "modeline"
+
+msgid "--cmd argument"
+msgstr "--cmd ²ÎÊý"
+
+msgid "-c argument"
+msgstr "-c ²ÎÊý"
+
+msgid "environment variable"
+msgstr "»·¾³±äÁ¿"
+
+#~ msgid "error handler"
+#~ msgstr ""
+
+msgid "W15: Warning: Wrong line separator, ^M may be missing"
+msgstr "W15: ¾¯¸æ: ´íÎóµÄÐзָô·û£¬¿ÉÄÜÊÇÉÙÁË ^M"
+
+msgid "E167: :scriptencoding used outside of a sourced file"
+msgstr "E167: Ôڽű¾ÎļþÍâʹÓÃÁË :scriptencoding"
+
+msgid "E168: :finish used outside of a sourced file"
+msgstr "E168: Ôڽű¾ÎļþÍâʹÓÃÁË :finish"
+
+#, c-format
+msgid "Current %slanguage: \"%s\""
+msgstr "µ±Ç°µÄ %sÓïÑÔ: \"%s\""
+
+#, c-format
+msgid "E197: Cannot set language to \"%s\""
+msgstr "E197: ²»ÄÜÉ趨ÓïÑÔΪ \"%s\""
+
 msgid "Entering Ex mode.  Type \"visual\" to go to Normal mode."
 msgstr "½øÈë Ex ģʽ¡£ÊäÈë \"visual\" »Øµ½Õý³£Ä£Ê½¡£"
 
@@ -1179,7 +1183,7 @@ msgstr "E467: Custom 
 
 #, c-format
 msgid "E185: Cannot find color scheme %s"
-msgstr "E185: ÕÒ²»µ½ÑÕÉ«Ö÷Ìâ %s"
+msgstr "E185: ÕÒ²»µ½ÅäÉ«·½°¸ %s"
 
 msgid "Greetings, Vim user!"
 msgstr "ÄúºÃ£¬Vim Óû§£¡"
@@ -1391,6 +1395,9 @@ msgstr "E602: :endtry ȱ
 msgid "E193: :endfunction not inside a function"
 msgstr "E193: :endfunction ²»ÔÚº¯ÊýÄÚ"
 
+msgid "E788: Not allowed to edit another buffer now"
+msgstr "E788: Ŀǰ²»ÔÊÐí±à¼­±ðµÄ»º³åÇø"
+
 msgid "tagname"
 msgstr "tag Ãû"
 
@@ -1400,8 +1407,8 @@ msgstr " 
 msgid "'history' option is zero"
 msgstr "Ñ¡Ïî 'history' ΪÁã"
 
-#, fuzzy, c-format
 # do not translate to avoid writing Chinese in files
+#, fuzzy, c-format
 msgid ""
 "\n"
 "# %s History (newest to oldest):\n"
@@ -1409,17 +1416,25 @@ msgstr ""
 "\n"
 "# %s ÀúÊ·¼Ç¼ (´Óе½¾É):\n"
 
-msgid "Command Line"
-msgstr "ÃüÁîÐÐ"
+# do not translate to avoid writing Chinese in files
+#, fuzzy
+#~ msgid "Command Line"
+#~ msgstr "ÃüÁîÐÐ"
 
-msgid "Search String"
-msgstr "²éÕÒ×Ö·û´®"
+# do not translate to avoid writing Chinese in files
+#, fuzzy
+#~ msgid "Search String"
+#~ msgstr "²éÕÒ×Ö·û´®"
 
-msgid "Expression"
-msgstr "±í´ïʽ"
+# do not translate to avoid writing Chinese in files
+#, fuzzy
+#~ msgid "Expression"
+#~ msgstr "±í´ïʽ"
 
-msgid "Input Line"
-msgstr "ÊäÈëÐÐ"
+# do not translate to avoid writing Chinese in files
+#, fuzzy
+#~ msgid "Input Line"
+#~ msgstr "ÊäÈëÐÐ"
 
 msgid "E198: cmd_pchar beyond the command length"
 msgstr "E198: cmd_pchar ³¬¹ýÃüÁ¶È"
@@ -1550,9 +1565,8 @@ msgstr "E509: 
 msgid "E510: Can't make backup file (add ! to override)"
 msgstr "E510: ÎÞ·¨Éú³É±¸·ÝÎļþ (Çë¼Ó ! Ç¿ÖÆÖ´ÐÐ)"
 
-#, fuzzy
-#~ msgid "E460: The resource fork would be lost (add ! to override)"
-#~ msgstr "E460: Resource fork »áÏûʧ (Çë¼Ó ! Ç¿ÖÆÖ´ÐÐ)"
+msgid "E460: The resource fork would be lost (add ! to override)"
+msgstr "E460: Resource fork »á¶ªÊ§ (Çë¼Ó ! Ç¿ÖÆÖ´ÐÐ)"
 
 msgid "E214: Can't find temp file for writing"
 msgstr "E214: ÕÒ²»µ½ÓÃÓÚдÈëµÄÁÙʱÎļþ"
@@ -1836,6 +1850,29 @@ msgstr "
 msgid "E228: makemap: Illegal mode"
 msgstr "E228: makemap: ÎÞЧµÄģʽ"
 
+msgid "E229: Cannot start the GUI"
+msgstr "E229: ÎÞ·¨Æô¶¯Í¼ÐνçÃæ"
+
+#, c-format
+msgid "E230: Cannot read from \"%s\""
+msgstr "E230: ÎÞ·¨¶ÁÈ¡Îļþ \"%s\""
+
+msgid "E665: Cannot start GUI, no valid font found"
+msgstr "E665: ÎÞ·¨Æô¶¯Í¼ÐνçÃæ£¬ÕÒ²»µ½ÓÐЧµÄ×ÖÌå"
+
+msgid "E231: 'guifontwide' invalid"
+msgstr "E231: ÎÞЧµÄ 'guifontwide'"
+
+msgid "E599: Value of 'imactivatekey' is invalid"
+msgstr "E599: 'imactivatekey' µÄÖµÎÞЧ"
+
+#, c-format
+msgid "E254: Cannot allocate color %s"
+msgstr "E254: ÎÞ·¨·ÖÅäÑÕÉ« %s"
+
+msgid "No match at cursor, finding next"
+msgstr "ÔÚ¹â±ê´¦Ã»ÓÐÆ¥Å䣬²éÕÒÏÂÒ»¸ö"
+
 msgid "<cannot open> "
 msgstr "<ÎÞ·¨´ò¿ª>"
 
@@ -1858,38 +1895,15 @@ msgstr "È·
 msgid "Cancel"
 msgstr "È¡Ïû"
 
-msgid "Vim dialog"
-msgstr "Vim ¶Ô»°¿ò"
-
 msgid "Scrollbar Widget: Could not get geometry of thumb pixmap."
 msgstr "¹ö¶¯Ìõ²¿¼þ: ÎÞ·¨»ñÈ¡»¬¿éͼÏñµÄ¼¸ºÎ´óС"
 
+msgid "Vim dialog"
+msgstr "Vim ¶Ô»°¿ò"
+
 msgid "E232: Cannot create BalloonEval with both message and callback"
 msgstr "E232: ²»ÄÜͬʱʹÓÃÏûÏ¢ºÍ»Øµ÷º¯ÊýÀ´´´½¨ BalloonEval"
 
-msgid "E229: Cannot start the GUI"
-msgstr "E229: ÎÞ·¨Æô¶¯Í¼ÐνçÃæ"
-
-#, c-format
-msgid "E230: Cannot read from \"%s\""
-msgstr "E230: ²»ÄܶÁÈ¡Îļþ \"%s\""
-
-msgid "E665: Cannot start GUI, no valid font found"
-msgstr "E665: ÎÞ·¨Æô¶¯Í¼ÐνçÃæ£¬ÕÒ²»µ½ÓÐЧµÄ×ÖÌå"
-
-msgid "E231: 'guifontwide' invalid"
-msgstr "E231: ÎÞЧµÄ 'guifontwide'"
-
-msgid "E599: Value of 'imactivatekey' is invalid"
-msgstr "E599: 'imactivatekey' µÄÖµÎÞЧ"
-
-#, c-format
-msgid "E254: Cannot allocate color %s"
-msgstr "E254: ÎÞ·¨·ÖÅäÑÕÉ« %s"
-
-msgid "No match at cursor, finding next"
-msgstr "ÔÚ¹â±ê´¦Ã»ÓÐÆ¥Å䣬²éÕÒÏÂÒ»¸ö"
-
 msgid "Vim dialog..."
 msgstr "Vim ¶Ô»°¿ò..."
 
@@ -2027,6 +2041,12 @@ msgstr "E243: 
 msgid "E672: Unable to open window inside MDI application"
 msgstr "E672: ÎÞ·¨ÔÚ MDI Ó¦ÓóÌÐòÖдò¿ª´°¿Ú"
 
+msgid "Close tab"
+msgstr "¹Ø±Õ±êÇ©"
+
+msgid "Open tab..."
+msgstr "´ò¿ª±êÇ©..."
+
 msgid "Find string (use '\\\\' to find  a '\\')"
 msgstr "²éÕÒ×Ö·û´® (ʹÓà '\\\\' À´²éÕÒ '\\')"
 
@@ -2084,40 +2104,36 @@ msgstr ""
 "×ÖÌå1µÄ¿í¶È: %ld\n"
 "\n"
 
-#, fuzzy
-#~ msgid "Invalid font specification"
-#~ msgstr "²»ÕýÈ·µÄ×ÖÌ弯(Fontset)"
+msgid "Invalid font specification"
+msgstr "Ö¸¶¨ÁËÎÞЧµÄ×ÖÌå"
 
-#~ msgid "&Dismiss"
-#~ msgstr ""
+msgid "&Dismiss"
+msgstr "È¡Ïû(&D)"
 
-#~ msgid "no specific match"
-#~ msgstr ""
+msgid "no specific match"
+msgstr "ÕÒ²»µ½Æ¥ÅäµÄÏî"
 
-#, fuzzy
-#~ msgid "Vim - Font Selector"
-#~ msgstr "×ÖÌåÑ¡Ôñ"
+msgid "Vim - Font Selector"
+msgstr "Vim - ×ÖÌåÑ¡ÔñÆ÷"
 
-#~ msgid "Name:"
-#~ msgstr ""
+msgid "Name:"
+msgstr "Ãû³Æ:"
 
 #. create toggle button
 #~ msgid "Show size in Points"
 #~ msgstr ""
 
-#, fuzzy
-#~ msgid "Encoding:"
-#~ msgstr "¼Ç¼ÖÐ"
+msgid "Encoding:"
+msgstr "±àÂë:"
 
-#, fuzzy
-#~ msgid "Font:"
-#~ msgstr "×ÖÌå1: %s\n"
+msgid "Font:"
+msgstr "×ÖÌå:"
 
-#~ msgid "Style:"
-#~ msgstr ""
+msgid "Style:"
+msgstr "·ç¸ñ:"
 
-#~ msgid "Size:"
-#~ msgstr ""
+msgid "Size:"
+msgstr "³ß´ç:"
 
 msgid "E256: Hangul automata ERROR"
 msgstr "E256: Hangul automata ´íÎó"
@@ -3021,8 +3037,8 @@ msgstr ""
 msgid "-display <display>\tRun vim on <display> (also: --display)"
 msgstr "-display <display>\tÔÚ <display> ÉÏÔËÐÐ vim (Ò²¿ÉÓà --display)"
 
-#~ msgid "--role <role>\tSet a unique role to identify the main window"
-#~ msgstr ""
+msgid "--role <role>\tSet a unique role to identify the main window"
+msgstr "--role <role>\tÉèÖÃÓÃÓÚÇø·ÖÖ÷´°¿ÚµÄ´°¿Ú½ÇÉ«Ãû"
 
 msgid "--socketid <xid>\tOpen Vim inside another GTK widget"
 msgstr "--socketid <xid>\tÔÚÁíÒ»¸ö GTK ²¿¼þÖдò¿ª Vim"
@@ -3030,8 +3046,8 @@ msgstr "--socketid <xid>\t
 msgid "-P <parent title>\tOpen Vim inside parent application"
 msgstr "-P <parent title>\tÔÚ¸¸Ó¦ÓóÌÐòÖдò¿ª Vim"
 
-#~ msgid "No display"
-#~ msgstr ""
+msgid "No display"
+msgstr "ûÓÐ display"
 
 #. Failed to send, abort.
 msgid ": Send failed.\n"
@@ -3045,9 +3061,8 @@ msgstr ": 
 msgid "%d of %d edited"
 msgstr "%d ÖÐ %d Òѱ༭"
 
-#, fuzzy
-#~ msgid "No display: Send expression failed.\n"
-#~ msgstr "·¢Ëͱí´ïʽʧ°Ü¡£\n"
+msgid "No display: Send expression failed.\n"
+msgstr "ûÓÐ display: ·¢Ëͱí´ïʽʧ°Ü¡£\n"
 
 msgid ": Send expression failed.\n"
 msgstr ": ·¢Ëͱí´ïʽʧ°Ü¡£\n"
@@ -3241,49 +3256,49 @@ msgstr "E308: 
 msgid "E309: Unable to read block 1 from %s"
 msgstr "E309: ÎÞ·¨´Ó %s ¶ÁÈ¡¿é 1"
 
-#, fuzzy
 # do not translate to avoid writing Chinese in files
-msgid "???MANY LINES MISSING"
-msgstr "???ȱÉÙÁËÌ«¶àÐÐ"
-
 #, fuzzy
-# do not translate to avoid writing Chinese in files
-msgid "???LINE COUNT WRONG"
-msgstr "???ÐÐÊý´íÎó"
+#~ msgid "???MANY LINES MISSING"
+#~ msgstr "???ȱÉÙÁËÌ«¶àÐÐ"
 
-#, fuzzy
 # do not translate to avoid writing Chinese in files
-msgid "???EMPTY BLOCK"
-msgstr "???¿ÕµÄ¿é"
+#, fuzzy
+#~ msgid "???LINE COUNT WRONG"
+#~ msgstr "???ÐÐÊý´íÎó"
 
+# do not translate to avoid writing Chinese in files
 #, fuzzy
+#~ msgid "???EMPTY BLOCK"
+#~ msgstr "???¿ÕµÄ¿é"
+
 # do not translate to avoid writing Chinese in files
-msgid "???LINES MISSING"
-msgstr "???ȱÉÙÁËһЩÐÐ"
+#, fuzzy
+#~ msgid "???LINES MISSING"
+#~ msgstr "???ȱÉÙÁËһЩÐÐ"
 
 #, c-format
 msgid "E310: Block 1 ID wrong (%s not a .swp file?)"
 msgstr "E310: ¿é 1 ID ´íÎó (%s ²»Êǽ»»»Îļþ£¿)"
 
-#, fuzzy
 # do not translate to avoid writing Chinese in files
-msgid "???BLOCK MISSING"
-msgstr "???ȱÉÙ¿é"
-
 #, fuzzy
-# do not translate to avoid writing Chinese in files
-msgid "??? from here until ???END lines may be messed up"
-msgstr "??? ´ÓÕâÀïµ½ ???END µÄÐпÉÄÜÒÑ»ìÂÒ"
+#~ msgid "???BLOCK MISSING"
+#~ msgstr "???ȱÉÙ¿é"
 
-#, fuzzy
 # do not translate to avoid writing Chinese in files
-msgid "??? from here until ???END lines may have been inserted/deleted"
-msgstr "??? ´ÓÕâÀïµ½ ???END µÄÐпÉÄÜÒѱ»²åÈë/ɾ³ý¹ý"
+#, fuzzy
+#~ msgid "??? from here until ???END lines may be messed up"
+#~ msgstr "??? ´ÓÕâÀïµ½ ???END µÄÐпÉÄÜÒÑ»ìÂÒ"
 
+# do not translate to avoid writing Chinese in files
 #, fuzzy
+#~ msgid "??? from here until ???END lines may have been inserted/deleted"
+#~ msgstr "??? ´ÓÕâÀïµ½ ???END µÄÐпÉÄÜÒѱ»²åÈë/ɾ³ý¹ý"
+
 # do not translate to avoid writing Chinese in files
-msgid "???END"
-msgstr "???END"
+#, fuzzy
+#~ msgid "???END"
+#~ msgstr "???END"
 
 msgid "E311: Recovery Interrupted"
 msgstr "E311: »Ö¸´Òѱ»ÖжÏ"
@@ -3810,18 +3825,18 @@ msgid "E347: No more file \"%s\" found in path"
 msgstr "E347: ÔÚ·¾¶ÖÐÕÒ²»µ½¸ü¶àµÄÎļþ \"%s\""
 
 #. Get here when the server can't be found.
-#~ msgid "Cannot connect to Netbeans #2"
-#~ msgstr ""
+msgid "Cannot connect to Netbeans #2"
+msgstr "ÎÞ·¨Á¬½Óµ½ Netbeans #2"
 
-#~ msgid "Cannot connect to Netbeans"
-#~ msgstr ""
+msgid "Cannot connect to Netbeans"
+msgstr "ÎÞ·¨Á¬½Óµ½ Netbeans"
 
 #, c-format
-#~ msgid "E668: Wrong access mode for NetBeans connection info file: \"%s\""
-#~ msgstr ""
+msgid "E668: Wrong access mode for NetBeans connection info file: \"%s\""
+msgstr "E668: NetBeans Á¬½ÓÐÅÏ¢ÎļþÖдíÎóµÄ·ÃÎÊģʽ: \"%s\""
 
-#~ msgid "read from Netbeans socket"
-#~ msgstr ""
+msgid "read from Netbeans socket"
+msgstr "´Ó Netbeans Ì×½Ó×Ö¶ÁÈ¡"
 
 #, c-format
 msgid "E658: NetBeans connection lost for buffer %ld"
@@ -3950,26 +3965,27 @@ msgstr "E574: δ֪
 msgid "%ld Cols; "
 msgstr "%ld ÁÐ; "
 
-#, fuzzy, c-format
-#~ msgid "Selected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld Bytes"
-#~ msgstr "Ñ¡ÔñÁË %s%ld/%ld ÐÐ; %ld/%ld ×Ö(Word); %ld/%ld ×Ö·û(Bytes)"
+#, c-format
+msgid "Selected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld Bytes"
+msgstr "Ñ¡ÔñÁË %s%ld/%ld ÐÐ; %ld/%ld ¸ö´Ê; %ld/%ld ¸ö×Ö½Ú"
 
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "Selected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld Chars; %ld of %ld "
 "Bytes"
-msgstr "Ñ¡ÔñÁË %s%ld/%ld ÐÐ; %ld/%ld ×Ö(Word); %ld/%ld ×Ö·û(Chars); %ld/%ld"
+msgstr "Ñ¡ÔñÁË %s%ld/%ld ÐÐ; %ld/%ld ¸ö´Ê; %ld/%ld ¸ö×Ö·û; %ld/%ld ¸ö×Ö½Ú"
 
-#, fuzzy, c-format
-#~ msgid "Col %s of %s; Line %ld of %ld; Word %ld of %ld; Byte %ld of %ld"
-#~ msgstr "ÁÐ %s/%s; ÐÐ %ld/%ld; ×Ö(Word) %ld/%ld; ×Ö·û(Byte) %ld/%ld"
+#, c-format
+msgid "Col %s of %s; Line %ld of %ld; Word %ld of %ld; Byte %ld of %ld"
+msgstr "µÚ %s/%s ÁÐ; µÚ %ld/%ld ÐÐ; µÚ %ld/%ld ¸ö´Ê; µÚ %ld/%ld ¸ö×Ö½Ú"
 
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "Col %s of %s; Line %ld of %ld; Word %ld of %ld; Char %ld of %ld; Byte %ld of "
 "%ld"
 msgstr ""
-"ÁÐ %s/%s; ÐÐ %ld/%ld; ×Ö(Word) %ld/%ld; ×Ö·û(Char) %ld/%ld; ×Ö·û(Byte) %ld/%ld"
+"µÚ %s/%s ÁÐ; µÚ %ld/%ld ÐÐ; µÚ %ld/%ld ¸ö´Ê; µÚ %ld/%ld ¸ö×Ö·û; µÚ %ld/%ld ¸ö"
+"×Ö½Ú"
 
 #, c-format
 #~ msgid "(+%ld for BOM)"
@@ -4177,17 +4193,14 @@ msgstr "ANCHOR_BUF_SIZE ̫С"
 msgid "I/O ERROR"
 msgstr "I/O ´íÎó"
 
-#~ msgid "...(truncated)"
-#~ msgstr ""
-
-#~ msgid "Message"
-#~ msgstr ""
+msgid "Message"
+msgstr "ÏûÏ¢"
 
 msgid "'columns' is not 80, cannot execute external commands"
 msgstr "'columns' ²»ÊÇ 80, ²»ÄÜÖ´ÐÐÍⲿÃüÁî"
 
 msgid "E237: Printer selection failed"
-msgstr "E237: ²»ÄÜÑ¡Ôñ´Ë´òÓ¡»ú"
+msgstr "E237: Ñ¡Ôñ´òÓ¡»úʧ°Ü"
 
 #, c-format
 msgid "to %s on %s"
@@ -4203,7 +4216,7 @@ msgstr "E238: 
 
 #, c-format
 msgid "Printing '%s'"
-msgstr "ÒÑ´òÓ¡: '%s'"
+msgstr "´òÓ¡ '%s'"
 
 #, c-format
 msgid "E244: Illegal charset name \"%s\" in font name \"%s\""
@@ -4214,22 +4227,22 @@ msgid "E245: Illegal char '%c' in font name \"%s\""
 msgstr "E245: ²»ÕýÈ·µÄ×Ö·û '%c' ³öÏÖÔÚ×ÖÌåÃû³Æ \"%s\" ÄÚ"
 
 msgid "E366: Invalid 'osfiletype' option - using Text"
-msgstr "E366: ²»ÕýÈ·µÄ 'filetype' Ñ¡Ïî - ʹÓô¿ÎÄ×Öģʽ"
+msgstr "E366: ²»ÕýÈ·µÄ 'osfiletype' Ñ¡Ïî - ʹÓô¿ÎÄ×Öģʽ"
 
 msgid "Vim: Double signal, exiting\n"
-msgstr "Vim: Ë«ÖØÐźÅ, Í˳öÖÐ\n"
+msgstr "Vim: Ë«ÖØÐźţ¬Í˳öÖÐ\n"
 
 #, c-format
 msgid "Vim: Caught deadly signal %s\n"
-msgstr "Vim: CVim: À¹½Øµ½ÐźÅ(signal) %s\n"
+msgstr "Vim: À¹½Øµ½ÖÂÃüÐźÅ(deadly signal) %s\n"
 
 #, c-format
 msgid "Vim: Caught deadly signal\n"
-msgstr "Vim: À¹½Øµ½ÖÂÃüµÄÐźÅ(deadly signale)\n"
+msgstr "Vim: À¹½Øµ½ÖÂÃüÐźÅ(deadly signal)\n"
 
 #, c-format
 msgid "Opening the X display took %ld msec"
-msgstr "´ò¿ª X Window ÓÃʱ %ld Ãë"
+msgstr "´ò¿ª X display ÓÃʱ %ld Ãë"
 
 msgid ""
 "\n"
@@ -4239,24 +4252,24 @@ msgstr ""
 "Vim: X ´íÎó\n"
 
 msgid "Testing the X display failed"
-msgstr "²âÊÔ X Window ʧ°Ü"
+msgstr "²âÊÔ X display ʧ°Ü"
 
 msgid "Opening the X display timed out"
-msgstr "´ò¿ª X Window ³¬Ê±"
+msgstr "´ò¿ª X display ³¬Ê±"
 
 msgid ""
 "\n"
 "Cannot execute shell "
 msgstr ""
 "\n"
-"²»ÄÜÖ´ÐÐ shell"
+"ÎÞ·¨Ö´ÐÐ shell"
 
 msgid ""
 "\n"
 "Cannot execute shell sh\n"
 msgstr ""
 "\n"
-"²»ÄÜÖ´ÐÐ shell sh\n"
+"ÎÞ·¨Ö´ÐÐ shell sh\n"
 
 msgid ""
 "\n"
@@ -4270,14 +4283,14 @@ msgid ""
 "Cannot create pipes\n"
 msgstr ""
 "\n"
-"²»Äܽ¨Á¢¹ÜµÀ\n"
+"ÎÞ·¨½¨Á¢¹ÜµÀ\n"
 
 msgid ""
 "\n"
 "Cannot fork\n"
 msgstr ""
 "\n"
-"²»ÄÜ fork\n"
+"ÎÞ·¨ fork\n"
 
 msgid ""
 "\n"
@@ -4286,46 +4299,45 @@ msgstr ""
 "\n"
 "ÃüÁîÒѽáÊø\n"
 
-#, fuzzy
-#~ msgid "XSMP lost ICE connection"
-#~ msgstr "ÏÔʾÁ¬½Ó"
+msgid "XSMP lost ICE connection"
+msgstr "XSMP ¶ªÊ§Á˵½ ICE µÄÁ¬½Ó"
 
+# do not translate
 #, c-format
-#~ msgid "dlerror = \"%s\""
-#~ msgstr ""
+msgid "dlerror = \"%s\""
+msgstr "dlerror = \"%s\""
 
 msgid "Opening the X display failed"
-msgstr "´ò¿ª X Window ʧ°Ü"
+msgstr "´ò¿ª X display ʧ°Ü"
 
-#~ msgid "XSMP handling save-yourself request"
-#~ msgstr ""
+msgid "XSMP handling save-yourself request"
+msgstr "XSMP ´¦Àí save-yourself ÇëÇó"
 
-#, fuzzy
-#~ msgid "XSMP opening connection"
-#~ msgstr "ûÓÐ cscope Á¬½Ó"
+msgid "XSMP opening connection"
+msgstr "XSMP ´ò¿ªÁ¬½Ó"
 
-#~ msgid "XSMP ICE connection watch failed"
-#~ msgstr ""
+msgid "XSMP ICE connection watch failed"
+msgstr "XSMP ICE Á¬½Ó¼àÊÓʧ°Ü"
 
 #, c-format
-#~ msgid "XSMP SmcOpenConnection failed: %s"
-#~ msgstr ""
+msgid "XSMP SmcOpenConnection failed: %s"
+msgstr "XSMP SmcOpenConnection µ÷ÓÃʧ°Ü: %s"
 
 msgid "At line"
 msgstr "ÔÚÐкŠ"
 
 msgid "Could not load vim32.dll!"
-msgstr "²»ÄܼÓÔØ vim32.dll£¡"
+msgstr "ÎÞ·¨¼ÓÔØ vim32.dll£¡"
 
 msgid "VIM Error"
 msgstr "VIM ´íÎó"
 
 msgid "Could not fix up function pointers to the DLL!"
-msgstr "²»ÄÜÐÞÕýº¯ÊýÖ¸Õëµ½ DLL!"
+msgstr "ÎÞ·¨ÐÞÕýµ½ DLL µÄº¯ÊýÖ¸Õë!"
 
 #, c-format
 msgid "shell returned %d"
-msgstr "Shell ·µ»ØÖµ %d"
+msgstr "Shell ·µ»Ø %d"
 
 #, c-format
 msgid "Vim: Caught %s event\n"
@@ -4348,8 +4360,8 @@ msgid ""
 "External commands will not pause after completion.\n"
 "See  :help win32-vimrun  for more information."
 msgstr ""
-"ÔÚÄãµÄ $PATH ÖÐÕÒ²»µ½ VIMRUN.EXE.\n"
-"ÍⲿÃüÁîÖ´ÐÐÍê±Ïºó½«²»»áÔÝÍ£.\n"
+"ÔÚÄãµÄ $PATH ÖÐÕÒ²»µ½ VIMRUN.EXE¡£\n"
+"ÍⲿÃüÁîÖ´ÐÐÍê±Ïºó½«²»»áÔÝÍ£¡£\n"
 "½øÒ»²½ËµÃ÷Çë¼û :help win32-vimrun"
 
 msgid "Vim Warning"
@@ -4407,8 +4419,8 @@ msgstr "
 msgid "E382: Cannot write, 'buftype' option is set"
 msgstr "E382: ÎÞ·¨Ð´È룬ÒÑÉ趨ѡÏî 'buftype'"
 
-#~ msgid "E683: File name missing or invalid pattern"
-#~ msgstr ""
+msgid "E683: File name missing or invalid pattern"
+msgstr "E683: ȱÉÙÎļþÃû»òģʽÎÞЧ"
 
 #, c-format
 msgid "Cannot open file \"%s\""
@@ -4603,9 +4615,9 @@ msgstr "  
 msgid "Scanning included file: %s"
 msgstr "²éÕÒ°üº¬Îļþ: %s"
 
-#, fuzzy, c-format
-#~ msgid "Searching included file %s"
-#~ msgstr "²éÕÒ°üº¬Îļþ: %s"
+#, c-format
+msgid "Searching included file %s"
+msgstr "²éÕÒ°üº¬µÄÎļþ %s"
 
 msgid "E387: Match is on current line"
 msgstr "E387: µ±Ç°ÐÐÆ¥Åä"
@@ -4622,339 +4634,339 @@ msgstr "E388: 
 msgid "E389: Couldn't find pattern"
 msgstr "E389: ÕÒ²»µ½ pattern"
 
-#, fuzzy
-#~ msgid "E759: Format error in spell file"
-#~ msgstr "E297: ½»»»ÎļþдÈë´íÎó"
+msgid "E759: Format error in spell file"
+msgstr "E759: ƴдÎļþ¸ñʽ´íÎó"
 
-#, fuzzy
-#~ msgid "E758: Truncated spell file"
-#~ msgstr "E237: ²»ÄÜÑ¡Ôñ´Ë´òÓ¡»ú"
+msgid "E758: Truncated spell file"
+msgstr "E758: ÒÑ½Ø¶ÏµÄÆ´Ð´Îļþ"
 
-#, fuzzy, c-format
-#~ msgid "Trailing text in %s line %d: %s"
-#~ msgstr "\"%s%s\" Öжϵã: µÚ %ld ÐÐ"
+#, c-format
+msgid "Trailing text in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬¶àÓàµÄºóÐø×Ö·û: %s"
 
 #, c-format
-#~ msgid "Affix name too long in %s line %d: %s"
-#~ msgstr ""
+msgid "Affix name too long in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬¸½¼ÓÏîÃû×ÖÌ«³¤: %s"
 
-#, fuzzy
-#~ msgid "E761: Format error in affix file FOL, LOW or UPP"
-#~ msgstr "E431: Tag Îļþ \"%s\" ¸ñʽ´íÎó"
+msgid "E761: Format error in affix file FOL, LOW or UPP"
+msgstr "E761: ¸½¼ÓÎļþ FOL¡¢LOW »ò UPP Öиñʽ´íÎó"
 
-#~ msgid "E762: Character in FOL, LOW or UPP is out of range"
-#~ msgstr ""
+msgid "E762: Character in FOL, LOW or UPP is out of range"
+msgstr "E762: FOL¡¢LOW »ò UPP ÖÐ×Ö·û³¬³ö·¶Î§"
 
-#~ msgid "Compressing word tree..."
-#~ msgstr ""
+msgid "Compressing word tree..."
+msgstr "ѹËõµ¥´ÊÊ÷¡­¡­"
 
-#~ msgid "E756: Spell checking is not enabled"
-#~ msgstr ""
+msgid "E756: Spell checking is not enabled"
+msgstr "E756: ƴд¼ì²éδÆôÓÃ"
 
 #, c-format
-#~ msgid "Warning: Cannot find word list \"%s.%s.spl\" or \"%s.ascii.spl\""
-#~ msgstr ""
+msgid "Warning: Cannot find word list \"%s.%s.spl\" or \"%s.ascii.spl\""
+msgstr "¾¯¸æ: ÕÒ²»µ½µ¥´ÊÁбí \"%s.%s.spl\" or \"%s.ascii.spl\""
 
-#, fuzzy, c-format
-#~ msgid "Reading spell file \"%s\""
-#~ msgstr "ʹÓý»»»Îļþ \"%s\""
+#, c-format
+msgid "Reading spell file \"%s\""
+msgstr "¶ÁȡƴдÎļþ \"%s\""
 
-#, fuzzy
-#~ msgid "E757: This does not look like a spell file"
-#~ msgstr "E307: %s ¿´ÆðÀ´²»ÏñÊÇ Vim ½»»»Îļþ"
+msgid "E757: This does not look like a spell file"
+msgstr "E757: Õâ¿´ÆðÀ´²»ÏñÊÇÆ´Ð´Îļþ"
 
-#, fuzzy
-#~ msgid "E771: Old spell file, needs to be updated"
-#~ msgstr "E173: »¹ÓÐ %ld ¸öÎļþδ±à¼­"
+msgid "E771: Old spell file, needs to be updated"
+msgstr "E771: ¾É°æ±¾µÄƴдÎļþ£¬ÐèÒª¸üÐÂ"
 
-#~ msgid "E772: Spell file is for newer version of Vim"
-#~ msgstr ""
+msgid "E772: Spell file is for newer version of Vim"
+msgstr "E772: Ϊ¸ü¸ß°æ±¾µÄ Vim ËùÓÃµÄÆ´Ð´Îļþ"
 
-#, fuzzy
-#~ msgid "E770: Unsupported section in spell file"
-#~ msgstr "E297: ½»»»ÎļþдÈë´íÎó"
+msgid "E770: Unsupported section in spell file"
+msgstr "E770: ƴдÎļþÖдæÔÚ²»Ö§³ÖµÄ½Ú"
 
-#, fuzzy, c-format
-#~ msgid "Warning: region %s not supported"
-#~ msgstr "²»Ö§³Ö¸ÃÑ¡Ïî"
+#, c-format
+msgid "Warning: region %s not supported"
+msgstr "¾¯¸æ: ÇøÓò %s ²»Ö§³Ö"
 
-#, fuzzy, c-format
-#~ msgid "Reading affix file %s ..."
-#~ msgstr "²éÕÒ tag Îļþ \"%s\""
+#, c-format
+msgid "Reading affix file %s ..."
+msgstr "¶ÁÈ¡¸½¼ÓÎļþ %s ¡­¡­"
 
 #, c-format
-#~ msgid "Conversion failure for word in %s line %d: %s"
-#~ msgstr ""
+msgid "Conversion failure for word in %s line %d: %s"
+msgstr "µ¥´Ê %s ת»»Ê§°Ü£¬µÚ %d ÐÐ: %s"
 
 #, c-format
-#~ msgid "Conversion in %s not supported: from %s to %s"
-#~ msgstr ""
+msgid "Conversion in %s not supported: from %s to %s"
+msgstr "²»Ö§³Ö %s ÖеÄת»»: ´Ó %s µ½ %s"
 
-#, fuzzy, c-format
-#~ msgid "Conversion in %s not supported"
-#~ msgstr "²»Ö§³Ö¸ÃÑ¡Ïî"
+#, c-format
+msgid "Conversion in %s not supported"
+msgstr "²»Ö§³Ö %s ÖеÄת»»"
 
-#, fuzzy, c-format
-#~ msgid "Invalid value for FLAG in %s line %d: %s"
-#~ msgstr "²»ÕýÈ·µÄ·þÎñÆ÷ id : %s"
+#, c-format
+msgid "Invalid value for FLAG in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬FLAG µÄÖµÎÞЧ: %s"
 
 #, c-format
-#~ msgid "FLAG after using flags in %s line %d: %s"
-#~ msgstr ""
+msgid "FLAG after using flags in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬ÔÚʹÓñêÖ¾ºó³öÏÖ FLAG: %s"
 
 #, c-format
-#~ msgid "Wrong COMPOUNDWORDMAX value in %s line %d: %s"
+#~ msgid ""
+#~ "Defining COMPOUNDFORBIDFLAG after PFX item may give wrong results in %s line "
+#~ "%d"
 #~ msgstr ""
 
 #, c-format
-#~ msgid "Wrong COMPOUNDMIN value in %s line %d: %s"
+#~ msgid ""
+#~ "Defining COMPOUNDPERMITFLAG after PFX item may give wrong results in %s line "
+#~ "%d"
 #~ msgstr ""
 
 #, c-format
-#~ msgid "Wrong COMPOUNDSYLMAX value in %s line %d: %s"
-#~ msgstr ""
+msgid "Wrong COMPOUNDWORDMAX value in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬´íÎóµÄ COMPOUNDWORDMAX Öµ: %s"
 
 #, c-format
-#~ msgid "Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %s"
-#~ msgstr ""
+msgid "Wrong COMPOUNDMIN value in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬´íÎóµÄ COMPOUNDMIN Öµ: %s"
 
 #, c-format
-#~ msgid "Different combining flag in continued affix block in %s line %d: %s"
-#~ msgstr ""
+msgid "Wrong COMPOUNDSYLMAX value in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬´íÎóµÄ COMPOUNDSYLMAX Öµ: %s"
 
-#, fuzzy, c-format
-#~ msgid "Duplicate affix in %s line %d: %s"
-#~ msgstr "E154: ±êÇ©(tag) \"%s\" ÔÚÎļþ %s ÀïÖØ¸´³öÏÖ¶à´Î"
+#, c-format
+msgid "Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬´íÎóµÄ CHECKCOMPOUNDPATTERN Öµ: %s"
 
 #, c-format
-#~ msgid ""
-#~ "Affix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s "
-#~ "line %d: %s"
-#~ msgstr ""
+msgid "Different combining flag in continued affix block in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬ÔÚÁ¬ÐøµÄ¸½¼Ó¿éÖгöÏÖ²»Í¬µÄ×éºÏ±êÖ¾: %s"
 
 #, c-format
-#~ msgid "Expected Y or N in %s line %d: %s"
-#~ msgstr ""
+msgid "Duplicate affix in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬Öظ´µÄ¸½¼ÓÏî: %s"
 
-#, fuzzy, c-format
-#~ msgid "Broken condition in %s line %d: %s"
-#~ msgstr "\"%s%s\" Öжϵã: µÚ %ld ÐÐ"
+#, c-format
+msgid ""
+"Affix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s "
+"line %d: %s"
+msgstr ""
+"%s µÚ %d ÐУ¬¸½¼ÓÏî±» BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST ʹ"
+"ÓÃ: %s"
 
 #, c-format
-#~ msgid "Affix flags ignored when PFXPOSTPONE used in %s line %d: %s"
-#~ msgstr ""
+msgid "Expected Y or N in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬´Ë´¦ÐèÒª Y »ò N: %s"
 
 #, c-format
-#~ msgid "Expected REP(SAL) count in %s line %d"
-#~ msgstr ""
+msgid "Broken condition in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬´íÎóµÄÌõ¼þ: %s"
 
 #, c-format
-#~ msgid "Expected MAP count in %s line %d"
-#~ msgstr ""
+msgid "Expected REP(SAL) count in %s line %d"
+msgstr "%s µÚ %d ÐУ¬´Ë´¦ÐèÒª REP(SAL) ¼ÆÊý"
 
 #, c-format
-#~ msgid "Duplicate character in MAP in %s line %d"
-#~ msgstr ""
+msgid "Expected MAP count in %s line %d"
+msgstr "%s µÚ %d ÐУ¬´Ë´¦ÐèÒª MAP ¼ÆÊý"
 
 #, c-format
-#~ msgid "Unrecognized or duplicate item in %s line %d: %s"
-#~ msgstr ""
+msgid "Duplicate character in MAP in %s line %d"
+msgstr "%s µÚ %d ÐУ¬MAP ÖдæÔÚÖØ¸´µÄ×Ö·û"
 
 #, c-format
-#~ msgid "Missing FOL/LOW/UPP line in %s"
-#~ msgstr ""
+msgid "Unrecognized or duplicate item in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬ÎÞ·¨Ê¶±ð»òÖØ¸´µÄÏî: %s"
 
-#~ msgid "COMPOUNDSYLMAX used without SYLLABLE"
-#~ msgstr ""
+#, c-format
+msgid "Missing FOL/LOW/UPP line in %s"
+msgstr "%s ÖÐȱÉÙ FOL/LOW/UPP ÐÐ"
 
-#, fuzzy
-#~ msgid "Too many postponed prefixes"
-#~ msgstr "Ì«¶à±à¼­²ÎÊý"
+msgid "COMPOUNDSYLMAX used without SYLLABLE"
+msgstr "ÔÚûÓÐ SYLLABLE µÄÇé¿öÏÂʹÓÃÁË COMPOUNDSYLMAX"
 
-#, fuzzy
-#~ msgid "Too many compound flags"
-#~ msgstr "Ì«¶à±à¼­²ÎÊý"
+msgid "Too many postponed prefixes"
+msgstr "Ì«¶àÑÓ³Ùǰ׺"
 
-#~ msgid "Too many posponed prefixes and/or compound flags"
-#~ msgstr ""
+msgid "Too many compound flags"
+msgstr "Ì«¶à×éºÏ±êÖ¾"
+
+msgid "Too many posponed prefixes and/or compound flags"
+msgstr "Ì«¶àÑÓ³Ùǰ׺ºÍ/»ò×éºÏ±êÖ¾"
 
 #, c-format
-#~ msgid "Missing SOFO%s line in %s"
-#~ msgstr ""
+msgid "Missing SOFO%s line in %s"
+msgstr "%s ÖÐȱÉÙ SOFO%s ÐÐ"
 
 #, c-format
-#~ msgid "Both SAL and SOFO lines in %s"
-#~ msgstr ""
+msgid "Both SAL and SOFO lines in %s"
+msgstr "%s ͬʱ³öÏÖ SQL ºÍ SOFO ÐÐ"
 
 #, c-format
-#~ msgid "Flag is not a number in %s line %d: %s"
-#~ msgstr ""
+msgid "Flag is not a number in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬±êÖ¾²»ÊÇÊý×Ö: %s"
 
 #, c-format
-#~ msgid "Illegal flag in %s line %d: %s"
-#~ msgstr ""
+msgid "Illegal flag in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬ÎÞЧµÄ±êÖ¾: %s"
 
 #, c-format
-#~ msgid "%s value differs from what is used in another .aff file"
-#~ msgstr ""
+msgid "%s value differs from what is used in another .aff file"
+msgstr "%s µÄÖµÓëÁíÒ»¸ö .aff ÎļþÖÐʹÓõÄÖµ²»Ïàͬ"
 
-#, fuzzy, c-format
-#~ msgid "Reading dictionary file %s ..."
-#~ msgstr "ɨÃè×Öµä: %s"
+#, c-format
+msgid "Reading dictionary file %s ..."
+msgstr "¶ÁÈ¡×ÖµäÎļþ %s ¡­¡­"
 
 #, c-format
-#~ msgid "E760: No word count in %s"
-#~ msgstr ""
+msgid "E760: No word count in %s"
+msgstr "E760: %s ÖÐûÓе¥´Ê¼ÆÊý"
 
 #, c-format
-#~ msgid "line %6d, word %6d - %s"
-#~ msgstr ""
+msgid "line %6d, word %6d - %s"
+msgstr "µÚ %6d ÐУ¬µÚ %6d ¸öµ¥´Ê - %s"
 
-#, fuzzy, c-format
-#~ msgid "Duplicate word in %s line %d: %s"
-#~ msgstr "ÿһÐж¼ÕÒ²»µ½Ä£Ê½: %s"
+#, c-format
+msgid "Duplicate word in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬Öظ´µÄµ¥´Ê: %s"
 
 #, c-format
-#~ msgid "First duplicate word in %s line %d: %s"
-#~ msgstr ""
+msgid "First duplicate word in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬Ê×´ÎÖØ¸´µÄµ¥´Ê: %s"
 
 #, c-format
-#~ msgid "%d duplicate word(s) in %s"
-#~ msgstr ""
+msgid "%d duplicate word(s) in %s"
+msgstr "´æÔÚ %d ¸öÖØ¸´µÄµ¥´Ê£¬ÔÚ %s ÖÐ"
 
 #, c-format
-#~ msgid "Ignored %d word(s) with non-ASCII characters in %s"
-#~ msgstr ""
+msgid "Ignored %d word(s) with non-ASCII characters in %s"
+msgstr "ºöÂÔÁ˺¬ÓÐ·Ç ASCII ×Ö·ûµÄ %d ¸öµ¥´Ê£¬ÔÚ %s ÖÐ"
 
-#, fuzzy, c-format
-#~ msgid "Reading word file %s ..."
-#~ msgstr "´Ó±ê×¼ÊäÈë¶Á..."
+#, c-format
+msgid "Reading word file %s ..."
+msgstr "¶ÁÈ¡µ¥´ÊÎļþ %s ¡­¡­"
 
 #, c-format
 #~ msgid "Duplicate /encoding= line ignored in %s line %d: %s"
 #~ msgstr ""
 
 #, c-format
-#~ msgid "/encoding= line after word ignored in %s line %d: %s"
-#~ msgstr ""
+msgid "/encoding= line after word ignored in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬µ¥´ÊºóµÄ /encoding= ÐÐÒѱ»ºöÂÔ: %s"
 
 #, c-format
-#~ msgid "Duplicate /regions= line ignored in %s line %d: %s"
-#~ msgstr ""
+msgid "Duplicate /regions= line ignored in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬Öظ´µÄ /regions= ÐÐÒѱ»ºöÂÔ: %s"
 
 #, c-format
-#~ msgid "Too many regions in %s line %d: %s"
-#~ msgstr ""
+msgid "Too many regions in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬Ì«¶àÇøÓò: %s"
 
 #, c-format
-#~ msgid "/ line ignored in %s line %d: %s"
-#~ msgstr ""
+msgid "/ line ignored in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬/ ÐÐÒѱ»ºöÂÔ: %s"
 
-#, fuzzy, c-format
-#~ msgid "Invalid region nr in %s line %d: %s"
-#~ msgstr "²»ÕýÈ·µÄ·þÎñÆ÷ id : %s"
+#, c-format
+msgid "Invalid region nr in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬ÎÞЧµÄÇøÓòºÅ: %s"
 
 #, c-format
-#~ msgid "Unrecognized flags in %s line %d: %s"
-#~ msgstr ""
+msgid "Unrecognized flags in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬²»¿Éʶ±ðµÄ±êÖ¾: %s"
 
 #, c-format
-#~ msgid "Ignored %d words with non-ASCII characters"
-#~ msgstr ""
+msgid "Ignored %d words with non-ASCII characters"
+msgstr "ºöÂÔÁ˺¬ÓÐ·Ç ASCII ×Ö·ûµÄ %d ¸öµ¥´Ê"
 
 #, c-format
-#~ msgid "Compressed %d of %d nodes; %d (%d%%) remaining"
-#~ msgstr ""
+msgid "Compressed %d of %d nodes; %d (%d%%) remaining"
+msgstr "ѹËõÁË %d/%d ¸ö½Úµã£»Ê£Óà %d (%d%%)"
 
-#~ msgid "Reading back spell file..."
-#~ msgstr ""
+msgid "Reading back spell file..."
+msgstr "¶ÁȡƴдÎļþ¡­¡­"
 
 #.
 #. * Go through the trie of good words, soundfold each word and add it to
 #. * the soundfold trie.
 #.
-#~ msgid "Performing soundfolding..."
-#~ msgstr ""
+msgid "Performing soundfolding..."
+msgstr "ÕýÔÚ soundfolding¡­¡­"
 
 #, c-format
-#~ msgid "Number of words after soundfolding: %ld"
-#~ msgstr ""
+msgid "Number of words after soundfolding: %ld"
+msgstr "soundfolding ºóµÄµ¥´ÊÊý: %ld"
 
 #, c-format
-#~ msgid "Total number of words: %d"
-#~ msgstr ""
+msgid "Total number of words: %d"
+msgstr "µ¥´Ê×ÜÊý: %d"
 
-#, fuzzy, c-format
-#~ msgid "Writing suggestion file %s ..."
-#~ msgstr "дÈë viminfo Îļþ \"%s\" ÖÐ"
+#, c-format
+msgid "Writing suggestion file %s ..."
+msgstr "дÈ뽨ÒéÎļþ %s ¡­¡­"
 
 #, c-format
-#~ msgid "Estimated runtime memory use: %d bytes"
-#~ msgstr ""
+msgid "Estimated runtime memory use: %d bytes"
+msgstr "¹À¼ÆÔËÐÐʱÄÚ´æÓÃÁ¿: %d ×Ö½Ú"
 
-#~ msgid "E751: Output file name must not have region name"
-#~ msgstr ""
+msgid "E751: Output file name must not have region name"
+msgstr "E751: Êä³öÎļþÃû²»Äܺ¬ÓÐÇøÓòÃû"
 
-#~ msgid "E754: Only up to 8 regions supported"
-#~ msgstr ""
+msgid "E754: Only up to 8 regions supported"
+msgstr "E754: ×î¶àÖ»Ö§³Ö 8 ¸öÇøÓò"
 
-#, fuzzy, c-format
-#~ msgid "E755: Invalid region in %s"
-#~ msgstr "E15: ²»ÕýÈ·µÄ±í´ïʽ: %s"
+#, c-format
+msgid "E755: Invalid region in %s"
+msgstr "E755: %s ³öÏÖÎÞЧµÄ·¶Î§"
 
-#~ msgid "Warning: both compounding and NOBREAK specified"
-#~ msgstr ""
+msgid "Warning: both compounding and NOBREAK specified"
+msgstr "¾¯¸æ: ͬʱָ¶¨ÁË compounding ºÍ NOBREAK"
 
-#, fuzzy, c-format
-#~ msgid "Writing spell file %s ..."
-#~ msgstr "дÈë viminfo Îļþ \"%s\" ÖÐ"
+#, c-format
+msgid "Writing spell file %s ..."
+msgstr "дÈëÆ´Ð´Îļþ %s ¡­¡­"
 
-#, fuzzy
-#~ msgid "Done!"
-#~ msgstr "ÏòÏÂ"
+msgid "Done!"
+msgstr "Íê³É£¡"
 
 #, c-format
-#~ msgid "E765: 'spellfile' does not have %ld entries"
-#~ msgstr ""
+msgid "E765: 'spellfile' does not have %ld entries"
+msgstr "E765: 'spellfile' ûÓÐ %ld Ïî"
 
 #, c-format
-#~ msgid "Word removed from %s"
-#~ msgstr ""
+msgid "Word removed from %s"
+msgstr "´Ó %s ÖÐɾ³ýÁ˵¥´Ê"
 
 #, c-format
-#~ msgid "Word added to %s"
-#~ msgstr ""
+msgid "Word added to %s"
+msgstr "Ïò %s ÖÐÌí¼ÓÁ˵¥´Ê"
 
-#~ msgid "E763: Word characters differ between spell files"
-#~ msgstr ""
+msgid "E763: Word characters differ between spell files"
+msgstr "E763: ƴдÎļþÖ®¼äµÄ×Ö·û²»Ïàͬ"
 
-#~ msgid "Sorry, no suggestions"
-#~ msgstr ""
+msgid "Sorry, no suggestions"
+msgstr "±§Ç¸£¬Ã»Óн¨Òé"
 
 #, c-format
-#~ msgid "Sorry, only %ld suggestions"
-#~ msgstr ""
+msgid "Sorry, only %ld suggestions"
+msgstr "±§Ç¸£¬Ö»ÓÐ %ld Ìõ½¨Òé"
 
 #. avoid more prompt
-#, fuzzy, c-format
-#~ msgid "Change \"%.*s\" to:"
-#~ msgstr "½«¸Ä±ä±£´æµ½ \"%.*s\"?"
+#, c-format
+msgid "Change \"%.*s\" to:"
+msgstr "½« \"%.*s\" ¸ÄΪ£º"
 
 #, c-format
-#~ msgid " < \"%.*s\""
-#~ msgstr ""
+msgid " < \"%.*s\""
+msgstr " < \"%.*s\""
 
-#, fuzzy
-#~ msgid "E752: No previous spell replacement"
-#~ msgstr "E35: ûÓÐǰһ¸ö²éÕÒÃüÁî"
+msgid "E752: No previous spell replacement"
+msgstr "E752: ֮ǰûÓÐÆ´Ð´Ìæ»»"
 
-#, fuzzy, c-format
-#~ msgid "E753: Not found: %s"
-#~ msgstr "E334: [²Ëµ¥] ÕÒ²»µ½ %s"
+#, c-format
+msgid "E753: Not found: %s"
+msgstr "E753: ÕÒ²»µ½: %s"
 
-#, fuzzy, c-format
-#~ msgid "E778: This does not look like a .sug file: %s"
-#~ msgstr "E307: %s ¿´ÆðÀ´²»ÏñÊÇ Vim ½»»»Îļþ"
+#, c-format
+msgid "E778: This does not look like a .sug file: %s"
+msgstr "E778: ¿´ÆðÀ´²»ÏñÊÇ .sug Îļþ: %s"
 
 #, c-format
 #~ msgid "E779: Old .sug file, needs to be updated: %s"
@@ -5056,8 +5068,8 @@ msgid "E397: Filename required"
 msgstr "E397: ÐèÒªÎļþÃû³Æ"
 
 #, c-format
-msgid "E789: Missing ']': %s"
-msgstr "E789: ȱÉÙ ']': %s"
+msgid "E747: Missing ']': %s"
+msgstr "E747: ȱÉÙ ']': %s"
 
 #, c-format
 msgid "E398: Missing '=': %s"
@@ -5109,8 +5121,8 @@ msgstr "E409: 
 msgid "E410: Invalid :syntax subcommand: %s"
 msgstr "E410: ²»ÕýÈ·µÄ :syntax ×ÓÃüÁî: %s"
 
-#~ msgid "E679: recursive loop loading syncolor.vim"
-#~ msgstr ""
+msgid "E679: recursive loop loading syncolor.vim"
+msgstr "E679: ¼ÓÔØ syncolor.vim ʱ³öÏÖǶÌ×Ñ­»·"
 
 #, c-format
 msgid "E411: highlight group not found: %s"
@@ -5164,12 +5176,11 @@ msgstr "E423: 
 msgid "E424: Too many different highlighting attributes in use"
 msgstr "E424: ʹÓÃÁËÌ«¶à²»Í¬µÄ¸ßÁÁ¶ÈÊôÐÔ"
 
-#~ msgid "E669: Unprintable character in group name"
-#~ msgstr ""
+msgid "E669: Unprintable character in group name"
+msgstr "E669: ×éÃûÖдæÔÚ²»¿ÉÏÔʾ×Ö·û"
 
-#, fuzzy
-#~ msgid "W18: Invalid character in group name"
-#~ msgstr "E182: ÃüÁîÃû³Æ²»ÕýÈ·"
+msgid "W18: Invalid character in group name"
+msgstr "W18: ×éÃûÖк¬ÓÐÎÞЧ×Ö·û"
 
 msgid "E555: at bottom of tag stack"
 msgstr "E555: ÒÑÔÚ tag ¶ÑÕ»µ×²¿"
@@ -5648,6 +5659,9 @@ msgstr "
 msgid "type  :help windows95<Enter>  for info on this"
 msgstr "ÊäÈë  :help windows95<Enter>  ²é¿´Ïà¹ØËµÃ÷    "
 
+msgid "Already only one window"
+msgstr "ÒѾ­Ö»Ê£Ò»¸ö´°¿ÚÁË"
+
 msgid "E441: There is no preview window"
 msgstr "E441: ûÓÐÔ¤ÀÀ´°¿Ú"
 
@@ -5660,9 +5674,6 @@ msgstr "E443: 
 msgid "E444: Cannot close last window"
 msgstr "E444: ²»ÄܹرÕ×îºóÒ»¸ö´°¿Ú"
 
-msgid "Already only one window"
-msgstr "ÒѾ­Ö»Ê£Ò»¸ö´°¿ÚÁË"
-
 msgid "E445: Other window contains changes"
 msgstr "E445: ÆäËü´°¿ÚÓиıäµÄÄÚÈÝ"
 
@@ -6050,6 +6061,9 @@ msgstr "
 msgid "search hit BOTTOM, continuing at TOP"
 msgstr "ÒѲéÕÒµ½Îļþ½á⣬ÔÙ´Ó¿ªÍ·¼ÌÐø²éÕÒ"
 
+#~ msgid "Affix flags ignored when PFXPOSTPONE used in %s line %d: %s"
+#~ msgstr "%s µÚ %d ÐУ¬Ê¹Óà PFXPOSTPONE ʱ¸½¼Ó±êÖ¾±»ºöÂÔ: %s"
+
 #~ msgid "[No file]"
 #~ msgstr "[δÃüÃû]"
 
diff --git a/src/po/zh_CN.po b/src/po/zh_CN.po
index b77b45e2ac90f0031b328c58517b64057fb5831e..3d3ab628560906edeef40cf017c77d5ec792b11d 100644
--- a/src/po/zh_CN.po
+++ b/src/po/zh_CN.po
@@ -4,6 +4,10 @@
 # Do ":help credits" in Vim to see a list of people who contributed.
 #
 # FIRST AUTHOR  Wang Jun <junw@turbolinux.com.cn>
+# 
+# TRANSLATORS
+#   Edyfox <edyfox@gmail.com>
+#   Yuheng Xie <elephant@linux.net.cn>
 #
 # Original translations.
 #
@@ -11,8 +15,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Vim(Simplified Chinese)\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-03-28 21:47+0800\n"
-"PO-Revision-Date: 2006-04-18 18:00+0800\n"
+"POT-Creation-Date: 2006-04-21 15:16+0800\n"
+"PO-Revision-Date: 2006-04-21 14:00+0800\n"
 "Last-Translator: Yuheng Xie <elephant@linux.net.cn>\n"
 "Language-Team: Simplified Chinese <i18n-translation@lists.linux.net.cn>\n"
 "MIME-Version: 1.0\n"
@@ -209,6 +213,9 @@ msgstr "E102: 
 msgid "E103: Buffer \"%s\" is not in diff mode"
 msgstr "E103: »º³åÇø \"%s\" ²»ÔÚ diff ģʽ"
 
+msgid "E787: Buffer changed unexpectedly"
+msgstr "E787: ÒâÍâµØ¸Ä±äÁË»º³åÇø"
+
 msgid "E104: Escape not allowed in digraph"
 msgstr "E104: ¸´ºÏ×Ö·û(digraph)Öв»ÄÜʹÓà Escape"
 
@@ -222,8 +229,8 @@ msgid " Keyword completion (^N^P)"
 msgstr " ¹Ø¼ü×Ö²¹È« (^N^P)"
 
 #. ctrl_x_mode == 0, ^P/^N compl.
-msgid " ^X mode (^]^D^E^F^I^K^L^N^O^P^S^U^V^Y)"
-msgstr " ^X ģʽ (^]^D^E^F^I^K^L^N^O^P^S^U^V^Y)"
+msgid " ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)"
+msgstr " ^X ģʽ (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)"
 
 msgid " Whole line completion (^L^N^P)"
 msgstr " ÕûÐв¹È« (^L^N^P)"
@@ -256,8 +263,8 @@ msgstr " 
 msgid " Omni completion (^O^N^P)"
 msgstr " È«Äܲ¹È« (^O^N^P)"
 
-msgid " Spelling suggestion (^S^N^P)"
-msgstr " ƴд½¨Òé (^S^N^P)"
+msgid " Spelling suggestion (s^N^P)"
+msgstr " ƴд½¨Òé (s^N^P)"
 
 msgid " Keyword Local completion (^N^P)"
 msgstr " ¹Ø¼ü×Ö¾Ö²¿²¹È« (^N^P)"
@@ -489,9 +496,8 @@ msgstr "E722: Dictionary 
 msgid "E723: Missing end of Dictionary '}': %s"
 msgstr "E723: Dictionary ȱÉÙ½áÊø·û '}': %s"
 
-#, fuzzy
-#~ msgid "E724: variable nested too deep for displaying"
-#~ msgstr "E724: ±äÁ¿Ç¶Ì×¹ýÉî"
+msgid "E724: variable nested too deep for displaying"
+msgstr "E724: ±äÁ¿Ç¶Ì×¹ýÉîÎÞ·¨ÏÔʾ"
 
 msgid "E699: Too many arguments"
 msgstr "E699: ²ÎÊý¹ý¶à"
@@ -529,8 +535,8 @@ msgstr ""
 msgid "called inputrestore() more often than inputsave()"
 msgstr "inputrestore() µÄµ÷ÓôÎÊý¶àÓÚ inputsave()"
 
-msgid "E745: Range not allowed"
-msgstr "E745: ²»ÔÊÐíµÄ·¶Î§"
+msgid "E786: Range not allowed"
+msgstr "E786: ²»ÔÊÐíµÄ·¶Î§"
 
 msgid "E701: Invalid type for len()"
 msgstr "E701: len() µÄÀàÐÍÎÞЧ"
@@ -560,9 +566,8 @@ msgstr "E655: 
 msgid "E258: Unable to send to client"
 msgstr "E258: ÎÞ·¨·¢Ë͵½¿Í»§¶Ë"
 
-#, fuzzy
-#~ msgid "E702: Sort compare function failed"
-#~ msgstr "E702: Sort ±È½Ïº¯Êýʧ°Ü"
+msgid "E702: Sort compare function failed"
+msgstr "E702: Sort ±È½Ïº¯Êýʧ°Ü"
 
 msgid "(Invalid)"
 msgstr "(ÎÞЧ)"
@@ -611,9 +616,8 @@ msgstr "δ֪"
 msgid "E742: Cannot change value of %s"
 msgstr "E742: ÎÞ·¨¸Ä±ä %s µÄÖµ"
 
-#, fuzzy
-#~ msgid "E698: variable nested too deep for making a copy"
-#~ msgstr "E698: ±äÁ¿Ç¶Ì×¹ýÉî"
+msgid "E698: variable nested too deep for making a copy"
+msgstr "E698: ±äÁ¿Ç¶Ì×¹ýÉîÎÞ·¨¸´ÖÆ"
 
 #, c-format
 msgid "E124: Missing '(': %s"
@@ -682,136 +686,6 @@ msgstr ""
 "\n"
 "\t×î½üÐÞ¸ÄÓÚ "
 
-msgid "Entering Debug mode.  Type \"cont\" to continue."
-msgstr "½øÈëµ÷ÊÔģʽ¡£ÊäÈë \"cont\" ¼ÌÐøÔËÐС£"
-
-#, c-format
-msgid "line %ld: %s"
-msgstr "µÚ %ld ÐÐ: %s"
-
-#, c-format
-msgid "cmd: %s"
-msgstr "ÃüÁî: %s"
-
-#, c-format
-msgid "Breakpoint in \"%s%s\" line %ld"
-msgstr "¶Ïµã \"%s%s\" µÚ %ld ÐÐ"
-
-#, c-format
-msgid "E161: Breakpoint not found: %s"
-msgstr "E161: ÕÒ²»µ½¶Ïµã: %s"
-
-msgid "No breakpoints defined"
-msgstr "ûÓж¨Òå¶Ïµã"
-
-#, c-format
-msgid "%3d  %s %s  line %ld"
-msgstr "%3d  %s %s  µÚ %ld ÐÐ"
-
-msgid "E750: First use :profile start <fname>"
-msgstr "E750: ÇëÏÈʹÓà :profile start <fname>"
-
-msgid "Save As"
-msgstr "Áí´æÎª"
-
-#, c-format
-msgid "Save changes to \"%s\"?"
-msgstr "½«¸Ä±ä±£´æµ½ \"%s\" Âð£¿"
-
-msgid "Untitled"
-msgstr "δÃüÃû"
-
-#, c-format
-msgid "E162: No write since last change for buffer \"%s\""
-msgstr "E162: »º³åÇø \"%s\" ÒÑÐ޸ĵ«ÉÐδ±£´æ"
-
-msgid "Warning: Entered other buffer unexpectedly (check autocommands)"
-msgstr "¾¯¸æ: ÒâÍâµØ½øÈëÁËÆäËü»º³åÇø (Çë¼ì²é×Ô¶¯ÃüÁî)"
-
-msgid "E163: There is only one file to edit"
-msgstr "E163: Ö»ÓÐÒ»¸öÎļþ¿É±à¼­"
-
-msgid "E164: Cannot go before first file"
-msgstr "E164: ÎÞ·¨Çл»£¬ÒÑÊǵÚÒ»¸öÎļþ"
-
-msgid "E165: Cannot go beyond last file"
-msgstr "E165: ÎÞ·¨Çл»£¬ÒÑÊÇ×îºóÒ»¸öÎļþ"
-
-#, c-format
-msgid "E666: compiler not supported: %s"
-msgstr "E666: ²»Ö§³Ö±àÒëÆ÷: %s"
-
-#, c-format
-msgid "Searching for \"%s\" in \"%s\""
-msgstr "ÕýÔÚ²éÕÒ \"%s\"£¬ÔÚ \"%s\" ÖÐ"
-
-#, c-format
-msgid "Searching for \"%s\""
-msgstr "ÕýÔÚ²éÕÒ \"%s\""
-
-#, c-format
-msgid "not found in 'runtimepath': \"%s\""
-msgstr "ÔÚ 'runtimepath' ÖÐÕÒ²»µ½ \"%s\""
-
-msgid "Source Vim script"
-msgstr "Ö´ÐÐ Vim ½Å±¾"
-
-#, c-format
-msgid "Cannot source a directory: \"%s\""
-msgstr "²»ÄÜÖ´ÐÐĿ¼: \"%s\""
-
-#, c-format
-msgid "could not source \"%s\""
-msgstr "²»ÄÜÖ´ÐÐ \"%s\""
-
-#, c-format
-msgid "line %ld: could not source \"%s\""
-msgstr "µÚ %ld ÐÐ: ²»ÄÜÖ´ÐÐ \"%s\""
-
-#, c-format
-msgid "sourcing \"%s\""
-msgstr "Ö´ÐÐ \"%s\""
-
-#, c-format
-msgid "line %ld: sourcing \"%s\""
-msgstr "µÚ %ld ÐÐ: Ö´ÐÐ \"%s\""
-
-#, c-format
-msgid "finished sourcing %s"
-msgstr "½áÊøÖ´ÐÐ %s"
-
-msgid "modeline"
-msgstr "modeline"
-
-msgid "--cmd argument"
-msgstr "--cmd ²ÎÊý"
-
-msgid "-c argument"
-msgstr "-c ²ÎÊý"
-
-msgid "environment variable"
-msgstr "»·¾³±äÁ¿"
-
-#~ msgid "error handler"
-#~ msgstr ""
-
-msgid "W15: Warning: Wrong line separator, ^M may be missing"
-msgstr "W15: ¾¯¸æ: ´íÎóµÄÐзָô·û£¬¿ÉÄÜÊÇÉÙÁË ^M"
-
-msgid "E167: :scriptencoding used outside of a sourced file"
-msgstr "E167: Ôڽű¾ÎļþÍâʹÓÃÁË :scriptencoding"
-
-msgid "E168: :finish used outside of a sourced file"
-msgstr "E168: Ôڽű¾ÎļþÍâʹÓÃÁË :finish"
-
-#, c-format
-msgid "Current %slanguage: \"%s\""
-msgstr "µ±Ç°µÄ %sÓïÑÔ: \"%s\""
-
-#, c-format
-msgid "E197: Cannot set language to \"%s\""
-msgstr "E197: ²»ÄÜÉ趨ÓïÑÔΪ \"%s\""
-
 #, c-format
 msgid "<%s>%s%s  %d,  Hex %02x,  Octal %03o"
 msgstr "<%s>%s%s  %d,  Ê®Áù½øÖÆ %02x,  °Ë½øÖÆ %03o"
@@ -844,8 +718,8 @@ msgstr "E135: *Filter* 
 msgid "[No write since last change]\n"
 msgstr "[ÒÑÐ޸ĵ«ÉÐδ±£´æ]\n"
 
-#, c-format
 # bad to translate
+#, c-format
 msgid "%sviminfo: %s in line: "
 msgstr "%sviminfo: %s λÓÚÐÐ: "
 
@@ -877,14 +751,14 @@ msgstr "E138: 
 msgid "Writing viminfo file \"%s\""
 msgstr "дÈë viminfo Îļþ \"%s\""
 
+# do not translate to avoid writing Chinese in files
 #. Write the info:
 #, fuzzy, c-format
-# do not translate to avoid writing Chinese in files
-msgid "# This viminfo file was generated by Vim %s.\n"
-msgstr "# Õâ¸ö viminfo ÎļþÊÇÓÉ vim %s Éú³ÉµÄ¡£\n"
+#~ msgid "# This viminfo file was generated by Vim %s.\n"
+#~ msgstr "# Õâ¸ö viminfo ÎļþÊÇÓÉ Vim %s Éú³ÉµÄ¡£\n"
 
-#, fuzzy, c-format
 # do not translate to avoid writing Chinese in files
+#, fuzzy, c-format
 msgid ""
 "# You may edit it if you're careful!\n"
 "\n"
@@ -892,14 +766,17 @@ msgstr ""
 "# Èç¹ûÒª×ÔÐÐÐÞ¸ÄÇëÌØ±ðСÐÄ£¡\n"
 "\n"
 
-#, fuzzy, c-format
 # do not translate to avoid writing Chinese in files
-msgid "# Value of 'encoding' when this file was written\n"
-msgstr "# 'encoding' ÔÚ´ËÎļþ½¨Á¢Ê±µÄÖµ\n"
+#, fuzzy, c-format
+#~ msgid "# Value of 'encoding' when this file was written\n"
+#~ msgstr "# 'encoding' ÔÚ´ËÎļþ½¨Á¢Ê±µÄÖµ\n"
 
 msgid "Illegal starting char"
 msgstr "ÎÞЧµÄÆô¶¯×Ö·û"
 
+msgid "Save As"
+msgstr "Áí´æÎª"
+
 msgid "Write partial file?"
 msgstr "ҪдÈ벿·ÖÎļþÂð£¿"
 
@@ -987,8 +864,8 @@ msgstr "E148: global ȱ
 msgid "Pattern found in every line: %s"
 msgstr "ÿÐж¼Æ¥Åä±í´ïʽ: %s"
 
-#, fuzzy, c-format
 # do not translate to avoid writing Chinese in files
+#, fuzzy, c-format
 msgid ""
 "\n"
 "# Last Substitute String:\n"
@@ -1071,6 +948,133 @@ msgstr " (
 msgid "[Deleted]"
 msgstr "[ÒÑɾ³ý]"
 
+msgid "Entering Debug mode.  Type \"cont\" to continue."
+msgstr "½øÈëµ÷ÊÔģʽ¡£ÊäÈë \"cont\" ¼ÌÐøÔËÐС£"
+
+#, c-format
+msgid "line %ld: %s"
+msgstr "µÚ %ld ÐÐ: %s"
+
+#, c-format
+msgid "cmd: %s"
+msgstr "ÃüÁî: %s"
+
+#, c-format
+msgid "Breakpoint in \"%s%s\" line %ld"
+msgstr "¶Ïµã \"%s%s\" µÚ %ld ÐÐ"
+
+#, c-format
+msgid "E161: Breakpoint not found: %s"
+msgstr "E161: ÕÒ²»µ½¶Ïµã: %s"
+
+msgid "No breakpoints defined"
+msgstr "ûÓж¨Òå¶Ïµã"
+
+#, c-format
+msgid "%3d  %s %s  line %ld"
+msgstr "%3d  %s %s  µÚ %ld ÐÐ"
+
+msgid "E750: First use :profile start <fname>"
+msgstr "E750: ÇëÏÈʹÓà :profile start <fname>"
+
+#, c-format
+msgid "Save changes to \"%s\"?"
+msgstr "½«¸Ä±ä±£´æµ½ \"%s\" Âð£¿"
+
+msgid "Untitled"
+msgstr "δÃüÃû"
+
+#, c-format
+msgid "E162: No write since last change for buffer \"%s\""
+msgstr "E162: »º³åÇø \"%s\" ÒÑÐ޸ĵ«ÉÐδ±£´æ"
+
+msgid "Warning: Entered other buffer unexpectedly (check autocommands)"
+msgstr "¾¯¸æ: ÒâÍâµØ½øÈëÁËÆäËü»º³åÇø (Çë¼ì²é×Ô¶¯ÃüÁî)"
+
+msgid "E163: There is only one file to edit"
+msgstr "E163: Ö»ÓÐÒ»¸öÎļþ¿É±à¼­"
+
+msgid "E164: Cannot go before first file"
+msgstr "E164: ÎÞ·¨Çл»£¬ÒÑÊǵÚÒ»¸öÎļþ"
+
+msgid "E165: Cannot go beyond last file"
+msgstr "E165: ÎÞ·¨Çл»£¬ÒÑÊÇ×îºóÒ»¸öÎļþ"
+
+#, c-format
+msgid "E666: compiler not supported: %s"
+msgstr "E666: ²»Ö§³Ö±àÒëÆ÷: %s"
+
+#, c-format
+msgid "Searching for \"%s\" in \"%s\""
+msgstr "ÕýÔÚ²éÕÒ \"%s\"£¬ÔÚ \"%s\" ÖÐ"
+
+#, c-format
+msgid "Searching for \"%s\""
+msgstr "ÕýÔÚ²éÕÒ \"%s\""
+
+#, c-format
+msgid "not found in 'runtimepath': \"%s\""
+msgstr "ÔÚ 'runtimepath' ÖÐÕÒ²»µ½ \"%s\""
+
+msgid "Source Vim script"
+msgstr "Ö´ÐÐ Vim ½Å±¾"
+
+#, c-format
+msgid "Cannot source a directory: \"%s\""
+msgstr "²»ÄÜÖ´ÐÐĿ¼: \"%s\""
+
+#, c-format
+msgid "could not source \"%s\""
+msgstr "²»ÄÜÖ´ÐÐ \"%s\""
+
+#, c-format
+msgid "line %ld: could not source \"%s\""
+msgstr "µÚ %ld ÐÐ: ²»ÄÜÖ´ÐÐ \"%s\""
+
+#, c-format
+msgid "sourcing \"%s\""
+msgstr "Ö´ÐÐ \"%s\""
+
+#, c-format
+msgid "line %ld: sourcing \"%s\""
+msgstr "µÚ %ld ÐÐ: Ö´ÐÐ \"%s\""
+
+#, c-format
+msgid "finished sourcing %s"
+msgstr "½áÊøÖ´ÐÐ %s"
+
+msgid "modeline"
+msgstr "modeline"
+
+msgid "--cmd argument"
+msgstr "--cmd ²ÎÊý"
+
+msgid "-c argument"
+msgstr "-c ²ÎÊý"
+
+msgid "environment variable"
+msgstr "»·¾³±äÁ¿"
+
+#~ msgid "error handler"
+#~ msgstr ""
+
+msgid "W15: Warning: Wrong line separator, ^M may be missing"
+msgstr "W15: ¾¯¸æ: ´íÎóµÄÐзָô·û£¬¿ÉÄÜÊÇÉÙÁË ^M"
+
+msgid "E167: :scriptencoding used outside of a sourced file"
+msgstr "E167: Ôڽű¾ÎļþÍâʹÓÃÁË :scriptencoding"
+
+msgid "E168: :finish used outside of a sourced file"
+msgstr "E168: Ôڽű¾ÎļþÍâʹÓÃÁË :finish"
+
+#, c-format
+msgid "Current %slanguage: \"%s\""
+msgstr "µ±Ç°µÄ %sÓïÑÔ: \"%s\""
+
+#, c-format
+msgid "E197: Cannot set language to \"%s\""
+msgstr "E197: ²»ÄÜÉ趨ÓïÑÔΪ \"%s\""
+
 msgid "Entering Ex mode.  Type \"visual\" to go to Normal mode."
 msgstr "½øÈë Ex ģʽ¡£ÊäÈë \"visual\" »Øµ½Õý³£Ä£Ê½¡£"
 
@@ -1179,7 +1183,7 @@ msgstr "E467: Custom 
 
 #, c-format
 msgid "E185: Cannot find color scheme %s"
-msgstr "E185: ÕÒ²»µ½ÑÕÉ«Ö÷Ìâ %s"
+msgstr "E185: ÕÒ²»µ½ÅäÉ«·½°¸ %s"
 
 msgid "Greetings, Vim user!"
 msgstr "ÄúºÃ£¬Vim Óû§£¡"
@@ -1391,6 +1395,9 @@ msgstr "E602: :endtry ȱ
 msgid "E193: :endfunction not inside a function"
 msgstr "E193: :endfunction ²»ÔÚº¯ÊýÄÚ"
 
+msgid "E788: Not allowed to edit another buffer now"
+msgstr "E788: Ŀǰ²»ÔÊÐí±à¼­±ðµÄ»º³åÇø"
+
 msgid "tagname"
 msgstr "tag Ãû"
 
@@ -1400,8 +1407,8 @@ msgstr " 
 msgid "'history' option is zero"
 msgstr "Ñ¡Ïî 'history' ΪÁã"
 
-#, fuzzy, c-format
 # do not translate to avoid writing Chinese in files
+#, fuzzy, c-format
 msgid ""
 "\n"
 "# %s History (newest to oldest):\n"
@@ -1409,17 +1416,25 @@ msgstr ""
 "\n"
 "# %s ÀúÊ·¼Ç¼ (´Óе½¾É):\n"
 
-msgid "Command Line"
-msgstr "ÃüÁîÐÐ"
+# do not translate to avoid writing Chinese in files
+#, fuzzy
+#~ msgid "Command Line"
+#~ msgstr "ÃüÁîÐÐ"
 
-msgid "Search String"
-msgstr "²éÕÒ×Ö·û´®"
+# do not translate to avoid writing Chinese in files
+#, fuzzy
+#~ msgid "Search String"
+#~ msgstr "²éÕÒ×Ö·û´®"
 
-msgid "Expression"
-msgstr "±í´ïʽ"
+# do not translate to avoid writing Chinese in files
+#, fuzzy
+#~ msgid "Expression"
+#~ msgstr "±í´ïʽ"
 
-msgid "Input Line"
-msgstr "ÊäÈëÐÐ"
+# do not translate to avoid writing Chinese in files
+#, fuzzy
+#~ msgid "Input Line"
+#~ msgstr "ÊäÈëÐÐ"
 
 msgid "E198: cmd_pchar beyond the command length"
 msgstr "E198: cmd_pchar ³¬¹ýÃüÁ¶È"
@@ -1550,9 +1565,8 @@ msgstr "E509: 
 msgid "E510: Can't make backup file (add ! to override)"
 msgstr "E510: ÎÞ·¨Éú³É±¸·ÝÎļþ (Çë¼Ó ! Ç¿ÖÆÖ´ÐÐ)"
 
-#, fuzzy
-#~ msgid "E460: The resource fork would be lost (add ! to override)"
-#~ msgstr "E460: Resource fork »áÏûʧ (Çë¼Ó ! Ç¿ÖÆÖ´ÐÐ)"
+msgid "E460: The resource fork would be lost (add ! to override)"
+msgstr "E460: Resource fork »á¶ªÊ§ (Çë¼Ó ! Ç¿ÖÆÖ´ÐÐ)"
 
 msgid "E214: Can't find temp file for writing"
 msgstr "E214: ÕÒ²»µ½ÓÃÓÚдÈëµÄÁÙʱÎļþ"
@@ -1836,6 +1850,29 @@ msgstr "
 msgid "E228: makemap: Illegal mode"
 msgstr "E228: makemap: ÎÞЧµÄģʽ"
 
+msgid "E229: Cannot start the GUI"
+msgstr "E229: ÎÞ·¨Æô¶¯Í¼ÐνçÃæ"
+
+#, c-format
+msgid "E230: Cannot read from \"%s\""
+msgstr "E230: ÎÞ·¨¶ÁÈ¡Îļþ \"%s\""
+
+msgid "E665: Cannot start GUI, no valid font found"
+msgstr "E665: ÎÞ·¨Æô¶¯Í¼ÐνçÃæ£¬ÕÒ²»µ½ÓÐЧµÄ×ÖÌå"
+
+msgid "E231: 'guifontwide' invalid"
+msgstr "E231: ÎÞЧµÄ 'guifontwide'"
+
+msgid "E599: Value of 'imactivatekey' is invalid"
+msgstr "E599: 'imactivatekey' µÄÖµÎÞЧ"
+
+#, c-format
+msgid "E254: Cannot allocate color %s"
+msgstr "E254: ÎÞ·¨·ÖÅäÑÕÉ« %s"
+
+msgid "No match at cursor, finding next"
+msgstr "ÔÚ¹â±ê´¦Ã»ÓÐÆ¥Å䣬²éÕÒÏÂÒ»¸ö"
+
 msgid "<cannot open> "
 msgstr "<ÎÞ·¨´ò¿ª>"
 
@@ -1858,38 +1895,15 @@ msgstr "È·
 msgid "Cancel"
 msgstr "È¡Ïû"
 
-msgid "Vim dialog"
-msgstr "Vim ¶Ô»°¿ò"
-
 msgid "Scrollbar Widget: Could not get geometry of thumb pixmap."
 msgstr "¹ö¶¯Ìõ²¿¼þ: ÎÞ·¨»ñÈ¡»¬¿éͼÏñµÄ¼¸ºÎ´óС"
 
+msgid "Vim dialog"
+msgstr "Vim ¶Ô»°¿ò"
+
 msgid "E232: Cannot create BalloonEval with both message and callback"
 msgstr "E232: ²»ÄÜͬʱʹÓÃÏûÏ¢ºÍ»Øµ÷º¯ÊýÀ´´´½¨ BalloonEval"
 
-msgid "E229: Cannot start the GUI"
-msgstr "E229: ÎÞ·¨Æô¶¯Í¼ÐνçÃæ"
-
-#, c-format
-msgid "E230: Cannot read from \"%s\""
-msgstr "E230: ²»ÄܶÁÈ¡Îļþ \"%s\""
-
-msgid "E665: Cannot start GUI, no valid font found"
-msgstr "E665: ÎÞ·¨Æô¶¯Í¼ÐνçÃæ£¬ÕÒ²»µ½ÓÐЧµÄ×ÖÌå"
-
-msgid "E231: 'guifontwide' invalid"
-msgstr "E231: ÎÞЧµÄ 'guifontwide'"
-
-msgid "E599: Value of 'imactivatekey' is invalid"
-msgstr "E599: 'imactivatekey' µÄÖµÎÞЧ"
-
-#, c-format
-msgid "E254: Cannot allocate color %s"
-msgstr "E254: ÎÞ·¨·ÖÅäÑÕÉ« %s"
-
-msgid "No match at cursor, finding next"
-msgstr "ÔÚ¹â±ê´¦Ã»ÓÐÆ¥Å䣬²éÕÒÏÂÒ»¸ö"
-
 msgid "Vim dialog..."
 msgstr "Vim ¶Ô»°¿ò..."
 
@@ -2027,6 +2041,12 @@ msgstr "E243: 
 msgid "E672: Unable to open window inside MDI application"
 msgstr "E672: ÎÞ·¨ÔÚ MDI Ó¦ÓóÌÐòÖдò¿ª´°¿Ú"
 
+msgid "Close tab"
+msgstr "¹Ø±Õ±êÇ©"
+
+msgid "Open tab..."
+msgstr "´ò¿ª±êÇ©..."
+
 msgid "Find string (use '\\\\' to find  a '\\')"
 msgstr "²éÕÒ×Ö·û´® (ʹÓà '\\\\' À´²éÕÒ '\\')"
 
@@ -2084,40 +2104,36 @@ msgstr ""
 "×ÖÌå1µÄ¿í¶È: %ld\n"
 "\n"
 
-#, fuzzy
-#~ msgid "Invalid font specification"
-#~ msgstr "²»ÕýÈ·µÄ×ÖÌ弯(Fontset)"
+msgid "Invalid font specification"
+msgstr "Ö¸¶¨ÁËÎÞЧµÄ×ÖÌå"
 
-#~ msgid "&Dismiss"
-#~ msgstr ""
+msgid "&Dismiss"
+msgstr "È¡Ïû(&D)"
 
-#~ msgid "no specific match"
-#~ msgstr ""
+msgid "no specific match"
+msgstr "ÕÒ²»µ½Æ¥ÅäµÄÏî"
 
-#, fuzzy
-#~ msgid "Vim - Font Selector"
-#~ msgstr "×ÖÌåÑ¡Ôñ"
+msgid "Vim - Font Selector"
+msgstr "Vim - ×ÖÌåÑ¡ÔñÆ÷"
 
-#~ msgid "Name:"
-#~ msgstr ""
+msgid "Name:"
+msgstr "Ãû³Æ:"
 
 #. create toggle button
 #~ msgid "Show size in Points"
 #~ msgstr ""
 
-#, fuzzy
-#~ msgid "Encoding:"
-#~ msgstr "¼Ç¼ÖÐ"
+msgid "Encoding:"
+msgstr "±àÂë:"
 
-#, fuzzy
-#~ msgid "Font:"
-#~ msgstr "×ÖÌå1: %s\n"
+msgid "Font:"
+msgstr "×ÖÌå:"
 
-#~ msgid "Style:"
-#~ msgstr ""
+msgid "Style:"
+msgstr "·ç¸ñ:"
 
-#~ msgid "Size:"
-#~ msgstr ""
+msgid "Size:"
+msgstr "³ß´ç:"
 
 msgid "E256: Hangul automata ERROR"
 msgstr "E256: Hangul automata ´íÎó"
@@ -3021,8 +3037,8 @@ msgstr ""
 msgid "-display <display>\tRun vim on <display> (also: --display)"
 msgstr "-display <display>\tÔÚ <display> ÉÏÔËÐÐ vim (Ò²¿ÉÓà --display)"
 
-#~ msgid "--role <role>\tSet a unique role to identify the main window"
-#~ msgstr ""
+msgid "--role <role>\tSet a unique role to identify the main window"
+msgstr "--role <role>\tÉèÖÃÓÃÓÚÇø·ÖÖ÷´°¿ÚµÄ´°¿Ú½ÇÉ«Ãû"
 
 msgid "--socketid <xid>\tOpen Vim inside another GTK widget"
 msgstr "--socketid <xid>\tÔÚÁíÒ»¸ö GTK ²¿¼þÖдò¿ª Vim"
@@ -3030,8 +3046,8 @@ msgstr "--socketid <xid>\t
 msgid "-P <parent title>\tOpen Vim inside parent application"
 msgstr "-P <parent title>\tÔÚ¸¸Ó¦ÓóÌÐòÖдò¿ª Vim"
 
-#~ msgid "No display"
-#~ msgstr ""
+msgid "No display"
+msgstr "ûÓÐ display"
 
 #. Failed to send, abort.
 msgid ": Send failed.\n"
@@ -3045,9 +3061,8 @@ msgstr ": 
 msgid "%d of %d edited"
 msgstr "%d ÖÐ %d Òѱ༭"
 
-#, fuzzy
-#~ msgid "No display: Send expression failed.\n"
-#~ msgstr "·¢Ëͱí´ïʽʧ°Ü¡£\n"
+msgid "No display: Send expression failed.\n"
+msgstr "ûÓÐ display: ·¢Ëͱí´ïʽʧ°Ü¡£\n"
 
 msgid ": Send expression failed.\n"
 msgstr ": ·¢Ëͱí´ïʽʧ°Ü¡£\n"
@@ -3241,49 +3256,49 @@ msgstr "E308: 
 msgid "E309: Unable to read block 1 from %s"
 msgstr "E309: ÎÞ·¨´Ó %s ¶ÁÈ¡¿é 1"
 
-#, fuzzy
 # do not translate to avoid writing Chinese in files
-msgid "???MANY LINES MISSING"
-msgstr "???ȱÉÙÁËÌ«¶àÐÐ"
-
 #, fuzzy
-# do not translate to avoid writing Chinese in files
-msgid "???LINE COUNT WRONG"
-msgstr "???ÐÐÊý´íÎó"
+#~ msgid "???MANY LINES MISSING"
+#~ msgstr "???ȱÉÙÁËÌ«¶àÐÐ"
 
-#, fuzzy
 # do not translate to avoid writing Chinese in files
-msgid "???EMPTY BLOCK"
-msgstr "???¿ÕµÄ¿é"
+#, fuzzy
+#~ msgid "???LINE COUNT WRONG"
+#~ msgstr "???ÐÐÊý´íÎó"
 
+# do not translate to avoid writing Chinese in files
 #, fuzzy
+#~ msgid "???EMPTY BLOCK"
+#~ msgstr "???¿ÕµÄ¿é"
+
 # do not translate to avoid writing Chinese in files
-msgid "???LINES MISSING"
-msgstr "???ȱÉÙÁËһЩÐÐ"
+#, fuzzy
+#~ msgid "???LINES MISSING"
+#~ msgstr "???ȱÉÙÁËһЩÐÐ"
 
 #, c-format
 msgid "E310: Block 1 ID wrong (%s not a .swp file?)"
 msgstr "E310: ¿é 1 ID ´íÎó (%s ²»Êǽ»»»Îļþ£¿)"
 
-#, fuzzy
 # do not translate to avoid writing Chinese in files
-msgid "???BLOCK MISSING"
-msgstr "???ȱÉÙ¿é"
-
 #, fuzzy
-# do not translate to avoid writing Chinese in files
-msgid "??? from here until ???END lines may be messed up"
-msgstr "??? ´ÓÕâÀïµ½ ???END µÄÐпÉÄÜÒÑ»ìÂÒ"
+#~ msgid "???BLOCK MISSING"
+#~ msgstr "???ȱÉÙ¿é"
 
-#, fuzzy
 # do not translate to avoid writing Chinese in files
-msgid "??? from here until ???END lines may have been inserted/deleted"
-msgstr "??? ´ÓÕâÀïµ½ ???END µÄÐпÉÄÜÒѱ»²åÈë/ɾ³ý¹ý"
+#, fuzzy
+#~ msgid "??? from here until ???END lines may be messed up"
+#~ msgstr "??? ´ÓÕâÀïµ½ ???END µÄÐпÉÄÜÒÑ»ìÂÒ"
 
+# do not translate to avoid writing Chinese in files
 #, fuzzy
+#~ msgid "??? from here until ???END lines may have been inserted/deleted"
+#~ msgstr "??? ´ÓÕâÀïµ½ ???END µÄÐпÉÄÜÒѱ»²åÈë/ɾ³ý¹ý"
+
 # do not translate to avoid writing Chinese in files
-msgid "???END"
-msgstr "???END"
+#, fuzzy
+#~ msgid "???END"
+#~ msgstr "???END"
 
 msgid "E311: Recovery Interrupted"
 msgstr "E311: »Ö¸´Òѱ»ÖжÏ"
@@ -3810,18 +3825,18 @@ msgid "E347: No more file \"%s\" found in path"
 msgstr "E347: ÔÚ·¾¶ÖÐÕÒ²»µ½¸ü¶àµÄÎļþ \"%s\""
 
 #. Get here when the server can't be found.
-#~ msgid "Cannot connect to Netbeans #2"
-#~ msgstr ""
+msgid "Cannot connect to Netbeans #2"
+msgstr "ÎÞ·¨Á¬½Óµ½ Netbeans #2"
 
-#~ msgid "Cannot connect to Netbeans"
-#~ msgstr ""
+msgid "Cannot connect to Netbeans"
+msgstr "ÎÞ·¨Á¬½Óµ½ Netbeans"
 
 #, c-format
-#~ msgid "E668: Wrong access mode for NetBeans connection info file: \"%s\""
-#~ msgstr ""
+msgid "E668: Wrong access mode for NetBeans connection info file: \"%s\""
+msgstr "E668: NetBeans Á¬½ÓÐÅÏ¢ÎļþÖдíÎóµÄ·ÃÎÊģʽ: \"%s\""
 
-#~ msgid "read from Netbeans socket"
-#~ msgstr ""
+msgid "read from Netbeans socket"
+msgstr "´Ó Netbeans Ì×½Ó×Ö¶ÁÈ¡"
 
 #, c-format
 msgid "E658: NetBeans connection lost for buffer %ld"
@@ -3950,26 +3965,27 @@ msgstr "E574: δ֪
 msgid "%ld Cols; "
 msgstr "%ld ÁÐ; "
 
-#, fuzzy, c-format
-#~ msgid "Selected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld Bytes"
-#~ msgstr "Ñ¡ÔñÁË %s%ld/%ld ÐÐ; %ld/%ld ×Ö(Word); %ld/%ld ×Ö·û(Bytes)"
+#, c-format
+msgid "Selected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld Bytes"
+msgstr "Ñ¡ÔñÁË %s%ld/%ld ÐÐ; %ld/%ld ¸ö´Ê; %ld/%ld ¸ö×Ö½Ú"
 
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "Selected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld Chars; %ld of %ld "
 "Bytes"
-msgstr "Ñ¡ÔñÁË %s%ld/%ld ÐÐ; %ld/%ld ×Ö(Word); %ld/%ld ×Ö·û(Chars); %ld/%ld"
+msgstr "Ñ¡ÔñÁË %s%ld/%ld ÐÐ; %ld/%ld ¸ö´Ê; %ld/%ld ¸ö×Ö·û; %ld/%ld ¸ö×Ö½Ú"
 
-#, fuzzy, c-format
-#~ msgid "Col %s of %s; Line %ld of %ld; Word %ld of %ld; Byte %ld of %ld"
-#~ msgstr "ÁÐ %s/%s; ÐÐ %ld/%ld; ×Ö(Word) %ld/%ld; ×Ö·û(Byte) %ld/%ld"
+#, c-format
+msgid "Col %s of %s; Line %ld of %ld; Word %ld of %ld; Byte %ld of %ld"
+msgstr "µÚ %s/%s ÁÐ; µÚ %ld/%ld ÐÐ; µÚ %ld/%ld ¸ö´Ê; µÚ %ld/%ld ¸ö×Ö½Ú"
 
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "Col %s of %s; Line %ld of %ld; Word %ld of %ld; Char %ld of %ld; Byte %ld of "
 "%ld"
 msgstr ""
-"ÁÐ %s/%s; ÐÐ %ld/%ld; ×Ö(Word) %ld/%ld; ×Ö·û(Char) %ld/%ld; ×Ö·û(Byte) %ld/%ld"
+"µÚ %s/%s ÁÐ; µÚ %ld/%ld ÐÐ; µÚ %ld/%ld ¸ö´Ê; µÚ %ld/%ld ¸ö×Ö·û; µÚ %ld/%ld ¸ö"
+"×Ö½Ú"
 
 #, c-format
 #~ msgid "(+%ld for BOM)"
@@ -4177,17 +4193,14 @@ msgstr "ANCHOR_BUF_SIZE ̫С"
 msgid "I/O ERROR"
 msgstr "I/O ´íÎó"
 
-#~ msgid "...(truncated)"
-#~ msgstr ""
-
-#~ msgid "Message"
-#~ msgstr ""
+msgid "Message"
+msgstr "ÏûÏ¢"
 
 msgid "'columns' is not 80, cannot execute external commands"
 msgstr "'columns' ²»ÊÇ 80, ²»ÄÜÖ´ÐÐÍⲿÃüÁî"
 
 msgid "E237: Printer selection failed"
-msgstr "E237: ²»ÄÜÑ¡Ôñ´Ë´òÓ¡»ú"
+msgstr "E237: Ñ¡Ôñ´òÓ¡»úʧ°Ü"
 
 #, c-format
 msgid "to %s on %s"
@@ -4203,7 +4216,7 @@ msgstr "E238: 
 
 #, c-format
 msgid "Printing '%s'"
-msgstr "ÒÑ´òÓ¡: '%s'"
+msgstr "´òÓ¡ '%s'"
 
 #, c-format
 msgid "E244: Illegal charset name \"%s\" in font name \"%s\""
@@ -4214,22 +4227,22 @@ msgid "E245: Illegal char '%c' in font name \"%s\""
 msgstr "E245: ²»ÕýÈ·µÄ×Ö·û '%c' ³öÏÖÔÚ×ÖÌåÃû³Æ \"%s\" ÄÚ"
 
 msgid "E366: Invalid 'osfiletype' option - using Text"
-msgstr "E366: ²»ÕýÈ·µÄ 'filetype' Ñ¡Ïî - ʹÓô¿ÎÄ×Öģʽ"
+msgstr "E366: ²»ÕýÈ·µÄ 'osfiletype' Ñ¡Ïî - ʹÓô¿ÎÄ×Öģʽ"
 
 msgid "Vim: Double signal, exiting\n"
-msgstr "Vim: Ë«ÖØÐźÅ, Í˳öÖÐ\n"
+msgstr "Vim: Ë«ÖØÐźţ¬Í˳öÖÐ\n"
 
 #, c-format
 msgid "Vim: Caught deadly signal %s\n"
-msgstr "Vim: CVim: À¹½Øµ½ÐźÅ(signal) %s\n"
+msgstr "Vim: À¹½Øµ½ÖÂÃüÐźÅ(deadly signal) %s\n"
 
 #, c-format
 msgid "Vim: Caught deadly signal\n"
-msgstr "Vim: À¹½Øµ½ÖÂÃüµÄÐźÅ(deadly signale)\n"
+msgstr "Vim: À¹½Øµ½ÖÂÃüÐźÅ(deadly signal)\n"
 
 #, c-format
 msgid "Opening the X display took %ld msec"
-msgstr "´ò¿ª X Window ÓÃʱ %ld Ãë"
+msgstr "´ò¿ª X display ÓÃʱ %ld Ãë"
 
 msgid ""
 "\n"
@@ -4239,24 +4252,24 @@ msgstr ""
 "Vim: X ´íÎó\n"
 
 msgid "Testing the X display failed"
-msgstr "²âÊÔ X Window ʧ°Ü"
+msgstr "²âÊÔ X display ʧ°Ü"
 
 msgid "Opening the X display timed out"
-msgstr "´ò¿ª X Window ³¬Ê±"
+msgstr "´ò¿ª X display ³¬Ê±"
 
 msgid ""
 "\n"
 "Cannot execute shell "
 msgstr ""
 "\n"
-"²»ÄÜÖ´ÐÐ shell"
+"ÎÞ·¨Ö´ÐÐ shell"
 
 msgid ""
 "\n"
 "Cannot execute shell sh\n"
 msgstr ""
 "\n"
-"²»ÄÜÖ´ÐÐ shell sh\n"
+"ÎÞ·¨Ö´ÐÐ shell sh\n"
 
 msgid ""
 "\n"
@@ -4270,14 +4283,14 @@ msgid ""
 "Cannot create pipes\n"
 msgstr ""
 "\n"
-"²»Äܽ¨Á¢¹ÜµÀ\n"
+"ÎÞ·¨½¨Á¢¹ÜµÀ\n"
 
 msgid ""
 "\n"
 "Cannot fork\n"
 msgstr ""
 "\n"
-"²»ÄÜ fork\n"
+"ÎÞ·¨ fork\n"
 
 msgid ""
 "\n"
@@ -4286,46 +4299,45 @@ msgstr ""
 "\n"
 "ÃüÁîÒѽáÊø\n"
 
-#, fuzzy
-#~ msgid "XSMP lost ICE connection"
-#~ msgstr "ÏÔʾÁ¬½Ó"
+msgid "XSMP lost ICE connection"
+msgstr "XSMP ¶ªÊ§Á˵½ ICE µÄÁ¬½Ó"
 
+# do not translate
 #, c-format
-#~ msgid "dlerror = \"%s\""
-#~ msgstr ""
+msgid "dlerror = \"%s\""
+msgstr "dlerror = \"%s\""
 
 msgid "Opening the X display failed"
-msgstr "´ò¿ª X Window ʧ°Ü"
+msgstr "´ò¿ª X display ʧ°Ü"
 
-#~ msgid "XSMP handling save-yourself request"
-#~ msgstr ""
+msgid "XSMP handling save-yourself request"
+msgstr "XSMP ´¦Àí save-yourself ÇëÇó"
 
-#, fuzzy
-#~ msgid "XSMP opening connection"
-#~ msgstr "ûÓÐ cscope Á¬½Ó"
+msgid "XSMP opening connection"
+msgstr "XSMP ´ò¿ªÁ¬½Ó"
 
-#~ msgid "XSMP ICE connection watch failed"
-#~ msgstr ""
+msgid "XSMP ICE connection watch failed"
+msgstr "XSMP ICE Á¬½Ó¼àÊÓʧ°Ü"
 
 #, c-format
-#~ msgid "XSMP SmcOpenConnection failed: %s"
-#~ msgstr ""
+msgid "XSMP SmcOpenConnection failed: %s"
+msgstr "XSMP SmcOpenConnection µ÷ÓÃʧ°Ü: %s"
 
 msgid "At line"
 msgstr "ÔÚÐкŠ"
 
 msgid "Could not load vim32.dll!"
-msgstr "²»ÄܼÓÔØ vim32.dll£¡"
+msgstr "ÎÞ·¨¼ÓÔØ vim32.dll£¡"
 
 msgid "VIM Error"
 msgstr "VIM ´íÎó"
 
 msgid "Could not fix up function pointers to the DLL!"
-msgstr "²»ÄÜÐÞÕýº¯ÊýÖ¸Õëµ½ DLL!"
+msgstr "ÎÞ·¨ÐÞÕýµ½ DLL µÄº¯ÊýÖ¸Õë!"
 
 #, c-format
 msgid "shell returned %d"
-msgstr "Shell ·µ»ØÖµ %d"
+msgstr "Shell ·µ»Ø %d"
 
 #, c-format
 msgid "Vim: Caught %s event\n"
@@ -4348,8 +4360,8 @@ msgid ""
 "External commands will not pause after completion.\n"
 "See  :help win32-vimrun  for more information."
 msgstr ""
-"ÔÚÄãµÄ $PATH ÖÐÕÒ²»µ½ VIMRUN.EXE.\n"
-"ÍⲿÃüÁîÖ´ÐÐÍê±Ïºó½«²»»áÔÝÍ£.\n"
+"ÔÚÄãµÄ $PATH ÖÐÕÒ²»µ½ VIMRUN.EXE¡£\n"
+"ÍⲿÃüÁîÖ´ÐÐÍê±Ïºó½«²»»áÔÝÍ£¡£\n"
 "½øÒ»²½ËµÃ÷Çë¼û :help win32-vimrun"
 
 msgid "Vim Warning"
@@ -4407,8 +4419,8 @@ msgstr "
 msgid "E382: Cannot write, 'buftype' option is set"
 msgstr "E382: ÎÞ·¨Ð´È룬ÒÑÉ趨ѡÏî 'buftype'"
 
-#~ msgid "E683: File name missing or invalid pattern"
-#~ msgstr ""
+msgid "E683: File name missing or invalid pattern"
+msgstr "E683: ȱÉÙÎļþÃû»òģʽÎÞЧ"
 
 #, c-format
 msgid "Cannot open file \"%s\""
@@ -4603,9 +4615,9 @@ msgstr "  
 msgid "Scanning included file: %s"
 msgstr "²éÕÒ°üº¬Îļþ: %s"
 
-#, fuzzy, c-format
-#~ msgid "Searching included file %s"
-#~ msgstr "²éÕÒ°üº¬Îļþ: %s"
+#, c-format
+msgid "Searching included file %s"
+msgstr "²éÕÒ°üº¬µÄÎļþ %s"
 
 msgid "E387: Match is on current line"
 msgstr "E387: µ±Ç°ÐÐÆ¥Åä"
@@ -4622,339 +4634,339 @@ msgstr "E388: 
 msgid "E389: Couldn't find pattern"
 msgstr "E389: ÕÒ²»µ½ pattern"
 
-#, fuzzy
-#~ msgid "E759: Format error in spell file"
-#~ msgstr "E297: ½»»»ÎļþдÈë´íÎó"
+msgid "E759: Format error in spell file"
+msgstr "E759: ƴдÎļþ¸ñʽ´íÎó"
 
-#, fuzzy
-#~ msgid "E758: Truncated spell file"
-#~ msgstr "E237: ²»ÄÜÑ¡Ôñ´Ë´òÓ¡»ú"
+msgid "E758: Truncated spell file"
+msgstr "E758: ÒÑ½Ø¶ÏµÄÆ´Ð´Îļþ"
 
-#, fuzzy, c-format
-#~ msgid "Trailing text in %s line %d: %s"
-#~ msgstr "\"%s%s\" Öжϵã: µÚ %ld ÐÐ"
+#, c-format
+msgid "Trailing text in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬¶àÓàµÄºóÐø×Ö·û: %s"
 
 #, c-format
-#~ msgid "Affix name too long in %s line %d: %s"
-#~ msgstr ""
+msgid "Affix name too long in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬¸½¼ÓÏîÃû×ÖÌ«³¤: %s"
 
-#, fuzzy
-#~ msgid "E761: Format error in affix file FOL, LOW or UPP"
-#~ msgstr "E431: Tag Îļþ \"%s\" ¸ñʽ´íÎó"
+msgid "E761: Format error in affix file FOL, LOW or UPP"
+msgstr "E761: ¸½¼ÓÎļþ FOL¡¢LOW »ò UPP Öиñʽ´íÎó"
 
-#~ msgid "E762: Character in FOL, LOW or UPP is out of range"
-#~ msgstr ""
+msgid "E762: Character in FOL, LOW or UPP is out of range"
+msgstr "E762: FOL¡¢LOW »ò UPP ÖÐ×Ö·û³¬³ö·¶Î§"
 
-#~ msgid "Compressing word tree..."
-#~ msgstr ""
+msgid "Compressing word tree..."
+msgstr "ѹËõµ¥´ÊÊ÷¡­¡­"
 
-#~ msgid "E756: Spell checking is not enabled"
-#~ msgstr ""
+msgid "E756: Spell checking is not enabled"
+msgstr "E756: ƴд¼ì²éδÆôÓÃ"
 
 #, c-format
-#~ msgid "Warning: Cannot find word list \"%s.%s.spl\" or \"%s.ascii.spl\""
-#~ msgstr ""
+msgid "Warning: Cannot find word list \"%s.%s.spl\" or \"%s.ascii.spl\""
+msgstr "¾¯¸æ: ÕÒ²»µ½µ¥´ÊÁбí \"%s.%s.spl\" or \"%s.ascii.spl\""
 
-#, fuzzy, c-format
-#~ msgid "Reading spell file \"%s\""
-#~ msgstr "ʹÓý»»»Îļþ \"%s\""
+#, c-format
+msgid "Reading spell file \"%s\""
+msgstr "¶ÁȡƴдÎļþ \"%s\""
 
-#, fuzzy
-#~ msgid "E757: This does not look like a spell file"
-#~ msgstr "E307: %s ¿´ÆðÀ´²»ÏñÊÇ Vim ½»»»Îļþ"
+msgid "E757: This does not look like a spell file"
+msgstr "E757: Õâ¿´ÆðÀ´²»ÏñÊÇÆ´Ð´Îļþ"
 
-#, fuzzy
-#~ msgid "E771: Old spell file, needs to be updated"
-#~ msgstr "E173: »¹ÓÐ %ld ¸öÎļþδ±à¼­"
+msgid "E771: Old spell file, needs to be updated"
+msgstr "E771: ¾É°æ±¾µÄƴдÎļþ£¬ÐèÒª¸üÐÂ"
 
-#~ msgid "E772: Spell file is for newer version of Vim"
-#~ msgstr ""
+msgid "E772: Spell file is for newer version of Vim"
+msgstr "E772: Ϊ¸ü¸ß°æ±¾µÄ Vim ËùÓÃµÄÆ´Ð´Îļþ"
 
-#, fuzzy
-#~ msgid "E770: Unsupported section in spell file"
-#~ msgstr "E297: ½»»»ÎļþдÈë´íÎó"
+msgid "E770: Unsupported section in spell file"
+msgstr "E770: ƴдÎļþÖдæÔÚ²»Ö§³ÖµÄ½Ú"
 
-#, fuzzy, c-format
-#~ msgid "Warning: region %s not supported"
-#~ msgstr "²»Ö§³Ö¸ÃÑ¡Ïî"
+#, c-format
+msgid "Warning: region %s not supported"
+msgstr "¾¯¸æ: ÇøÓò %s ²»Ö§³Ö"
 
-#, fuzzy, c-format
-#~ msgid "Reading affix file %s ..."
-#~ msgstr "²éÕÒ tag Îļþ \"%s\""
+#, c-format
+msgid "Reading affix file %s ..."
+msgstr "¶ÁÈ¡¸½¼ÓÎļþ %s ¡­¡­"
 
 #, c-format
-#~ msgid "Conversion failure for word in %s line %d: %s"
-#~ msgstr ""
+msgid "Conversion failure for word in %s line %d: %s"
+msgstr "µ¥´Ê %s ת»»Ê§°Ü£¬µÚ %d ÐÐ: %s"
 
 #, c-format
-#~ msgid "Conversion in %s not supported: from %s to %s"
-#~ msgstr ""
+msgid "Conversion in %s not supported: from %s to %s"
+msgstr "²»Ö§³Ö %s ÖеÄת»»: ´Ó %s µ½ %s"
 
-#, fuzzy, c-format
-#~ msgid "Conversion in %s not supported"
-#~ msgstr "²»Ö§³Ö¸ÃÑ¡Ïî"
+#, c-format
+msgid "Conversion in %s not supported"
+msgstr "²»Ö§³Ö %s ÖеÄת»»"
 
-#, fuzzy, c-format
-#~ msgid "Invalid value for FLAG in %s line %d: %s"
-#~ msgstr "²»ÕýÈ·µÄ·þÎñÆ÷ id : %s"
+#, c-format
+msgid "Invalid value for FLAG in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬FLAG µÄÖµÎÞЧ: %s"
 
 #, c-format
-#~ msgid "FLAG after using flags in %s line %d: %s"
-#~ msgstr ""
+msgid "FLAG after using flags in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬ÔÚʹÓñêÖ¾ºó³öÏÖ FLAG: %s"
 
 #, c-format
-#~ msgid "Wrong COMPOUNDWORDMAX value in %s line %d: %s"
+#~ msgid ""
+#~ "Defining COMPOUNDFORBIDFLAG after PFX item may give wrong results in %s line "
+#~ "%d"
 #~ msgstr ""
 
 #, c-format
-#~ msgid "Wrong COMPOUNDMIN value in %s line %d: %s"
+#~ msgid ""
+#~ "Defining COMPOUNDPERMITFLAG after PFX item may give wrong results in %s line "
+#~ "%d"
 #~ msgstr ""
 
 #, c-format
-#~ msgid "Wrong COMPOUNDSYLMAX value in %s line %d: %s"
-#~ msgstr ""
+msgid "Wrong COMPOUNDWORDMAX value in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬´íÎóµÄ COMPOUNDWORDMAX Öµ: %s"
 
 #, c-format
-#~ msgid "Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %s"
-#~ msgstr ""
+msgid "Wrong COMPOUNDMIN value in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬´íÎóµÄ COMPOUNDMIN Öµ: %s"
 
 #, c-format
-#~ msgid "Different combining flag in continued affix block in %s line %d: %s"
-#~ msgstr ""
+msgid "Wrong COMPOUNDSYLMAX value in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬´íÎóµÄ COMPOUNDSYLMAX Öµ: %s"
 
-#, fuzzy, c-format
-#~ msgid "Duplicate affix in %s line %d: %s"
-#~ msgstr "E154: ±êÇ©(tag) \"%s\" ÔÚÎļþ %s ÀïÖØ¸´³öÏÖ¶à´Î"
+#, c-format
+msgid "Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬´íÎóµÄ CHECKCOMPOUNDPATTERN Öµ: %s"
 
 #, c-format
-#~ msgid ""
-#~ "Affix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s "
-#~ "line %d: %s"
-#~ msgstr ""
+msgid "Different combining flag in continued affix block in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬ÔÚÁ¬ÐøµÄ¸½¼Ó¿éÖгöÏÖ²»Í¬µÄ×éºÏ±êÖ¾: %s"
 
 #, c-format
-#~ msgid "Expected Y or N in %s line %d: %s"
-#~ msgstr ""
+msgid "Duplicate affix in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬Öظ´µÄ¸½¼ÓÏî: %s"
 
-#, fuzzy, c-format
-#~ msgid "Broken condition in %s line %d: %s"
-#~ msgstr "\"%s%s\" Öжϵã: µÚ %ld ÐÐ"
+#, c-format
+msgid ""
+"Affix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s "
+"line %d: %s"
+msgstr ""
+"%s µÚ %d ÐУ¬¸½¼ÓÏî±» BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST ʹ"
+"ÓÃ: %s"
 
 #, c-format
-#~ msgid "Affix flags ignored when PFXPOSTPONE used in %s line %d: %s"
-#~ msgstr ""
+msgid "Expected Y or N in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬´Ë´¦ÐèÒª Y »ò N: %s"
 
 #, c-format
-#~ msgid "Expected REP(SAL) count in %s line %d"
-#~ msgstr ""
+msgid "Broken condition in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬´íÎóµÄÌõ¼þ: %s"
 
 #, c-format
-#~ msgid "Expected MAP count in %s line %d"
-#~ msgstr ""
+msgid "Expected REP(SAL) count in %s line %d"
+msgstr "%s µÚ %d ÐУ¬´Ë´¦ÐèÒª REP(SAL) ¼ÆÊý"
 
 #, c-format
-#~ msgid "Duplicate character in MAP in %s line %d"
-#~ msgstr ""
+msgid "Expected MAP count in %s line %d"
+msgstr "%s µÚ %d ÐУ¬´Ë´¦ÐèÒª MAP ¼ÆÊý"
 
 #, c-format
-#~ msgid "Unrecognized or duplicate item in %s line %d: %s"
-#~ msgstr ""
+msgid "Duplicate character in MAP in %s line %d"
+msgstr "%s µÚ %d ÐУ¬MAP ÖдæÔÚÖØ¸´µÄ×Ö·û"
 
 #, c-format
-#~ msgid "Missing FOL/LOW/UPP line in %s"
-#~ msgstr ""
+msgid "Unrecognized or duplicate item in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬ÎÞ·¨Ê¶±ð»òÖØ¸´µÄÏî: %s"
 
-#~ msgid "COMPOUNDSYLMAX used without SYLLABLE"
-#~ msgstr ""
+#, c-format
+msgid "Missing FOL/LOW/UPP line in %s"
+msgstr "%s ÖÐȱÉÙ FOL/LOW/UPP ÐÐ"
 
-#, fuzzy
-#~ msgid "Too many postponed prefixes"
-#~ msgstr "Ì«¶à±à¼­²ÎÊý"
+msgid "COMPOUNDSYLMAX used without SYLLABLE"
+msgstr "ÔÚûÓÐ SYLLABLE µÄÇé¿öÏÂʹÓÃÁË COMPOUNDSYLMAX"
 
-#, fuzzy
-#~ msgid "Too many compound flags"
-#~ msgstr "Ì«¶à±à¼­²ÎÊý"
+msgid "Too many postponed prefixes"
+msgstr "Ì«¶àÑÓ³Ùǰ׺"
 
-#~ msgid "Too many posponed prefixes and/or compound flags"
-#~ msgstr ""
+msgid "Too many compound flags"
+msgstr "Ì«¶à×éºÏ±êÖ¾"
+
+msgid "Too many posponed prefixes and/or compound flags"
+msgstr "Ì«¶àÑÓ³Ùǰ׺ºÍ/»ò×éºÏ±êÖ¾"
 
 #, c-format
-#~ msgid "Missing SOFO%s line in %s"
-#~ msgstr ""
+msgid "Missing SOFO%s line in %s"
+msgstr "%s ÖÐȱÉÙ SOFO%s ÐÐ"
 
 #, c-format
-#~ msgid "Both SAL and SOFO lines in %s"
-#~ msgstr ""
+msgid "Both SAL and SOFO lines in %s"
+msgstr "%s ͬʱ³öÏÖ SQL ºÍ SOFO ÐÐ"
 
 #, c-format
-#~ msgid "Flag is not a number in %s line %d: %s"
-#~ msgstr ""
+msgid "Flag is not a number in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬±êÖ¾²»ÊÇÊý×Ö: %s"
 
 #, c-format
-#~ msgid "Illegal flag in %s line %d: %s"
-#~ msgstr ""
+msgid "Illegal flag in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬ÎÞЧµÄ±êÖ¾: %s"
 
 #, c-format
-#~ msgid "%s value differs from what is used in another .aff file"
-#~ msgstr ""
+msgid "%s value differs from what is used in another .aff file"
+msgstr "%s µÄÖµÓëÁíÒ»¸ö .aff ÎļþÖÐʹÓõÄÖµ²»Ïàͬ"
 
-#, fuzzy, c-format
-#~ msgid "Reading dictionary file %s ..."
-#~ msgstr "ɨÃè×Öµä: %s"
+#, c-format
+msgid "Reading dictionary file %s ..."
+msgstr "¶ÁÈ¡×ÖµäÎļþ %s ¡­¡­"
 
 #, c-format
-#~ msgid "E760: No word count in %s"
-#~ msgstr ""
+msgid "E760: No word count in %s"
+msgstr "E760: %s ÖÐûÓе¥´Ê¼ÆÊý"
 
 #, c-format
-#~ msgid "line %6d, word %6d - %s"
-#~ msgstr ""
+msgid "line %6d, word %6d - %s"
+msgstr "µÚ %6d ÐУ¬µÚ %6d ¸öµ¥´Ê - %s"
 
-#, fuzzy, c-format
-#~ msgid "Duplicate word in %s line %d: %s"
-#~ msgstr "ÿһÐж¼ÕÒ²»µ½Ä£Ê½: %s"
+#, c-format
+msgid "Duplicate word in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬Öظ´µÄµ¥´Ê: %s"
 
 #, c-format
-#~ msgid "First duplicate word in %s line %d: %s"
-#~ msgstr ""
+msgid "First duplicate word in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬Ê×´ÎÖØ¸´µÄµ¥´Ê: %s"
 
 #, c-format
-#~ msgid "%d duplicate word(s) in %s"
-#~ msgstr ""
+msgid "%d duplicate word(s) in %s"
+msgstr "´æÔÚ %d ¸öÖØ¸´µÄµ¥´Ê£¬ÔÚ %s ÖÐ"
 
 #, c-format
-#~ msgid "Ignored %d word(s) with non-ASCII characters in %s"
-#~ msgstr ""
+msgid "Ignored %d word(s) with non-ASCII characters in %s"
+msgstr "ºöÂÔÁ˺¬ÓÐ·Ç ASCII ×Ö·ûµÄ %d ¸öµ¥´Ê£¬ÔÚ %s ÖÐ"
 
-#, fuzzy, c-format
-#~ msgid "Reading word file %s ..."
-#~ msgstr "´Ó±ê×¼ÊäÈë¶Á..."
+#, c-format
+msgid "Reading word file %s ..."
+msgstr "¶ÁÈ¡µ¥´ÊÎļþ %s ¡­¡­"
 
 #, c-format
 #~ msgid "Duplicate /encoding= line ignored in %s line %d: %s"
 #~ msgstr ""
 
 #, c-format
-#~ msgid "/encoding= line after word ignored in %s line %d: %s"
-#~ msgstr ""
+msgid "/encoding= line after word ignored in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬µ¥´ÊºóµÄ /encoding= ÐÐÒѱ»ºöÂÔ: %s"
 
 #, c-format
-#~ msgid "Duplicate /regions= line ignored in %s line %d: %s"
-#~ msgstr ""
+msgid "Duplicate /regions= line ignored in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬Öظ´µÄ /regions= ÐÐÒѱ»ºöÂÔ: %s"
 
 #, c-format
-#~ msgid "Too many regions in %s line %d: %s"
-#~ msgstr ""
+msgid "Too many regions in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬Ì«¶àÇøÓò: %s"
 
 #, c-format
-#~ msgid "/ line ignored in %s line %d: %s"
-#~ msgstr ""
+msgid "/ line ignored in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬/ ÐÐÒѱ»ºöÂÔ: %s"
 
-#, fuzzy, c-format
-#~ msgid "Invalid region nr in %s line %d: %s"
-#~ msgstr "²»ÕýÈ·µÄ·þÎñÆ÷ id : %s"
+#, c-format
+msgid "Invalid region nr in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬ÎÞЧµÄÇøÓòºÅ: %s"
 
 #, c-format
-#~ msgid "Unrecognized flags in %s line %d: %s"
-#~ msgstr ""
+msgid "Unrecognized flags in %s line %d: %s"
+msgstr "%s µÚ %d ÐУ¬²»¿Éʶ±ðµÄ±êÖ¾: %s"
 
 #, c-format
-#~ msgid "Ignored %d words with non-ASCII characters"
-#~ msgstr ""
+msgid "Ignored %d words with non-ASCII characters"
+msgstr "ºöÂÔÁ˺¬ÓÐ·Ç ASCII ×Ö·ûµÄ %d ¸öµ¥´Ê"
 
 #, c-format
-#~ msgid "Compressed %d of %d nodes; %d (%d%%) remaining"
-#~ msgstr ""
+msgid "Compressed %d of %d nodes; %d (%d%%) remaining"
+msgstr "ѹËõÁË %d/%d ¸ö½Úµã£»Ê£Óà %d (%d%%)"
 
-#~ msgid "Reading back spell file..."
-#~ msgstr ""
+msgid "Reading back spell file..."
+msgstr "¶ÁȡƴдÎļþ¡­¡­"
 
 #.
 #. * Go through the trie of good words, soundfold each word and add it to
 #. * the soundfold trie.
 #.
-#~ msgid "Performing soundfolding..."
-#~ msgstr ""
+msgid "Performing soundfolding..."
+msgstr "ÕýÔÚ soundfolding¡­¡­"
 
 #, c-format
-#~ msgid "Number of words after soundfolding: %ld"
-#~ msgstr ""
+msgid "Number of words after soundfolding: %ld"
+msgstr "soundfolding ºóµÄµ¥´ÊÊý: %ld"
 
 #, c-format
-#~ msgid "Total number of words: %d"
-#~ msgstr ""
+msgid "Total number of words: %d"
+msgstr "µ¥´Ê×ÜÊý: %d"
 
-#, fuzzy, c-format
-#~ msgid "Writing suggestion file %s ..."
-#~ msgstr "дÈë viminfo Îļþ \"%s\" ÖÐ"
+#, c-format
+msgid "Writing suggestion file %s ..."
+msgstr "дÈ뽨ÒéÎļþ %s ¡­¡­"
 
 #, c-format
-#~ msgid "Estimated runtime memory use: %d bytes"
-#~ msgstr ""
+msgid "Estimated runtime memory use: %d bytes"
+msgstr "¹À¼ÆÔËÐÐʱÄÚ´æÓÃÁ¿: %d ×Ö½Ú"
 
-#~ msgid "E751: Output file name must not have region name"
-#~ msgstr ""
+msgid "E751: Output file name must not have region name"
+msgstr "E751: Êä³öÎļþÃû²»Äܺ¬ÓÐÇøÓòÃû"
 
-#~ msgid "E754: Only up to 8 regions supported"
-#~ msgstr ""
+msgid "E754: Only up to 8 regions supported"
+msgstr "E754: ×î¶àÖ»Ö§³Ö 8 ¸öÇøÓò"
 
-#, fuzzy, c-format
-#~ msgid "E755: Invalid region in %s"
-#~ msgstr "E15: ²»ÕýÈ·µÄ±í´ïʽ: %s"
+#, c-format
+msgid "E755: Invalid region in %s"
+msgstr "E755: %s ³öÏÖÎÞЧµÄ·¶Î§"
 
-#~ msgid "Warning: both compounding and NOBREAK specified"
-#~ msgstr ""
+msgid "Warning: both compounding and NOBREAK specified"
+msgstr "¾¯¸æ: ͬʱָ¶¨ÁË compounding ºÍ NOBREAK"
 
-#, fuzzy, c-format
-#~ msgid "Writing spell file %s ..."
-#~ msgstr "дÈë viminfo Îļþ \"%s\" ÖÐ"
+#, c-format
+msgid "Writing spell file %s ..."
+msgstr "дÈëÆ´Ð´Îļþ %s ¡­¡­"
 
-#, fuzzy
-#~ msgid "Done!"
-#~ msgstr "ÏòÏÂ"
+msgid "Done!"
+msgstr "Íê³É£¡"
 
 #, c-format
-#~ msgid "E765: 'spellfile' does not have %ld entries"
-#~ msgstr ""
+msgid "E765: 'spellfile' does not have %ld entries"
+msgstr "E765: 'spellfile' ûÓÐ %ld Ïî"
 
 #, c-format
-#~ msgid "Word removed from %s"
-#~ msgstr ""
+msgid "Word removed from %s"
+msgstr "´Ó %s ÖÐɾ³ýÁ˵¥´Ê"
 
 #, c-format
-#~ msgid "Word added to %s"
-#~ msgstr ""
+msgid "Word added to %s"
+msgstr "Ïò %s ÖÐÌí¼ÓÁ˵¥´Ê"
 
-#~ msgid "E763: Word characters differ between spell files"
-#~ msgstr ""
+msgid "E763: Word characters differ between spell files"
+msgstr "E763: ƴдÎļþÖ®¼äµÄ×Ö·û²»Ïàͬ"
 
-#~ msgid "Sorry, no suggestions"
-#~ msgstr ""
+msgid "Sorry, no suggestions"
+msgstr "±§Ç¸£¬Ã»Óн¨Òé"
 
 #, c-format
-#~ msgid "Sorry, only %ld suggestions"
-#~ msgstr ""
+msgid "Sorry, only %ld suggestions"
+msgstr "±§Ç¸£¬Ö»ÓÐ %ld Ìõ½¨Òé"
 
 #. avoid more prompt
-#, fuzzy, c-format
-#~ msgid "Change \"%.*s\" to:"
-#~ msgstr "½«¸Ä±ä±£´æµ½ \"%.*s\"?"
+#, c-format
+msgid "Change \"%.*s\" to:"
+msgstr "½« \"%.*s\" ¸ÄΪ£º"
 
 #, c-format
-#~ msgid " < \"%.*s\""
-#~ msgstr ""
+msgid " < \"%.*s\""
+msgstr " < \"%.*s\""
 
-#, fuzzy
-#~ msgid "E752: No previous spell replacement"
-#~ msgstr "E35: ûÓÐǰһ¸ö²éÕÒÃüÁî"
+msgid "E752: No previous spell replacement"
+msgstr "E752: ֮ǰûÓÐÆ´Ð´Ìæ»»"
 
-#, fuzzy, c-format
-#~ msgid "E753: Not found: %s"
-#~ msgstr "E334: [²Ëµ¥] ÕÒ²»µ½ %s"
+#, c-format
+msgid "E753: Not found: %s"
+msgstr "E753: ÕÒ²»µ½: %s"
 
-#, fuzzy, c-format
-#~ msgid "E778: This does not look like a .sug file: %s"
-#~ msgstr "E307: %s ¿´ÆðÀ´²»ÏñÊÇ Vim ½»»»Îļþ"
+#, c-format
+msgid "E778: This does not look like a .sug file: %s"
+msgstr "E778: ¿´ÆðÀ´²»ÏñÊÇ .sug Îļþ: %s"
 
 #, c-format
 #~ msgid "E779: Old .sug file, needs to be updated: %s"
@@ -5056,8 +5068,8 @@ msgid "E397: Filename required"
 msgstr "E397: ÐèÒªÎļþÃû³Æ"
 
 #, c-format
-msgid "E789: Missing ']': %s"
-msgstr "E789: ȱÉÙ ']': %s"
+msgid "E747: Missing ']': %s"
+msgstr "E747: ȱÉÙ ']': %s"
 
 #, c-format
 msgid "E398: Missing '=': %s"
@@ -5109,8 +5121,8 @@ msgstr "E409: 
 msgid "E410: Invalid :syntax subcommand: %s"
 msgstr "E410: ²»ÕýÈ·µÄ :syntax ×ÓÃüÁî: %s"
 
-#~ msgid "E679: recursive loop loading syncolor.vim"
-#~ msgstr ""
+msgid "E679: recursive loop loading syncolor.vim"
+msgstr "E679: ¼ÓÔØ syncolor.vim ʱ³öÏÖǶÌ×Ñ­»·"
 
 #, c-format
 msgid "E411: highlight group not found: %s"
@@ -5164,12 +5176,11 @@ msgstr "E423: 
 msgid "E424: Too many different highlighting attributes in use"
 msgstr "E424: ʹÓÃÁËÌ«¶à²»Í¬µÄ¸ßÁÁ¶ÈÊôÐÔ"
 
-#~ msgid "E669: Unprintable character in group name"
-#~ msgstr ""
+msgid "E669: Unprintable character in group name"
+msgstr "E669: ×éÃûÖдæÔÚ²»¿ÉÏÔʾ×Ö·û"
 
-#, fuzzy
-#~ msgid "W18: Invalid character in group name"
-#~ msgstr "E182: ÃüÁîÃû³Æ²»ÕýÈ·"
+msgid "W18: Invalid character in group name"
+msgstr "W18: ×éÃûÖк¬ÓÐÎÞЧ×Ö·û"
 
 msgid "E555: at bottom of tag stack"
 msgstr "E555: ÒÑÔÚ tag ¶ÑÕ»µ×²¿"
@@ -5648,6 +5659,9 @@ msgstr "
 msgid "type  :help windows95<Enter>  for info on this"
 msgstr "ÊäÈë  :help windows95<Enter>  ²é¿´Ïà¹ØËµÃ÷    "
 
+msgid "Already only one window"
+msgstr "ÒѾ­Ö»Ê£Ò»¸ö´°¿ÚÁË"
+
 msgid "E441: There is no preview window"
 msgstr "E441: ûÓÐÔ¤ÀÀ´°¿Ú"
 
@@ -5660,9 +5674,6 @@ msgstr "E443: 
 msgid "E444: Cannot close last window"
 msgstr "E444: ²»ÄܹرÕ×îºóÒ»¸ö´°¿Ú"
 
-msgid "Already only one window"
-msgstr "ÒѾ­Ö»Ê£Ò»¸ö´°¿ÚÁË"
-
 msgid "E445: Other window contains changes"
 msgstr "E445: ÆäËü´°¿ÚÓиıäµÄÄÚÈÝ"
 
@@ -6050,6 +6061,9 @@ msgstr "
 msgid "search hit BOTTOM, continuing at TOP"
 msgstr "ÒѲéÕÒµ½Îļþ½á⣬ÔÙ´Ó¿ªÍ·¼ÌÐø²éÕÒ"
 
+#~ msgid "Affix flags ignored when PFXPOSTPONE used in %s line %d: %s"
+#~ msgstr "%s µÚ %d ÐУ¬Ê¹Óà PFXPOSTPONE ʱ¸½¼Ó±êÖ¾±»ºöÂÔ: %s"
+
 #~ msgid "[No file]"
 #~ msgstr "[δÃüÃû]"
 
diff --git a/src/proto/gui.pro b/src/proto/gui.pro
index 7105a6f8345f97c9f2c9b9c5254802f0139fb051..322dc795579c6a9a85b470ba0891f6dd03005831 100644
--- a/src/proto/gui.pro
+++ b/src/proto/gui.pro
@@ -1,65 +1,65 @@
 /* gui.c */
-extern void gui_start __ARGS((void));
-extern void gui_prepare __ARGS((int *argc, char **argv));
-extern int gui_init_check __ARGS((void));
-extern void gui_init __ARGS((void));
-extern void gui_exit __ARGS((int rc));
-extern void gui_shell_closed __ARGS((void));
-extern int gui_init_font __ARGS((char_u *font_list, int fontset));
-extern int gui_get_wide_font __ARGS((void));
-extern void gui_set_cursor __ARGS((int row, int col));
-extern void gui_update_cursor __ARGS((int force, int clear_selection));
-extern void gui_position_menu __ARGS((void));
-extern int gui_get_base_width __ARGS((void));
-extern int gui_get_base_height __ARGS((void));
-extern void gui_resize_shell __ARGS((int pixel_width, int pixel_height));
-extern void gui_may_resize_shell __ARGS((void));
-extern int gui_get_shellsize __ARGS((void));
-extern void gui_set_shellsize __ARGS((int mustset, int fit_to_display, int direction));
-extern void gui_new_shellsize __ARGS((void));
-extern void gui_reset_scroll_region __ARGS((void));
-extern void gui_start_highlight __ARGS((int mask));
-extern void gui_stop_highlight __ARGS((int mask));
-extern void gui_clear_block __ARGS((int row1, int col1, int row2, int col2));
-extern void gui_update_cursor_later __ARGS((void));
-extern void gui_write __ARGS((char_u *s, int len));
-extern void gui_dont_update_cursor __ARGS((void));
-extern void gui_can_update_cursor __ARGS((void));
-extern int gui_outstr_nowrap __ARGS((char_u *s, int len, int flags, guicolor_T fg, guicolor_T bg, int back));
-extern void gui_undraw_cursor __ARGS((void));
-extern void gui_redraw __ARGS((int x, int y, int w, int h));
-extern int gui_redraw_block __ARGS((int row1, int col1, int row2, int col2, int flags));
-extern int gui_wait_for_chars __ARGS((long wtime));
-extern void gui_send_mouse_event __ARGS((int button, int x, int y, int repeated_click, int_u modifiers));
-extern int gui_xy2colrow __ARGS((int x, int y, int *colp));
-extern void gui_menu_cb __ARGS((vimmenu_T *menu));
-extern void gui_init_which_components __ARGS((char_u *oldval));
-extern int gui_use_tabline __ARGS((void));
-extern void gui_update_tabline __ARGS((void));
-extern void get_tabline_label __ARGS((tabpage_T *tp));
-extern int send_tabline_event __ARGS((int nr));
-extern void send_tabline_menu_event __ARGS((int tabidx, int event));
-extern void gui_remove_scrollbars __ARGS((void));
-extern void gui_create_scrollbar __ARGS((scrollbar_T *sb, int type, win_T *wp));
-extern scrollbar_T *gui_find_scrollbar __ARGS((long ident));
-extern void gui_drag_scrollbar __ARGS((scrollbar_T *sb, long value, int still_dragging));
-extern void gui_update_scrollbars __ARGS((int force));
-extern int gui_do_scroll __ARGS((void));
-extern int gui_do_horiz_scroll __ARGS((void));
-extern void gui_check_colors __ARGS((void));
-extern guicolor_T gui_get_color __ARGS((char_u *name));
-extern int gui_get_lightness __ARGS((guicolor_T pixel));
-extern void gui_new_scrollbar_colors __ARGS((void));
-extern void gui_focus_change __ARGS((int in_focus));
-extern void gui_mouse_moved __ARGS((int x, int y));
-extern void gui_mouse_correct __ARGS((void));
-extern void ex_gui __ARGS((exarg_T *eap));
-extern int gui_find_bitmap __ARGS((char_u *name, char_u *buffer, char *ext));
-extern void gui_find_iconfile __ARGS((char_u *name, char_u *buffer, char *ext));
-extern void display_errors __ARGS((void));
-extern int no_console_input __ARGS((void));
-extern void gui_update_screen __ARGS((void));
-extern char_u *get_find_dialog_text __ARGS((char_u *arg, int *wwordp, int *mcasep));
-extern int gui_do_findrepl __ARGS((int flags, char_u *find_text, char_u *repl_text, int down));
-extern void gui_handle_drop __ARGS((int x, int y, int_u modifiers, char_u **fnames, int count));
+void gui_start __ARGS((void));
+void gui_prepare __ARGS((int *argc, char **argv));
+int gui_init_check __ARGS((void));
+void gui_init __ARGS((void));
+void gui_exit __ARGS((int rc));
+void gui_shell_closed __ARGS((void));
+int gui_init_font __ARGS((char_u *font_list, int fontset));
+int gui_get_wide_font __ARGS((void));
+void gui_set_cursor __ARGS((int row, int col));
+void gui_update_cursor __ARGS((int force, int clear_selection));
+void gui_position_menu __ARGS((void));
+int gui_get_base_width __ARGS((void));
+int gui_get_base_height __ARGS((void));
+void gui_resize_shell __ARGS((int pixel_width, int pixel_height));
+void gui_may_resize_shell __ARGS((void));
+int gui_get_shellsize __ARGS((void));
+void gui_set_shellsize __ARGS((int mustset, int fit_to_display, int direction));
+void gui_new_shellsize __ARGS((void));
+void gui_reset_scroll_region __ARGS((void));
+void gui_start_highlight __ARGS((int mask));
+void gui_stop_highlight __ARGS((int mask));
+void gui_clear_block __ARGS((int row1, int col1, int row2, int col2));
+void gui_update_cursor_later __ARGS((void));
+void gui_write __ARGS((char_u *s, int len));
+void gui_dont_update_cursor __ARGS((void));
+void gui_can_update_cursor __ARGS((void));
+int gui_outstr_nowrap __ARGS((char_u *s, int len, int flags, guicolor_T fg, guicolor_T bg, int back));
+void gui_undraw_cursor __ARGS((void));
+void gui_redraw __ARGS((int x, int y, int w, int h));
+int gui_redraw_block __ARGS((int row1, int col1, int row2, int col2, int flags));
+int gui_wait_for_chars __ARGS((long wtime));
+void gui_send_mouse_event __ARGS((int button, int x, int y, int repeated_click, int_u modifiers));
+int gui_xy2colrow __ARGS((int x, int y, int *colp));
+void gui_menu_cb __ARGS((vimmenu_T *menu));
+void gui_init_which_components __ARGS((char_u *oldval));
+int gui_use_tabline __ARGS((void));
+void gui_update_tabline __ARGS((void));
+void get_tabline_label __ARGS((tabpage_T *tp, int tooltip));
+int send_tabline_event __ARGS((int nr));
+void send_tabline_menu_event __ARGS((int tabidx, int event));
+void gui_remove_scrollbars __ARGS((void));
+void gui_create_scrollbar __ARGS((scrollbar_T *sb, int type, win_T *wp));
+scrollbar_T *gui_find_scrollbar __ARGS((long ident));
+void gui_drag_scrollbar __ARGS((scrollbar_T *sb, long value, int still_dragging));
+void gui_update_scrollbars __ARGS((int force));
+int gui_do_scroll __ARGS((void));
+int gui_do_horiz_scroll __ARGS((void));
+void gui_check_colors __ARGS((void));
+guicolor_T gui_get_color __ARGS((char_u *name));
+int gui_get_lightness __ARGS((guicolor_T pixel));
+void gui_new_scrollbar_colors __ARGS((void));
+void gui_focus_change __ARGS((int in_focus));
+void gui_mouse_moved __ARGS((int x, int y));
+void gui_mouse_correct __ARGS((void));
+void ex_gui __ARGS((exarg_T *eap));
+int gui_find_bitmap __ARGS((char_u *name, char_u *buffer, char *ext));
+void gui_find_iconfile __ARGS((char_u *name, char_u *buffer, char *ext));
+void display_errors __ARGS((void));
+int no_console_input __ARGS((void));
+void gui_update_screen __ARGS((void));
+char_u *get_find_dialog_text __ARGS((char_u *arg, int *wwordp, int *mcasep));
+int gui_do_findrepl __ARGS((int flags, char_u *find_text, char_u *repl_text, int down));
+void gui_handle_drop __ARGS((int x, int y, int_u modifiers, char_u **fnames, int count));
 /* vim: set ft=c : */
diff --git a/src/undo.c b/src/undo.c
index f9e735aaa70b99114399dba236f871925b603ad7..fd1bcc79c4ff1ffd8de6e00ea21f2d1bf43287a4 100644
--- a/src/undo.c
+++ b/src/undo.c
@@ -1405,10 +1405,15 @@ u_add_time(buf, buflen, tt)
 ex_undojoin(eap)
     exarg_T *eap;
 {
-    if (!curbuf->b_u_synced)
-	return;		    /* already unsynced */
     if (curbuf->b_u_newhead == NULL)
 	return;		    /* nothing changed before */
+    if (curbuf->b_u_curhead != NULL)
+    {
+	EMSG(_("E790: undojoin is not allowed after undo"));
+	return;
+    }
+    if (!curbuf->b_u_synced)
+	return;		    /* already unsynced */
     if (p_ul < 0)
 	return;		    /* no entries, nothing to do */
     else
diff --git a/src/version.h b/src/version.h
index d2a14fe83a9070fe0a19006db6c12ac73cbe9ea2..bb77f87e264221e9b2a19ee815543b6738dbd443 100644
--- a/src/version.h
+++ b/src/version.h
@@ -35,6 +35,6 @@
  */
 #define VIM_VERSION_NODOT	"vim70e"
 #define VIM_VERSION_SHORT	"7.0e"
-#define VIM_VERSION_MEDIUM	"7.0e04 BETA"
-#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.0e04 BETA (2006 Apr 20)"
-#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0e04 BETA (2006 Apr 20, compiled "
+#define VIM_VERSION_MEDIUM	"7.0e05 BETA"
+#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.0e05 BETA (2006 Apr 21)"
+#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0e05 BETA (2006 Apr 21, compiled "
diff --git a/src/window.c b/src/window.c
index dabfe2d5aae1025b56c33a802bdec3533a5a85fe..d9d5bca23999f0a7a235f88dd047f4a518744f1e 100644
--- a/src/window.c
+++ b/src/window.c
@@ -621,7 +621,9 @@ wingotofile:
 
 #ifdef FEAT_SEARCHPATH
 		    case 'f':	    /* CTRL-W gf: "gf" in a new tab page */
+		    case 'F':	    /* CTRL-W gF: "gF" in a new tab page */
 			cmdmod.tab = TRUE;
+			nchar = xchar;
 			goto wingotofile;
 #endif
 		    default: