summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2008-06-24 22:14:38 +0000
committerBram Moolenaar <Bram@vim.org>2008-06-24 22:14:38 +0000
commit864207de089119377a1e1e5d411307d8eb57399e (patch)
treed5bc119317f9c46d7136d1e12f06bac3b13d491b
parentc1a11ed54c7974b74be38f2aef6a200d7cfc878e (diff)
downloadvim-git-864207de089119377a1e1e5d411307d8eb57399e.tar.gz
updated for version 7.2a
-rw-r--r--runtime/doc/hebrew.txt9
-rw-r--r--runtime/doc/repeat.txt11
-rw-r--r--runtime/doc/starting.txt8
-rw-r--r--runtime/doc/usr_23.txt2
-rw-r--r--runtime/ftplugin/javascript.vim4
-rw-r--r--runtime/ftplugin/man.vim19
-rw-r--r--runtime/macros/matchit.vim58
-rw-r--r--runtime/plugin/rrhelper.vim9
-rw-r--r--runtime/syntax/dosbatch.vim22
-rw-r--r--runtime/syntax/gitconfig.vim38
-rw-r--r--runtime/syntax/haste.vim150
-rw-r--r--runtime/tutor/runtime/indent.vim31
-rw-r--r--runtime/tutor/runtime/vim16x16.pngbin0 -> 226 bytes
-rw-r--r--runtime/tutor/tutor.eo.utf-8967
-rw-r--r--src/po/pl.po21
-rw-r--r--src/po/zh_CN.po2
-rw-r--r--src/term.c27
17 files changed, 1286 insertions, 92 deletions
diff --git a/runtime/doc/hebrew.txt b/runtime/doc/hebrew.txt
index 966befef0..600f27718 100644
--- 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}
diff --git a/runtime/doc/repeat.txt b/runtime/doc/repeat.txt
index 2361ddcb1..38a485753 100644
--- 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" with "PAT". The same can be done with:
:%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*
diff --git a/runtime/doc/starting.txt b/runtime/doc/starting.txt
index b58dade4a..c017fb4b7 100644
--- 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.
diff --git a/runtime/doc/usr_23.txt b/runtime/doc/usr_23.txt
index 59c5c529f..e0aa05dcb 100644
--- 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
diff --git a/runtime/ftplugin/javascript.vim b/runtime/ftplugin/javascript.vim
index 1ba440041..af5e4a920 100644
--- 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
diff --git a/runtime/ftplugin/man.vim b/runtime/ftplugin/man.vim
index 88d7bca25..a58d2977a 100644
--- 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
diff --git a/runtime/macros/matchit.vim b/runtime/macros/matchit.vim
index 7fcc53e80..e41cda9e1 100644
--- 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, mode) range
" 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, mode) range
" 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, mode) range
\ 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, mode) range
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, mode) range
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!
diff --git a/runtime/plugin/rrhelper.vim b/runtime/plugin/rrhelper.vim
index 05090b59c..302177cb2 100644
--- 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
diff --git a/runtime/syntax/dosbatch.vim b/runtime/syntax/dosbatch.vim
index e27310cc9..8c0129933 100644
--- 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\(&\||\|^\|<<\|>>\)=\=\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*\>"lc=4
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_dosbatch_syntax_inits")
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
diff --git a/runtime/syntax/gitconfig.vim b/runtime/syntax/gitconfig.vim
new file mode 100644
index 000000000..f44ce2b57
--- /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"
diff --git a/runtime/syntax/haste.vim b/runtime/syntax/haste.vim
new file mode 100644
index 000000000..cf943f108
--- /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
diff --git a/runtime/tutor/runtime/indent.vim b/runtime/tutor/runtime/indent.vim
new file mode 100644
index 000000000..12f03648c
--- /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
diff --git a/runtime/tutor/runtime/vim16x16.png b/runtime/tutor/runtime/vim16x16.png
new file mode 100644
index 000000000..fb45d22a0
--- /dev/null
+++ b/runtime/tutor/runtime/vim16x16.png
Binary files differ
diff --git a/runtime/tutor/tutor.eo.utf-8 b/runtime/tutor/tutor.eo.utf-8
new file mode 100644
index 000000000..8f67b207b
--- /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
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/src/po/pl.po b/src/po/pl.po
index 4f4e29ff3..696355d32 100644
--- 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 String"
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: "
diff --git a/src/po/zh_CN.po b/src/po/zh_CN.po
index 3d3ab6285..5d9aceb5f 100644
--- 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"
diff --git a/src/term.c b/src/term.c
index f1c718034..cbf406cb4 100644
--- a/src/term.c
+++ b/src/term.c
@@ -85,7 +85,8 @@ static void got_code_from_term __ARGS((char_u *code, int len));
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)
{
/*