changeset 1623:53938adac247

updated for version 7.2a
author vimboss
date Tue, 24 Jun 2008 22:14:38 +0000
parents 149d8b46404c
children 18ee39301b82
files runtime/doc/hebrew.txt runtime/doc/repeat.txt runtime/doc/starting.txt runtime/doc/usr_23.txt runtime/ftplugin/javascript.vim runtime/ftplugin/man.vim runtime/macros/matchit.vim runtime/plugin/rrhelper.vim runtime/syntax/dosbatch.vim runtime/syntax/gitconfig.vim runtime/syntax/haste.vim runtime/tutor/runtime/indent.vim runtime/tutor/runtime/vim16x16.png runtime/tutor/tutor.eo.utf-8 src/po/pl.po src/po/zh_CN.po src/term.c
diffstat 17 files changed, 1286 insertions(+), 92 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/doc/hebrew.txt
+++ b/runtime/doc/hebrew.txt
@@ -1,4 +1,4 @@
-*hebrew.txt*    For Vim version 7.1.  Last change: 2003 May 11
+*hebrew.txt*    For Vim version 7.2a.  Last change: 2007 Jun 14
 
 
 	   VIM REFERENCE MANUAL    by Ron Aaron (and Avner Lottem)
@@ -7,11 +7,8 @@
 Hebrew Language support (options & mapping) for Vim		*hebrew*
 
 The supporting 'rightleft' functionality was originally created by Avner
-Lottem:
-   E-mail: alottem@iil.intel.com
-   Phone:  +972-4-8307322
-
-Ron Aaron <ron@ronware.org> is currently helping support these features.
+Lottem. <alottem at gmail dot com>  Ron Aaron <ron at ronware dot org> is
+currently helping support these features.
 
 {Vi does not have any of these commands}
 
--- a/runtime/doc/repeat.txt
+++ b/runtime/doc/repeat.txt
@@ -1,4 +1,4 @@
-*repeat.txt*    For Vim version 7.1.  Last change: 2007 Jan 07
+*repeat.txt*    For Vim version 7.2a.  Last change: 2007 Aug 12
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -89,10 +89,11 @@ This replaces all occurrences of "pat" w
 	:%s/pat/PAT/g
 Which is two characters shorter!
 
-A special case is using ":visual" as a command.  This will move to a matching
-line, go to Normal mode to let you execute commands there until you use |Q| to
-return to Ex mode.  This will be repeated for each matching line.  While doing
-this you cannot use ":global".
+When using "global" in Ex mode, a special case is using ":visual" as a
+command.  This will move to a matching line, go to Normal mode to let you
+execute commands there until you use |Q| to return to Ex mode.  This will be
+repeated for each matching line.  While doing this you cannot use ":global".
+To abort this type CTRL-C twice.
 
 ==============================================================================
 3. Complex repeats					*complex-repeat*
--- a/runtime/doc/starting.txt
+++ b/runtime/doc/starting.txt
@@ -1,4 +1,4 @@
-*starting.txt*  For Vim version 7.1.  Last change: 2007 Aug 14
+*starting.txt*  For Vim version 7.2a.  Last change: 2008 Jun 21
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1386,10 +1386,14 @@ using this command: >
 
 	vim -c "normal '0"
 
-In a shell you could make an alias for it: >
+In a csh compatible shell you could make an alias for it: >
 
 	alias lvim vim -c '"'normal "'"0'"'
 
+For a bash-like shell: >
+
+	alias lvim='vim -c "normal '\''0"'
+
 Use the "r" flag in 'viminfo' to specify for which files no marks should be
 remembered.
 
--- a/runtime/doc/usr_23.txt
+++ b/runtime/doc/usr_23.txt
@@ -1,4 +1,4 @@
-*usr_23.txt*	For Vim version 7.1.  Last change: 2006 Apr 24
+*usr_23.txt*	For Vim version 7.2a.  Last change: 2006 Apr 24
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
--- a/runtime/ftplugin/javascript.vim
+++ b/runtime/ftplugin/javascript.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:	Javascript
 " Maintainer:	Doug Kearns <dougkearns@gmail.com>
-" Last Change:  2007 Feb 21
+" Last Change:  2008 Jun 15
 " URL:		http://gus.gscit.monash.edu.au/~djkea2/vim/ftplugin/javascript.vim
 
 if exists("b:did_ftplugin")
@@ -28,7 +28,7 @@ setlocal commentstring=//%s
 
 " Change the :browse e filter to primarily show Java-related files.
 if has("gui_win32")
-    let  b:browsefilter="Javascript Files (*.js)\t*.js\n"
+    let  b:browsefilter="Javascript Files (*.js)\t*.js\n" .
 		\	"All Files (*.*)\t*.*\n"
 endif
        
--- a/runtime/ftplugin/man.vim
+++ b/runtime/ftplugin/man.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:	man
 " Maintainer:	Nam SungHyun <namsh@kldp.org>
-" Last Change:	2006 Dec 04
+" Last Change:	2007 Nov 30
 
 " To make the ":Man" command available before editing a manual page, source
 " this script from your startup vimrc file.
@@ -41,13 +41,16 @@ if !exists("s:man_tag_depth")
 
 let s:man_tag_depth = 0
 
-if !has("win32") && $OSTYPE !~ 'cygwin\|linux' && system('uname -s') =~ "SunOS" && system('uname -r') =~ "^5"
-  let s:man_sect_arg = "-s"
-  let s:man_find_arg = "-l"
-else
-  let s:man_sect_arg = ""
-  let s:man_find_arg = "-w"
-endif
+let s:man_sect_arg = ""
+let s:man_find_arg = "-w"
+try
+  if !has("win32") && $OSTYPE !~ 'cygwin\|linux' && system('uname -s') =~ "SunOS" && system('uname -r') =~ "^5"
+    let s:man_sect_arg = "-s"
+    let s:man_find_arg = "-l"
+  endif
+catch /E145:/
+  " Ignore the error in restricted mode
+endtry
 
 func <SID>PreGetPage(cnt)
   if a:cnt == 0
--- a/runtime/macros/matchit.vim
+++ b/runtime/macros/matchit.vim
@@ -1,7 +1,7 @@
 "  matchit.vim: (global plugin) Extended "%" matching
-"  Last Change: Mon May 15 10:00 PM 2006 EDT
+"  Last Change: Fri Jan 25 10:00 AM 2008 EST
 "  Maintainer:  Benji Fisher PhD   <benji@member.AMS.org>
-"  Version:     1.11, for Vim 6.3+
+"  Version:     1.13.2, for Vim 6.3+
 "  URL:		http://www.vim.org/script.php?script_id=39
 
 " Documentation:
@@ -42,7 +42,7 @@ if exists("loaded_matchit") || &cp
 endif
 let loaded_matchit = 1
 let s:last_mps = ""
-let s:last_words = ""
+let s:last_words = ":"
 
 let s:save_cpo = &cpo
 set cpo&vim
@@ -100,13 +100,10 @@ function! s:Match_wrapper(word, forward,
   " In s:CleanUp(), we may need to check whether the cursor moved forward.
   let startline = line(".")
   let startcol = col(".")
-  " Use default behavior if called with a count or if no patterns are defined.
+  " Use default behavior if called with a count.
   if v:count
     exe "normal! " . v:count . "%"
     return s:CleanUp(restore_options, a:mode, startline, startcol)
-  elseif !exists("b:match_words") || b:match_words == ""
-    silent! normal! %
-    return s:CleanUp(restore_options, a:mode, startline, startcol)
   end
 
   " First step:  if not already done, set the script variables
@@ -114,8 +111,10 @@ function! s:Match_wrapper(word, forward,
   "   s:pat	parsed version of b:match_words
   "   s:all	regexp based on s:pat and the default groups
   "
-  " Allow b:match_words = "GetVimMatchWords()" .
-  if b:match_words =~ ":"
+  if !exists("b:match_words") || b:match_words == ""
+    let match_words = ""
+    " Allow b:match_words = "GetVimMatchWords()" .
+  elseif b:match_words =~ ":"
     let match_words = b:match_words
   else
     execute "let match_words =" b:match_words
@@ -125,13 +124,6 @@ function! s:Match_wrapper(word, forward,
     \ exists("b:match_debug")
     let s:last_words = match_words
     let s:last_mps = &mps
-    if match_words !~ s:notslash . '\\\d'
-      let s:do_BR = 0
-      let s:pat = match_words
-    else
-      let s:do_BR = 1
-      let s:pat = s:ParseWords(match_words)
-    endif
     " The next several lines were here before
     " BF started messing with this script.
     " quote the special chars in 'matchpairs', replace [,:] with \| and then
@@ -141,8 +133,15 @@ function! s:Match_wrapper(word, forward,
     let default = escape(&mps, '[$^.*~\\/?]') . (strlen(&mps) ? "," : "") .
       \ '\/\*:\*\/,#if\%(def\)\=:#else\>:#elif\>:#endif\>'
     " s:all = pattern with all the keywords
-    let s:all = s:pat . (strlen(s:pat) ? "," : "") . default
-    let s:all = substitute(s:all, s:notslash . '\zs[,:]\+', '\\|', 'g')
+    let match_words = match_words . (strlen(match_words) ? "," : "") . default
+    if match_words !~ s:notslash . '\\\d'
+      let s:do_BR = 0
+      let s:pat = match_words
+    else
+      let s:do_BR = 1
+      let s:pat = s:ParseWords(match_words)
+    endif
+    let s:all = substitute(s:pat, s:notslash . '\zs[,:]\+', '\\|', 'g')
     let s:all = '\%(' . s:all . '\)'
     " let s:all = '\%(' . substitute(s:all, '\\\ze[,:]', '', 'g') . '\)'
     if exists("b:match_debug")
@@ -172,16 +171,14 @@ function! s:Match_wrapper(word, forward,
   else	" Find the match that ends on or after the cursor and set curcol.
     let regexp = s:Wholematch(matchline, s:all, startcol-1)
     let curcol = match(matchline, regexp)
+    " If there is no match, give up.
+    if curcol == -1
+      return s:CleanUp(restore_options, a:mode, startline, startcol)
+    endif
     let endcol = matchend(matchline, regexp)
     let suf = strlen(matchline) - endcol
     let prefix = (curcol ? '^.*\%'  . (curcol + 1) . 'c\%(' : '^\%(')
     let suffix = (suf ? '\)\%' . (endcol + 1) . 'c.*$'  : '\)$')
-    " If the match comes from the defaults, bail out.
-    if matchline !~ prefix .
-      \ substitute(s:pat, s:notslash.'\zs[,:]\+', '\\|', 'g') . suffix
-      silent! norm! %
-      return s:CleanUp(restore_options, a:mode, startline, startcol)
-    endif
   endif
   if exists("b:match_debug")
     let b:match_match = matchstr(matchline, regexp)
@@ -401,6 +398,7 @@ fun! s:ParseWords(groups)
     endwhile " Now, tail has been used up.
     let parsed = parsed . ","
   endwhile " groups =~ '[^,:]'
+  let parsed = substitute(parsed, ',$', '', '')
   return parsed
 endfun
 
@@ -651,7 +649,7 @@ fun! s:MultiMatch(spflag, mode)
   "   s:all	regexp based on s:pat and the default groups
   " This part is copied and slightly modified from s:Match_wrapper().
   let default = escape(&mps, '[$^.*~\\/?]') . (strlen(&mps) ? "," : "") .
-    \ '\/\*:\*\/,#if\%(def\)\=:$else\>:#elif\>:#endif\>'
+    \ '\/\*:\*\/,#if\%(def\)\=:#else\>:#elif\>:#endif\>'
   " Allow b:match_words = "GetVimMatchWords()" .
   if b:match_words =~ ":"
     let match_words = b:match_words
@@ -682,10 +680,12 @@ fun! s:MultiMatch(spflag, mode)
   " - maybe even more functionality should be split off
   " - into separate functions!
   let cdefault = (s:pat =~ '[^,]$' ? "," : "") . default
-  let open =  substitute(s:pat . cdefault, ':[^,]*,', '\\),\\(', 'g')
-  let open =  '\(' . substitute(open, ':[^,]*$', '\\)', '')
-  let close = substitute(s:pat . cdefault, ',[^,]*:', '\\),\\(', 'g')
-  let close = substitute(close, '[^,]*:', '\\(', '') . '\)'
+  let open =  substitute(s:pat . cdefault,
+	\ s:notslash . '\zs:.\{-}' . s:notslash . ',', '\\),\\(', 'g')
+  let open =  '\(' . substitute(open, s:notslash . '\zs:.*$', '\\)', '')
+  let close = substitute(s:pat . cdefault,
+	\ s:notslash . '\zs,.\{-}' . s:notslash . ':', '\\),\\(', 'g')
+  let close = substitute(close, '^.\{-}' . s:notslash . ':', '\\(', '') . '\)'
   if exists("b:match_skip")
     let skip = b:match_skip
   elseif exists("b:match_comment") " backwards compatibility and testing!
--- a/runtime/plugin/rrhelper.vim
+++ b/runtime/plugin/rrhelper.vim
@@ -1,6 +1,6 @@
 " Vim plugin with helper function(s) for --remote-wait
 " Maintainer: Flemming Madsen <fma@cci.dk>
-" Last Change: 2004 May 30
+" Last Change: 2008 May 29
 
 " Has this already been loaded?
 if exists("loaded_rrhelper")
@@ -27,7 +27,12 @@ if has("clientserver")
 
       " Path separators are always forward slashes for the autocommand pattern.
       " Escape special characters with a backslash.
-      let f = escape(substitute(argv(cnt), '\\', '/', "g"), ' *,?[{')
+      let f = substitute(argv(cnt), '\\', '/', "g")
+      if exists('*fnameescape')
+	let f = fnameescape(f)
+      else
+	let f = escape(f, " \t\n*?[{`$\\%#'\"|!<")
+      endif
       execute "augroup ".uniqueGroup
       execute "autocmd ".uniqueGroup." BufUnload ". f ."  call DoRemoteReply('".id."', '".cnt."', '".uniqueGroup."', '". f ."')"
       let cnt = cnt + 1
--- a/runtime/syntax/dosbatch.vim
+++ b/runtime/syntax/dosbatch.vim
@@ -2,7 +2,7 @@
 " Language:	MSDOS batch file (with NT command extensions)
 " Maintainer:	Mike Williams <mrw@eandem.co.uk>
 " Filenames:    *.bat
-" Last Change:	16th March 2004
+" Last Change:	10th May 2008
 " Web Page:     http://www.eandem.co.uk/mrw/vim
 "
 " Options Flags:
@@ -43,8 +43,8 @@ syn match dosbatchOperator      "\s\(&\|
 syn match dosbatchIfOperator    "if\s\+\(\(not\)\=\s\+\)\=\(exist\|defined\|errorlevel\|cmdextversion\)\="lc=2
 
 " String - using "'s is a convenience rather than a requirement outside of FOR
-syn match dosbatchString	"\"[^"]*\"" contains=dosbatchVariable,dosBatchArgument,@dosbatchNumber
-syn match dosbatchString	"\<echo[^)>|]*"lc=4 contains=dosbatchVariable,dosbatchArgument,@dosbatchNumber
+syn match dosbatchString	"\"[^"]*\"" contains=dosbatchVariable,dosBatchArgument,dosbatchSpecialChar,@dosbatchNumber,@Spell
+syn match dosbatchString	"\<echo\([^)>|]\|\^\@<=[)>|]\)*"lc=4 contains=dosbatchVariable,dosbatchArgument,dosbatchSpecialChar,@dosbatchNumber,@Spell
 syn match dosbatchEchoOperator  "\<echo\s\+\(on\|off\)\s*$"lc=4
 
 " For embedded commands
@@ -91,12 +91,12 @@ syn match dosbatchLabel		"\<goto\s\+\h\w
 syn match dosbatchLabel		":\h\w*\>"
 
 " Comments - usual rem but also two colons as first non-space is an idiom
-syn match dosbatchComment	"^rem\($\|\s.*$\)"lc=3 contains=dosbatchTodo,@dosbatchNumber,dosbatchVariable,dosbatchArgument
-syn match dosbatchComment	"\srem\($\|\s.*$\)"lc=4 contains=dosbatchTodo,@dosbatchNumber,dosbatchVariable,dosbatchArgument
-syn match dosbatchComment	"\s*:\s*:.*$" contains=dosbatchTodo,@dosbatchNumber,dosbatchVariable,dosbatchArgument
+syn match dosbatchComment	"^rem\($\|\s.*$\)"lc=3 contains=dosbatchTodo,dosbatchSpecialChar,@dosbatchNumber,dosbatchVariable,dosbatchArgument,@Spell
+syn match dosbatchComment	"\srem\($\|\s.*$\)"lc=4 contains=dosbatchTodo,dosbatchSpecialChar,@dosbatchNumber,dosbatchVariable,dosbatchArgument,@Spell
+syn match dosbatchComment	"\s*:\s*:.*$" contains=dosbatchTodo,dosbatchSpecialChar,@dosbatchNumber,dosbatchVariable,dosbatchArgument,@Spell
 
 " Comments in ()'s - still to handle spaces before rem
-syn match dosbatchComment	"(rem[^)]*"lc=4 contains=dosbatchTodo,@dosbatchNumber,dosbatchVariable,dosbatchArgument
+syn match dosbatchComment	"(rem\([^)]\|\^\@<=)\)*"lc=4 contains=dosbatchTodo,@dosbatchNumber,dosbatchVariable,dosbatchArgument,@Spell
 
 syn keyword dosbatchImplicit    append assoc at attrib break cacls cd chcp chdir
 syn keyword dosbatchImplicit    chkdsk chkntfs cls cmd color comp compact convert copy
@@ -127,12 +127,12 @@ if version >= 508 || !exists("did_dosbat
   HiLink dosbatchConditional	Conditional
   HiLink dosbatchRepeat		Repeat
 
-  HiLink dosbatchOperator	Operator
-  HiLink dosbatchEchoOperator	dosbatchOperator
-  HiLink dosbatchIfOperator	dosbatchOperator
+  HiLink dosbatchOperator       Operator
+  HiLink dosbatchEchoOperator   dosbatchOperator
+  HiLink dosbatchIfOperator     dosbatchOperator
 
   HiLink dosbatchArgument	Identifier
-  HiLink dosbatchIdentifier	Identifier
+  HiLink dosbatchIdentifier     Identifier
   HiLink dosbatchVariable	dosbatchIdentifier
 
   HiLink dosbatchSpecialChar	SpecialChar
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/gitconfig.vim
@@ -0,0 +1,38 @@
+" Vim syntax file
+" Language:	git config file
+" Maintainer:	Tim Pope <vimNOSPAM@tpope.info>
+" Filenames:	gitconfig, .gitconfig, *.git/config
+" Last Change:	2008 Jun 04
+
+if exists("b:current_syntax")
+    finish
+endif
+
+setlocal iskeyword+=-
+setlocal iskeyword-=_
+syn case ignore
+syn sync minlines=10
+
+syn match   gitconfigComment	"[#;].*"
+syn match   gitconfigSection	"\%(^\s*\)\@<=\[[a-z0-9.-]\+\]"
+syn match   gitconfigSection	'\%(^\s*\)\@<=\[[a-z0-9.-]\+ \+\"\%([^\\"]\|\\.\)*"\]'
+syn match   gitconfigVariable	 "\%(^\s*\)\@<=\a\k*\%(\s*\%([=#;]\|$\)\)\@=" nextgroup=gitconfigAssignment skipwhite
+syn region  gitconfigAssignment  matchgroup=gitconfigNone start=+=\s*+ skip=+\\+ end=+\s*$+ contained contains=gitconfigBoolean,gitconfigNumber,gitConfigString,gitConfigEscape,gitConfigError,gitconfigComment keepend
+syn keyword gitconfigBoolean true false yes no contained
+syn match   gitconfigNumber  "\d\+" contained
+syn region  gitconfigString  matchgroup=gitconfigDelim start=+"+ skip=+\\+ end=+"+ matchgroup=gitconfigError end=+[^\\"]\%#\@!$+ contained contains=gitconfigEscape,gitconfigEscapeError
+syn match   gitconfigError  +\\.+	 contained
+syn match   gitconfigEscape +\\[\\"ntb]+ contained
+syn match   gitconfigEscape +\\$+	 contained
+
+hi def link gitconfigComment		Comment
+hi def link gitconfigSection		Keyword
+hi def link gitconfigVariable		Identifier
+hi def link gitconfigBoolean		Boolean
+hi def link gitconfigNumber		Number
+hi def link gitconfigString		String
+hi def link gitconfigDelim		Delimiter
+hi def link gitconfigEscape		Delimiter
+hi def link gitconfigError		Error
+
+let b:current_syntax = "gitconfig"
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/haste.vim
@@ -0,0 +1,150 @@
+" Vim syntax file
+" Language:	HASTE
+" Maintainer:	M. Tranchero - maurizio.tranchero?gmail.com
+" Credits:	some parts have been taken from vhdl, verilog, and C syntax
+"		files
+" version: 0.5
+
+" HASTE
+if exists("b:current_syntax")
+    finish
+endif
+" For version 5.x: Clear all syntax items
+" For version 6.x: Quit when a syntax file was already loaded
+if version < 600
+  syntax clear
+elseif exists("b:current_syntax")
+  finish
+endif
+
+" case is significant
+syn case match
+
+" HASTE keywords
+syn keyword hasteStatement act alias arb array begin bitvec 
+syn keyword hasteStatement bitwidth boolvec broad case
+syn keyword hasteStatement cast chan const dataprobe do edge
+syn keyword hasteStatement else end export false ff fi file
+syn keyword hasteStatement fit for forever func if import
+syn keyword hasteStatement inprobe is les main narb narrow
+syn keyword hasteStatement negedge od of or outprobe pas
+syn keyword hasteStatement posedge probe proc ram ramreg
+syn keyword hasteStatement repeat rom romreg sample sel si
+syn keyword hasteStatement sign sizeof skip stop then true
+syn keyword hasteStatement type until var wait wire
+syn keyword hasteFutureExt Z ffe partial 
+syn keyword hasteVerilog   buf reg while 
+
+" Special match for "if", "or", and "else" since "else if"
+" and other "else+if" combination shouldn't be highlighted.
+" The right keyword is "or" 
+syn match   hasteStatement	"\<\(if\|then\|else\|fi\)\>"
+syn match   hasteNone		"\<else\s\+if\>$"
+syn match   hasteNone		"\<else\s\+if\>\s"
+syn match   hasteNone		"\<elseif\>\s"
+syn match   hasteNone		"\<elsif\>\s"
+syn match   hasteStatement	"\<\(case\|is\|si\)\>"
+syn match   hasteStatement	"\<\(repeat\|until\)\>"
+syn match   hasteStatement	"\<\(forever\|do\|od\)\>"
+syn match   hasteStatement	"\<\(for\|do\|od\)\>"
+syn match   hasteStatement	"\<\(do\|or\|od\)\>"
+syn match   hasteStatement	"\<\(sel\|les\)\>"
+syn match   hasteError		"\<\d\+[_a-zA-Z]\+\>"
+
+" Predifined Haste types
+syn keyword hasteType bool
+
+" Values for standard Haste types
+" syn match hasteVector "\'[0L1HXWZU\-\?]\'"
+
+syn match  hasteVector "0b\"[01_]\+\""
+syn match  hasteVector "0x\"[0-9a-f_]\+\""
+syn match  hasteCharacter "'.'"
+syn region hasteString start=+"+  end=+"+
+" C pre-processor directives
+"syn region hasteIncluded	display contained start=+"+ skip=+\\\\\|\\"+ end=+"+
+syn match  hasteIncluded	display contained "<[^>]*>"
+syn match  hasteIncluded	display contained "<[^"]*>"
+syn match  hasteInclude		display "^\s*#include\>\s*["<]" contains=hasteIncluded
+syn region hasteDefine	start="^\s*\(%:\|#\)\s*\(define\|undef\)\>" skip="\\$" end="$" end="//"me=s-1 contains=ALLBUT,@hastePreProcGroup,@Spell
+syn region hasteDefine	start="^\s*\(%:\|#\)\s*\(ifndef\|ifdef\|endif\)\>" skip="\\$" end="$" end="//"me=s-1 contains=@Spell
+syn region hastePreCondit	start="^\s*\(%:\|#\)\s*\(if\|ifdef\|ifndef\|elif\)\>" skip="\\$" end="$" end="//"me=s-1 contains=hasteComment,hasteCppString,hasteCharacter,hasteCppParen,hasteParenError,hasteNumbers,hasteCommentError,hasteSpaceError
+syn region hastePreProc	start="^\s*\(%:\|#\)\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" keepend contains=ALLBUT,@hastePreProcGroup,@Spell
+syn cluster hastePreProcGroup	contains=hasteIncluded,hasteInclude,hasteDefine
+syn region hasteCppSkip	contained start="^\s*\(%:\|#\)\s*\(if\>\|ifdef\>\|ifndef\>\)" skip="\\$" end="^\s*\(%:\|#\)\s*endif\>" contains=hasteSpaceError,hasteCppSkip
+
+" floating numbers
+syn match hasteNumber "-\=\<\d\+\.\d\+\(E[+\-]\=\d\+\)\>"
+syn match hasteNumber "-\=\<\d\+\.\d\+\>"
+syn match hasteNumber "0*2#[01_]\+\.[01_]\+#\(E[+\-]\=\d\+\)\="
+syn match hasteNumber "0*16#[0-9a-f_]\+\.[0-9a-f_]\+#\(E[+\-]\=\d\+\)\="
+" integer numbers
+syn match hasteNumber "-\=\<\d\+\(E[+\-]\=\d\+\)\>"
+syn match hasteNumber "-\=\<\d\+\>"
+syn match hasteNumber "0*2#[01_]\+#\(E[+\-]\=\d\+\)\="
+syn match hasteNumber "0*16#[0-9a-f_]\+#\(E[+\-]\=\d\+\)\="
+" operators
+syn keyword hasteSeparators	& , . \| : 
+syn keyword hasteExecution	\|\| ; @
+syn keyword hasteOperator	:= ? !
+syn keyword hasteTypeConstr	"[" << >> .. "]" ~
+syn keyword hasteExprOp		< <= >= > = # <> + - * == ##
+syn keyword hasteMisc		( ) 0x 0b
+"
+syn match   hasteSeparators	"[&:\|,.]"
+syn match   hasteOperator	":="
+syn match   hasteOperator	"?"
+syn match   hasteOperator	"!"
+syn match   hasteExecution	"||"
+syn match   hasteExecution	";"
+syn match   hasteExecution	"@"
+syn match   hasteType		"\[\["
+syn match   hasteType		"\]\]"
+syn match   hasteType		"<<"
+syn match   hasteType		">>"
+syn match   hasteExprOp		"<"
+syn match   hasteExprOp		"<="
+syn match   hasteExprOp		">="
+syn match   hasteExprOp		">"
+syn match   hasteExprOp		"<>"
+syn match   hasteExprOp		"="
+syn match   hasteExprOp		"=="
+syn match   hasteExprOp		"##"
+syn match   hasteExprOp		"#"
+syn match   hasteExprOp		"*"
+syn match   hasteExprOp		"+"
+
+syn region  hasteComment start="/\*" end="\*/" contains=@Spell
+syn region  hasteComment start="{" end="}" contains=@Spell
+syn match   hasteComment "//.*" contains=@Spell
+
+" Define the default highlighting.
+" Only when an item doesn't have highlighting yet
+hi def link hasteSpecial	Special
+hi def link hasteStatement	Statement
+hi def link hasteCharacter	String
+hi def link hasteString		String
+hi def link hasteVector		String
+hi def link hasteBoolean	String
+hi def link hasteComment	Comment
+hi def link hasteNumber		String
+hi def link hasteTime		String
+hi def link hasteType		Type
+hi def link hasteGlobal		Error
+hi def link hasteError		Error
+hi def link hasteAttribute	Type
+hi def link hasteSeparators	Special
+hi def link hasteExecution	Special
+hi def link hasteTypeConstr	Special
+hi def link hasteOperator	Type
+hi def link hasteExprOp		Type
+hi def link hasteMisc		String
+hi def link hasteFutureExt 	Error
+hi def link hasteVerilog	Error
+hi def link hasteDefine		Macro
+hi def link hasteInclude	Include
+hi def link hastePreProc	PreProc
+
+let b:current_syntax = "haste"
+
+" vim: ts=8
new file mode 100644
--- /dev/null
+++ b/runtime/tutor/runtime/indent.vim
@@ -0,0 +1,31 @@
+" Vim support file to switch on loading indent files for file types
+"
+" Maintainer:	Bram Moolenaar <Bram@vim.org>
+" Last Change:	2008 Feb 22
+
+if exists("did_indent_on")
+  finish
+endif
+let did_indent_on = 1
+
+augroup filetypeindent
+  au FileType * call s:LoadIndent()
+  func! s:LoadIndent()
+    if exists("b:undo_indent")
+      exe b:undo_indent
+      unlet! b:undo_indent b:did_indent
+    endif
+    let s = expand("<amatch>")
+    if s != ""
+      if exists("b:did_indent")
+	unlet b:did_indent
+      endif
+
+      " When there is a dot it is used to separate filetype names.  Thus for
+      " "aaa.bbb" load "indent/aaa.vim" and then "indent/bbb.vim".
+      for name in split(s, '\.')
+	exe 'runtime! indent/' . name . '.vim'
+      endfor
+    endif
+  endfunc
+augroup END
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..fb45d22a0560d23c20b65ea1922099a8ae56683e
GIT binary patch
literal 226
zc%17D@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF<Nq6*hWMJ6X&;2Kn708ze@Ck9<
zyLT_ce})4G4m310FfcUy|Nox>NHZ`PcHfZ)Qj8@*e!&b5&u*jvIT@ZVjv*CuR8Mc@
zWj5qtc3Ad_O|n7D#PNZdv4p{<#;aOPpQ7wH&A-~H(0FEjI#ces{<AMLmZ;opOxUhi
z_u=-@V-uw8oAkdutzc`9IbFayGkfpFrd65gYff5x4+!F(6s1|R`=U)=PS`)onex7K
Sj8r*64)JvLb6Mw<&;$UU=uw0K
new file mode 100644
--- /dev/null
+++ b/runtime/tutor/tutor.eo.utf-8
@@ -0,0 +1,967 @@
+==============================================================================
+=   B o n v e n o n  al  la  I n s t r u i l o  de  V I M  -  Versio 1.0.eo  =
+==============================================================================
+
+   Vim estas tre potenca redaktilo, kiu havas multajn komandojn, tro da ili
+   por ĉion klarigi en instruilo kiel ĉi tiu. Ĉi tiu instruilo estas
+   fasonita por priskribi sufiĉajn komandojn, por ke vi kapablu uzi Vim
+   kun sufiĉa facileco.
+
+   La tempo bezonata por plenumi la kurson estas 25-30 minutoj, kaj dependas
+   de kiom da tempo estas uzata por eksperimenti.
+
+   ATENTU:
+   La komandoj en la lecionoj ŝanĝos la tekston. Kopiu tiun ĉi dosieron
+   por ekzerci vin (se vi lanĉis "vimtutor", tiam estas jam kopio).
+
+   Gravas memori, ke ĉi tiu instruilo estas organizata por instrui per
+   la uzo. Tio signifas, ke vi devas plenumi la komandojn por bone lerni
+   ilin. Se vi nur legas la tekston, vi forgesos la komandojn!
+
+   Nun, certigu, ke la majuskla baskulo NE estas en reĝimo majuskla,
+   kaj premu la klavon  j  sufiĉe da fojoj por movi la kursoron, kaj por
+   ke la leciono 1.1 plenigu la ekranon.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                         Leciono 1.1:  MOVI LA KURSORON
+
+
+  ** Por movi la kursoron, premu la h,j,k,l klavojn kiel montrite. **
+         ^
+         k        Konsilo: La klavo h estas la plej liva kaj movas liven.
+   < h       l >           La klavo l estas la plej dekstra kaj movas dekstren.
+         j                 La klavo j aspektas kiel malsuprena sago.
+         v
+  1. Movu la kursoron sur la ekrano ĝis kiam vi sentas vin komforta.
+
+  2. Premu la klavon (j) ĝis kiam ĝi ripetas.
+     Vi nun scias, kiel moviĝi al la sekvanta leciono
+
+  3. Uzante la malsuprenan klavon, moviĝu al la leciono 1.2.
+
+RIMARKO: Se vi dubas pri tio, kion vi premis, premu <ESK> por reiri al
+         la normala reĝimo. Tiam repremu la deziratan komandon.
+
+RIMARKO: La klavoj de la kursoro devus ankaŭ funkcii. Sed uzante hjkl,
+         vi kapablos moviĝi pli rapide post kiam vi kutimiĝos.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                           Leciono 1.2:  ELIRI EL VIM
+
+
+  !! RIMARKO: Antaŭ ol plenumi iujn subajn paŝojn ajn, legu la tutan lecionon!!
+
+  1. Premu la klavon <ESK> (por certigi, ke vi estas en normala reĝimo).
+
+  2. Tajpu:       :q! <Enenklavo>.
+     Tio eliras el la rekdaktilo, SEN konservi la ŝanĝojn, kion vi faris.
+
+  3. Kiam vi vidas la ŝelinviton, tajpu la komandon kiun vi uzis por eniri 
+     en ĉi tiu instruilo. Tio estus:   vimtutor <Enenklavo>
+
+  4. Se vi memoris tiujn paŝojn kaj sentas vin memfida, plenumu la paŝojn
+     1 ĝis 3 por eliri kaj reeniri la redaktilon.
+
+RIMARKO: :q! <Enenklavo> eliras sen konservi la ŝanĝojn kion vi faris. 
+         Post kelkaj lecionoj, vi lernos kiel konservi la ŝanĝojn al dosiero.
+
+  5. Movu la kursoron suben ĝis la leciono 1.3.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                   Leciono 1.3:  REDAKTO DE TEKSTO - FORVIŜO
+
+
+             ** Premu  x  por forviŝi la signon sub la kursoro. **
+
+  1. Movu la kursoron al la suba linio markita per --->.
+
+  2. Por korekti la erarojn, movu la kursoron ĝis kiam ĝi estas sur la
+     forviŝenda signo.
+
+  3. Premu la klavon  x  por forviŝi la nedeziratan signon.
+ 
+  4. Ripetu paŝojn 2 ĝis 4 ĝis kiam la frazo estas ĝusta.
+
+
+---> La boovinno saaltiss ssur laa luuno.
+
+  5. Post kiam la linio estas ĝusta, iru al la leciono 1.4
+
+RIMARKO: Trairante la instruilon, ne provu memori, lernu per la uzo.
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                    Leciono 1.4:  REDAKTO DE TEKSTO - ENMETO
+
+
+                      ** Premu  i  por enmeti tekston. **
+
+  1. Movu la kursoron al la unua suba linio markita per --->.
+
+  2. Por igi la unuan linion sama ol la dua, movu la kursoron sur la unuan
+     signon post kie la teksto estas enmetenda.
+
+  3. Premu  i  kaj tajpu la bezonatajn aldonojn.
+
+  4. Premu <ESK> kiam la eraroj estas korektitaj por reiri al la normala
+     reĝimo. Ripetu la paŝojn 2 ĝis 4 por korekti la frazon.
+
+---> Mank en ĉi linio.
+---> Mankas tekston en ĉi tiu linio.
+
+  5. Kiam vi sentas vin komforta pri enmeto de teksto, moviĝu al la
+     leciono 1.5.
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                  Leciono 1.5:  REDAKTO DE TEKSTO - POSTALDONO
+
+
+                    ** Premu  A  por postaldoni tekston. **
+
+  1. Movu la kursoron al la unua suba linio markita per --->.
+     Ne gravas sur kiu signo estas la kursoro.
+
+  2. Premu  A  kaj tajpu la bezonatajn aldonojn.
+
+  3. Post kiam la teksto estas aldonita, premu <ESK> por reiri al la normala
+     reĝimo.
+
+  4. Movu la kursoron al la dua linio markita per ---> kaj ripetu la 
+     paŝojn 2 kaj 3 por korekti la frazon.
+
+---> Mankas teksto el ti
+     Mankas teksto el tiu linio.
+---> Mankas ankaŭ teks
+     Mankas ankaŭ teksto ĉi tie.
+
+  5 Kiam vi sentas vin komforta pri postaldono de teksto, moviĝu al la
+    leciono 1.6
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                         Leciono 1.6:  REDAKTI DOSIERON
+
+                ** Uzu  :wq  por konservi dosieron kaj eliri. **
+
+  !! RIMARKO: Antaŭ ol plenumi iun suban paŝon ajn, legu la tutan lecionon!!
+
+  1. Eliru el la instruilo kiel vi faris en la leciono 1.2:  :q!
+
+  2. Ĉe la ŝelinvito, tajpu ĉi tiun komandon:  vim tutor <Enenklavo>
+     'vim' estas la komando por lanĉi la redaktilon Vim, 'tutor' estas la
+     dosiernomo de la dosiero, kiun vi volas redakti.  Uzu dosieron, kiu
+     ŝanĝeblas.
+
+  3. Enmetu kaj forviŝu tekston, kiel vi lernis en la antaŭaj lecionoj.
+
+  4. Konservu la dosieron kun ŝanĝoj kaj eliru el Vim per:  :qw  <Enenklavo>
+
+  5. Relanĉu la instruilon vimtutor kaj moviĝu suben al la sekvanta resumo.
+
+  6. Post kiam vi legis la suprajn paŝojn, kaj komprenis ilin: faru ilin.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                                Leciono 1 RESUMO
+
+  1. La kursoro moviĝas aŭ per la sagoklavoj, aŭ per la klavoj hjkl.
+        h (liven)     j (suben)      k (supren)     l (dekstren)
+
+  2. Por lanĉi Vim el la ŝelinvito, tajpu:  vim DOSIERNOMO <Enenklavo>
+
+  3. Por eliri el Vim, tajpu:  <ESK>  :q! <Enenklavo>  por rezigni la ŝanĝojn
+
+  4. Por forviŝi la signojn ĉe la pozicio de la kursoro, tajpu:  x
+
+  5. Por enmeti aŭ postaldoni tekston, tajpu:
+          i  tajpu enmetendan tekston        <ESK>
+             enmetas tekston antaŭ la kursoro
+
+          A  tajpu la postaldonendan tekston <ESK>
+             postaldonas post la kursoro
+
+RIMARKO: Premo de <ESK> iras al la normala reĝimo, aŭ rezignas la
+         nedeziratan aŭ parte plenumita komando.
+
+Nun daŭrigu al la leciono 2.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                        Leciono 2.1: KOMANDOJ DE FORVIŜO
+
+
+                      ** Tajpu  dw  por forviŝi vorton. **
+
+  1. Premu  <ESK>  por certigi, ke vi estas en normala reĝimo.
+
+  2. Movu la kursoron al la linio markita per --->.
+
+  3. Movu la kursoron al la komenco de vorto, kiu forviŝendas.
+
+  4. Tajpu   dw   por forviŝi la vorton.
+
+  RIMARKO: La litero  d  aperos en la lasta linio sur la ekrano kiam vi
+           tajpas ĝin. Vim atendas ĝis kiam vi tajpas  w .  Se vi vidas
+           alian signon ol  d  vi tajpis ion mise; premu  <ESK>  kaj
+           rekomencu.
+
+---> Estas iuj vortoj kiuj Zamenhof ne devus esti akuzativo en ĉi tiu frazo.
+
+  5. Ripetu paŝojn 3 kaj 4 ĝis kiam la frazo estas ĝusta kaj moviĝu al la
+     leciono 2.2.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                     Leciono 2.2: PLIAJ KOMANDOJ DE FORVIŜO
+
+               ** Tajpu  d$  por forviŝi la finon de la linio. **
+
+  1. Premu  <ESK>  por certigi, ke vi estas en normala reĝimo.
+
+  2. Movu la kursoron sur la suban linion markita per --->.
+
+  3. Movu la kursoron ĉe la fino de la ĝusta linio (POST la unua . ).
+
+  4. Tajpu   d$   por forivŝi ĝis la fino de la linio.
+
+---> Iu tajpis la finon de ĉi tiu linio dufoje. fino de ĉi tiu linio dufoje.
+
+
+  5. Moviĝu al la leciono 2.3 por kompreni kio okazas.
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                     Leciono 2.3: PRI OPERATOROJ KAJ MOVOJ
+
+
+  Multaj komandoj, kiuj ŝanĝas la tekston, estas faritaj de operatoro kaj
+  movo. La formato de komando de forviŝo per la operatoro de forviŝo  d
+  estas kiel sekvas:
+
+       d   movo
+
+  Kie:
+    d      - estas la operatoro de movo
+    movo   - estas tio, pri kio la operatoro operacios (listigita sube)
+
+  Mallonga listo de movoj:
+    w - ĝis la komenco de la sekvanta vorto, krom ĝian unuan signon.
+    e - ĝis la fino de la nuna vorto, krom la lasta signo.
+    $ - ĝis la fino de la linio, krom la lasta signo.
+
+  Do tajpo de   'de'   forviŝos ekde la kursoro ĝis la fino de la vorto.
+
+RIMARKO: Premo de nur la movo en Normala reĝimo sen operatoro movos
+         la kursoron kiel specifite.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                       Leciono 2.4: UZI NOMBRON POR MOVO
+
+             ** Tajpo de nombro antaŭ movo ripetas ĝin laŭfoje. **
+
+  1. Movu la kursoron ĉe la komenco de la suba linio markita per --->.
+
+  2. Tajpu  2w  por movi la kursoron je du vortoj antaŭen.
+
+  3. Tajpu  3e  por movi la kursoron ĉe la fino de la tria vorto antaŭen.
+
+  4. Tajpu  0  (nul) por moviĝi ĉe la komenco de la linio.
+
+
+  5. Ripetu paŝojn 2 ĝis 3 kun malsamaj nombroj.
+
+---> Tio estas nur linio kun vortoj, kie vi povas moviĝi.
+
+  6. Moviĝu al la leciono 2.5.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                    Leciono 2.5: UZI NOMBRON POR FORVIŜI PLI
+
+            ** Tajpo de nombro kun operatoro ripetas ĝin laŭfoje. **
+
+  En la kombinaĵo de la operatoro de forviŝo, kaj movo kiel menciita
+  ĉi-supre, eblas aldoni nombron antaŭ la movo por pli forviŝi:
+        d  nombro   movo
+
+  1. Movu la kursoron ĉe la unua MAJUSKLA vorto en la linio markita per --->.
+
+  2. Tajpu  d2w  por forviŝi la du MAJUSKLAJN vortojn
+
+  3. Ripetu paŝojn 1 ĝis 2 per malsama nombro por forviŝi la sinsekvajn
+     MAJUSKLAJN vortojn per unu komando
+
+---> Tiu AB CDE linio FGHI JK LMN OP de vortoj estas Q RS TUV purigita.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                    Leciono 2.6: OPERACII SUR LINIOJ
+
+                   ** Tajpu  dd  por forviŝi tutan linion. **
+
+  Pro la ofteco de forviŝo de tuta linio, la verkisto de Vi decidis, ke
+  estus pli facile simple tajpi du d-ojn  por forviŝi linion.
+
+  1. Movu la kursoron sur la duan linion en la suba frazo.
+  2. Tajpu  dd  por forviŝi la linion.
+  3. Nun moviĝu al la kvara linio.
+  4. Tajpu   2dd   por forviŝi du liniojn.
+
+---> 1)  Rozoj estas ruĝaj,
+---> 2)  Ŝlimo estas amuza,
+---> 3)  Violoj estas bluaj,
+---> 4)  Mi havas aŭton,
+---> 5)  Horloĝoj diras kioma horo estas,
+---> 6)  Sukero estas dolĉa,
+---> 7)  Kaj tiel vi estas.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                       Leciono 2.7: LA KOMANDO DE MALFARO
+
+ ** Premu u por malfari la lastajn komandojn, U por ripari la tutan linion. **
+
+  1. Movu la kursoron ĉe la suba linio markita per ---> kaj metu ĝin sur
+     la unuan eraron.
+  2. Tajpu  x  por forviŝi la unuan nedeziratan signon.
+  3. Nun tajpu  u  por malfari la lastan plenumitan komandon.
+  4. Ĉi-foje, riparu ĉiujn erarojn en la linio kaj ĝia originala stato.
+  5. Nun tajpu majusklan  U  por igi la linion al ĝia antaŭa stato.
+  6. Nun tajpu  u  kelkfoje por malfari la  U  kaj antaŭajn komandojn.
+  7. Nun tajpu CTRL-R (premante la CTRL klavon dum vi premas R) kelkfoje
+     por refari la komandojn (malfari la malfarojn).
+
+---> Koorektii la erarojn sur tiuu ĉi liniio kaj remettu illlin per malfaro.
+
+  8. Tiuj estas tre utilaj komandoj.  Nun moviĝu al la leciono 2 RESUMO.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                                Leciono 2 RESUMO
+
+  1. Por forviŝi ekde la kursoro ĝis la sekvanta vorto, tajpu:    dw
+  2. Por forviŝi ekde la kursoro ĝis la fino de la linio, tajpu:  d$
+  3. Por forviŝi tutan linion, tajpu:                             dd
+
+  4. Por ripeti movon, antaŭmetu nombron:                         2w
+  5. La formato de ŝanĝa komando estas:
+           operatoro   [nombro]   movo
+
+     kie:
+       operatoro - estas tio, kio farendas, kiel  d  por forviŝi
+       [nombro]  - estas opcia nombro por ripeti la movon
+       movo      - movas sur la teksto por operacii, kiel ekzemple  w (vorto),
+                   $ (ĝis fino de linio), ktp.
+
+  6. Por moviĝi al la komenco de la linio, uzu nul:  0
+
+  7. Por malfari antaŭajn agojn, tajpu:               u (minuskla u)
+     Por malfari ĉiujn ŝanĝojn sur la linio, tajpu:   U (majuskla U)
+     Por refari la malfarojn, tajpu:                  CTRL-R
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                         Leciono 3.1 LA KOMANDO DE METO
+
+    ** Tajpu  p  por meti tekston forviŝitan antaŭe post la kursoro. **
+
+  1. Movu la kursoron ĉe la unua ---> suba linio.
+
+  2. Tajpu  dd  por forviŝi la linion kaj konservi ĝin ene de reĝistro de Vim.
+
+  3. Movu la kursoron ĉe la linio c), SUPER kie la forviŝita linio devus esti.
+
+  4. Tajpu  p  por meti la linion sub la kursoron.
+
+  5. Ripetu la paŝojn 2 ĝis 4 por meti ĉiujn liniojn en la ĝusta ordo.
+
+---> d) Ĉu ankaŭ vi povas lerni?
+---> b) Violoj estas bluaj,
+---> c) Inteligenteco lerneblas,
+---> a) Rozoj estas ruĝaj,
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                     Leciono 3.2 LA KOMANDO DE ANSTATAŬIGO
+
+       ** Tajpu  rx  por anstataŭigi la signon ĉe la kursoro per  x . **
+
+
+  1. Movu la kursoron ĉe la unua suba linio markita per --->.
+
+  2. Movu la kursoron ĝis la unua eraro.
+
+  3. Tajpu  r  kaj la signon, kiu devus esti tie.
+
+  4. Ripetu paŝojn 2 kaj 3 ĝis kiam la unua linio egalas la duan.
+
+---> Kiem tiu lanio estis tajpita, iu pramis la naĝuftajn klovojn!
+---> Kiam tiu linio estis tajpita, iu premis la neĝustajn klavojn!
+  
+  5. Nun moviĝu al la leciono 3.3.
+
+Rimarko: Memoru, ke vi devus lerni per uzo, kaj ne per memorado.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                       Leciono 3.3 LA OPERATORO DE ŜANĜO
+
+              ** Por ŝanĝi ĝis la fino de la vorto, tajpu  ce . **
+
+  1. Movu la kursoron ĉe la unua suba linio markita per --->.
+
+  2. Metu la kursoron sur la  d  en  lduzw
+
+  3. Tajpu  ce  kaj la ĝustan vorton (en tiu ĉi kazo, tajpu inio ).
+
+  4. Premu <ESK> kaj moviĝu al la sekvanta signo, kiu bezonas ŝanĝon.
+
+  5. Ripetu la paŝojn 3 kaj 4 ĝis kiam la unua frazo egalas la duan.
+
+---> Tiu lduzw havas kelkajn vortojn, kiii bezas ŝanĝon per la ŝanĝooto.
+---> Tiu linio havas kelkajn vortojn, kiuj bezonas ŝanĝon per la ŝanĝoperatoro.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                         Leciono 3.4 PLIAJ ŜANĜOJ PER c
+
+        ** La operatoro de ŝanĝo uzeblas kun la sama movo ol forviŝo. **
+
+  1. La operatoro de ŝanĝo funkcias sammaniere kiel forviŝo. La formato estas:
+
+       c    [nombro]   movo
+
+  2. La movoj estas samaj, kiel ekzemple   w (vorto) kaj $ (fino de linio).
+
+  3. Moviĝu ĉe la unua suba linio markita per --->.
+
+  4. Movu la kursoron al la unua eraro.
+
+  5. Tajpu  c$  kaj tajpu la reston de la linio kiel la dua kaj premu <ESK>.
+
+---> La fino de ĉi tiu linio bezonas helpon por igi ĝin same kiel la dua.
+---> La fino de ĉi tiu linio bezonas korektojn per uzo de la komando  c$
+
+RIMARKO:  Vi povas uzi la klavon Retropaŝo por korekti erarojn dum vi tajpas.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                                Leciono 3 RESUMO
+
+  1. Por remeti tekston, kiun vi ĵus forviŝis, tajpu  p. Tio metas la
+     forviŝitan tekston POST la kursoro (se linio estis forviŝita, ĝi
+     iros en la linion sub la kursoro).
+
+  2. Por anstataŭigi la signon sub la kursoro, tajpu  r  kaj tiam la signon
+     kion vi deziras havi tie.
+
+  3. La operatoro de ŝanĝo ebligas al vi ŝanĝi ekde la kursoro, ĝis kie
+     la movo iras.  Ekz. tajpu  ce  por ŝanĝi ekde la kursoro ĝis la fino
+     de la vorto,  c$  por ŝanĝi ĝis la fino de la linio.
+
+  4. La formato de ŝanĝo estas:
+
+         c    [nombro]   movo
+
+Nun daŭrigu al la sekvanta leciono.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+              Leciono 4.1: POZICIO DE KURSORO KAJ STATO DE DOSIERO
+
+  ** Tajpu CTRL-G por montri vian pozicion en la dosiero kaj la dosierstaton.
+     Tajpu  G  por moviĝi al linio en la dosiero. **
+
+  RIMARKO: Legu la tutan lecionon antaŭ ol plenumi iun paŝon ajn!!
+
+  1. Premu la klavon Ctrl kaj premu  g . Oni nomas tion CTRL-G.
+     Mesaĝo aperos ĉe la suba parto de la paĝo kun la dosiernomo kaj la
+     pozicio en la dosiero. Memoru la numeron de la linio por paŝo 3.
+
+  RIMARKO: Vi eble vidas la pozicion de la kursoro ĉe la suba dekstra 
+           angulo de la ekrano. Tio okazas kiam la agordo 'ruler' estas
+           ŝaltita (vidu  :help 'ruler')
+
+  2. Premu  G  por moviĝi ĉe la subo de la dosiero.
+     Tajpu gg  por moviĝi ĉe la komenco de la dosiero.
+
+  3. Tajpu la numeron de la linio kie vi estis kaj poste G .  Tio removos
+     vin al la linio, kie vi estis kiam vi unue premis CTRL-G.
+
+  4. Se vi sentas vin komforta, plenumu paŝojn 1 ĝis 3.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                        Leciono 4.2 LA KOMANDO DE SERĈO
+
+             ** Tajpu  /  kaj poste frazon por serĉi la frazon. **
+
+  1. En normala reĝimo, tajpu la  /  signon.  Rimarku, ke ĝi kaj la kursoro
+     aperas ĉe la suba parto de la ekrano kiel por la  :  komando.
+
+  2. Nun tajpu 'errarro' <Enenklavo>.
+     Tio estas la vorto, kion vi volas serĉi.
+
+  3. Por serĉi la saman frazon denove, simple tajpu  n .
+     Por serĉi la saman frazon denove en la retrodirekto, tajpu  N .
+
+  4. Por serĉi frazon en la retrodirekto, uzu  ?  anstataŭ  / .
+
+  5. Por reiri tien, el kie vi venis, premu  CTRL-O (Premu Ctrl kaj o
+     literon o).  Ripetu por pli retroiri.  CTRL-I iras antaŭen.
+
+---> "errarro" ne estas maniero por literumi eraro; errarro estas eraro.
+
+RIMARKO: Kiam la serĉo atingas la finon de la dosiero, ĝi daŭras ĉe la
+         komenco, krom se la agordo 'wrapscan' estas malŝaltita.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                     Leciono 4.3 SERĈO DE KONGRUAJ KRAMPOJ
+
+                 ** Tajpu  %  por trovi kongruan ), [ aŭ  } **
+
+  1. Poziciu la kursoron sur iun (, [ aŭ { en la linio markita per --->.
+
+  2. Nun tajpu la  %  signon.
+
+  3. La kursoro moviĝas al la kongrua krampo.
+
+  4. Tajpu  %  por movi la kursoron al la alia kongrua krampo.
+
+  5. Movu la kursoron al la alia (, ), [, ], {, } kaj observu tion,
+     kion  %  faras.
+
+---> Ĉi tiu ( estas testa linio kun (-oj, [-oj, ]-oj kaj {-oj, }-oj en ĝi. ))
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                     Leciono 4.4 LA KOMANDO DE ANSTATAŭIGO
+
+
+     ** Tajpu  :s/malnova/nova/g  por anstataŭigi 'nova' per 'malnova'. **
+
+  1. Movu la kursoron al la suba linio markita per --->.
+
+  2. Tajpu  :s/laa/la <Enenklavo> .  Rimarku, ke la komando ŝanĝas nur la 
+     unuan okazaĵon de "laa" en la linio.
+
+  3. Nun tajpu  :s/laa/la/g .  Aldono de  g  opcio signifas mallokan
+     anstataŭigon en la linio. Ĝi ŝanĝas ĉiujn okazaĵojn de "laa" en la
+     linio.
+
+---> laa plej bona tempo por vidi florojn estas en laa printempo.
+
+  4. Por ŝanĝi ĉiujn okazaĵojn de iu ĉena signo inter du linioj,
+     tajpu    :#,#s/malnova/nova/g   kie #,# estas la numeroj de linioj de la
+                                     intervalo de la linioj kie la anstataŭigo
+                                     okazos.
+     Tajpu    :%s/malnova/nova/g     por ŝanĝi ĉiujn okazaĵojn en la tuta
+                                     dosiero.
+     Tajpu    :s/malnova/nova/gc     por trovi ĉiujn okazaĵojn en la tuta
+                                     dosiero, kun invitilo ĉu anstataŭigi
+                                     aŭ ne.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                                Leciono 4 RESUMO
+
+  1. CTRL-G  vidigas vian pozicion en la dosiero kaj la staton de la dosiero.
+            G  movas la kursoron al la fino de la dosiero.
+     numero G  movas la kursoron al tiu numero de linio.
+           gg  movas la kursoron al la unua linio.
+
+  2. Tajpo de  /  kaj frazon serĉas la frazon antaŭen.
+     Tajpo de  ?  kaj frazon serĉas la frazon malantaŭen.
+     Post serĉo, tajpu n por trovi la sekvantan okazaĵon en la sama direkto aŭ
+     N por serĉi en la mala direkto.
+     CTRL-O movas vin al la antaŭaj pozicioj, CTRL-I al la novaj pozicioj.
+
+  3. Tajpo de  %  kiam la kursoro estas sur (,),[,],{ aŭ } moviĝas al ĝia
+     kongruo.
+
+  4. Por anstataŭigi 'nova' en la unua 'malnova' en linio :s/malnova/nova
+     Por anstataŭigi 'nova' en ĉiuj 'malnova'-oj en linio :s/malnova/nova/g
+     Por anstataŭigi frazon inter du #-aj linioj          :#,#s/malnova/nova/g
+     Por anstataŭigi ĉiujn okazaĵojn en la dosiero        :%s/malnova/nova/g
+     Por demandi konfirmon ĉiu-foje, aldonu 'c'           :%s/malnova/nova/gc
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                   Leciono 5.1 KIEL PLENUMI EKSTERAN KOMANDON
+
+     ** Tajpu  :!  sekvata de ekstera komando por plenumi la komandon. **
+
+  1. Tajpu la konatan komandon  :  por pozicii la kursoron ĉe la suba parto
+     de la ekrano. Tio ebligas tajpadon de komando en komanda linio.
+
+  2. Nun tajpu la  !  (krisigno) signon. Tio ebligas al vi plenumi iun
+     eksteran ŝelan komandon ajn.
+
+  3. Ekzemple, tajpu  ls  post ! kaj tajpu <Enenklavo>. Tio listigos la 
+     enhavon de la dosierujo, same kiel se vi estis en ŝela invito.
+     Aŭ uzu  :!dir  se ls ne funkcias.
+
+RIMARKO: Eblas plenumi iun eksteran komandon ajn tiamaniere, ankaŭ kun
+         argumentoj.
+
+RIMARKO: Ĉiuj  :  komandoj devas finiĝi per tajpo de <Enenklavo>
+         Ekde nun, ni ne plu mencios tion.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                    Leciono 5.2 PLI PRI KONSERVO DE DOSIERO
+
+   ** Por konservi la faritajn ŝanĝojn en la teksto, tajpu  :w DOSIERNOMO. **
+
+  1. Tajpu  !dir  aŭ  !ls  por akiri liston de via dosierujo.
+     Vi jam scias, ke vi devas tajpi <Enenklavo> post tio.
+
+  2. Elektu dosieron, kiu ne jam ekzistas, kiel ekzemple TESTO.
+
+  3. Nun tajpu:   :w TESTO   (kie TESTO estas la elektita dosiernomo)
+
+  4. Tio konservas la tutan dosieron (instruilo de Vim) per la nomo TESTO.
+     Por kontroli tion, tajpu   :!dir   aŭ   !ls   denove por vidigi vian
+     dosierujon.
+
+RIMARKO: Se vi volus eliri el Vim kaj restartigi ĝin denove per  vim TESTO,
+         la dosiero estus precize same kiel kopio de la instruilo kiam vi
+         konservis ĝin.
+
+  5. Nun forviŝu la dosieron tajpante (MS-DOS):     :!del TESTO
+                                   aŭ (UNIKSO):     :!rm TESTO
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                    Leciono 5.3 APARTIGI KONSERVENDAN TESTON
+
+    ** Por konservi parton de la dosiero, tajpu   v  movo  :w DOSIERNOMO **
+
+  1. Movu la kursoron al tiu linio.
+  
+  2. Premu  v  kaj movu la kursoron al la kvina suba ero.  Rimarku, ke la 
+     teksto emfaziĝas.
+
+  3. Premu la  :  signon.  Ĉe la fino de la ekrano  :'<,'>  aperos.
+
+  4. Tajpu  w TESTO  , kie TESTO estas dosiernomo, kiu ne jam ekzistas.
+     Kontrolu, ke vi vidas  :'<,'>w TESTO  antaŭ premi <Enenklavo>.
+
+  5. Vim konservos la apartigitajn liniojn al la dosiero TESTO.  Uzu  :dir
+     aŭ  :!ls  por vidigi ĝin.  Ne jam forviŝu ĝin.  Ni uzos ĝin en la
+     sekvanta leciono.
+
+RIMARKO: PREMO DE  v  komencas Viduman apartigon.  Vi povas movi la kursoron
+         por pligrandigi aŭ malpligrandigi la apartigon. Tiam vi povas uzi
+         operatoron por plenumi ion kun la teksto.  Ekzemple,  d  forviŝas
+         la tekston.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                   Leciono 5.4 AKIRI KAJ KUNFANDI DOSIEROJN
+
+
+         ** Por enmeti la enhavon de dosiero, tajpu  :r DOSIERNOMON **
+
+  1. Movu la kursoron ĵus super ĉi tiu linio.
+
+RIMARKO: Post plenumo de paŝo 2, vi vidos tekston el la leciono 5.3.  Tiam
+         moviĝu SUBEN por vidi tiun lecionon denove.
+
+  2. Nun akiru vian dosieron TESTO uzante la komandon   :r TESTO   kie TESTO
+     estas la nomo de la dosiero, kiun vi uzis.
+     La dosiero, kion vi akiras, estas metita sub la linio de la kursoro.
+
+  3. Por kontroli, ĉu la dosiero akiriĝis, retromovu la kursoron kaj rimarku,
+     ke estas nun du kopioj de la leciono 5.3, la originala kaj la versio mem
+     de la dosiero.
+
+RIMARKO: Vi nun povas legi la eliron de ekstera komando. Ekzemple, 
+        :r !ls  legas la eliron de la komando ls kaj metas ĝin sub la
+        kursoron.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                                Leciono 5 RESUMO
+
+
+  1.  :!komando  plenumas eksteran komandon.
+
+      Iuj utilaj ekzemploj estas:
+        (MS-DOS)           (UNIKSO)
+         :!dir              :!ls            - listigas dosierujon
+         :!del DOSIERNOMO   :!rm DOSIERNOMO - forviŝas la dosieron DOSIERNOMO
+
+  2.  :w DOSIERNOMO  konservas la nunan dosieron de Vim al disko kun la
+      nomo DOSIERNOMO.
+
+  3.  v  movo  :w DOSIERNOMO  konservas la Viduman apartigo de linioj en
+      dosiero DOSIERNOMO.
+
+  4. :r DOSIERNOMO  akiras la dosieron DOSIERNOMO el la disko kaj metas
+     ĝin sub la pozicion de la kursoro.
+
+  5. :r !dir  legas la eligon de la komando dir kaj metas ĝin sub la
+     pozicion de la kursoro.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                       Leciono 6.1 LA KOMANDO DE MALFERMO
+
+
+  ** Tajpu o por malfermi linion sub la kursoro kaj eniri Enmetan reĝimon. **
+
+  1. Movu la kursoron al la suba linio markita per --->.
+
+  2. Tajpu la minusklan literon  o  por malfermi linion SUB la kursoro kaj
+     eniri la Enmetan reĝimon.
+
+  3. Nun tajpu tekston kaj premu <ESK> por eliri la Enmetan reĝimon.
+
+---> Post tajpo de  o  la kursoro moviĝas al la malfermata linio en
+     Enmeta reĝimo.
+
+  4. Por malfermi linion SUPER la kursoro, nur tajpu majusklan  O  ,
+     anstataŭ minusklan  o.  Provu tion per la suba linio.
+
+---> Malfermu linion SUPER tiu tajpante O dum la kursoro estas sur tiu linio.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                      Leciono 6.2 LA KOMANDO DE POSTALDONO
+
+
+                  ** Tajpu  a  por enmeti POST la kursoro. **
+
+  1. Movu la kursoron ĉe la komenco de la linio markita per --->.
+
+  2. Premu  e  ĝis kiam la kursoro estas ĉe la fino de  li.
+
+  3. Tajpu  a  (minuskle) por aldoni tekston POST la kursoro.
+
+  4. Kompletigu la vorton same kiel la linio sub ĝi.  Premu <ESK> por
+     eliri la Enmetan reĝimon.
+
+  5. Uzu  e  por moviĝi al la sekvanta nekompleta vorto kaj ripetu   
+     paŝojn 3 kaj 4.
+
+---> Ĉi tiu lin ebligos vin ekz vin postal tekston al linio.
+---> Ĉi tiu linio ebligos vin ekzerci vin postaldoni tekston al linio.
+
+RIMARKO: Ĉiu  a, i kaj A  iras al la sama Enmeta reĝimo, la nura malsamo
+         estas tie, kie la signoj estas enmetitaj.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                    Leciono 6.3 ALIA MANIERO POR ANSTATAŬIGI
+
+
+          ** Tajpu majusklan  R  por anstataŭigi pli ol unu signo. **
+
+  1. Movu la kursoron al la unua suba linio markita per --->.  Movu la
+     kursoron al la komenco de la unua  xxx .
+
+  2. Nun premu  R  kaj tajpu la nombron sub ĝi en la dua linio, por ke ĝi
+     anstataŭigu la xxx .
+
+  3. Premu <ESK> por foriri la Anstataŭigan reĝimon. Rimarku, ke la cetera
+     parto de la linio restas neŝanĝata.
+
+  4. Ripetu la paŝojn por anstataŭigi la restantajn xxx.
+
+---> Aldono de 123 al xxx donas al vi xxx.
+---> Aldono de 123 al 456 donas al vi 579.
+
+RIMARKO: Anstataŭiga reĝimo estas same kiel Enmeta reĝimo, sed ĉiu signo
+         tajpita forviŝas ekzistan signon.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                      Leciono 6.4 KOPII KAJ ALGLUI TEKSTON
+
+
+     ** Uzu la  y  operatoron por kopii tekston, kaj  p  por alglui ĝin **
+
+
+  1. Iru al la linio markita per ---> sube kaj poziciu la kursoron post "a)".
+
+  2. Komencu la Viduman reĝimon per  v  kaj movu la kursoron ĵus antaŭ "unua".
+
+  3. Tajpu  y  por kopii la emfazitan tekston.
+
+  4. Movu la kursoron ĉe la fino de la linio:  j$
+
+  5. Tajpu  p  por alglui la tekston.  Tiam tajpu:  a dua <ESK> .
+
+  6. Uzu Viduman reĝimon por apartigi " ero.", kopiu ĝin per  y , moviĝu
+     ĉe la fino de la sekvanta linio per  j$  kaj algluu la tekston tie
+     per  p .
+
+---> a) tio estas la unua ero.
+     b) 
+
+RIMARKO: vi povas ankaŭ uzi  y  kiel operatoro;  yw  kopias unu vorton.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                           Leciono 6.5 AGORDI OPCION
+
+         ** Agordu opcion por ke serĉo aŭ anstataŭgo ignoru usklecon **
+
+  1. Serĉu 'ignori' per tajpo de /ignori <Enenklavo>
+     Ripetu plurfoje premante  n .
+
+  2. Ŝaltu la opcion 'ic' (ignori usklecon) per:   :set ic
+
+  3. Nun serĉu 'ignori' denove premante  n
+     Rimarku, ke Ignori kaj IGNORI estas nun troveblas.
+
+  4. Ŝaltu la opciojn 'hlsearch' kaj 'incsearch':   :set hls is
+
+  5. Nun retajpu la serĉan komandon kaj vidu kio okazas:  /ignore <Enenklavo>
+
+  6. Por malŝalti ignoron de uskleco:  :set noic
+
+RIMARKO: Por forigi emfazon de kongruo, tajpu:   :nohlsearch
+RIMARKO: Se vi deziras ignori usklecon por nur unu serĉa komando, uzu  \c
+         en la frazo:  /ignore\c  <Enenklavo>
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                                Leciono 6 RESUMO
+
+  1. Tajpu  o  por malfermi linion SUB la kursoro kaj eki en Enmeta reĝimo.
+  1. Tajpu  O  por malfermi linion SUPER la kursoro.
+
+  2. Tajpu  a  por enmeti tekston POST la kursoro.
+     Tajpu  A  por enmeti tekston post la fino de la linio.
+
+  3. La  e  komando movas la kursoron al la fino de vorto.
+
+  4. la  y  operatoro kopias tekston,  p  algluas ĝin.
+
+  5. Tajpo de majuskla  R  eniras la Anstataŭigan reĝimon ĝis kiam
+     <ESK> estas premita.
+
+  6. Tajpo de ":set xxx" ŝaltas la opcion "xxx".  Iuj opcioj estas:
+        'ic' 'ignorecase'     ignori usklecon dum serĉo
+        'is' 'incsearch'      montru partan kongruon dum serĉo
+        'hls' 'hlsearch'      emfazas ĉiujn kongruajn frazojn
+     Vi povas uzi aŭ la longan, aŭ la mallongan nomon de opcio.
+
+  7. Antaŭaldonu "no" por malŝalti la opcion:  :set noic
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                            Leciono 7.1 AKIRI HELPON
+
+                          ** Uzu la helpan sistemon **
+
+  Vim havas ampleksan helpan sistemon. Por komenciĝi, provu unu el la tiuj
+  tri:
+        - premu la klavon <HELPO> (se vi havas ĝin)
+        - premu la klavon <F1> (se vi havas ĝin)
+        - tajpu   :help <Enenklavo>
+
+  Legu la tekston en la helpfenestro por trovi kiel helpo funkcias.
+  Tajpu  CTRL-W CTRL-W      por salti de unu fenestro al la alia.
+  Tajpu    :q <Enenklavo>   por fermi la helpan fenestron.
+
+  Vi povas trovi helpon pri io ajn aldonante argumenton al la komando
+  ":help".  Provu tiujn (ne forgesu premi <Enenklavo>):
+
+        :help w
+        :help c_CTRL-D
+        :help insert-index
+        :help user-manual
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                       Leciono 7.2 KREI STARTAN SKRIPTON
+
+                          ** Ebligu eblecojn de Vim **
+
+  Vim havas multe pli da eblecoj ol Vi, sed la plej multaj estas defaŭlte
+  malŝaltitaj.  Por ekuzi la eblecojn, vi devas krei dosieron "vimrc.
+
+  1. Ekredaktu la dosieron "vimrc".  Tio dependas de via sistemo:
+      :e ~/.vimrc          por Unikso
+      :e $VIM/_vimrc       por MS-Vindozo
+
+  2. Nun legu la enhavon de la ekzempla "vimrc" 
+      :r $VIMRUNTIME/vimrc_example.vim
+
+  3. Konservu la dosieron per:
+      :w
+
+  La sekvanta fojo, kiam vi lanĉas Vim, ĝi uzos sintaksan emfazon.
+  Vi povas aldoni ĉiujn viajn preferatajn agordojn al tiu dosiero "vimrc".
+  Por pli da informoj, tajpu  :help vimrc-intro
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                             Leciono 7.3 KOMPLETIGO
+
+             ** Kompletigo de komanda linio per CTRL-D kaj <TAB> **
+
+  1. Certigu ke Vim estas en kongrua reĝimo:  :set nocp
+
+  2. Rigardu tiujn dosierojn, kiuj ekzistas en la dosierujo:  :!ls  aŭ  :!dir
+
+  3. Tajpu la komencon de komando:  :e
+
+  4. Premu  CTRL-D  kaj Vim montros liston de komandoj, kiuj komencas per "e".
+
+  5. Premu <TAB>  kaj Vim kompletigos la nomon de la komando al ":edit".
+
+  6. Nun aldonu spaceton kaj la komencon de ekzistanta nomo:  :edit DOSI
+
+  7. Premu <TAB>.  Vim kompletigos la nomon (se ĝi estas unika)
+
+RIMARKO: Kompletigo funkcias por multaj komandoj. Nur provu premi CTRL-D kaj
+         <TAB>.  Estas aparte utila por  :help .
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                                Leciono 7 RESUMO
+
+
+  1. Tajpu  :help  aŭ premu <F1> aŭ <Helpo>  por malfermi helpan fenestron.
+
+  2. Tajpu  :help kmd  por trovi helpon pri  kmd.
+
+  3. Tajpu  CTRL-W CTRL-W  por salti al alia fenestro.
+
+  4. Tajpu  :q  to fermi la helpan fenestron.
+
+  5. Kreu komencan skripton vimrc por konservi viajn agordojn.
+
+  6. Kiam vi tajpas  :  komandon, premu CTRL-D por vidi ĉiujn kompleteblojn.
+     Premu <TAB> por uzi unu kompletigon.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  Tio konkludas la instruilon de Vim.  Ĝi celis doni mallongan superrigardon
+  de la redaktilo Vim, nur tio kio sufiĉas por ebligi al vi facilan uzon de
+  la redaktilo. Estas nepre nekompleta, ĉar Vim havas multajn multajn pliajn
+  komandojn. Legu la manlibron: ":help user-manual".
+
+  Tiu instruilo estis verkita de Michael C. Pierce kaj Robert K. Ware,
+  el la Koloradia Lernejo de Minejoj (Colorado School of Mines) uzante
+  ideojn provizitajn de Charles Smith el la Stata Universitato de Koloradio
+  (Colorado State University)
+
+  Retpoŝto: bware@mines.colorado.edu.
+
+  Modifita por Vim de Bram Moolenaar.
+
+  Tradukita en Esperanto de Dominique Pellé, 2008-04-01
+  Retpoŝto: dominique.pelle@gmail.com
+  Lasta ŝanĝo: 2008-04-02
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
--- a/src/po/pl.po
+++ b/src/po/pl.po
@@ -73,7 +73,7 @@ msgstr "E88: Nie mog przej przed pierwszy bufor"
 
 #, c-format
 msgid "E89: No write since last change for buffer %ld (add ! to override)"
-msgstr "E89 Nie zapisano zmian w buforze %ld (wymu przez !)"
+msgstr "E89: Nie zapisano zmian w buforze %ld (wymu przez !)"
 
 msgid "E90: Cannot unload last buffer"
 msgstr "E90: Nie mog wyadowa ostatniego bufora"
@@ -339,7 +339,7 @@ msgstr "E111: Brak ']'"
 
 #, c-format
 msgid "E686: Argument of %s must be a List"
-msgstr "E487: Argument %s musi by List"
+msgstr "E686: Argument %s musi by List"
 
 #, c-format
 msgid "E712: Argument of %s must be a List or Dictionary"
@@ -385,7 +385,7 @@ msgstr "E130: Nieznana funkcja: %s"
 
 #, c-format
 msgid "E461: Illegal variable name: %s"
-msgstr "E418: Niedozwolona nazwa zmiennej: %s"
+msgstr "E461: Niedozwolona nazwa zmiennej: %s"
 
 msgid "E687: Less targets than List items"
 msgstr "E687: Mniej celw ni elementw Listy"
@@ -1064,7 +1064,7 @@ msgid "E156: Missing sign name"
 msgstr "E156: Brak nazwy znaku"
 
 msgid "E612: Too many signs defined"
-msgstr "E255: Zbyt wiele nazw znakw"
+msgstr "E612: Zbyt wiele nazw znakw"
 
 #, c-format
 msgid "E239: Invalid sign text: %s"
@@ -1228,7 +1228,7 @@ msgstr "Brak pliku wymiany"
 msgid "Append File"
 msgstr "Docz plik"
 
-msgid "E747: Cannot change directory, buffer is modifed (add ! to override)"
+msgid "E747: Cannot change directory, buffer is modified (add ! to override)"
 msgstr ""
 "E747: Nie mog zmieni katalogu, bufor zosta zmodyfikowany (dodaj ! aby "
 "wymusi)"
@@ -1465,8 +1465,8 @@ msgstr "jest katalogiem"
 msgid "is not a file"
 msgstr "nie jest plikiem"
 
-msgid "is a device (disabled with 'opendevice' option"
-msgstr "jest urzdzeniem (wyczonym w opcji 'opendevice'"
+msgid "is a device (disabled with 'opendevice' option)"
+msgstr "jest urzdzeniem (wyczonym w opcji 'opendevice')"
 
 msgid "[New File]"
 msgstr "[Nowy Plik]"
@@ -2523,8 +2523,7 @@ msgid "E265: $_ must be an instance of S
 msgstr "E265: $_ musi by reprezentacj acucha"
 
 msgid "E266: Sorry, this command is disabled, the Ruby library could not be loaded."
-msgstr ""
-"E263: Przykro mi, ta komenda jest wyczona, bo nie mona zaadowa "
+msgstr "E266: Przykro mi, ta komenda jest wyczona, bo nie mona zaadowa "
 "biblioteki Ruby."
 
 msgid "E267: unexpected return"
@@ -2692,7 +2691,7 @@ msgstr ""
 "bufora/okna"
 
 msgid "E571: Sorry, this command is disabled: the Tcl library could not be loaded."
-msgstr "Przykro mi, ta komenda jest wyczona, bo nie mona zaadowa biblioteki Tcl."
+msgstr "E571: Przykro mi, ta komenda jest wyczona, bo nie mona zaadowa biblioteki Tcl."
 
 msgid "E281: TCL ERROR: exit code is not int!? Please report this to vim-dev@vim.org"
 msgstr ""
@@ -3843,7 +3842,7 @@ msgid "E548: digit expected"
 msgstr "E548: oczekiwano cyfry"
 
 msgid "E549: Illegal percentage"
-msgstr "E459: Niedozwolony procent"
+msgstr "E549: Niedozwolony procent"
 
 msgid "Enter encryption key: "
 msgstr "Wprowad klucz do odkodowania: "
--- a/src/po/zh_CN.po
+++ b/src/po/zh_CN.po
@@ -1207,7 +1207,7 @@ msgstr "޽ļ"
 msgid "Append File"
 msgstr "׷ļ"
 
-msgid "E747: Cannot change directory, buffer is modifed (add ! to override)"
+msgid "E747: Cannot change directory, buffer is modified (add ! to override)"
 msgstr "E747: ܸıĿ¼޸ ( ! ǿִ)"
 
 msgid "E186: No previous directory"
--- a/src/term.c
+++ b/src/term.c
@@ -85,7 +85,8 @@ static void got_code_from_term __ARGS((c
 static void check_for_codes_from_term __ARGS((void));
 #endif
 #if defined(FEAT_GUI) \
-    || (defined(FEAT_MOUSE) && (!defined(UNIX) || defined(FEAT_MOUSE_XTERM)))
+    || (defined(FEAT_MOUSE) && (!defined(UNIX) || defined(FEAT_MOUSE_XTERM) \
+		|| defined(FEAT_MOUSE_GPM) || defined(FEAT_SYSMOUSE)))
 static int get_bytes_from_buf __ARGS((char_u *, char_u *, int));
 #endif
 static void del_termcode_idx __ARGS((int idx));
@@ -1923,7 +1924,7 @@ set_termname(term)
 #    endif
 	    clip_init(FALSE);
 #   endif
-	if (term_is_xterm)
+	if (use_xterm_like_mouse(term))
 	{
 	    if (use_xterm_mouse())
 		p = NULL;	/* keep existing value, might be "xterm2" */
@@ -2067,9 +2068,7 @@ set_termname(term)
 static int has_mouse_termcode = 0;
 # endif
 
-# if (!defined(UNIX) || defined(FEAT_MOUSE_XTERM) || defined(FEAT_MOUSE_NET) \
-	|| defined(FEAT_MOUSE_DEC)) || defined(FEAT_MOUSE_JSB) \
-	|| defined(FEAT_MOUSE_PTERM) || defined(PROTO)
+# if (!defined(UNIX) || defined(FEAT_MOUSE_TTY)) || defined(PROTO)
     void
 set_mouse_termcode(n, s)
     int		n;	/* KS_MOUSE, KS_NETTERM_MOUSE or KS_DEC_MOUSE */
@@ -2107,9 +2106,7 @@ set_mouse_termcode(n, s)
 # endif
 
 # if ((defined(UNIX) || defined(VMS) || defined(OS2)) \
-	&& (defined(FEAT_MOUSE_XTERM) || defined(FEAT_MOUSE_DEC) \
-	    || defined(FEAT_MOUSE_GPM) || defined(FEAT_MOUSE_PTERM))) \
-	    || defined(PROTO)
+	&& defined(FEAT_MOUSE_TTY)) || defined(PROTO)
     void
 del_mouse_termcode(n)
     int		n;	/* KS_MOUSE, KS_NETTERM_MOUSE or KS_DEC_MOUSE */
@@ -2951,7 +2948,8 @@ get_long_from_buf(buf, val)
 #endif
 
 #if defined(FEAT_GUI) \
-    || (defined(FEAT_MOUSE) && (!defined(UNIX) || defined(FEAT_MOUSE_XTERM)))
+    || (defined(FEAT_MOUSE) && (!defined(UNIX) || defined(FEAT_MOUSE_XTERM) \
+		|| defined(FEAT_MOUSE_GPM) || defined(FEAT_SYSMOUSE)))
 /*
  * Read the next num_bytes bytes from buf, and store them in bytes.  Assume
  * that buf has been through inchar().	Returns the actual number of bytes used
@@ -3583,7 +3581,7 @@ add_termcode(name, string, flags)
     /* Change leading <Esc>[ to CSI, change <Esc>O to <M-O>. */
     if (flags != 0 && flags != ATC_FROM_TERM && term_7to8bit(string) != 0)
     {
-	mch_memmove(s, s + 1, STRLEN(s));
+	STRMOVE(s, s + 1);
 	s[0] = term_7to8bit(string);
     }
     len = (int)STRLEN(s);
@@ -3768,8 +3766,7 @@ switch_to_8bit()
 	    c = term_7to8bit(termcodes[i].code);
 	    if (c != 0)
 	    {
-		mch_memmove(termcodes[i].code + 1, termcodes[i].code + 2,
-					       STRLEN(termcodes[i].code + 1));
+		STRMOVE(termcodes[i].code + 1, termcodes[i].code + 2);
 		termcodes[i].code[0] = c;
 	    }
 	}
@@ -3838,7 +3835,8 @@ check_termcode(max_offset, buf, buflen)
     int		i, j;
     int		idx = 0;
 #ifdef FEAT_MOUSE
-# if !defined(UNIX) || defined(FEAT_MOUSE_XTERM) || defined(FEAT_GUI)
+# if !defined(UNIX) || defined(FEAT_MOUSE_XTERM) || defined(FEAT_GUI) \
+    || defined(FEAT_MOUSE_GPM) || defined(FEAT_SYSMOUSE)
     char_u	bytes[6];
     int		num_bytes;
 # endif
@@ -4181,7 +4179,8 @@ check_termcode(max_offset, buf, buflen)
 	{
 	    is_click = is_drag = FALSE;
 
-# if !defined(UNIX) || defined(FEAT_MOUSE_XTERM) || defined(FEAT_GUI)
+# if !defined(UNIX) || defined(FEAT_MOUSE_XTERM) || defined(FEAT_GUI) \
+	    || defined(FEAT_MOUSE_GPM) || defined(FEAT_SYSMOUSE)
 	    if (key_name[0] == (int)KS_MOUSE)
 	    {
 		/*