summaryrefslogtreecommitdiff
path: root/runtime
diff options
context:
space:
mode:
Diffstat (limited to 'runtime')
-rw-r--r--runtime/autoload/vimball.vim348
-rw-r--r--runtime/doc/index.txt26
-rw-r--r--runtime/doc/message.txt4
-rw-r--r--runtime/doc/os_mint.txt2
-rw-r--r--runtime/doc/os_os2.txt2
-rw-r--r--runtime/doc/tabpage.txt2
-rw-r--r--runtime/doc/usr_22.txt184
-rw-r--r--runtime/doc/usr_45.txt4
-rw-r--r--runtime/doc/version4.txt2
-rw-r--r--runtime/doc/vi_diff.txt9
-rw-r--r--runtime/macros/life/life.vim3
-rw-r--r--runtime/plugin/netrwPlugin.vim34
-rw-r--r--runtime/spell/fr/main.aap58
-rw-r--r--runtime/syntax/autohotkey.vim7
-rw-r--r--runtime/syntax/fstab.vim22
-rw-r--r--runtime/syntax/sisu.vim219
-rw-r--r--runtime/syntax/yaml.vim176
-rwxr-xr-xruntime/tutor/Contents.infobin0 -> 582 bytes
-rw-r--r--runtime/tutor/Makefile616
-rw-r--r--runtime/tutor/README_os390.txt130
-rw-r--r--runtime/tutor/runtime/makemenu.vim580
-rw-r--r--runtime/tutor/runtime/vim48x48.gifbin0 -> 504 bytes
-rwxr-xr-xruntime/tutor/src.infobin0 -> 624 bytes
-rw-r--r--runtime/tutor/tutor.el.utf-8815
-rw-r--r--runtime/tutor/tutor.hu.cp1250823
25 files changed, 3682 insertions, 384 deletions
diff --git a/runtime/autoload/vimball.vim b/runtime/autoload/vimball.vim
index 5ed34f22c..d69c64532 100644
--- a/runtime/autoload/vimball.vim
+++ b/runtime/autoload/vimball.vim
@@ -1,9 +1,9 @@
" vimball.vim : construct a file containing both paths and files
" Author: Charles E. Campbell, Jr.
-" Date: May 07, 2007
-" Version: 22
+" Date: Jun 05, 2008
+" Version: 27
" GetLatestVimScripts: 1502 1 :AutoInstall: vimball.vim
-" Copyright: (c) 2004-2006 by Charles E. Campbell, Jr.
+" Copyright: (c) 2004-2008 by Charles E. Campbell, Jr.
" The VIM LICENSE applies to Vimball.vim, and Vimball.txt
" (see |copyright|) except use "Vimball" instead of "Vim".
" No warranty, express or implied.
@@ -15,8 +15,9 @@ if &cp || exists("g:loaded_vimball") || v:version < 700
finish
endif
let s:keepcpo = &cpo
-let g:loaded_vimball = "v22"
+let g:loaded_vimball = "v27"
set cpo&vim
+"DechoTabOn
" =====================================================================
" Constants: {{{1
@@ -24,6 +25,57 @@ if !exists("s:USAGE")
let s:USAGE = 0
let s:WARNING = 1
let s:ERROR = 2
+
+ " determine if cygwin is in use or not
+ if !exists("g:netrw_cygwin")
+ if has("win32") || has("win95") || has("win64") || has("win16")
+ if &shell =~ '\%(\<bash\>\|\<zsh\>\)\%(\.exe\)\=$'
+ let g:netrw_cygwin= 1
+ else
+ let g:netrw_cygwin= 0
+ endif
+ else
+ let g:netrw_cygwin= 0
+ endif
+ endif
+
+ " set up g:vimball_mkdir if the mkdir() call isn't defined
+ if !exists("*mkdir")
+ if exists("g:netrw_local_mkdir")
+ let g:vimball_mkdir= g:netrw_local_mkdir
+ elseif executable("mkdir")
+ let g:vimball_mkdir= "mkdir"
+ elseif executable("makedir")
+ let g:vimball_mkdir= "makedir"
+ endif
+ if !exists(g:vimball_mkdir)
+ call vimball#ShowMesg(s:WARNING,"(vimball) g:vimball_mkdir undefined")
+ endif
+ endif
+
+ " set up shell quoting character
+ if exists("g:vimball_shq") && !exists("g:netrw_shq")
+ let g:netrw_shq= g:vimball_shq
+ endif
+ if !exists("g:netrw_shq")
+ if exists("&shq") && &shq != ""
+ let g:netrw_shq= &shq
+ elseif has("win32") || has("win95") || has("win64") || has("win16")
+ if g:netrw_cygwin
+ let g:netrw_shq= "'"
+ else
+ let g:netrw_shq= '"'
+ endif
+ else
+ let g:netrw_shq= "'"
+ endif
+" call Decho("g:netrw_shq<".g:netrw_shq.">")
+ endif
+
+ " set up escape string (used to protect paths)
+ if !exists("g:vimball_path_escape")
+ let g:vimball_path_escape= ' ;#%'
+ endif
endif
" =====================================================================
@@ -31,7 +83,12 @@ endif
" ---------------------------------------------------------------------
" vimball#MkVimball: creates a vimball given a list of paths to files {{{2
-" Vimball Format:
+" Input:
+" line1,line2: a range of lines containing paths to files to be included in the vimball
+" writelevel : if true, force a write to filename.vba, even if it exists
+" (usually accomplished with :MkVimball! ...
+" filename : base name of file to be created (ie. filename.vba)
+" Output: a filename.vba using vimball format:
" path
" filesize
" [file]
@@ -40,7 +97,7 @@ endif
" [file]
fun! vimball#MkVimball(line1,line2,writelevel,...) range
" call Dfunc("MkVimball(line1=".a:line1." line2=".a:line2." writelevel=".a:writelevel." vimballname<".a:1.">) a:0=".a:0)
- if a:1 =~ '.vim' || a:1 =~ '.txt'
+ if a:1 =~ '\.vim$' || a:1 =~ '\.txt$'
let vbname= substitute(a:1,'\.\a\{3}$','.vba','')
else
let vbname= a:1
@@ -61,7 +118,7 @@ fun! vimball#MkVimball(line1,line2,writelevel,...) range
endif
" user option bypass
- call s:SaveSettings()
+ call vimball#SaveSettings()
if a:0 >= 2
" allow user to specify where to get the files
@@ -87,7 +144,7 @@ fun! vimball#MkVimball(line1,line2,writelevel,...) range
if !filereadable(svfile)
call vimball#ShowMesg(s:ERROR,"unable to read file<".svfile.">")
call s:ChgDir(curdir)
- call s:RestoreSettings()
+ call vimball#RestoreSettings()
" call Dret("MkVimball")
return
endif
@@ -113,8 +170,8 @@ fun! vimball#MkVimball(line1,line2,writelevel,...) range
" write the file from the tab
let svfilepath= s:Path(svfile,'')
-" call Decho("exe $r ".svfilepath)
- exe "$r ".svfilepath
+" call Decho("exe $r ".fnameescape(svfilepath))
+ exe "$r ".fnameescape(svfilepath)
call setline(lastline+1,line("$") - lastline - 1)
" call Decho("lastline=".lastline." line$=".line("$"))
@@ -127,14 +184,15 @@ fun! vimball#MkVimball(line1,line2,writelevel,...) range
" write the vimball
exe "tabn ".vbtabnr
call s:ChgDir(curdir)
+ setlocal ff=unix
if a:writelevel
let vbnamepath= s:Path(vbname,'')
-" call Decho("exe w! ".vbnamepath)
- exe "w! ".vbnamepath
+" call Decho("exe w! ".fnameescape(vbnamepath))
+ exe "w! ".fnameescape(vbnamepath)
else
let vbnamepath= s:Path(vbname,'')
-" call Decho("exe w ".vbnamepath)
- exe "w ".vbnamepath
+" call Decho("exe w ".fnameescape(vbnamepath))
+ exe "w ".fnameescape(vbnamepath)
endif
" call Decho("Vimball<".vbname."> created")
echo "Vimball<".vbname."> created"
@@ -145,16 +203,24 @@ fun! vimball#MkVimball(line1,line2,writelevel,...) range
exe "tabc ".vbtabnr
" restore options
- call s:RestoreSettings()
+ call vimball#RestoreSettings()
" call Dret("MkVimball")
endfun
" ---------------------------------------------------------------------
" vimball#Vimball: extract and distribute contents from a vimball {{{2
+" (invoked the the UseVimball command embedded in
+" vimballs' prologue)
fun! vimball#Vimball(really,...)
" call Dfunc("vimball#Vimball(really=".a:really.") a:0=".a:0)
+ if v:version < 701 || (v:version == 701 && !has("patch299"))
+ echoerr "This version of vimball requires vim 7.1 with patch 299"
+" call Dret("vimball#Vimball : needs 7.1 with patch 299")
+ return
+ endif
+
if getline(1) !~ '^" Vimball Archiver by Charles E. Campbell, Jr., Ph.D.$'
echoerr "(Vimball) The current file does not appear to be a Vimball!"
" call Dret("vimball#Vimball")
@@ -162,8 +228,9 @@ fun! vimball#Vimball(really,...)
endif
" set up standard settings
- call s:SaveSettings()
- let curtabnr = tabpagenr()
+ call vimball#SaveSettings()
+ let curtabnr = tabpagenr()
+ let vimballfile = expand("%:tr")
" set up vimball tab
" call Decho("setting up vimball tab")
@@ -186,16 +253,18 @@ fun! vimball#Vimball(really,...)
" call Decho("curdir<".curdir.">")
call s:ChgDir(home)
- call vimball#RmVimball()
+ let s:ok_unablefind= 1
+ call vimball#RmVimball(vimballfile)
+ unlet s:ok_unablefind
let linenr = 4
let filecnt = 0
" give title to listing of (extracted) files from Vimball Archive
if a:really
- echohl Title | echomsg "Vimball Archive" | echohl None
- else
- echohl Title | echomsg "Vimball Archive Listing" | echohl None
+ echohl Title | echomsg "Vimball Archive" | echohl None
+ else
+ echohl Title | echomsg "Vimball Archive Listing" | echohl None
echohl Statement | echomsg "files would be placed under: ".home | echohl None
endif
@@ -206,7 +275,7 @@ fun! vimball#Vimball(really,...)
while 1 < linenr && linenr < line("$")
let fname = substitute(getline(linenr),'\t\[\[\[1$','','')
let fname = substitute(fname,'\\','/','g')
- let fsize = getline(linenr+1)
+ let fsize = getline(linenr+1)+0
let filecnt = filecnt + 1
" call Decho("fname<".fname."> fsize=".fsize." filecnt=".filecnt)
@@ -219,10 +288,10 @@ fun! vimball#Vimball(really,...)
" call Decho("using L#".(linenr+1).": fsize=".fsize)
" Allow AsNeeded/ directory to take place of plugin/ directory
- " when AsNeeded/filename is filereadable
+ " when AsNeeded/filename is filereadable or was present in VimballRecord
if fname =~ '\<plugin/'
let anfname= substitute(fname,'\<plugin/','AsNeeded/','')
- if filereadable(anfname)
+ if filereadable(anfname) || (exists("s:VBRstring") && s:VBRstring =~ anfname)
" call Decho("using anfname<".anfname."> instead of <".fname.">")
let fname= anfname
endif
@@ -240,7 +309,11 @@ fun! vimball#Vimball(really,...)
" call Decho("dirname<".dirname.">")
if !isdirectory(dirname)
" call Decho("making <".dirname.">")
- call mkdir(dirname)
+ if exists("g:vimball_mkdir")
+ call system(g:vimball_mkdir." ".s:Escape(dirname))
+ else
+ call mkdir(dirname)
+ endif
call s:RecordInVar(home,"rmdir('".dirname."')")
endif
endwhile
@@ -257,6 +330,7 @@ fun! vimball#Vimball(really,...)
" copy "a" buffer into tab
" call Decho('copy "a buffer into tab#'.vbtabnr)
exe "tabn ".vbtabnr
+ setlocal ma
silent! %d
silent put a
1
@@ -265,10 +339,10 @@ fun! vimball#Vimball(really,...)
" write tab to file
if a:really
let fnamepath= s:Path(home."/".fname,'')
-" call Decho("exe w! ".fnamepath)
- exe "silent w! ".fnamepath
+" call Decho("exe w! ".fnameescape(fnamepath))
+ exe "silent w! ".fnameescape(fnamepath)
echo "wrote ".fnamepath
- call s:RecordInVar(home,"call delete('".fnamepath."')")
+ call s:RecordInVar(home,"call delete('".fnameescape(fnamepath)."')")
endif
" return to tab with vimball
@@ -277,21 +351,20 @@ fun! vimball#Vimball(really,...)
" set up help if its a doc/*.txt file
" call Decho("didhelp<".didhelp."> fname<".fname.">")
- if a:really && didhelp == "" && fname =~ 'doc/[^/]\+\.txt$'
- let didhelp= substitute(fname,'^\(.*\<doc\)[/\\][^.]*\.txt$','\1','')
+ if a:really && didhelp == "" && fname =~ 'doc/[^/]\+\.\(txt\|..x\)$'
+ let didhelp= substitute(fname,'^\(.*\<doc\)[/\\][^.]*\.\(txt\|..x\)$','\1','')
" call Decho("didhelp<".didhelp.">")
endif
" update for next file
-" let oldlinenr = linenr " Decho
- let linenr = linenr + fsize
-" call Decho("update linenr= [linenr=".oldlinenr."] + [fsize=".fsize."] = ".linenr)
+" call Decho("update linenr= [linenr=".linenr."] + [fsize=".fsize."] = ".(linenr+fsize))
+ let linenr= linenr + fsize
endwhile
" set up help
" call Decho("about to set up help: didhelp<".didhelp.">")
if didhelp != ""
- let htpath= escape(substitute(s:Path(home."/".didhelp,'"'),'"','','g'),' ')
+ let htpath= s:Path(home."/".didhelp,"")
" call Decho("exe helptags ".htpath)
exe "helptags ".htpath
echo "did helptags"
@@ -311,7 +384,7 @@ fun! vimball#Vimball(really,...)
setlocal nomod bh=wipe
exe "tabn ".curtabnr
exe "tabc ".vbtabnr
- call s:RestoreSettings()
+ call vimball#RestoreSettings()
call s:ChgDir(curdir)
" call Dret("vimball#Vimball")
@@ -329,12 +402,10 @@ fun! vimball#RmVimball(...)
" call Dret("vimball#RmVimball : (g:vimball_norecord)")
return
endif
- let eikeep= &ei
- set ei=all
-" call Decho("turned off all events")
if a:0 == 0
- let curfile= '^'.expand("%:tr")
+ let curfile= expand("%:tr")
+" call Decho("case a:0=0: curfile<".curfile."> (used expand(%:tr))")
else
if a:1 =~ '[\/]'
call vimball#ShowMesg(s:USAGE,"RmVimball vimballname [path]")
@@ -342,11 +413,10 @@ fun! vimball#RmVimball(...)
return
endif
let curfile= a:1
+" call Decho("case a:0=".a:0.": curfile<".curfile.">")
endif
- if curfile !~ '.vba$'
- let curfile= curfile.".vba: "
- else
- let curfile= curfile.": "
+ if curfile =~ '\.vba$'
+ let curfile= substitute(curfile,'\.vba','','')
endif
if a:0 >= 2
let home= expand(a:2)
@@ -365,13 +435,34 @@ fun! vimball#RmVimball(...)
keepalt keepjumps 1split
silent! keepalt keepjumps e .VimballRecord
let keepsrch= @/
- if search(curfile,'cw')
- let exestring= substitute(getline("."),curfile,'','')
+" call Decho("search for ^".curfile.".vba:")
+" call Decho("search for ^".curfile."[-0-9.]*.vba:")
+ if search('^'.curfile.": ".'cw')
+ let foundit= 1
+ elseif search('^'.curfile.".vba: ",'cw')
+ let foundit= 1
+ elseif search('^'.curfile.'[-0-9.]*.vba: ','cw')
+ let foundit= 1
+ else
+ let foundit = 0
+ endif
+ if foundit
+ let exestring = substitute(getline("."),'^'.curfile.'\S\{-}\.vba: ','','')
+ let s:VBRstring= substitute(exestring,'call delete(','','g')
+ let s:VBRstring= substitute(s:VBRstring,"[')]",'','g')
" call Decho("exe ".exestring)
silent! keepalt keepjumps exe exestring
silent! keepalt keepjumps d
+ let exestring= strlen(substitute(exestring,'call delete(.\{-})|\=',"D","g"))
+" call Decho("exestring<".exestring.">")
+ echomsg "removed ".exestring." files"
else
-" call Decho("unable to find <".curfile."> in .VimballRecord")
+ let s:VBRstring= ''
+ let curfile = substitute(curfile,'\.vba','','')
+" call Decho("unable to find <".curfile."> in .VimballRecord")
+ if !exists("s:ok_unablefind")
+ call vimball#ShowMesg(s:WARNING,"(RmVimball) unable to find <".curfile."> in .VimballRecord")
+ endif
endif
silent! keepalt keepjumps g/^\s*$/d
silent! keepalt keepjumps wq!
@@ -379,10 +470,6 @@ fun! vimball#RmVimball(...)
endif
call s:ChgDir(curdir)
- " restoring events
-" call Decho("restoring events")
- let &ei= eikeep
-
" call Dret("vimball#RmVimball")
endfun
@@ -393,21 +480,56 @@ fun! vimball#Decompress(fname)
" decompression:
if expand("%") =~ '.*\.gz' && executable("gunzip")
- exe "!gunzip ".a:fname
+ " handle *.gz with gunzip
+ silent exe "!gunzip ".s:Escape(a:fname)
+ if v:shell_error != 0
+ call vimball#ShowMesg(s:WARNING,"(vimball#Decompress) gunzip may have failed with <".a:fname.">")
+ endif
+ let fname= substitute(a:fname,'\.gz$','','')
+ exe "e ".escape(fname,' \')
+ call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)")
+
+ elseif expand("%") =~ '.*\.gz' && executable("gzip")
+ " handle *.gz with gzip -d
+ silent exe "!gzip -d ".s:Escape(a:fname)
+ if v:shell_error != 0
+ call vimball#ShowMesg(s:WARNING,'(vimball#Decompress) "gzip -d" may have failed with <'.a:fname.">")
+ endif
let fname= substitute(a:fname,'\.gz$','','')
exe "e ".escape(fname,' \')
call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)")
+
elseif expand("%") =~ '.*\.bz2' && executable("bunzip2")
- exe "!bunzip2 ".a:fname
+ " handle *.bz2 with bunzip2
+ silent exe "!bunzip2 ".s:Escape(a:fname)
+ if v:shell_error != 0
+ call vimball#ShowMesg(s:WARNING,"(vimball#Decompress) bunzip2 may have failed with <".a:fname.">")
+ endif
let fname= substitute(a:fname,'\.bz2$','','')
exe "e ".escape(fname,' \')
call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)")
+
+ elseif expand("%") =~ '.*\.bz2' && executable("bzip2")
+ " handle *.bz2 with bzip2 -d
+ silent exe "!bzip2 -d ".s:Escape(a:fname)
+ if v:shell_error != 0
+ call vimball#ShowMesg(s:WARNING,'(vimball#Decompress) "bzip2 -d" may have failed with <'.a:fname.">")
+ endif
+ let fname= substitute(a:fname,'\.bz2$','','')
+ exe "e ".escape(fname,' \')
+ call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)")
+
elseif expand("%") =~ '.*\.zip' && executable("unzip")
- exe "!unzip ".a:fname
+ " handle *.zip with unzip
+ silent exe "!unzip ".s:Escape(a:fname)
+ if v:shell_error != 0
+ call vimball#ShowMesg(s:WARNING,"(vimball#Decompress) unzip may have failed with <".a:fname.">")
+ endif
let fname= substitute(a:fname,'\.zip$','','')
exe "e ".escape(fname,' \')
call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)")
endif
+
set noma bt=nofile fmr=[[[,]]] fdm=marker
" call Dret("Decompress")
@@ -443,34 +565,35 @@ fun! vimball#ShowMesg(level,msg)
" call Dret("vimball#ShowMesg")
endfun
-
-" ---------------------------------------------------------------------
-let &cpo= s:keepcpo
-unlet s:keepcpo
" =====================================================================
" s:ChgDir: change directory (in spite of Windoze) {{{2
fun! s:ChgDir(newdir)
" call Dfunc("ChgDir(newdir<".a:newdir.">)")
if (has("win32") || has("win95") || has("win64") || has("win16"))
- exe 'silent cd '.escape(substitute(a:newdir,'/','\\','g'),' ')
+ exe 'silent cd '.fnameescape(substitute(a:newdir,'/','\\','g'))
else
- exe 'silent cd '.escape(a:newdir,' ')
+ exe 'silent cd '.fnameescape(a:newdir)
endif
-" call Dret("ChgDir")
+" call Dret("ChgDir : curdir<".getcwd().">")
endfun
" ---------------------------------------------------------------------
-" s:Path: prepend and append quotes, do escaping, as necessary {{{2
+" s:Path: prepend and append quotes and do escaping {{{2
fun! s:Path(cmd,quote)
-" call Dfunc("Path(cmd<".a:cmd."> quote<".a:quote.">)")
+" call Dfunc("Path(cmd<".a:cmd."> quote<".a:quote.">) vimball_path_escape<".g:vimball_path_escape.">")
if (has("win32") || has("win95") || has("win64") || has("win16"))
- let cmdpath= a:quote.substitute(a:cmd,'/','\\','g').a:quote
+" let cmdpath= a:quote.substitute(a:cmd,'/','\\','g').a:quote
+ let cmdpath= a:quote.substitute(a:cmd,'\\','/','g').a:quote
+" call Decho("cmdpath<".cmdpath."> (win32 mod)")
else
let cmdpath= a:quote.a:cmd.a:quote
+" call Decho("cmdpath<".cmdpath."> (not-win32 mod)")
endif
- if a:quote == ""
+ if a:quote == "" && g:vimball_path_escape !~ ' '
let cmdpath= escape(cmdpath,' ')
+" call Decho("cmdpath<".cmdpath."> (empty quote case)")
endif
+ let cmdpath= escape(cmdpath,g:vimball_path_escape)
" call Dret("Path <".cmdpath.">")
return cmdpath
endfun
@@ -485,23 +608,20 @@ fun! s:RecordInVar(home,cmd)
" else
" let s:recorddir= s:recorddir."|".substitute(a:cmd,'^rmdir',"call s:Rmdir",'')
" endif
-" call Decho("recorddir=".s:recorddir)
elseif !exists("s:recordfile")
let s:recordfile= a:cmd
-" call Decho("recordfile=".s:recordfile)
else
let s:recordfile= s:recordfile."|".a:cmd
-" call Decho("recordfile=".s:recordfile)
endif
-" call Dret("RecordInVar")
+" call Dret("RecordInVar : s:recordfile<".(exists("s:recordfile")? s:recordfile : "")."> s:recorddir<".(exists("s:recorddir")? s:recorddir : "").">")
endfun
" ---------------------------------------------------------------------
" s:RecordInFile: {{{2
fun! s:RecordInFile(home)
-" call Dfunc("RecordInFile()")
+" call Dfunc("s:RecordInFile()")
if exists("g:vimball_norecord")
-" call Dret("RecordInFile : (g:vimball_norecord)")
+" call Dret("s:RecordInFile : g:vimball_norecord")
return
endif
@@ -509,8 +629,12 @@ fun! s:RecordInFile(home)
let curdir= getcwd()
call s:ChgDir(a:home)
keepalt keepjumps 1split
+
let cmd= expand("%:tr").": "
+" call Decho("cmd<".cmd.">")
+
silent! keepalt keepjumps e .VimballRecord
+ setlocal ma
$
if exists("s:recordfile") && exists("s:recorddir")
let cmd= cmd.s:recordfile."|".s:recorddir
@@ -519,35 +643,33 @@ fun! s:RecordInFile(home)
elseif exists("s:recordfile")
let cmd= cmd.s:recordfile
else
-" call Dret("RecordInFile")
+" call Dret("s:RecordInFile : neither recordfile nor recorddir exist")
return
endif
+" call Decho("cmd<".cmd.">")
+
+ " put command into buffer, write .VimballRecord `file
keepalt keepjumps put=cmd
silent! keepalt keepjumps g/^\s*$/d
silent! keepalt keepjumps wq!
call s:ChgDir(curdir)
- if exists("s:recorddir") |unlet s:recorddir |endif
- if exists("s:recordfile")|unlet s:recordfile|endif
+
+ if exists("s:recorddir")
+" call Decho("unlet s:recorddir<".s:recorddir.">")
+ unlet s:recorddir
+ endif
+ if exists("s:recordfile")
+" call Decho("unlet s:recordfile<".s:recordfile.">")
+ unlet s:recordfile
+ endif
else
" call Decho("s:record[file|dir] doesn't exist")
endif
-" call Dret("RecordInFile")
+" call Dret("s:RecordInFile")
endfun
" ---------------------------------------------------------------------
-" s:Rmdir: {{{2
-"fun! s:Rmdir(dirname)
-"" call Dfunc("s:Rmdir(dirname<".a:dirname.">)")
-" if (has("win32") || has("win95") || has("win64") || has("win16")) && &shell !~? 'sh$'
-" call system("del ".a:dirname)
-" else
-" call system("rmdir ".a:dirname)
-" endif
-"" call Dret("s:Rmdir")
-"endfun
-
-" ---------------------------------------------------------------------
" s:VimballHome: determine/get home directory path (usually from rtp) {{{2
fun! s:VimballHome()
" call Dfunc("VimballHome()")
@@ -557,6 +679,11 @@ fun! s:VimballHome()
" go to vim plugin home
for home in split(&rtp,',') + ['']
if isdirectory(home) && filewritable(home) | break | endif
+ let basehome= substitute(home,'[/\\]\.vim$','','')
+ if isdirectory(basehome) && filewritable(basehome)
+ let home= basehome."/.vim"
+ break
+ endif
endfor
if home == ""
" just pick the first directory
@@ -566,13 +693,25 @@ fun! s:VimballHome()
let home= substitute(home,'/','\\','g')
endif
endif
+ " insure that the home directory exists
+" call Decho("picked home<".home.">")
+ if !isdirectory(home)
+ if exists("g:vimball_mkdir")
+" call Decho("home<".home."> isn't a directory -- making it now with g:vimball_mkdir<".g:vimball_mkdir.">")
+" call Decho("system(".g:vimball_mkdir." ".s:Escape(home).")")
+ call system(g:vimball_mkdir." ".s:Escape(home))
+ else
+" call Decho("home<".home."> isn't a directory -- making it now with mkdir()")
+ call mkdir(home)
+ endif
+ endif
" call Dret("VimballHome <".home.">")
return home
endfun
" ---------------------------------------------------------------------
-" s:SaveSettings: {{{2
-fun! s:SaveSettings()
+" vimball#SaveSettings: {{{2
+fun! vimball#SaveSettings()
" call Dfunc("SaveSettings()")
let s:makeep = getpos("'a")
let s:regakeep= @a
@@ -587,17 +726,20 @@ fun! s:SaveSettings()
let s:pmkeep = &pm
let s:repkeep = &report
let s:vekeep = &ve
+ let s:ffkeep = &ff
if exists("&acd")
- set ei=all ve=all noacd nofen noic report=999 nohid bt= ma lz pm=
+ setlocal ei=all ve=all noacd nofen noic report=999 nohid bt= ma lz pm= ff=unix
else
- set ei=all ve=all nofen noic report=999 nohid bt= ma lz pm=
+ setlocal ei=all ve=all nofen noic report=999 nohid bt= ma lz pm= ff=unix
endif
+ " vimballs should be in unix format
+ setlocal ff=unix
" call Dret("SaveSettings")
endfun
" ---------------------------------------------------------------------
-" s:RestoreSettings: {{{2
-fun! s:RestoreSettings()
+" vimball#RestoreSettings: {{{2
+fun! vimball#RestoreSettings()
" call Dfunc("RestoreSettings()")
let @a = s:regakeep
if exists("&acd")
@@ -611,20 +753,34 @@ fun! s:RestoreSettings()
let &report = s:repkeep
let &ve = s:vekeep
let &ei = s:eikeep
+ let &ff = s:ffkeep
if s:makeep[0] != 0
" restore mark a
" call Decho("restore mark-a: makeep=".string(makeep))
call setpos("'a",s:makeep)
endif
if exists("&acd")
- unlet s:regakeep s:acdkeep s:eikeep s:fenkeep s:hidkeep s:ickeep s:repkeep s:vekeep s:makeep s:lzkeep s:pmkeep
- else
- unlet s:regakeep s:eikeep s:fenkeep s:hidkeep s:ickeep s:repkeep s:vekeep s:makeep s:lzkeep s:pmkeep
+ unlet s:acdkeep
endif
- set bt=nofile noma
+ unlet s:regakeep s:eikeep s:fenkeep s:hidkeep s:ickeep s:repkeep s:vekeep s:makeep s:lzkeep s:pmkeep s:ffkeep
" call Dret("RestoreSettings")
endfun
" ---------------------------------------------------------------------
+" s:Escape: {{{2
+fun s:Escape(name)
+ " shellescape() was added by patch 7.0.111
+ if exists("*shellescape")
+ return shellescape(a:name)
+ endif
+ return g:netrw_shq . a:name . g:netrw_shq
+endfun
+
+" ---------------------------------------------------------------------
+" Restore:
+let &cpo= s:keepcpo
+unlet s:keepcpo
+
+" ---------------------------------------------------------------------
" Modelines: {{{1
" vim: fdm=marker
diff --git a/runtime/doc/index.txt b/runtime/doc/index.txt
index f587cc902..f494328df 100644
--- a/runtime/doc/index.txt
+++ b/runtime/doc/index.txt
@@ -1,4 +1,4 @@
-*index.txt* For Vim version 7.1. Last change: 2007 May 05
+*index.txt* For Vim version 7.2a. Last change: 2008 May 04
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -467,6 +467,7 @@ tag command action in Normal mode ~
|v_ab| ab "a block" from "[(" to "])" (with braces)
|v_ap| ap "a paragraph" (with white space)
|v_as| as "a sentence" (with white space)
+|v_at| at "a tag block" (with white space)
|v_aw| aw "a word" (with white space)
|v_a{| a{ same as aB
|v_a}| a} same as aB
@@ -484,6 +485,7 @@ tag command action in Normal mode ~
|v_ib| ib "inner block" from "[(" to "])"
|v_ip| ip "inner paragraph"
|v_is| is "inner sentence"
+|v_it| it "inner tag block"
|v_iw| iw "inner word"
|v_i{| i{ same as iB
|v_i}| i} same as iB
@@ -874,6 +876,10 @@ tag command note action in Visual mode ~
mode
|v_X| X 2 delete the highlighted lines
|v_Y| Y yank the highlighted lines
+|v_aquote| a" extend highlighted area with a double
+ quoted string
+|v_a'| a' extend highlighted area with a single
+ quoted string
|v_a(| a( same as ab
|v_a)| a) same as ab
|v_a<| a< extend highlighted area with a <> block
@@ -882,9 +888,12 @@ tag command note action in Visual mode ~
|v_aW| aW extend highlighted area with "a WORD"
|v_a[| a[ extend highlighted area with a [] block
|v_a]| a] same as a[
+|v_a`| a` extend highlighted area with a backtick
+ quoted string
|v_ab| ab extend highlighted area with a () block
|v_ap| ap extend highlighted area with a paragraph
|v_as| as extend highlighted area with a sentence
+|v_at| at extend highlighted area with a tag block
|v_aw| aw extend highlighted area with "a word"
|v_a{| a{ same as aB
|v_a}| a} same as aB
@@ -895,6 +904,10 @@ tag command note action in Visual mode ~
|v_gq| gq 2 format the highlighted lines
|v_gv| gv exchange current and previous highlighted
area
+|v_iquote| i" extend highlighted area with a double
+ quoted string (without quotes)
+|v_i'| i' extend highlighted area with a single
+ quoted string (without quotes)
|v_i(| i( same as ib
|v_i)| i) same as ib
|v_i<| i< extend highlighted area with inner <> block
@@ -903,9 +916,12 @@ tag command note action in Visual mode ~
|v_iW| iW extend highlighted area with "inner WORD"
|v_i[| i[ extend highlighted area with inner [] block
|v_i]| i] same as i[
+|v_i`| i` extend highlighted area with a backtick
+ quoted string (without the backticks)
|v_ib| ib extend highlighted area with inner () block
|v_ip| ip extend highlighted area with inner paragraph
|v_is| is extend highlighted area with inner sentence
+|v_it| it extend highlighted area with inner tag block
|v_iw| iw extend highlighted area with "inner word"
|v_i{| i{ same as iB
|v_i}| i} same as iB
@@ -1339,16 +1355,14 @@ The commands are sorted on the non-optional part of their name.
|:print| :p[rint] print lines
|:profdel| :profd[el] stop profiling a function or script
|:profile| :prof[ile] profiling functions and scripts
-|:promptfind| :pro[mtfind] open GUI dialog for searching
-|:promptrepl| :promtr[epl] open GUI dialog for search/replace
+|:promptfind| :pro[mptfind] open GUI dialog for searching
+|:promptrepl| :promptr[epl] open GUI dialog for search/replace
|:perldo| :perld[o] execute Perl command for each line
|:pop| :po[p] jump to older entry in tag stack
|:popup| :pop[up] popup a menu by name
|:ppop| :pp[op] ":pop" in preview window
|:preserve| :pre[serve] write all text to swap file
|:previous| :prev[ious] go to previous file in argument list
-|:promptfind| :pro[mptfind] Search dialog
-|:promptrepl| :promptr[epl] Search/Replace dialog
|:psearch| :ps[earch] like ":ijump" but shows match in preview window
|:ptag| :pt[ag] show tag in preview window
|:ptNext| :ptN[ext] |:tNext| in preview window
@@ -1454,7 +1468,7 @@ The commands are sorted on the non-optional part of their name.
|:startinsert| :star[tinsert] start Insert mode
|:startgreplace| :startg[replace] start Virtual Replace mode
|:startreplace| :startr[eplace] start Replace mode
-|:stopinsert|| :stopi[nsert] stop Insert mode
+|:stopinsert| :stopi[nsert] stop Insert mode
|:stjump| :stj[ump] do ":tjump" and split window
|:stselect| :sts[elect] do ":tselect" and split window
|:sunhide| :sun[hide] same as ":unhide"
diff --git a/runtime/doc/message.txt b/runtime/doc/message.txt
index 885d1eea6..9f8bbfb90 100644
--- a/runtime/doc/message.txt
+++ b/runtime/doc/message.txt
@@ -1,4 +1,4 @@
-*message.txt* For Vim version 7.1. Last change: 2007 Mar 20
+*message.txt* For Vim version 7.2a. Last change: 2007 Aug 19
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -53,7 +53,7 @@ If you are lazy, it also works without the shift key: >
:help e72
==============================================================================
-2. Error messages *error-messages*
+2. Error messages *error-messages* *errors*
When an error message is displayed, but it is removed before you could read
it, you can see it again with: >
diff --git a/runtime/doc/os_mint.txt b/runtime/doc/os_mint.txt
index e2399f579..bda358603 100644
--- a/runtime/doc/os_mint.txt
+++ b/runtime/doc/os_mint.txt
@@ -1,4 +1,4 @@
-*os_mint.txt* For Vim version 7.1. Last change: 2005 Mar 29
+*os_mint.txt* For Vim version 7.2a. Last change: 2005 Mar 29
VIM REFERENCE MANUAL by Jens M. Felderhoff
diff --git a/runtime/doc/os_os2.txt b/runtime/doc/os_os2.txt
index c297bfc1b..1374346c1 100644
--- a/runtime/doc/os_os2.txt
+++ b/runtime/doc/os_os2.txt
@@ -1,4 +1,4 @@
-*os_os2.txt* For Vim version 7.1. Last change: 2007 Apr 22
+*os_os2.txt* For Vim version 7.2a. Last change: 2007 Apr 22
VIM REFERENCE MANUAL by Paul Slootman
diff --git a/runtime/doc/tabpage.txt b/runtime/doc/tabpage.txt
index 5826cf6cf..6410b117b 100644
--- a/runtime/doc/tabpage.txt
+++ b/runtime/doc/tabpage.txt
@@ -1,4 +1,4 @@
-*tabpage.txt* For Vim version 7.1. Last change: 2007 Mar 11
+*tabpage.txt* For Vim version 7.2a. Last change: 2007 Mar 11
VIM REFERENCE MANUAL by Bram Moolenaar
diff --git a/runtime/doc/usr_22.txt b/runtime/doc/usr_22.txt
index f872331ea..5a13b871e 100644
--- a/runtime/doc/usr_22.txt
+++ b/runtime/doc/usr_22.txt
@@ -1,4 +1,4 @@
-*usr_22.txt* For Vim version 7.1. Last change: 2006 Apr 24
+*usr_22.txt* For Vim version 7.2a. Last change: 2007 Aug 14
VIM USER MANUAL - by Bram Moolenaar
@@ -10,7 +10,7 @@ ways to browse the directory tree. There are commands to jump to a file that
is mentioned in another. And Vim remembers which files have been edited
before.
-|22.1| The file explorer
+|22.1| The file browser
|22.2| The current directory
|22.3| Finding a file
|22.4| The buffer list
@@ -20,7 +20,7 @@ before.
Table of contents: |usr_toc.txt|
==============================================================================
-*22.1* The file explorer
+*22.1* The file browser
Vim has a plugin that makes it possible to edit a directory. Try this: >
@@ -29,85 +29,121 @@ Vim has a plugin that makes it possible to edit a directory. Try this: >
Through the magic of autocommands and Vim scripts, the window will be filled
with the contents of the directory. It looks like this:
- " Press ? for keyboard shortcuts ~
- " Sorted by name (.bak,~,.o,.h,.info,.swp,.obj,.orig,.rej at end of list) ~
- "= /home/mool/vim/vim6/runtime/doc/ ~
- ../ ~
- check/ ~
- Makefile ~
- autocmd.txt ~
- change.txt ~
- eval.txt~ ~
- filetype.txt~ ~
- help.txt.info ~
+" ============================================================================ ~
+" Netrw Directory Listing (netrw v109) ~
+" Sorted by name ~
+" Sort sequence: [\/]$,\.h$,\.c$,\.cpp$,*,\.info$,\.swp$,\.o$\.obj$,\.bak$ ~
+" Quick Help: <F1>:help -:go up dir D:delete R:rename s:sort-by x:exec ~
+" ============================================================================ ~
+../ ~
+./ ~
+check/ ~
+Makefile ~
+autocmd.txt ~
+change.txt ~
+eval.txt~ ~
+filetype.txt~ ~
+help.txt.info ~
You can see these items:
-1. A comment about using ? to get help for the functionality of the file
- explorer.
-2. The second line mentions how the items in the directory are listed. They
- can be sorted in several ways.
-3. The third line is the name of the current directory.
-4. The "../" directory item. This is the parent directory.
-5. The directory names.
-6. The ordinary file names. As mentioned in the second line, some are not
- here but "at the end of the list".
-7. The less ordinary file names. You are expected to use these less often,
- therefore they have been moved to the end.
+
+1. The name of the browsing tool and its version number
+2. The name of the browsing directory
+3. The method of sorting (may be by name, time, or size)
+4. How names are to be sorted (directories first, then *.h files,
+ *.c files, etc)
+5. How to get help (use the <F1> key), and an abbreviated listing
+ of available commands
+6. A listing of files, including "../", which allows one to to list
+ the parent directory.
If you have syntax highlighting enabled, the different parts are highlighted
-to make it easier to spot them.
+so as to make it easier to spot them.
You can use Normal mode Vim commands to move around in the text. For example,
-move to a file and press <Enter>. Now you are editing that file. To go back
-to the explorer use ":edit ." again. CTRL-O also works.
- Try using <Enter> while the cursor is on a directory name. The result is
-that the explorer moves into that directory and displays the items found
+move the cursor atop a file and press <Enter>; you will then be editing that
+file. To go back to the browser use ":edit ." again, or use ":Explore".
+CTRL-O also works.
+
+Try using <Enter> while the cursor is atop a directory name. The result is
+that the file browser moves into that directory and displays the items found
there. Pressing <Enter> on the first directory "../" moves you one level
higher. Pressing "-" does the same thing, without the need to move to the
"../" item first.
-You can press ? to get short help on the things you can do in the explorer.
-This is what you get:
-
- " <enter> : open file or directory ~
- " o : open new window for file/directory ~
- " O : open file in previously visited window ~
- " p : preview the file ~
- " i : toggle size/date listing ~
- " s : select sort field r : reverse sort ~
- " - : go up one level c : cd to this dir ~
- " R : rename file D : delete file ~
- " :help file-explorer for detailed help ~
-
-The first few commands are for selecting a file to display. Depending on what
-command you use, the file appears somewhere:
-
- <Enter> Uses the current window.
- o Opens a new window.
- O Uses the previously visited window.
- p Uses the preview window, and moves the cursor back
- into the explorer window. |preview-window|
-
-The following commands are used to display other information:
-
- i Display the size and date for the file. Using i again
- will hide the information.
- s Use the field the cursor is in to sort on. First
- display the size and date with i. Then Move the
- cursor to the size of any file and press s. The files
- will now be sorted on size. Press s while the cursor
- is on a date and the items will be sorted on date.
- r reverse the sorting order (either size or date)
-
-There are a few extra commands:
-
- c Change the current directory to the displayed
- directory. You can then type an ":edit" command for
- one of the files without prepending the path.
- R Rename the file under the cursor. You will be
- prompted for the new name.
- D Delete the file under the cursor. You will get a
- prompt to confirm this.
+You can press <F1> to get help on the things you can do in the netrw file
+browser. This is what you get: >
+
+ 9. Directory Browsing netrw-browse netrw-dir netrw-list netrw-help
+
+ MAPS netrw-maps
+ <F1>.............Help.......................................|netrw-help|
+ <cr>.............Browsing...................................|netrw-cr|
+ <del>............Deleting Files or Directories..............|netrw-delete|
+ -................Going Up...................................|netrw--|
+ a................Hiding Files or Directories................|netrw-a|
+ mb...............Bookmarking a Directory....................|netrw-mb|
+ gb...............Changing to a Bookmarked Directory.........|netrw-gb|
+ c................Make Browsing Directory The Current Dir....|netrw-c|
+ d................Make A New Directory.......................|netrw-d|
+ D................Deleting Files or Directories..............|netrw-D|
+ <c-h>............Edit File/Directory Hiding List............|netrw-ctrl-h|
+ i................Change Listing Style.......................|netrw-i|
+ <c-l>............Refreshing the Listing.....................|netrw-ctrl-l|
+ o................Browsing with a Horizontal Split...........|netrw-o|
+ p................Use Preview Window.........................|netrw-p|
+ P................Edit in Previous Window....................|netrw-p|
+ q................Listing Bookmarks and History..............|netrw-q|
+ r................Reversing Sorting Order....................|netrw-r|
+< (etc)
+
+The <F1> key thus brings you to a netrw directory browsing contents help page.
+Its a regular help page; use the usual |CTRL-]| to jump to tagged help items
+and |CTRL-O| to jump back.
+
+To select files for display and editing: (with the cursor is atop a filename)
+
+ <enter> Open the file in the current window. |netrw-cr|
+ o Horizontally split window and display file |netrw-o|
+ v Vertically split window and display file |netrw-v|
+ p Use the |preview-window| |netrw-p|
+ P Edit in the previous window |netrw-P|
+ t Open file in a new tab |netrw-t|
+
+The following normal-mode commands may be used to control the browser display:
+
+ i Controls listing style (thin, long, wide, and tree).
+ The long listing includes size and date information.
+ s Repeatedly pressing s will change the way the files
+ are sorted; one may sort on name, modification time,
+ or size.
+ r Reverse the sorting order.
+
+As a sampling of extra normal-mode commands:
+
+ c Change Vim's notion of the current directory to be
+ the same as the browser directory. (see
+ |g:netrw_keepdir| to control this, too)
+ R Rename the file or directory under the cursor; a
+ prompt will be issued for the new name.
+ D Delete the file or directory under the cursor; a
+ confirmation request will be issued.
+ mb gb Make bookmark/goto bookmark
+
+
+One may also use command mode; again, just a sampling:
+
+ :Explore [directory] Browse specified/current directory
+ :NetrwSettings A comprehensive list of your current netrw
+ settings with help linkage.
+
+The netrw browser is not limited to just your local machine; one may use
+urls such as: (that trailing / is important)
+
+ :Explore ftp://somehost/path/to/dir/
+ :e scp://somehost/path/to/dir/
+
+See |netrw-browse| for more.
==============================================================================
*22.2* The current directory
@@ -255,8 +291,8 @@ solution for you: >
The buffer "one.txt" disappears from the screen, but Vim still knows that you
are editing this buffer, so it keeps the modified text. This is called a
hidden buffer: The buffer contains text, but you can't see it.
- The ":hide" command argument is another command. It makes that command
-behave like the 'hidden' option was set. You could also set this option
+ The argument of ":hide" is another command. ":hide" makes that command
+behave as if the 'hidden' option was set. You could also set this option
yourself. The effect is that when any buffer is abandoned, it becomes hidden.
Be careful! When you have hidden buffers with changes, don't exit Vim
without making sure you have saved all the buffers.
diff --git a/runtime/doc/usr_45.txt b/runtime/doc/usr_45.txt
index ab76ae81d..5c83d1ce4 100644
--- a/runtime/doc/usr_45.txt
+++ b/runtime/doc/usr_45.txt
@@ -1,4 +1,4 @@
-*usr_45.txt* For Vim version 7.1. Last change: 2006 Apr 24
+*usr_45.txt* For Vim version 7.2a. Last change: 2008 Apr 30
VIM USER MANUAL - by Bram Moolenaar
@@ -195,7 +195,7 @@ though. Example: >
If it doesn't work well, try getting a fontpack. If Microsoft didn't move it,
you can find it here:
- http://www.microsoft.com/typography/fontpack/default.htm ~
+ http://www.microsoft.com/typography/fonts/default.aspx ~
Now you have told Vim to use Unicode internally and display text with a
Unicode font. Typed characters still arrive in the encoding of your original
diff --git a/runtime/doc/version4.txt b/runtime/doc/version4.txt
index bad5fece6..8211a8d1c 100644
--- a/runtime/doc/version4.txt
+++ b/runtime/doc/version4.txt
@@ -1,4 +1,4 @@
-*version4.txt* For Vim version 7.1. Last change: 2006 Apr 24
+*version4.txt* For Vim version 7.2a. Last change: 2006 Apr 24
VIM REFERENCE MANUAL by Bram Moolenaar
diff --git a/runtime/doc/vi_diff.txt b/runtime/doc/vi_diff.txt
index 93ba2f528..df1452d2c 100644
--- a/runtime/doc/vi_diff.txt
+++ b/runtime/doc/vi_diff.txt
@@ -1,4 +1,4 @@
-*vi_diff.txt* For Vim version 7.1. Last change: 2007 Aug 14
+*vi_diff.txt* For Vim version 7.2a. Last change: 2008 May 05
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -192,7 +192,7 @@ Syntax highlighting. |:syntax|
Spell checking. |spell|
When the 'spell' option is set Vim will highlight spelling mistakes.
About 40 languages are currently supported, selected with the
- 'spellang' option. In source code only comments and strings are
+ 'spelllang' option. In source code only comments and strings are
checked for spelling.
Folding. |folding|
@@ -427,8 +427,9 @@ Printing. |printing|
Mouse support. |mouse-using|
The mouse is supported in the GUI version, in an xterm for Unix, for
- Linux with gpm, for MS-DOS, and Win32. It can be used to position the
- cursor, select the visual area, paste a register, etc.
+ BSDs with sysmouse, for Linux with gpm, for MS-DOS, and Win32. It
+ can be used to position the cursor, select the visual area, paste a
+ register, etc.
Usage of key names. |<>| |key-notation|
Special keys now all have a name like <Up>, <End>, etc.
diff --git a/runtime/macros/life/life.vim b/runtime/macros/life/life.vim
index adf4e2081..552a49301 100644
--- a/runtime/macros/life/life.vim
+++ b/runtime/macros/life/life.vim
@@ -1,6 +1,7 @@
" Macros to play Conway's Game of Life in vi
" Version 1.0m: edges wrap
-" by Eli-the-Bearded (eli@netusa.net), Sept 1996
+" by Eli-the-Bearded Benjamin Elijah Griffin <vim@eli.users.panix.com>
+" Sept 1996
" This file may be free distributed so long as these credits remain unchanged.
"
" Modified by Bram Moolenaar (Bram@vim.org), 1996 Sept 10
diff --git a/runtime/plugin/netrwPlugin.vim b/runtime/plugin/netrwPlugin.vim
index 152eb3211..b0a29ad78 100644
--- a/runtime/plugin/netrwPlugin.vim
+++ b/runtime/plugin/netrwPlugin.vim
@@ -1,6 +1,6 @@
" netrwPlugin.vim: Handles file transfer and remote directory listing across a network
" PLUGIN SECTION
-" Date: Jan 05, 2007
+" Date: Apr 07, 2008
" Maintainer: Charles E Campbell, Jr <NdrOchip@ScampbellPfamily.AbizM-NOSPAM>
" GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim
" Copyright: Copyright (C) 1999-2005 Charles E. Campbell, Jr. {{{1
@@ -22,7 +22,7 @@
if &cp || exists("g:loaded_netrwPlugin")
finish
endif
-let g:loaded_netrwPlugin = 1
+let g:loaded_netrwPlugin = "v125"
let s:keepcpo = &cpo
if v:version < 700
echohl WarningMsg | echo "***netrw*** you need vim version 7.0 for this version of netrw" | echohl None
@@ -47,28 +47,27 @@ augroup END
augroup Network
au!
if has("win32") || has("win95") || has("win64") || has("win16")
- au BufReadCmd file://* exe "silent doau BufReadPre ".netrw#RFC2396(expand("<amatch>"))|exe 'e '.substitute(netrw#RFC2396(expand("<amatch>")),'file://\(.*\)','\1',"")|exe "silent doau BufReadPost ".netrw#RFC2396(expand("<amatch>"))
+ au BufReadCmd file://* exe "silent doau BufReadPre ".netrw#RFC2396(expand("<amatch>"))|exe 'e '.substitute(netrw#RFC2396(expand("<amatch>")),'file://\(.*\)','\1',"")|exe "bwipe ".expand("<amatch>")|exe "silent doau BufReadPost ".netrw#RFC2396(expand("<amatch>"))
else
- au BufReadCmd file://* exe "silent doau BufReadPre ".netrw#RFC2396(expand("<amatch>"))|exe 'e '.substitute(netrw#RFC2396(expand("<amatch>")),'file://\(.*\)','\1',"")|exe "silent doau BufReadPost ".netrw#RFC2396(expand("<amatch>"))
- au BufReadCmd file://localhost/* exe "silent doau BufReadPre ".netrw#RFC2396(expand("<amatch>"))|exe 'e '.substitute(netrw#RFC2396(expand("<amatch>")),'file://localhost/\(.*\)','\1',"")|exe "silent doau BufReadPost ".netrw#RFC2396(expand("<amatch>"))
+ au BufReadCmd file://* exe "silent doau BufReadPre ".netrw#RFC2396(expand("<amatch>"))|exe 'e '.substitute(netrw#RFC2396(expand("<amatch>")),'file://\(.*\)','\1',"")|exe "bwipe ".expand("<amatch>")|exe "silent doau BufReadPost ".netrw#RFC2396(expand("<amatch>"))
+ au BufReadCmd file://localhost/* exe "silent doau BufReadPre ".netrw#RFC2396(expand("<amatch>"))|exe 'e '.substitute(netrw#RFC2396(expand("<amatch>")),'file://localhost/\(.*\)','\1',"")|exe "bwipe ".substitute(expand("<amatch>"),'file://\(\k\+@\)\=','','')|exe "silent doau BufReadPost ".netrw#RFC2396(expand("<amatch>"))
endif
- au BufReadCmd ftp://*,rcp://*,scp://*,http://*,dav://*,rsync://*,sftp://* exe "silent doau BufReadPre ".expand("<amatch>")|exe '2Nread "'.expand("<amatch>").'"'|exe "silent doau BufReadPost ".expand("<amatch>")
- au FileReadCmd ftp://*,rcp://*,scp://*,http://*,dav://*,rsync://*,sftp://* exe "silent doau FileReadPre ".expand("<amatch>")|exe 'Nread "' .expand("<amatch>").'"'|exe "silent doau FileReadPost ".expand("<amatch>")
- au BufWriteCmd ftp://*,rcp://*,scp://*,dav://*,rsync://*,sftp://* exe "silent doau BufWritePre ".expand("<amatch>")|exe 'Nwrite "' .expand("<amatch>").'"'|exe "silent doau BufWritePost ".expand("<amatch>")
- au FileWriteCmd ftp://*,rcp://*,scp://*,dav://*,rsync://*,sftp://* exe "silent doau FileWritePre ".expand("<amatch>")|exe "'[,']".'Nwrite "' .expand("<amatch>").'"'|exe "silent doau FileWritePost ".expand("<amatch>")
+ au BufReadCmd ftp://*,rcp://*,scp://*,http://*,dav://*,davs://*,rsync://*,sftp://* exe "silent doau BufReadPre ".expand("<amatch>")|exe '2Nread "'.expand("<amatch>").'"'|exe "silent doau BufReadPost ".expand("<amatch>")
+ au FileReadCmd ftp://*,rcp://*,scp://*,http://*,dav://*,davs://*,rsync://*,sftp://* exe "silent doau FileReadPre ".expand("<amatch>")|exe 'Nread "' .expand("<amatch>").'"'|exe "silent doau FileReadPost ".expand("<amatch>")
+ au BufWriteCmd ftp://*,rcp://*,scp://*,dav://*,davs://*,rsync://*,sftp://* exe "silent doau BufWritePre ".expand("<amatch>")|exe 'Nwrite "' .expand("<amatch>").'"'|exe "silent doau BufWritePost ".expand("<amatch>")
+ au FileWriteCmd ftp://*,rcp://*,scp://*,dav://*,davs://*,rsync://*,sftp://* exe "silent doau FileWritePre ".expand("<amatch>")|exe "'[,']".'Nwrite "' .expand("<amatch>").'"'|exe "silent doau FileWritePost ".expand("<amatch>")
try
- au SourceCmd ftp://*,rcp://*,scp://*,http://*,dav://*,rsync://*,sftp://* exe 'Nsource "'.expand("<amatch>").'"'
+ au SourceCmd ftp://*,rcp://*,scp://*,http://*,dav://*,davs://*,rsync://*,sftp://* exe 'Nsource "'.expand("<amatch>").'"'
catch /^Vim\%((\a\+)\)\=:E216/
- au SourcePre ftp://*,rcp://*,scp://*,http://*,dav://*,rsync://*,sftp://* exe 'Nsource "'.expand("<amatch>").'"'
+ au SourcePre ftp://*,rcp://*,scp://*,http://*,dav://*,davs://*,rsync://*,sftp://* exe 'Nsource "'.expand("<amatch>").'"'
endtry
augroup END
" Commands: :Nread, :Nwrite, :NetUserPass {{{2
-com! -count=1 -nargs=* Nread call netrw#NetSavePosn()<bar>call netrw#NetRead(<count>,<f-args>)<bar>call netrw#NetRestorePosn()
-com! -range=% -nargs=* Nwrite call netrw#NetSavePosn()<bar><line1>,<line2>call netrw#NetWrite(<f-args>)<bar>call netrw#NetRestorePosn()
+com! -count=1 -nargs=* Nread call netrw#NetrwSavePosn()<bar>call netrw#NetRead(<count>,<f-args>)<bar>call netrw#NetrwRestorePosn()
+com! -range=% -nargs=* Nwrite call netrw#NetrwSavePosn()<bar><line1>,<line2>call netrw#NetWrite(<f-args>)<bar>call netrw#NetrwRestorePosn()
com! -nargs=* NetUserPass call NetUserPass(<f-args>)
-com! -nargs=+ Ncopy call netrw#NetObtain(<f-args>)
-com! -nargs=* Nsource call netrw#NetSavePosn()<bar>call netrw#NetSource(<f-args>)<bar>call netrw#NetRestorePosn()
+com! -nargs=* Nsource call netrw#NetrwSavePosn()<bar>call netrw#NetSource(<f-args>)<bar>call netrw#NetrwRestorePosn()
" Commands: :Explore, :Sexplore, Hexplore, Vexplore {{{2
com! -nargs=* -bar -bang -count=0 -complete=dir Explore call netrw#Explore(<count>,0,0+<bang>0,<q-args>)
@@ -80,14 +79,15 @@ com! -nargs=* -bar -bang Nexplore call netrw#Explore(-1,0,0,<q-args>)
com! -nargs=* -bar -bang Pexplore call netrw#Explore(-2,0,0,<q-args>)
" Commands: NetrwSettings {{{2
-com! -nargs=0 NetrwSettings :call netrwSettings#NetrwSettings()
+com! -nargs=0 NetrwSettings call netrwSettings#NetrwSettings()
+com! -bang NetrwClean call netrw#NetrwClean(<bang>0)
" Maps:
if !exists("g:netrw_nogx") && maparg('g','n') == ""
if !hasmapto('<Plug>NetrwBrowseX')
nmap <unique> gx <Plug>NetrwBrowseX
endif
- nno <silent> <Plug>NetrwBrowseX :call netrw#NetBrowseX(expand("<cWORD>"),0)<cr>
+ nno <silent> <Plug>NetrwBrowseX :call netrw#NetrwBrowseX(expand("<cWORD>"),0)<cr>
endif
" ---------------------------------------------------------------------
diff --git a/runtime/spell/fr/main.aap b/runtime/spell/fr/main.aap
index faf3e01e7..b207b6e66 100644
--- a/runtime/spell/fr/main.aap
+++ b/runtime/spell/fr/main.aap
@@ -11,11 +11,26 @@ FILES = fr_FR.aff fr_FR.dic
all: $SPELLDIR/fr.latin1.spl $SPELLDIR/fr.utf-8.spl ../README_fr.txt
+# The spell file is iso-8859-15, but Vim normally uses "latin1" for this.
+# This is OK for the utf-8 files, but for latin1 we need to avoid the "oe"
+# character. When unpacking we create four files:
+# fr_FR_latin1.aff modified file
+# fr_FR_latin1.dic modified file
+# fr_FR_iso15.aff original file (after applying diff)
+# fr_FR_iso15.dic original file (after applying diff)
+# Just before using the dictionary files, the right ones are copied to
+# fr_FR.aff
+# fr_FR.dic
+
$SPELLDIR/fr.latin1.spl : $FILES
- :sys env LANG=fr_FR.ISO8859-1
+ :copy {force} fr_FR_latin1.aff fr_FR.aff
+ :copy {force} fr_FR_latin1.dic fr_FR.dic
+ :sys env LANG=fr_FR.ISO8859-15
$VIM -u NONE -e -c "mkspell! $SPELLDIR/fr fr_FR" -c q
$SPELLDIR/fr.utf-8.spl : $FILES
+ :copy {force} fr_FR_iso15.aff fr_FR.aff
+ :copy {force} fr_FR_iso15.dic fr_FR.dic
:sys env LANG=fr_FR.UTF-8
$VIM -u NONE -e -c "mkspell! $SPELLDIR/fr fr_FR" -c q
@@ -23,10 +38,13 @@ $SPELLDIR/fr.utf-8.spl : $FILES
:cat $source >!$target
#
-# Fetching the files from OpenOffice.org.
+# Used to fetch the files from OpenOffice.org. Those are old.
+# Later versions are elsewhere.
#
-OODIR = http://ftp.services.openoffice.org/pub/OpenOffice.org/contrib/dictionaries
-:attr {fetch = $OODIR/%file%} fr_FR.zip
+#OODIR = http://ftp.services.openoffice.org/pub/OpenOffice.org/contrib/dictionaries
+ZIPFILE = http://dico.savant.free.fr/_download/fr_FR_1-1-6.zip
+
+:attr {fetch = $ZIPFILE} fr_FR.zip
# The files don't depend on the .zip file so that we can delete it.
# Only download the zip file if the targets don't exist.
@@ -42,15 +60,45 @@ fr_FR.aff fr_FR.dic: {buildcheck=}
@if os.path.exists('fr_FR.diff'):
:sys patch <fr_FR.diff
+ # Keep the unmodified files (after diff) for ISO-8859-15.
+ :copy fr_FR.aff fr_FR_iso15.aff
+ :copy fr_FR.dic fr_FR_iso15.dic
+ # For the latin1 .dic file change all the "oe" characters to the two
+ # characters "oe".
+ :sys $VIM -u NONE -e -c "set enc=latin1"
+ -c "e fr_FR.dic"
+ -c "%s//oe/g"
+ -c "w! fr_FR_latin1.dic"
+ -c q
+ # For the latin1 .aff file delete all the "oe" and "OE" characters and
+ # delete the REP lines with those characters.
+ :sys $VIM -u NONE -e -c "set enc=latin1"
+ -c "e fr_FR.aff"
+ -c "%s///g"
+ -c "%s///g"
+ -c "%g/REP.*oe/d"
+ -c "w! fr_FR_latin1.aff"
+ -c q
+
# Generate diff files, so that others can get the OpenOffice files and apply
# the diffs to get the Vim versions.
-
+# This uses the iso-8859-15 files.
diff:
:assertpkg diff
+ :copy {force} fr_FR_iso15.aff fr_FR.aff
+ :copy {force} fr_FR_iso15.dic fr_FR.dic
:sys {force} diff -a -C 1 fr_FR.orig.aff fr_FR.aff >fr_FR.diff
:sys {force} diff -a -C 1 fr_FR.orig.dic fr_FR.dic >>fr_FR.diff
+# Delete all the unpacked and generated files, including the "orig" files.
+clean:
+ :delete {force} fr_FR.zip fr_FR.aff fr_FR.dic
+ fr_FR.aff.orig fr_FR.dic.orig
+ fr_FR.orig.aff fr_FR.orig.dic
+ fr_FR_latin1.aff fr_FR_latin1.dic
+ fr_FR_iso15.aff fr_FR_iso15.dic
+ README_fr_FR.txt
# Check for updated OpenOffice spell files. When there are changes the
# ".new.aff" and ".new.dic" files are left behind for manual inspection.
diff --git a/runtime/syntax/autohotkey.vim b/runtime/syntax/autohotkey.vim
index 78cb9e79b..bbefd6f7b 100644
--- a/runtime/syntax/autohotkey.vim
+++ b/runtime/syntax/autohotkey.vim
@@ -1,7 +1,7 @@
" Vim syntax file
" Language: AutoHotkey script file
" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2007-05-09
+" Latest Revision: 2007-06-01
if exists("b:current_syntax")
finish
@@ -242,6 +242,10 @@ syn keyword autohotkeyType
\ local
\ global
+syn keyword autohotkeyBoolean
+ \ true
+ \ false
+
hi def link autohotkeyTodo Todo
hi def link autohotkeyComment Comment
hi def link autohotkeyCommentStart autohotkeyComment
@@ -271,6 +275,7 @@ hi def link autohotkeyNumber Number
hi def link autohotkeyInteger autohotkeyNumber
hi def link autohotkeyFloat autohotkeyNumber
hi def link autohotkeyType Type
+hi def link autohotkeyBoolean Boolean
let b:current_syntax = "autohotkey"
diff --git a/runtime/syntax/fstab.vim b/runtime/syntax/fstab.vim
index 9cb76cb1f..830b8d014 100644
--- a/runtime/syntax/fstab.vim
+++ b/runtime/syntax/fstab.vim
@@ -2,13 +2,14 @@
" Language: fstab file
" Maintaner: Radu Dineiu <radu.dineiu@gmail.com>
" URL: http://ld.yi.org/vim/fstab.vim
-" Last Change: 2007 Apr 24
-" Version: 0.91
+" Last Change: 2008 Jan 16
+" Version: 0.92
"
" Credits:
" David Necas (Yeti) <yeti@physics.muni.cz>
" Stefano Zacchiroli <zack@debian.org>
" Georgi Georgiev <chutz@gg3.net>
+" James Vega <jamessan@debian.org>
"
" Options:
" let fstab_unknown_fs_errors = 1
@@ -23,7 +24,7 @@ endif
" General
syn cluster fsGeneralCluster contains=fsComment
syn match fsComment /\s*#.*/
-syn match fsOperator /[,=:]/
+syn match fsOperator /[,=:#]/
" Device
syn cluster fsDeviceCluster contains=fsOperator,fsDeviceKeyword,fsDeviceError
@@ -31,9 +32,11 @@ syn match fsDeviceError /\%([^a-zA-Z0-9_\/#@:\.-]\|^\w\{-}\ze\W\)/ contained
syn keyword fsDeviceKeyword contained none proc linproc tmpfs devpts sysfs usbfs
syn keyword fsDeviceKeyword contained LABEL nextgroup=fsDeviceLabel
syn keyword fsDeviceKeyword contained UUID nextgroup=fsDeviceUUID
+syn keyword fsDeviceKeyword contained sshfs nextgroup=fsDeviceSshfs
syn match fsDeviceKeyword contained /^[a-zA-Z0-9.\-]\+\ze:/
syn match fsDeviceLabel contained /=[^ \t]\+/hs=s+1 contains=fsOperator
syn match fsDeviceUUID contained /=[^ \t]\+/hs=s+1 contains=fsOperator
+syn match fsDeviceSshfs contained /#[_=[:alnum:]\.\/+-]\+@[a-z0-9._-]\+\a\{2}:[^ \t]\+/hs=s+1 contains=fsOperator
" Mount Point
syn cluster fsMountPointCluster contains=fsMountPointKeyword,fsMountPointError
@@ -43,7 +46,7 @@ syn keyword fsMountPointKeyword contained none swap
" Type
syn cluster fsTypeCluster contains=fsTypeKeyword,fsTypeUnknown
syn match fsTypeUnknown /\s\+\zs\w\+/ contained
-syn keyword fsTypeKeyword contained adfs ados affs atfs audiofs auto autofs befs bfs cd9660 cfs cifs coda cramfs devfs devpts e2compr efs ext2 ext2fs ext3 fdesc ffs filecore hfs hpfs iso9660 jffs jffs2 jfs kernfs lfs linprocfs mfs minix msdos ncpfs nfs none ntfs null nwfs overlay ovlfs portal proc procfs ptyfs qnx4 reiserfs romfs shm smbfs std subfs swap sysfs sysv tcfs tmpfs udf ufs umap umsdos union usbfs userfs vfat vs3fs vxfs wrapfs wvfs xfs zisofs
+syn keyword fsTypeKeyword contained adfs ados affs atfs audiofs auto autofs befs bfs cd9660 cfs cifs coda cramfs devfs devpts e2compr efs ext2 ext2fs ext3 fdesc ffs filecore fuse hfs hpfs iso9660 jffs jffs2 jfs kernfs lfs linprocfs mfs minix msdos ncpfs nfs none ntfs null nwfs overlay ovlfs portal proc procfs ptyfs qnx4 reiserfs romfs shm smbfs sshfs std subfs swap sysfs sysv tcfs tmpfs udf ufs umap umsdos union usbfs userfs vfat vs3fs vxfs wrapfs wvfs xfs zisofs
" Options
" -------
@@ -143,6 +146,14 @@ syn match fsOptionsKeywords contained /\<resize=/ nextgroup=fsOptionsNumber
syn keyword fsOptionsReiserHash contained rupasov tea r5 detect
syn keyword fsOptionsKeywords contained hashed_relocation noborder nolog notail no_unhashed_relocation replayonly
+" Options: sshfs
+syn match fsOptionsKeywords contained /\<\%(BatchMode\|ChallengeResponseAuthentication\|CheckHostIP\|ClearAllForwardings\|Compression\|EnableSSHKeysign\|ForwardAgent\|ForwardX11\|ForwardX11Trusted\|GatewayPorts\|GSSAPIAuthentication\|GSSAPIDelegateCredentials\|HashKnownHosts\|HostbasedAuthentication\|IdentitiesOnly\|NoHostAuthenticationForLocalhost\|PasswordAuthentication\|PubkeyAuthentication\|RhostsRSAAuthentication\|RSAAuthentication\|TCPKeepAlive\|UsePrivilegedPort\|cache\)=/ nextgroup=fsOptionsYesNo
+syn match fsOptionsKeywords contained /\<\%(ControlMaster\|StrictHostKeyChecking\|VerifyHostKeyDNS\)=/ nextgroup=fsOptionsSshYesNoAsk
+syn match fsOptionsKeywords contained /\<\%(AddressFamily\|BindAddress\|Cipher\|Ciphers\|ControlPath\|DynamicForward\|EscapeChar\|GlobalKnownHostsFile\|HostKeyAlgorithms\|HostKeyAlias\|HostName\|IdentityFile\|KbdInteractiveDevices\|LocalForward\|LogLevel\|MACs\|PreferredAuthentications\|Protocol\|ProxyCommand\|RemoteForward\|RhostsAuthentication\|SendEnv\|SmartcardDevice\|User\|UserKnownHostsFile\|XAuthLocation\|comment\|workaround\|idmap\|ssh_command\|sftp_server\|fsname\)=/ nextgroup=fsOptionsString
+syn match fsOptionsKeywords contained /\<\%(CompressionLevel\|ConnectionAttempts\|ConnectTimeout\|NumberOfPasswordPrompts\|Port\|ServerAliveCountMax\|ServerAliveInterval\|cache_timeout\|cache_X_timeout\|ssh_protocol\|directport\|max_read\|umask\|uid\|gid\|entry_timeout\|negative_timeout\|attr_timeout\)=/ nextgroup=fsOptionsNumber
+syn keyword fsOptionsKeywords contained reconnect sshfs_sync no_readahead sshfs_debug transform_symlinks allow_other allow_root nonempty default_permissions large_read hard_remove use_ino readdir_ino direct_io kernel_cache
+syn keyword fsOptionsSshYesNoAsk contained yes no ask
+
" Options: subfs
syn match fsOptionsKeywords contained /\<fs=/ nextgroup=fsOptionsString
syn keyword fsOptionsKeywords contained procuid
@@ -208,11 +219,13 @@ if version >= 508 || !exists("did_config_syntax_inits")
HiLink fsDeviceKeyword Identifier
HiLink fsDeviceLabel String
HiLink fsDeviceUUID String
+ HiLink fsDeviceSshfs String
HiLink fsFreqPassNumber Number
if exists('fstab_unknown_fs_errors') && fstab_unknown_fs_errors == 1
HiLink fsTypeUnknown Error
endif
+
HiLink fsDeviceError Error
HiLink fsMountPointError Error
HiLink fsMountPointKeyword Keyword
@@ -235,6 +248,7 @@ if version >= 508 || !exists("did_config_syntax_inits")
HiLink fsOptionsHpfsCase String
HiLink fsOptionsIsoMap String
HiLink fsOptionsReiserHash String
+ HiLink fsOptionsSshYesNoAsk String
HiLink fsOptionsUfsType String
HiLink fsOptionsUfsError String
diff --git a/runtime/syntax/sisu.vim b/runtime/syntax/sisu.vim
index fe472c9fe..f29bc2680 100644
--- a/runtime/syntax/sisu.vim
+++ b/runtime/syntax/sisu.vim
@@ -1,8 +1,7 @@
-"%% SiSU Vim syntax file
-" SiSU Maintainer: Ralph Amissah <ralph@amissah.com>
-" SiSU Markup: SiSU (sisu-0.38)
-" (originally looked at Ruby Vim by Mirko Nasato)
-" Last Update: 2006 Jul 22
+"SiSU Vim syntax file
+"SiSU Maintainer: Ralph Amissah <ralph@amissah.com>
+"SiSU Markup: SiSU (sisu-0.66.0, 2008-02-24)
+"(originally looked at Ruby Vim by Mirko Nasato)
if version < 600
syntax clear
@@ -10,63 +9,78 @@ elseif exists("b:current_syntax")
finish
else
endif
-"% 11 Errors?
+
+" Errors:
syn match sisu_error contains=sisu_link,sisu_error_wspace "<![^ei]\S\+!>"
-"% 10 Markers: Endnote Identifiers, Pagebreaks etc.:
+
+" Markers Identifiers:
if !exists("sisu_no_identifiers")
- syn match sisu_mark_endnote "\~^"
- syn match sisu_contain contains=@NoSpell "</\?sub>"
- syn match sisu_break contains=@NoSpell "<br>\|<br />"
- syn match sisu_control contains=@NoSpell "<p>\|</p>\|<p />\|<:p[bn]>"
- syn match sisu_html "<center>\|</center>"
- syn match sisu_marktail "[~-]#"
- syn match sisu_html contains=@NoSpell "<td>\|<td \|<tr>\|</td>\|</tr>\|<table>\|<table \|</table>"
- syn match sisu_control "\""
- syn match sisu_underline "\(^\| \)_[a-zA-Z0-9]\+_\([ .,]\|$\)"
- syn match sisu_number contains=@NoSpell "[0-9a-f]\{32\}\|[0-9a-f]\{64\}"
- syn match sisu_link contains=@NoSpell "\(https\?://\|\.\.\/\)\S\+"
+ syn match sisu_mark_endnote "\~^"
+ syn match sisu_contain contains=@NoSpell "</\?sub>"
+ syn match sisu_break contains=@NoSpell "<br>\|<br />"
+ syn match sisu_control contains=@NoSpell "<p>\|</p>\|<p />\|<:p[bn]>"
+ syn match sisu_html "<center>\|</center>"
+ syn match sisu_marktail "[~-]#"
+ syn match sisu_html contains=@NoSpell "<td>\|<td \|<tr>\|</td>\|</tr>\|<table>\|<table \|</table>"
+ syn match sisu_control "\""
+ syn match sisu_underline "\(^\| \)_[a-zA-Z0-9]\+_\([ .,]\|$\)"
+ syn match sisu_number contains=@NoSpell "[0-9a-f]\{32\}\|[0-9a-f]\{64\}"
+ syn match sisu_link contains=@NoSpell "\(_\?https\?://\|\.\.\/\)\S\+"
"metaverse specific
- syn match sisu_ocn contains=@NoSpell "<\~\d\+;\w\d\+;\w\d\+>"
- syn match sisu_marktail "<\~#>"
- syn match sisu_markpara contains=@NoSpell "<:i[12]>"
- syn match sisu_link " \*\~\S\+"
- syn match sisu_action "^<:insert\d\+>"
- syn match sisu_contain "<:e>"
+ syn match sisu_ocn contains=@NoSpell "<\~\d\+;\w\d\+;\w\d\+>"
+ syn match sisu_marktail "<\~#>"
+ syn match sisu_markpara contains=@NoSpell "<:i[1-9]>"
+ syn match sisu_link " \*\~\S\+"
+ syn match sisu_action "^<:insert\d\+>"
+ syn match sisu_require contains=@NoSpell "^<<\s*[a-zA-Z0-9^._-]\+\.ss[it]$"
+ syn match sisu_require contains=@NoSpell "^<<{[a-zA-Z0-9^._-]\+\.ss[it]}$"
+ syn match sisu_contain "<:e>"
+ syn match sisu_sem_marker ";{\|};[a-z._]*[a-z]"
+ syn match sisu_sem_marker_block "\([a-z][a-z._]*\|\):{\|}:[a-z._]*[a-z]"
+ syn match sisu_sem_ex_marker ";\[\|\];[a-z._]*[a-z]"
+ syn match sisu_sem_ex_marker_block "\([a-z][a-z._]*\|\):\[\|\]:[a-z._]*[a-z]"
+ syn match sisu_sem_block contains=sisu_error,sisu_error_wspace,sisu_content_alt,sisu_link,sisu_linked,sisu_break,sisu_sem_block,sisu_sem_content,sisu_sem_marker_block,sisu_sem_marker,sisu_sem_ex_marker_block,sisu_sem_ex_marker,sisu_mark_endnote,sisu_content_endnote "\([a-z]*\):{[^}].\{-}}:\1"
+ syn match sisu_sem_content contains=sisu_error,sisu_error_wspace,sisu_content_alt,sisu_link,sisu_linked,sisu_break,sisu_sem_marker_block,sisu_sem_marker,sisu_sem_ex_marker_block,sisu_sem_ex_marker ";{[^}].\{-}};[a-z]\+"
+ syn match sisu_sem_ex_block contains=sisu_error,sisu_error_wspace,sisu_content_alt,sisu_link,sisu_linked,sisu_break,sisu_sem_block,sisu_sem_content,sisu_sem_marker_block,sisu_sem_marker,sisu_sem_ex_marker_block,sisu_sem_ex_marker,sisu_mark_endnote,sisu_content_endnote "\([a-z]*\):\[[^}].\{-}\]:\1"
+ syn match sisu_sem_ex_content contains=sisu_error,sisu_error_wspace,sisu_content_alt,sisu_link,sisu_linked,sisu_break,sisu_sem_marker_block,sisu_sem_marker,sisu_sem_ex_marker_block,sisu_sem_ex_marker ";\[[^}].\{-}\];[a-z]\+"
endif
-"% 9 URLs Numbers: and ASCII Codes
+
+"URLs Numbers And ASCII Codes:
syn match sisu_number "\<\(0x\x\+\|0b[01]\+\|0\o\+\|0\.\d\+\|0\|[1-9][\.0-9_]*\)\>"
syn match sisu_number "?\(\\M-\\C-\|\\c\|\\C-\|\\M-\)\=\(\\\o\{3}\|\\x\x\{2}\|\\\=\w\)"
-"% 8 Tuned Error - is error if not already matched
+
+"Tuned Error: (is error if not already matched)
syn match sisu_error contains=sisu_error "[\~/\*!_]{\|}[\~/\*!_]"
syn match sisu_error contains=sisu_error "<a href\|</a>]"
-"% 7 Simple Enclosed Markup:
-" Simple Markup:
-"% url/link
+
+"Simple Paired Enclosed Markup:
+"url/link
syn region sisu_link contains=sisu_error,sisu_error_wspace matchgroup=sisu_action start="^<<\s*|[a-zA-Z0-9^._-]\+|@|[a-zA-Z0-9^._-]\+|"rs=s+2 end="$"
-"% header
-syn region sisu_header_content contains=sisu_error,sisu_error_wspace,sisu_content_alt,sisu_link,sisu_linked,sisu_break matchgroup=sisu_header start="^0\~\(\S\+\|[^-]\)" end="$"
-syn region sisu_header_content contains=sisu_error,sisu_error_wspace,sisu_content_alt,sisu_link,sisu_linked,sisu_break matchgroup=sisu_header start="^0\~\(tags\?\|date\)\s\+"rs=e-1 end="\n$"
-syn region sisu_header_content contains=sisu_error,sisu_error_wspace,sisu_content_alt,sisu_link,sisu_linked,sisu_break matchgroup=sisu_header start="^@\S\+:[+-]\?\s"rs=e-1 end="$"
-syn region sisu_header_content contains=sisu_error,sisu_error_wspace,sisu_content_alt,sisu_link,sisu_linked,sisu_break matchgroup=sisu_header start="^@\(tags\?\|date\):\s\+"rs=e-1 end="\n$"
-"% headings
+"header
+syn region sisu_header_content contains=sisu_error,sisu_error_wspace,sisu_content_alt,sisu_link,sisu_linked,sisu_break matchgroup=sisu_header start="^0\~\(\S\+\|[^-]\)" end="\n$"
+syn region sisu_header_content contains=sisu_error,sisu_error_wspace,sisu_content_alt,sisu_link,sisu_linked,sisu_break matchgroup=sisu_header start="^[@%]\S\+:[+-]\?\s"rs=e-1 end="\n$"
+"headings
syn region sisu_heading contains=sisu_mark_endnote,sisu_content_endnote,sisu_marktail,sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_ocn,sisu_error,sisu_error_wspace matchgroup=sisu_structure start="^\([1-8]\|:\?[A-C]\)\~\(\S\+\|[^-]\)" end="$"
-"% grouped text
-syn region sisu_content_alt contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_contain start="table{.\+" end="}table"
-syn region sisu_content_alt contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_contain start="{t\~h}" end="$$"
+"grouped text
+syn region sisu_content_alt contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_contain start="^table{.\+" end="}table"
+syn region sisu_content_alt contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_contain start="^{\(t\|table\)\(\~h\)\?\(\sc[0-9]\+;\)\?[0-9; ]*}" end="\n\n"
syn region sisu_content_alt contains=sisu_mark_endnote,sisu_content_endnote,sisu_link,sisu_mark,sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_contain start="^\(alt\|group\|poem\){" end="^}\(alt\|group\|poem\)"
syn region sisu_content_alt contains=sisu_error matchgroup=sisu_contain start="^code{" end="^}code"
-"% endnotes
-syn region sisu_content_endnote contains=sisu_link,sisu_strikeout,sisu_underline,sisu_number,sisu_control,sisu_identifier,sisu_error,sisu_error_wspace,sisu_mark,sisu_break matchgroup=sisu_mark_endnote start="\~{[*+]*" end="}\~" skip="\n"
-syn region sisu_content_endnote contains=sisu_link,sisu_strikeout,sisu_underline,sisu_number,sisu_control,sisu_identifier,sisu_error,sisu_error_wspace,sisu_mark,sisu_break matchgroup=sisu_mark_endnote start="\~\[[*+]*" end="\]\~" skip="\n"
+"endnotes
+syn region sisu_content_endnote contains=sisu_link,sisu_strikeout,sisu_underline,sisu_number,sisu_control,sisu_identifier,sisu_error,sisu_error_wspace,sisu_mark,sisu_break,sisu_sem_block,sisu_sem_content,sisu_sem_marker_block,sisu_sem_marker,sisu_sem_ex_marker_block,sisu_sem_ex_marker matchgroup=sisu_mark_endnote start="\~{[*+]*" end="}\~" skip="\n"
+syn region sisu_content_endnote contains=sisu_link,sisu_strikeout,sisu_underline,sisu_number,sisu_control,sisu_identifier,sisu_error,sisu_error_wspace,sisu_mark,sisu_break,sisu_sem_block,sisu_sem_content,sisu_sem_marker matchgroup=sisu_mark_endnote start="\~\[[*+]*" end="\]\~" skip="\n"
syn region sisu_content_endnote contains=sisu_strikeout,sisu_number,sisu_control,sisu_link,sisu_identifier,sisu_error,sisu_error_wspace,sisu_mark,sisu_break matchgroup=sisu_mark_endnote start="\^\~" end="\n\n"
-"% images
-syn region sisu_linked contains=sisu_fontface,sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_link start="{" end="}\(\(https\?://\|\.\./\)\S\+\|image\)" oneline
-"% some line operations
+"links and images
+syn region sisu_linked contains=sisu_fontface,sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_sem_block,sisu_sem_content,sisu_sem_marker_block,sisu_sem_marker,sisu_sem_ex_marker_block,sisu_sem_ex_marker,sisu_sem_block,sisu_error matchgroup=sisu_link start="{\(\~^\s\)\?" end="}\(https\?:/\/\|\.\./\)\S\+" oneline
+syn region sisu_linked contains=sisu_fontface,sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_sem_block,sisu_sem_content,sisu_sem_marker_block,sisu_sem_marker,sisu_sem_ex_marker_block,sisu_sem_ex_marker,sisu_sem_block,sisu_error matchgroup=sisu_link start="{\(\~^\s\)\?" end="\[[1-5][sS]*\]}\S\+\.ss[tm]" oneline
+syn region sisu_linked contains=sisu_fontface,sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_link start="{" end="}image" oneline
+"some line operations
syn region sisu_control contains=sisu_strikeout,sisu_identifier,sisu_content_endnote,sisu_mark_endnote,sisu_error,sisu_error_wspace matchgroup=sisu_control start="\(\(^\| \)!_ \|<:b>\)" end="$"
-syn region sisu_normal contains=sisu_strikeout,sisu_identifier,sisu_content_endnote,sisu_mark_endnote,sisu_link,sisu_linked,sisu_error,sisu_error_wspace matchgroup=sisu_markpara start="^_\([12*]\|[12]\*\) " end="$"
+syn region sisu_normal contains=sisu_strikeout,sisu_identifier,sisu_content_endnote,sisu_mark_endnote,sisu_link,sisu_sem_block,sisu_sem_content,sisu_sem_marker_block,sisu_sem_marker,sisu_sem_ex_marker_block,sisu_sem_ex_marker,sisu_linked,sisu_error,sisu_error_wspace matchgroup=sisu_markpara start="^_\([1-9*]\|[1-9]\*\) " end="$"
syn region sisu_normal contains=sisu_strikeout,sisu_identifier,sisu_content_endnote,sisu_mark_endnote,sisu_link,sisu_linked,sisu_error,sisu_error_wspace matchgroup=sisu_markpara start="^\(#[ 1]\|_# \)" end="$"
syn region sisu_comment matchgroup=sisu_comment start="^%\{1,2\} " end="$"
-"% font face curly brackets
+"font face curly brackets
+"syn region sisu_identifier contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_sem start="\S\+:{" end="}:[^<>,.!?:; ]\+" oneline
syn region sisu_control contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_fontface start="\*{" end="}\*"
syn region sisu_control contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_fontface start="!{" end="}!"
syn region sisu_underline contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_fontface start="_{" end="}_"
@@ -74,43 +88,45 @@ syn region sisu_identifier contains=sisu_strikeout,sisu_number,sisu_control,sisu
syn region sisu_underline contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_fontface start="+{" end="}+"
syn region sisu_identifier contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_fontface start="\^{" end="}\^"
syn region sisu_identifier contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_fontface start=",{" end="},"
-syn region sisu_strikeout contains=sisu_error matchgroup=sisu_fontface start="-{" end="}-"
+syn region sisu_strikeout contains=sisu_error matchgroup=sisu_fontface start="-{" end="}-"
syn region sisu_html contains=sisu_error contains=sisu_strikeout matchgroup=sisu_contain start="<a href=\".\{-}\">" end="</a>" oneline
-"% single words bold italicise etc. "workon
+"single words bold italicise etc. "workon
syn region sisu_control contains=sisu_error matchgroup=sisu_control start="\([ (]\|^\)\*[^\|{\n\~\\]"hs=e-1 end="\*"he=e-0 skip="[a-zA-Z0-9']" oneline
syn region sisu_identifier contains=sisu_error matchgroup=sisu_content_alt start="\([ ]\|^\)/[^{ \|\n\\]"hs=e-1 end="/\[ \.\]" skip="[a-zA-Z0-9']" oneline
-"% misc
+"misc
syn region sisu_identifier contains=sisu_error matchgroup=sisu_fontface start="\^[^ {\|\n\\]"rs=s+1 end="\^[ ,.;:'})\\\n]" skip="[a-zA-Z0-9']" oneline
-"% metaverse html (flagged as errors for filetype sisu)
+"metaverse html (flagged as errors for filetype sisu)
syn region sisu_control contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error,sisu_mark matchgroup=sisu_html start="<b>" end="</b>" skip="\n" oneline
syn region sisu_control contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error,sisu_mark matchgroup=sisu_html start="<em>" end="</em>" skip="\n" oneline
syn region sisu_content_alt contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error,sisu_mark matchgroup=sisu_html start="<i>" end="</i>" skip="\n" oneline
syn region sisu_content_alt contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error,sisu_mark matchgroup=sisu_html start="<u>" end="</u>" skip="\n" oneline
syn region sisu_identifier contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error,sisu_mark matchgroup=sisu_html start="<ins>" end="</ins>" skip="\\\\\|\\'" oneline
syn region sisu_identifier contains=sisu_error matchgroup=sisu_html start="<del>" end="</del>" oneline
-"% metaverse <:>
+"metaverse
syn region sisu_content_alt contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_contain start="<:Table.\{-}>" end="<:Table[-_]end>"
syn region sisu_content_alt contains=sisu_error matchgroup=sisu_contain start="<:code>" end="<:code[-_]end>"
syn region sisu_content_alt contains=sisu_mark_endnote,sisu_content_endnote,sisu_link,sisu_mark,sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_contain start="<:alt>" end="<:alt[-_]end>"
syn region sisu_content_alt contains=sisu_mark_endnote,sisu_content_endnote,sisu_link,sisu_mark,sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_contain start="<:poem>" end="<:poem[-_]end>"
-"% 6 Expensive Mode
-" Expensive Mode:
+
+"Expensive Mode:
if !exists("sisu_no_expensive")
else " not Expensive
syn region sisu_content_alt matchgroup=sisu_control start="^\s*def\s" matchgroup=NONE end="[?!]\|\>" skip="\.\|\(::\)" oneline
endif " Expensive?
-"% 5 Headers: and Headings (Document Instructions)
+
+"Headers And Headings: (Document Instructions)
syn match sisu_control contains=sisu_error,sisu_error_wspace "4\~! \S\+"
syn region sisu_markpara contains=sisu_error,sisu_error_wspace start="^=begin" end="^=end.*$"
-"% 4 Errors?
+
+"Errors:
syn match sisu_error_wspace contains=sisu_error_wspace "^\s\+"
syn match sisu_error_wspace contains=sisu_error_wspace "\s\s\+"
syn match sisu_error_wspace contains=sisu_error_wspace " \s*$"
-syn match sisu_error contains=sisu_error,sisu_error_wspace "[^ (}]https\?:\S\+"
syn match sisu_error contains=sisu_error_wspace "\t\+"
-syn match sisu_error contains=sisu_error "https\?:\S\+[}><]"
+syn match sisu_error contains=sisu_error,sisu_error_wspace "\([^ (][_\\]\||[^ (}]\)https\?:\S\+"
+syn match sisu_error contains=sisu_error "_\?https\?:\S\+[}><]"
syn match sisu_error contains=sisu_error "\([!*/_\+,^]\){\([^(\}\1)]\)\{-}\n\n"
-syn match sisu_error contains=sisu_error "^[\-\~]{[^{]\{-}\n\n"
+syn match sisu_error contains=sisu_error "^[\~]{[^{]\{-}\n\n"
syn match sisu_error contains=sisu_error "\s\+.{{"
syn match sisu_error contains=sisu_error "^\~\s*$"
syn match sisu_error contains=sisu_error "^[0-9]\~\s*$"
@@ -124,48 +140,53 @@ syn match sisu_error contains=sisu_error "<dir>"
"errors for filetype sisu, though not error in 'metaverse':
syn match sisu_error contains=sisu_error,sisu_match,sisu_strikeout,sisu_contain,sisu_content_alt,sisu_mark,sisu_break,sisu_number "<[a-zA-Z\/]\+>"
syn match sisu_error "/\?<\([biu]\)>[^(</\1>)]\{-}\n\n"
-"% 3 Error Exceptions?
+
+"Error Exceptions:
syn match sisu_control "\n\n" "contains=ALL
syn match sisu_control " //"
syn match sisu_error "%{"
-syn match sisu_error "<br>https\?:\S\+\|https\?:\S\+<br>"
-syn match sisu_error "[><]https\?:\S\+\|https\?:\S\+[><]"
-"% 2 Definitions - Define the default highlighting.
-if version >= 508 || !exists("did_sisu_syntax_inits")
- if version < 508
- let did_sisu_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-"% 1 Defined
- HiLink sisu_normal Normal
- HiLink sisu_header PreProc
- HiLink sisu_header_content Statement
- HiLink sisu_heading Title
- HiLink sisu_structure Operator
- HiLink sisu_contain Include
- HiLink sisu_mark_endnote Include
- HiLink sisu_link NonText
- HiLink sisu_linked String
- HiLink sisu_fontface Include
- HiLink sisu_strikeout DiffDelete
- HiLink sisu_content_alt Special
- HiLink sisu_content_endnote Special
- HiLink sisu_control Define
- HiLink sisu_ocn Include
- HiLink sisu_number Number
- HiLink sisu_identifier Function
- HiLink sisu_underline Underlined
- HiLink sisu_markpara Include
- HiLink sisu_marktail Include
- HiLink sisu_mark Identifier
- HiLink sisu_break Structure
- HiLink sisu_html Type
- HiLink sisu_action Identifier
- HiLink sisu_comment Comment
- HiLink sisu_error_wspace Error
- HiLink sisu_error Error
- delcommand HiLink
-endif
+syn match sisu_error "<br>_\?https\?:\S\+\|_\?https\?:\S\+<br>"
+syn match sisu_error "[><]_\?https\?:\S\+\|_\?https\?:\S\+[><]"
+
+"Definitions Default Highlighting:
+hi def link sisu_normal Normal
+hi def link sisu_header PreProc
+hi def link sisu_header_content Statement
+hi def link sisu_heading Title
+hi def link sisu_structure Operator
+hi def link sisu_contain Include
+hi def link sisu_mark_endnote Include
+hi def link sisu_require NonText
+hi def link sisu_link NonText
+hi def link sisu_linked String
+hi def link sisu_fontface Include
+hi def link sisu_strikeout DiffDelete
+hi def link sisu_content_alt Special
+hi def link sisu_sem_content String
+hi def link sisu_sem_content SpecialKey
+hi def link sisu_sem_block Special
+hi def link sisu_sem_marker Visual
+"hi def link sisu_sem_marker Structure
+hi def link sisu_sem_marker_block MatchParen
+hi def link sisu_sem_ex_marker FoldColumn
+hi def link sisu_sem_ex_marker_block Folded
+hi def link sisu_sem_ex_content Comment
+"hi def link sisu_sem_ex_content SpecialKey
+hi def link sisu_sem_ex_block Comment
+hi def link sisu_content_endnote Special
+hi def link sisu_control Define
+hi def link sisu_ocn Include
+hi def link sisu_number Number
+hi def link sisu_identifier Function
+hi def link sisu_underline Underlined
+hi def link sisu_markpara Include
+hi def link sisu_marktail Include
+hi def link sisu_mark Identifier
+hi def link sisu_break Structure
+hi def link sisu_html Type
+hi def link sisu_action Identifier
+hi def link sisu_comment Comment
+hi def link sisu_error_sem_marker Error
+hi def link sisu_error_wspace Error
+hi def link sisu_error Error
let b:current_syntax = "sisu"
diff --git a/runtime/syntax/yaml.vim b/runtime/syntax/yaml.vim
index 9ebab7068..abda3f8b4 100644
--- a/runtime/syntax/yaml.vim
+++ b/runtime/syntax/yaml.vim
@@ -1,7 +1,7 @@
" Vim syntax file
" Language: YAML (YAML Ain't Markup Language)
" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2006-04-19
+" Latest Revision: 2007-06-27
if exists("b:current_syntax")
finish
@@ -10,53 +10,140 @@ endif
let s:cpo_save = &cpo
set cpo&vim
-syn keyword yamlTodo contained TODO FIXME XXX NOTE
+syn keyword yamlTodo
+ \ contained
+ \ TODO
+ \ FIXME
+ \ XXX
+ \ NOTE
+
+syn region yamlComment
+ \ display
+ \ oneline
+ \ start='%(^|s)#'
+ \ end='$'
+ \ contains=yamlTodo,@Spell
+
+syn match yamlNodeProperty
+ \ '!\%(![^\\^% \t]\+\|[^!][^:/ \t]*\)'
+
+syn match yamlAnchor
+ \ '&.+'
+
+syn match yamlAlias
+ \ '*.+'
+
+syn match yamlDelimiter
+ \ '[-,:]'
+syn match yamlBlock
+ \ '[[]{}>|]'
+syn match yamlOperator
+ \ '[?+-]'
+syn match yamlKey
+ \ 'w+(s+w+)*zes*:'
+
+syn region yamlString
+ \ start=+"+
+ \ skip=+\"+
+ \ end=+"+
+ \ contains=yamlEscape
+syn region yamlString
+ \ start=+'+
+ \ skip=+''+
+ \ end=+'+
+ \ contains=yamlSingleEscape
+syn match yamlEscape
+ \ contained
+ \ display
+ \ +\[\"abefnrtv^0_ NLP]+
+syn match yamlEscape
+ \ contained
+ \ display
+ \ '\xx{2}'
+syn match yamlEscape
+ \ contained
+ \ display
+ \ '\ux{4}'
+syn match yamlEscape
+ \ contained
+ \ display
+ \ '\Ux{8}'
-syn region yamlComment display oneline start='\%(^\|\s\)#' end='$'
- \ contains=yamlTodo,@Spell
-
-syn match yamlNodeProperty '!\%(![^\\^% ]\+\|[^!][^:/ ]*\)'
-
-syn match yamlAnchor '&.\+'
-
-syn match yamlAlias '\*.\+'
-
-syn match yamlDelimiter '[-,:]'
-syn match yamlBlock '[\[\]{}>|]'
-syn match yamlOperator '[?+-]'
-syn match yamlKey '\w\+\(\s\+\w\+\)*\ze\s*:'
-
-syn region yamlString start=+"+ skip=+\\"+ end=+"+
- \ contains=yamlEscape
-syn region yamlString start=+'+ skip=+''+ end=+'+
- \ contains=yamlSingleEscape
-syn match yamlEscape contained display +\\[\\"abefnrtv^0_ NLP]+
-syn match yamlEscape contained display '\\x\x\{2}'
-syn match yamlEscape contained display '\\u\x\{4}'
-syn match yamlEscape contained display '\\U\x\{8}'
" TODO: how do we get 0x85, 0x2028, and 0x2029 into this?
-syn match yamlEscape display '\\\%(\r\n\|[\r\n]\)'
-syn match yamlSingleEscape contained display +''+
+" XXX: Em, what is going on here? This can't be right. Leave out until we
+" figure out what this is meant to do.
+"syn match yamlEscape
+" \ contained
+" \ display
+" \ '\%(rn|[rn])'
+syn match yamlSingleEscape
+ \ contained
+ \ display
+ \ +''+
" TODO: sexagecimal and fixed (20:30.15 and 1,230.15)
-syn match yamlNumber display
- \ '\<[+-]\=\d\+\%(\.\d\+\%([eE][+-]\=\d\+\)\=\)\='
-syn match yamlNumber display '0\o\+'
-syn match yamlNumber display '0x\x\+'
-syn match yamlNumber display '([+-]\=[iI]nf)'
-syn match yamlNumber display '(NaN)'
-
-syn match yamlConstant '\<[~yn]\>'
-syn keyword yamlConstant true True TRUE false False FALSE
-syn keyword yamlConstant yes Yes on ON no No off OFF
-syn keyword yamlConstant null Null NULL nil Nil NIL
-
-syn match yamlTimestamp '\d\d\d\d-\%(1[0-2]\|\d\)-\%(3[0-2]\|2\d\|1\d\|\d\)\%( \%([01]\d\|2[0-3]\):[0-5]\d:[0-5]\d.\d\d [+-]\%([01]\d\|2[0-3]\):[0-5]\d\|t\%([01]\d\|2[0-3]\):[0-5]\d:[0-5]\d.\d\d[+-]\%([01]\d\|2[0-3]\):[0-5]\d\|T\%([01]\d\|2[0-3]\):[0-5]\d:[0-5]\d.\dZ\)\='
-
-syn region yamlDocumentHeader start='---' end='$' contains=yamlDirective
-syn match yamlDocumentEnd '\.\.\.'
-
-syn match yamlDirective contained '%[^:]\+:.\+'
+syn match yamlNumber
+ \ display
+ \ '\<[+-]\=\d\+\%(\.\d\+\%([eE][+-]\=\d\+\)\=\)\='
+syn match yamlNumber
+ \ display
+ \ '0o+'
+syn match yamlNumber
+ \ display
+ \ '0xx+'
+syn match yamlNumber
+ \ display
+ \ '([+-]=[iI]nf)'
+syn match yamlNumber
+ \ display
+ \ '(NaN)'
+
+syn match yamlConstant
+ \ '<[~yn]>'
+syn keyword yamlConstant
+ \ true
+ \ True
+ \ TRUE
+ \ false
+ \ False
+ \ FALSE
+syn keyword yamlConstant
+ \ yes
+ \ Yes
+ \ on
+ \ ON
+ \ no
+ \ No
+ \ off
+ \ OFF
+syn keyword yamlConstant
+ \ null
+ \ Null
+ \ NULL
+ \ nil
+ \ Nil
+ \ NIL
+
+syn match yamlTimestamp
+ \ '\d\d\d\d-\%(1[0-2]\|\d\)-\%(3[0-2]\|2\d\|1\d\|\d\)\%( \%([01]\d\|2[0-3]\):[0-5]\d:[0-5]\d.\d\d [+-]\%([01]\d\|2[0-3]\):[0-5]\d\|t\%([01]\d\|2[0-3]\):[0-5]\d:[0-5]\d.\d\d[+-]\%([01]\d\|2[0-3]\):[0-5]\d\|T\%([01]\d\|2[0-3]\):[0-5]\d:[0-5]\d.\dZ\)\='
+
+syn region yamlDocumentHeader
+ \ start='---'
+ \ end='$'
+ \ contains=yamlDirective
+syn match yamlDocumentEnd
+ \ '\.\.\.'
+
+syn match yamlDirective
+ \ contained
+ \ '%[^:]+:.+'
+
+syn match yamlIndentation
+ \ '^s*'
+ \ contains=yamlIndentationError
+
+syn match yamlIndentationError
+ \ 't'
hi def link yamlTodo Todo
hi def link yamlComment Comment
@@ -76,6 +163,7 @@ hi def link yamlSingleEscape SpecialChar
hi def link yamlNumber Number
hi def link yamlConstant Constant
hi def link yamlTimestamp Number
+hi def link yamlIndentationError Error
let b:current_syntax = "yaml"
diff --git a/runtime/tutor/Contents.info b/runtime/tutor/Contents.info
new file mode 100755
index 000000000..9e855c7e9
--- /dev/null
+++ b/runtime/tutor/Contents.info
Binary files differ
diff --git a/runtime/tutor/Makefile b/runtime/tutor/Makefile
index 188c98997..45568a9eb 100644
--- a/runtime/tutor/Makefile
+++ b/runtime/tutor/Makefile
@@ -1,36 +1,602 @@
-# Makefile for the Vim tutor.
+# This Makefile has two purposes:
+# 1. Starting the compilation of Vim for Unix.
+# 2. Creating the various distribution files.
+
+
+# 1. Using this Makefile without an argument will compile Vim for Unix.
+#
+# "make install" is also possible.
+#
+# NOTE: If this doesn't work properly, first change directory to "src" and use
+# the Makefile there:
+# cd src
+# make [arguments]
+# Noticed on AIX systems when using this Makefile: Trying to run "cproto" or
+# something else after Vim has been compiled. Don't know why...
+# Noticed on OS/390 Unix: Restarts configure.
+#
+# The first (default) target is "first". This will result in running
+# "make first", so that the target from "src/auto/config.mk" is picked
+# up properly when config didn't run yet. Doing "make all" before configure
+# has run can result in compiling with $(CC) empty.
+
+first:
+ @echo "Starting make in the src directory."
+ @echo "If there are problems, cd to the src directory and run make there"
+ cd src && $(MAKE) $@
+
+# Some make programs use the last target for the $@ default; put the other
+# targets separately to always let $@ expand to "first" by default.
+all install uninstall tools config configure reconfig proto depend lint tags types test testclean clean distclean:
+ @echo "Starting make in the src directory."
+ @echo "If there are problems, cd to the src directory and run make there"
+ cd src && $(MAKE) $@
+
+
+# 2. Create the various distributions:
+#
+# TARGET PRODUCES CONTAINS
+# unixall vim-#.#.tar.bz2 Runtime files and Sources for Unix
+#
+# extra vim-#.#-extra.tar.gz Extra source and runtime files
+# lang vim-#.#-lang.tar.gz multi-language files
+#
+# html vim##html.zip HTML docs
+#
+# amisrc vim##src.tgz sources for Amiga
+# amirt vim##rt.tgz runtime for Amiga
+# amibin vim##bin.tgz binary for Amiga
+#
+# dossrc vim##src.zip sources for MS-DOS
+# dosrt vim##rt.zip runtime for MS-DOS
+# dosbin vim##d16.zip binary for MS-DOS 16 bits
+# vim##d32.zip binary for MS-DOS 32 bits
+# vim##w32.zip binary for Win32
+# gvim##.zip binary for GUI Win32
+# gvim##ole.zip OLE exe for Win32 GUI
+# gvim##_s.zip exe for Win32s GUI
+# doslang vim##lang.zip language files for Win32
+#
+# os2bin vim##os2.zip binary for OS/2
+# (use RT from dosrt)
#
-# The Japanese tutor exists in three encodings. Use the UTF-8 version as the
-# original and create the others with conversion.
+# farsi farsi##.zip Farsi fonts
#
-# Similarly for Russian and Korean
+# All output files are created in the "dist" directory. Existing files are
+# overwritten!
+# To do all this you need the unix, extra and lang archives, and
+# compiled binaries.
+# Before creating an archive first delete all backup files, *.orig, etc.
+
+MAJOR = 7
+MINOR = 2a
+
+# Uncomment this line if the Win32s version is to be included.
+DOSBIN_S = dosbin_s
+
+# CHECKLIST for creating a new version:
+#
+# - Update Vim version number. For a test version in: src/version.h, Contents,
+# MAJOR/MINOR above, VIMMAJOR and VIMMINOR in src/Makefile, README*.txt,
+# runtime/doc/*.txt and nsis/gvim.nsi. Other things in README_os2.txt. For a
+# minor/major version: src/GvimExt/GvimExt.reg, src/vim.def, src/vim16.def.
+# - Correct included_patches[] in src/version.c.
+# - Compile Vim with GTK, Perl, Python, TCL, Ruby, MZscheme (if you can make it
+# work), Cscope and "huge" features. Exclude workshop and SNiFF.
+# - With these features: "make proto" (requires cproto and Motif installed;
+# ignore warnings for missing include files, fix problems for syntax errors).
+# - With these features: "make depend" (works best with gcc).
+# - "make lint" and check the output (ignore GTK warnings).
+# - Enable the efence library in "src/Makefile" and run "make test". Disable
+# Python and Ruby to avoid trouble with threads (efence is not threadsafe).
+# - Check for missing entries in runtime/makemenu.vim (with checkmenu script).
+# - Check for missing options in runtime/optwin.vim et al. (with check.vim).
+# - Do "make menu" to update the runtime/synmenu.vim file.
+# - Add remarks for changes to runtime/doc/version7.txt.
+# - Check that runtime/doc/help.txt doesn't contain entries in "LOCAL
+# ADDITIONS".
+# - In runtime/doc run "make" and "make html" to check for errors.
+# - Check if src/Makefile and src/feature.h don't contain any personal
+# preferences or the GTK, Perl, etc. mentioned above.
+# - Check file protections to be "644" for text and "755" for executables (run
+# the "check" script).
+# - Check compiling on Amiga, MS-DOS and MS-Windows.
+# - Delete all *~, *.sw?, *.orig, *.rej files
+# - "make unixall", "make extra", "make lang", "make html"
+# - Make diff files against the previous release: "makediff7 7.1 7.2"
+#
+# Amiga:
+# - "make amisrc", move the archive to the Amiga and compile:
+# "make -f Make_manx.mak" (will use "big" features by default).
+# - Run the tests: "make -f Make_manx.mak test"
+# - Place the executables Vim and Xxd in this directory (set the executable
+# flag).
+# - "make amirt", "make amibin".
+#
+# PC:
+# - "make dossrc" and "make dosrt". Unpack the archives on a PC.
+# 16 bit DOS version:
+# - Set environment for compiling with Borland C++ 3.1.
+# - "bmake -f Make_bc3.mak BOR=E:\borlandc" (compiling xxd might fail, in that
+# case set environment for compiling with Borland C++ 4.0 and do
+# "make -f make_bc3.mak BOR=E:\BC4 xxd/xxd.exe").
+# NOTE: this currently fails because Vim is too big.
+# - "make test" and check the output.
+# - Rename the executables to "vimd16.exe", "xxdd16.exe", "installd16.exe" and
+# "uninstald16.exe".
+# 32 bit DOS version:
+# - Set environment for compiling with DJGPP; "gmake -f Make_djg.mak".
+# - "rm testdir/*.out", "gmake -f Make_djg.mak test" and check the output for
+# "ALL DONE".
+# - Rename the executables to "vimd32.exe", "xxdd32.exe", "installd32.exe" and
+# "uninstald32.exe".
+# Win32 console version:
+# - Set environment for Visual C++ 2008 Express Edition: "msvc2008.bat". Or,
+# when using the Visual C++ Toolkit 2003: "msvcsetup.bat" (adjust the paths
+# when necessary).
+# - "nmake -f Make_mvc.mak"
+# - "rm testdir/*.out", "nmake -f Make_mvc.mak test" and check the output.
+# - Rename the executables to "vimw32.exe", "xxdw32.exe".
+# - Rename vim.pdb to vimw32.pdb.
+# - When building the Win32s version later, delete vimrun.exe, install.exe and
+# uninstal.exe. Otherwise rename executables to installw32.exe and
+# uninstalw32.exe.
+# Win32 GUI version:
+# - "nmake -f Make_mvc.mak GUI=yes.
+# - move "gvim.exe" to here (otherwise the OLE version will overwrite it).
+# - Move gvim.pdb to here.
+# - Delete vimrun.exe, install.exe and uninstal.exe.
+# - Copy "GvimExt/gvimext.dll" to here.
+# Win32 GUI version with OLE, PERL, TCL, PYTHON and dynamic IME:
+# - Run src/bigvim.bat ("nmake -f Make_mvc.mak GUI=yes OLE=yes IME=yes ...)
+# - Rename "gvim.exe" to "gvim_ole.exe".
+# - Rename gvim.pdb to "gvim_ole.pdb".
+# - Delete install.exe and uninstal.exe.
+# - If building the Win32s version delete vimrun.exe.
+# Win32s GUI version:
+# - Set environment for Visual C++ 4.1 (requires a new console window)
+# - "vcvars32" (use the path for VC 4.1 e:\msdev\bin)
+# - "nmake -f Make_mvc.mak GUI=yes INTL=no clean" (use the path for VC 4.1)
+# - "nmake -f Make_mvc.mak GUI=yes INTL=no" (use the path for VC 4.1)
+# - Rename "gvim.exe" to "gvim_w32s.exe".
+# - Rename "install.exe" to "installw32.exe"
+# - Rename "uninstal.exe" to "uninstalw32.exe"
+# - The produced uninstalw32.exe and vimrun.exe are used.
+# Create the archives:
+# - Copy all the "*.exe" files to where this Makefile is.
+# - Copy all the "*.pdb" files to where this Makefile is.
+# - "make dosbin".
+# - Run make on Unix to update the ".mo" files.
+# - "make doslang".
+# NSIS self installing exe:
+# - Unpack the doslang archive on the PC.
+# - Make sure gvim_ole.exe, vimd32.exe, vimw32.exe, installw32.exe,
+# uninstalw32.exe and xxdw32.exe have been build as mentioned above.
+# - put gvimext.dll in src/GvimExt and VisVim.dll in src/VisVim (get them
+# from a binary archive or build them)
+# Note: VisVim needs to be build with MSVC 5, newer versions don't work.
+# - make sure there is a diff.exe two levels up
+# - go to ../nsis and do "makensis gvim.nsi".
+# - Copy gvim##.exe to the dist directory.
+#
+# OS/2:
+# - Unpack the Unix "src", "extra" and "rt" archives.
+# - "make -f Make_os2.mak".
+# - Rename the executables to vimos2.exe, xxdos2.exe and teeos2.exe and copy
+# them to here.
+# - "make os2bin".
+
+VIMVER = vim-$(MAJOR).$(MINOR)
+VERSION = $(MAJOR)$(MINOR)
+VDOT = $(MAJOR).$(MINOR)
+VIMRTDIR = vim$(VERSION)
+
+# Vim used for conversion from "unix" to "dos"
+VIM = vim
+
+# How to include Filelist depends on the version of "make" you have.
+# If the current choice doesn't work, try the other one.
+
+include Filelist
+#.include "Filelist"
+
+
+# All output is put in the "dist" directory.
+dist:
+ mkdir dist
+
+# Clean up some files to avoid they are included.
+prepare:
+ if test -f runtime/doc/uganda.nsis.txt; then \
+ rm runtime/doc/uganda.nsis.txt; fi
+
+# For the zip files we need to create a file with the comment line
+dist/comment:
+ mkdir dist/comment
+
+COMMENT_RT = comment/$(VERSION)-rt
+COMMENT_RT1 = comment/$(VERSION)-rt1
+COMMENT_RT2 = comment/$(VERSION)-rt2
+COMMENT_D16 = comment/$(VERSION)-bin-d16
+COMMENT_D32 = comment/$(VERSION)-bin-d32
+COMMENT_W32 = comment/$(VERSION)-bin-w32
+COMMENT_GVIM = comment/$(VERSION)-bin-gvim
+COMMENT_OLE = comment/$(VERSION)-bin-ole
+COMMENT_W32S = comment/$(VERSION)-bin-w32s
+COMMENT_SRC = comment/$(VERSION)-src
+COMMENT_OS2 = comment/$(VERSION)-bin-os2
+COMMENT_HTML = comment/$(VERSION)-html
+COMMENT_FARSI = comment/$(VERSION)-farsi
+COMMENT_LANG = comment/$(VERSION)-lang
+
+dist/$(COMMENT_RT): dist/comment
+ echo "Vim - Vi IMproved - v$(VDOT) runtime files for MS-DOS and MS-Windows" > dist/$(COMMENT_RT)
+
+dist/$(COMMENT_RT1): dist/comment
+ echo "Vim - Vi IMproved - v$(VDOT) runtime files (PART 1) for MS-DOS and MS-Windows" > dist/$(COMMENT_RT1)
+
+dist/$(COMMENT_RT2): dist/comment
+ echo "Vim - Vi IMproved - v$(VDOT) runtime files (PART 2) for MS-DOS and MS-Windows" > dist/$(COMMENT_RT2)
+
+dist/$(COMMENT_D16): dist/comment
+ echo "Vim - Vi IMproved - v$(VDOT) binaries for MS-DOS 16 bit real mode" > dist/$(COMMENT_D16)
+
+dist/$(COMMENT_D32): dist/comment
+ echo "Vim - Vi IMproved - v$(VDOT) binaries for MS-DOS 32 bit protected mode" > dist/$(COMMENT_D32)
+
+dist/$(COMMENT_W32): dist/comment
+ echo "Vim - Vi IMproved - v$(VDOT) binaries for MS-Windows NT/95" > dist/$(COMMENT_W32)
+
+dist/$(COMMENT_GVIM): dist/comment
+ echo "Vim - Vi IMproved - v$(VDOT) GUI binaries for MS-Windows NT/95" > dist/$(COMMENT_GVIM)
+
+dist/$(COMMENT_OLE): dist/comment
+ echo "Vim - Vi IMproved - v$(VDOT) MS-Windows GUI binaries with OLE support" > dist/$(COMMENT_OLE)
+
+dist/$(COMMENT_W32S): dist/comment
+ echo "Vim - Vi IMproved - v$(VDOT) GUI binaries for MS-Windows 3.1/3.11" > dist/$(COMMENT_W32S)
+
+dist/$(COMMENT_SRC): dist/comment
+ echo "Vim - Vi IMproved - v$(VDOT) sources for MS-DOS and MS-Windows" > dist/$(COMMENT_SRC)
+
+dist/$(COMMENT_OS2): dist/comment
+ echo "Vim - Vi IMproved - v$(VDOT) binaries + runtime files for OS/2" > dist/$(COMMENT_OS2)
+
+dist/$(COMMENT_HTML): dist/comment
+ echo "Vim - Vi IMproved - v$(VDOT) documentation in HTML" > dist/$(COMMENT_HTML)
+
+dist/$(COMMENT_FARSI): dist/comment
+ echo "Vim - Vi IMproved - v$(VDOT) Farsi language files" > dist/$(COMMENT_FARSI)
+
+dist/$(COMMENT_LANG): dist/comment
+ echo "Vim - Vi IMproved - v$(VDOT) MS-Windows language files" > dist/$(COMMENT_LANG)
+
+unixall: dist prepare
+ -rm -f dist/$(VIMVER).tar.bz2
+ -rm -rf dist/$(VIMRTDIR)
+ mkdir dist/$(VIMRTDIR)
+ tar cf - \
+ $(RT_ALL) \
+ $(RT_ALL_BIN) \
+ $(RT_UNIX) \
+ $(RT_UNIX_DOS_BIN) \
+ $(RT_SCRIPTS) \
+ $(LANG_GEN) \
+ $(LANG_GEN_BIN) \
+ $(SRC_ALL) \
+ $(SRC_UNIX) \
+ $(SRC_DOS_UNIX) \
+ | (cd dist/$(VIMRTDIR); tar xf -)
+# Need to use a "distclean" config.mk file
+ cp -f src/config.mk.dist dist/$(VIMRTDIR)/src/auto/config.mk
+# Create an empty config.h file, make dependencies require it
+ touch dist/$(VIMRTDIR)/src/auto/config.h
+# Make sure configure is newer than config.mk to force it to be generated
+ touch dist/$(VIMRTDIR)/src/configure
+ cd dist && tar cf $(VIMVER).tar $(VIMRTDIR)
+ bzip2 dist/$(VIMVER).tar
+
+extra: dist prepare
+ -rm -f dist/$(VIMVER)-extra.tar.gz
+ -rm -rf dist/$(VIMRTDIR)
+ mkdir dist/$(VIMRTDIR)
+ tar cf - \
+ $(EXTRA) \
+ | (cd dist/$(VIMRTDIR); tar xf -)
+ cd dist && tar cf $(VIMVER)-extra.tar $(VIMRTDIR)
+ gzip -9 dist/$(VIMVER)-extra.tar
+
+lang: dist prepare
+ -rm -f dist/$(VIMVER)-lang.tar.gz
+ -rm -rf dist/$(VIMRTDIR)
+ mkdir dist/$(VIMRTDIR)
+ tar cf - \
+ $(LANG_SRC) \
+ | (cd dist/$(VIMRTDIR); tar xf -)
+# Make sure ja.sjis.po is newer than ja.po to avoid it being regenerated.
+# Same for cs.cp1250.po, pl.cp1250.po and sk.cp1250.po.
+ touch dist/$(VIMRTDIR)/src/po/ja.sjis.po
+ touch dist/$(VIMRTDIR)/src/po/cs.cp1250.po
+ touch dist/$(VIMRTDIR)/src/po/pl.cp1250.po
+ touch dist/$(VIMRTDIR)/src/po/sk.cp1250.po
+ touch dist/$(VIMRTDIR)/src/po/zh_CN.cp936.po
+ touch dist/$(VIMRTDIR)/src/po/ru.cp1251.po
+ touch dist/$(VIMRTDIR)/src/po/uk.cp1251.po
+ cd dist && tar cf $(VIMVER)-lang.tar $(VIMRTDIR)
+ gzip -9 dist/$(VIMVER)-lang.tar
+
+amirt: dist prepare
+ -rm -f dist/vim$(VERSION)rt.tar.gz
+ -rm -rf dist/Vim
+ mkdir dist/Vim
+ mkdir dist/Vim/$(VIMRTDIR)
+ tar cf - \
+ $(ROOT_AMI) \
+ $(RT_ALL) \
+ $(RT_ALL_BIN) \
+ $(RT_SCRIPTS) \
+ $(RT_AMI) \
+ $(RT_NO_UNIX) \
+ $(RT_AMI_DOS) \
+ | (cd dist/Vim/$(VIMRTDIR); tar xf -)
+ mv dist/Vim/$(VIMRTDIR)/vimdir.info dist/Vim.info
+ mv dist/Vim/$(VIMRTDIR)/runtime.info dist/Vim/$(VIMRTDIR).info
+ mv dist/Vim/$(VIMRTDIR)/runtime/* dist/Vim/$(VIMRTDIR)
+ rmdir dist/Vim/$(VIMRTDIR)/runtime
+ cd dist && tar cf vim$(VERSION)rt.tar Vim Vim.info
+ gzip -9 dist/vim$(VERSION)rt.tar
+ mv dist/vim$(VERSION)rt.tar.gz dist/vim$(VERSION)rt.tgz
+
+amibin: dist prepare
+ -rm -f dist/vim$(VERSION)bin.tar.gz
+ -rm -rf dist/Vim
+ mkdir dist/Vim
+ mkdir dist/Vim/$(VIMRTDIR)
+ tar cf - \
+ $(ROOT_AMI) \
+ $(BIN_AMI) \
+ Vim \
+ Xxd \
+ | (cd dist/Vim/$(VIMRTDIR); tar xf -)
+ mv dist/Vim/$(VIMRTDIR)/vimdir.info dist/Vim.info
+ mv dist/Vim/$(VIMRTDIR)/runtime.info dist/Vim/$(VIMRTDIR).info
+ cd dist && tar cf vim$(VERSION)bin.tar Vim Vim.info
+ gzip -9 dist/vim$(VERSION)bin.tar
+ mv dist/vim$(VERSION)bin.tar.gz dist/vim$(VERSION)bin.tgz
+
+amisrc: dist prepare
+ -rm -f dist/vim$(VERSION)src.tar.gz
+ -rm -rf dist/Vim
+ mkdir dist/Vim
+ mkdir dist/Vim/$(VIMRTDIR)
+ tar cf - \
+ $(ROOT_AMI) \
+ $(SRC_ALL) \
+ $(SRC_AMI) \
+ $(SRC_AMI_DOS) \
+ | (cd dist/Vim/$(VIMRTDIR); tar xf -)
+ mv dist/Vim/$(VIMRTDIR)/vimdir.info dist/Vim.info
+ mv dist/Vim/$(VIMRTDIR)/runtime.info dist/Vim/$(VIMRTDIR).info
+ cd dist && tar cf vim$(VERSION)src.tar Vim Vim.info
+ gzip -9 dist/vim$(VERSION)src.tar
+ mv dist/vim$(VERSION)src.tar.gz dist/vim$(VERSION)src.tgz
+
+no_title.vim: Makefile
+ echo "set notitle noicon nocp nomodeline viminfo=" >no_title.vim
+
+dosrt: dist dist/$(COMMENT_RT) dosrt_unix2dos
+ -rm -rf dist/vim$(VERSION)rt.zip
+ cd dist && zip -9 -rD -z vim$(VERSION)rt.zip vim <$(COMMENT_RT)
+
+# Split in two parts to avoid a "argument list too long" error.
+dosrt_unix2dos: dist prepare no_title.vim
+ -rm -rf dist/vim
+ mkdir dist/vim
+ mkdir dist/vim/$(VIMRTDIR)
+ tar cf - \
+ $(RT_ALL) \
+ | (cd dist/vim/$(VIMRTDIR); tar xf -)
+ tar cf - \
+ $(RT_SCRIPTS) \
+ $(RT_DOS) \
+ $(RT_NO_UNIX) \
+ $(RT_AMI_DOS) \
+ $(LANG_GEN) \
+ | (cd dist/vim/$(VIMRTDIR); tar xf -)
+ find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -u no_title.vim -c ":set tx|wq" {} \;
+ tar cf - \
+ $(RT_UNIX_DOS_BIN) \
+ $(RT_ALL_BIN) \
+ $(RT_DOS_BIN) \
+ $(LANG_GEN_BIN) \
+ | (cd dist/vim/$(VIMRTDIR); tar xf -)
+ mv dist/vim/$(VIMRTDIR)/runtime/* dist/vim/$(VIMRTDIR)
+ rmdir dist/vim/$(VIMRTDIR)/runtime
+
+
+# Convert runtime files from Unix fileformat to dos fileformat.
+# Used before uploading. Don't delete the AAPDIR/sign files!
+runtime_unix2dos: dosrt_unix2dos
+ -rm -rf `find runtime/dos -type f -print | sed -e /AAPDIR/d`
+ cd dist/vim/$(VIMRTDIR); tar cf - * \
+ | (cd ../../../runtime/dos; tar xf -)
+
+dosbin: prepare dosbin_gvim dosbin_w32 dosbin_d32 dosbin_d16 dosbin_ole $(DOSBIN_S)
+
+# make Win32 gvim
+dosbin_gvim: dist no_title.vim dist/$(COMMENT_GVIM)
+ -rm -rf dist/gvim$(VERSION).zip
+ -rm -rf dist/vim
+ mkdir dist/vim
+ mkdir dist/vim/$(VIMRTDIR)
+ tar cf - \
+ $(BIN_DOS) \
+ | (cd dist/vim/$(VIMRTDIR); tar xf -)
+ find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -u no_title.vim -c ":set tx|wq" {} \;
+ cp gvim.exe dist/vim/$(VIMRTDIR)/gvim.exe
+ cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe
+ cp vimrun.exe dist/vim/$(VIMRTDIR)/vimrun.exe
+ cp installw32.exe dist/vim/$(VIMRTDIR)/install.exe
+ cp uninstalw32.exe dist/vim/$(VIMRTDIR)/uninstal.exe
+ cp gvimext.dll dist/vim/$(VIMRTDIR)/gvimext.dll
+ cd dist && zip -9 -rD -z gvim$(VERSION).zip vim <$(COMMENT_GVIM)
+ cp gvim.pdb dist/gvim$(VERSION).pdb
+
+# make Win32 console
+dosbin_w32: dist no_title.vim dist/$(COMMENT_W32)
+ -rm -rf dist/vim$(VERSION)w32.zip
+ -rm -rf dist/vim
+ mkdir dist/vim
+ mkdir dist/vim/$(VIMRTDIR)
+ tar cf - \
+ $(BIN_DOS) \
+ | (cd dist/vim/$(VIMRTDIR); tar xf -)
+ find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -u no_title.vim -c ":set tx|wq" {} \;
+ cp vimw32.exe dist/vim/$(VIMRTDIR)/vim.exe
+ cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe
+ cp installw32.exe dist/vim/$(VIMRTDIR)/install.exe
+ cp uninstalw32.exe dist/vim/$(VIMRTDIR)/uninstal.exe
+ cd dist && zip -9 -rD -z vim$(VERSION)w32.zip vim <$(COMMENT_W32)
+ cp vimw32.pdb dist/vim$(VERSION)w32.pdb
+
+# make 32bit DOS
+dosbin_d32: dist no_title.vim dist/$(COMMENT_D32)
+ -rm -rf dist/vim$(VERSION)d32.zip
+ -rm -rf dist/vim
+ mkdir dist/vim
+ mkdir dist/vim/$(VIMRTDIR)
+ tar cf - \
+ $(BIN_DOS) \
+ | (cd dist/vim/$(VIMRTDIR); tar xf -)
+ find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -u no_title.vim -c ":set tx|wq" {} \;
+ cp vimd32.exe dist/vim/$(VIMRTDIR)/vim.exe
+ cp xxdd32.exe dist/vim/$(VIMRTDIR)/xxd.exe
+ cp installd32.exe dist/vim/$(VIMRTDIR)/install.exe
+ cp uninstald32.exe dist/vim/$(VIMRTDIR)/uninstal.exe
+ cp csdpmi4b.zip dist/vim/$(VIMRTDIR)
+ cd dist && zip -9 -rD -z vim$(VERSION)d32.zip vim <$(COMMENT_D32)
-all: tutor.ja.sjis tutor.ja.euc \
- tutor.ko.euc \
- tutor.ru tutor.ru.cp1251 \
- tutor.gr tutor.gr.cp737 \
- tutor.hu
+# make 16bit DOS
+dosbin_d16: dist no_title.vim dist/$(COMMENT_D16)
+ -rm -rf dist/vim$(VERSION)d16.zip
+ -rm -rf dist/vim
+ mkdir dist/vim
+ mkdir dist/vim/$(VIMRTDIR)
+ tar cf - \
+ $(BIN_DOS) \
+ | (cd dist/vim/$(VIMRTDIR); tar xf -)
+ find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -u no_title.vim -c ":set tx|wq" {} \;
+ cp vimd16.exe dist/vim/$(VIMRTDIR)/vim.exe
+ cp xxdd16.exe dist/vim/$(VIMRTDIR)/xxd.exe
+ cp installd16.exe dist/vim/$(VIMRTDIR)/install.exe
+ cp uninstald16.exe dist/vim/$(VIMRTDIR)/uninstal.exe
+ cd dist && zip -9 -rD -z vim$(VERSION)d16.zip vim <$(COMMENT_D16)
-tutor.ja.sjis: tutor.ja.utf-8
- nkf -WXs tutor.ja.utf-8 > tutor.ja.sjis
+# make Win32 gvim with OLE
+dosbin_ole: dist no_title.vim dist/$(COMMENT_OLE)
+ -rm -rf dist/gvim$(VERSION)ole.zip
+ -rm -rf dist/vim
+ mkdir dist/vim
+ mkdir dist/vim/$(VIMRTDIR)
+ tar cf - \
+ $(BIN_DOS) \
+ | (cd dist/vim/$(VIMRTDIR); tar xf -)
+ find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -u no_title.vim -c ":set tx|wq" {} \;
+ cp gvim_ole.exe dist/vim/$(VIMRTDIR)/gvim.exe
+ cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe
+ cp vimrun.exe dist/vim/$(VIMRTDIR)/vimrun.exe
+ cp installw32.exe dist/vim/$(VIMRTDIR)/install.exe
+ cp uninstalw32.exe dist/vim/$(VIMRTDIR)/uninstal.exe
+ cp gvimext.dll dist/vim/$(VIMRTDIR)/gvimext.dll
+ cp README_ole.txt dist/vim/$(VIMRTDIR)
+ cp src/VisVim/VisVim.dll dist/vim/$(VIMRTDIR)/VisVim.dll
+ cp src/VisVim/README_VisVim.txt dist/vim/$(VIMRTDIR)
+ cd dist && zip -9 -rD -z gvim$(VERSION)ole.zip vim <$(COMMENT_OLE)
+ cp gvim_ole.pdb dist/gvim$(VERSION)ole.pdb
-tutor.ja.euc: tutor.ja.utf-8
- nkf -WXe tutor.ja.utf-8 > tutor.ja.euc
+# make Win32s gvim
+dosbin_s: dist no_title.vim dist/$(COMMENT_W32S)
+ -rm -rf dist/gvim$(VERSION)_s.zip
+ -rm -rf dist/vim
+ mkdir dist/vim
+ mkdir dist/vim/$(VIMRTDIR)
+ tar cf - \
+ $(BIN_DOS) \
+ | (cd dist/vim/$(VIMRTDIR); tar xf -)
+ find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -u no_title.vim -c ":set tx|wq" {} \;
+ cp gvim_w32s.exe dist/vim/$(VIMRTDIR)/gvim.exe
+ cp xxdd32.exe dist/vim/$(VIMRTDIR)/xxd.exe
+ cp README_w32s.txt dist/vim/$(VIMRTDIR)
+ cp installw32.exe dist/vim/$(VIMRTDIR)/install.exe
+ cp uninstalw32.exe dist/vim/$(VIMRTDIR)/uninstal.exe
+ cd dist && zip -9 -rD -z gvim$(VERSION)_s.zip vim <$(COMMENT_W32S)
-tutor.ko.euc: tutor.ko.utf-8
- iconv -f UTF-8 -t EUC-KR tutor.ko.utf-8 > tutor.ko.euc
+# make Win32 lang archive
+doslang: dist prepare no_title.vim dist/$(COMMENT_LANG)
+ -rm -rf dist/vim$(VERSION)lang.zip
+ -rm -rf dist/vim
+ mkdir dist/vim
+ mkdir dist/vim/$(VIMRTDIR)
+ mkdir dist/vim/$(VIMRTDIR)/lang
+ cd src && MAKEMO=yes $(MAKE) languages
+ find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -u no_title.vim -c ":set tx|wq" {} \;
+# Add the message translations. Trick: skip ja.mo and use ja.sjis.mo instead.
+# Same for cs.mo / cs.cp1250.mo, pl.mo / pl.cp1250.mo, sk.mo / sk.cp1250.mo,
+# zh_CN.mo / zh_CN.cp936.mo, uk.mo / uk.cp1251.mo and ru.mo / ru.cp1251.mo.
+ for i in $(LANG_DOS); do \
+ if test "$$i" != "src/po/ja.mo" -a "$$i" != "src/po/pl.mo" -a "$$i" != "src/po/cs.mo" -a "$$i" != "src/po/sk.mo" -a "$$i" != "src/po/zh_CN.mo" -a "$$i" != "src/po/ru.mo" -a "$$i" != "src/po/uk.mo"; then \
+ n=`echo $$i | sed -e "s+src/po/\([-a-zA-Z0-9_]*\(.UTF-8\)*\)\(.sjis\)*\(.cp1250\)*\(.cp1251\)*\(.cp936\)*.mo+\1+"`; \
+ mkdir dist/vim/$(VIMRTDIR)/lang/$$n; \
+ mkdir dist/vim/$(VIMRTDIR)/lang/$$n/LC_MESSAGES; \
+ cp $$i dist/vim/$(VIMRTDIR)/lang/$$n/LC_MESSAGES/vim.mo; \
+ fi \
+ done
+ cp libintl.dll dist/vim/$(VIMRTDIR)/
+ cd dist && zip -9 -rD -z vim$(VERSION)lang.zip vim <$(COMMENT_LANG)
-tutor.ru: tutor.ru.utf-8
- iconv -f UTF-8 -t KOI8-R tutor.ru.utf-8 > tutor.ru
+# MS-DOS sources
+dossrc: dist no_title.vim dist/$(COMMENT_SRC) runtime/doc/uganda.nsis.txt
+ -rm -rf dist/vim$(VERSION)src.zip
+ -rm -rf dist/vim
+ mkdir dist/vim
+ mkdir dist/vim/$(VIMRTDIR)
+ tar cf - \
+ $(SRC_ALL) \
+ $(SRC_DOS) \
+ $(SRC_AMI_DOS) \
+ $(SRC_DOS_UNIX) \
+ runtime/doc/uganda.nsis.txt \
+ | (cd dist/vim/$(VIMRTDIR); tar xf -)
+ mv dist/vim/$(VIMRTDIR)/runtime/* dist/vim/$(VIMRTDIR)
+ rmdir dist/vim/$(VIMRTDIR)/runtime
+ find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -u no_title.vim -c ":set tx|wq" {} \;
+ tar cf - \
+ $(SRC_DOS_BIN) \
+ | (cd dist/vim/$(VIMRTDIR); tar xf -)
+ cd dist && zip -9 -rD -z vim$(VERSION)src.zip vim <$(COMMENT_SRC)
-tutor.ru.cp1251: tutor.ru.utf-8
- iconv -f UTF-8 -t cp1251 tutor.ru.utf-8 > tutor.ru.cp1251
+runtime/doc/uganda.nsis.txt: runtime/doc/uganda.txt
+ cd runtime/doc && $(MAKE) uganda.nsis.txt
-tutor.gr: tutor.gr.utf-8
- iconv -f UTF-8 -t ISO-8859-7 tutor.gr.utf-8 > tutor.gr
+os2bin: dist no_title.vim dist/$(COMMENT_OS2)
+ -rm -rf dist/vim$(VERSION)os2.zip
+ -rm -rf dist/vim
+ mkdir dist/vim
+ mkdir dist/vim/$(VIMRTDIR)
+ tar cf - \
+ $(BIN_OS2) \
+ | (cd dist/vim/$(VIMRTDIR); tar xf -)
+ find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -u no_title.vim -c ":set tx|wq" {} \;
+ cp vimos2.exe dist/vim/$(VIMRTDIR)/vim.exe
+ cp xxdos2.exe dist/vim/$(VIMRTDIR)/xxd.exe
+ cp teeos2.exe dist/vim/$(VIMRTDIR)/tee.exe
+ cp emx.dll emxlibcs.dll dist/vim/$(VIMRTDIR)
+ cd dist && zip -9 -rD -z vim$(VERSION)os2.zip vim <$(COMMENT_OS2)
-tutor.gr.cp737: tutor.gr.utf-8
- iconv -f UTF-8 -t cp737 tutor.gr.utf-8 > tutor.gr.cp737
+html: dist dist/$(COMMENT_HTML)
+ -rm -rf dist/vim$(VERSION)html.zip
+ cd runtime/doc && zip -9 -z ../../dist/vim$(VERSION)html.zip *.html <../../dist/$(COMMENT_HTML)
-tutor.hu: tutor.hu.utf-8
- iconv -f UTF-8 -t ISO-8859-2 tutor.hu.utf-8 > tutor.hu
+farsi: dist dist/$(COMMENT_FARSI)
+ -rm -f dist/farsi$(VERSION).zip
+ zip -9 -rD -z dist/farsi$(VERSION).zip farsi < dist/$(COMMENT_FARSI)
diff --git a/runtime/tutor/README_os390.txt b/runtime/tutor/README_os390.txt
new file mode 100644
index 000000000..0ce9dd879
--- /dev/null
+++ b/runtime/tutor/README_os390.txt
@@ -0,0 +1,130 @@
+README_os_390.txt for version 7.2a of Vim: Vi IMproved.
+
+Welcome to the OS/390 Unix port of VIM.
+
+ATTENTION: THIS IS AN _ALPHA_ VERSION!!!
+I expect you to know how to handle alpha software!
+
+This port was done by Ralf Schandl <schandl@de.ibm.com>.
+This port is not maintained or supported by IBM!!
+
+
+For the list of changes see runtime/doc/os_390.txt.
+
+
+Compiling:
+----------
+
+Note: After the file configure was created via autoconf, it had been
+ handedited, to make the test for ICEConnectionNumber work.
+ DO NOT run autoconf again!
+
+Without X11:
+
+If you build VIM without X11 support, compiling and building is nearly
+straightforward. The only restriction is, that you can't call make from the
+VIM toplevel directory. Change to the src directory first and call make from
+there. Here is a what to do:
+
+ # Don't use c89!
+ # Make additional symbols visible.
+ # Allow intermixing of compiler options and files.
+
+ $ export CC=cc
+ $ export CFLAGS=-D_ALL_SOURCE
+ $ export _CC_CCMODE=1
+ $./configure --enable-max-features --without-x --enable-gui=no
+ $ cd src
+ $ make
+ $ make test
+
+ Note: Test 28 will be reported as failed. This is because diff can't
+ compare files containing '\0' characters. Test 11 will fail if you
+ don't have gzip.
+
+ $ make install
+
+
+With X11:
+
+There are two ways for building VIM with X11 support. The first way is simple
+and results in a big executable (~13 Mb), the second needs a few additional
+steps and results in a much smaller executable (~4.5 Mb). This examples assume
+you want Motif.
+
+ The easy way:
+ $ export CC=cc
+ $ export CFLAGS="-D_ALL_SOURCE -W c,dll"
+ $ export LDFLAGS="-W l,dll"
+ $ export _CC_CCMODE=1
+ $ ./configure --enable-max-features --enable-gui=motif
+ $ cd src
+ $ make
+
+ With this VIM is linked statically with the X11 libraries.
+
+ The smarter way:
+ Make VIM as described above. Then create a file named 'link.sed' with the
+ following contense:
+
+ s/-lXext *//g
+ s/-lXmu *//g
+ s/-lXm */\/usr\/lib\/Xm.x /g
+ s/-lX11 */\/usr\/lib\/X11.x /g
+ s/-lXt *//g
+ s/-lSM */\/usr\/lib\/SM.x /g
+ s/-lICE */\/usr\/lib\/ICE.x /g
+
+ Then do:
+ $ rm vim
+ $ make
+
+ Now Vim is linked with the X11-DLLs.
+
+ See the Makefile and the file link.sh on how link.sed is used.
+
+
+Hint:
+-----
+Use the online help! (See weaknesses below.)
+
+Example:
+Enter ':help syntax' and then press <TAB> several times, you will switch
+through all help items containing 'syntax'. Press <ENTER> on the one you are
+interested at. Or press <Ctrl-D> and you will get a list of all items printed
+that contain 'syntax'.
+
+The helpfiles contains cross-references. Links are between '|'. Position the
+cursor on them and press <Ctrl-]> to follow this link. Use <Ctrl-T> to jump
+back.
+
+Known weaknesses:
+-----------------
+
+- You can't call make from the toplevel directory, you have to do a 'cd src'
+ first. If you do it, make will call configure again. I don't know why and
+ didn't investigate it, there were more important things to do. If you can
+ make it work drop me a note.
+
+- The documentation was not updated for this alpha release. It contains lot of
+ ASCII dependencies, especially in examples.
+
+- Digraphs are dependent on code page 1047. Digraphs are used to enter
+ characters that normally cannot be entered by an ordinary keyboard.
+ See ":help digraphs".
+
+- Using 'ga' to show the code of the character under the cursor shows the
+ correct dec/hex/oct values, but the other informations might be missing or
+ wrong.
+
+- The sed syntax file doesn't work, it is ASCII dependent.
+
+Bugs:
+-----
+If you find a bug please inform me (schandl@de.ibm.com), don't disturb Bram
+Moolenaar. It's most likely a bug I introduced during porting or some ASCII
+dependency I didn't notice.
+
+Feedback:
+---------
+Feedback welcome! Just drop me a note.
diff --git a/runtime/tutor/runtime/makemenu.vim b/runtime/tutor/runtime/makemenu.vim
new file mode 100644
index 000000000..6fa34e536
--- /dev/null
+++ b/runtime/tutor/runtime/makemenu.vim
@@ -0,0 +1,580 @@
+" Script to define the syntax menu in synmenu.vim
+" Maintainer: Bram Moolenaar <Bram@vim.org>
+" Last Change: 2008 Jun 24
+
+" This is used by "make menu" in the src directory.
+edit <sfile>:p:h/synmenu.vim
+
+/The Start Of The Syntax Menu/+1,/The End Of The Syntax Menu/-1d
+let s:lnum = line(".") - 1
+call append(s:lnum, "")
+let s:lnum = s:lnum + 1
+
+" Use the SynMenu command and function to define all menu entries
+command! -nargs=* SynMenu call <SID>Syn(<q-args>)
+
+let s:cur_menu_name = ""
+let s:cur_menu_nr = 0
+let s:cur_menu_item = 0
+let s:cur_menu_char = ""
+
+fun! <SID>Syn(arg)
+ " isolate menu name: until the first dot
+ let i = match(a:arg, '\.')
+ let menu_name = strpart(a:arg, 0, i)
+ let r = strpart(a:arg, i + 1, 999)
+ " isolate submenu name: until the colon
+ let i = match(r, ":")
+ let submenu_name = strpart(r, 0, i)
+ " after the colon is the syntax name
+ let syntax_name = strpart(r, i + 1, 999)
+
+ if s:cur_menu_name != menu_name
+ let s:cur_menu_name = menu_name
+ let s:cur_menu_nr = s:cur_menu_nr + 10
+ let s:cur_menu_item = 100
+ let s:cur_menu_char = submenu_name[0]
+ else
+ " When starting a new letter, insert a menu separator.
+ let c = submenu_name[0]
+ if c != s:cur_menu_char
+ exe 'an 50.' . s:cur_menu_nr . '.' . s:cur_menu_item . ' &Syntax.' . menu_name . ".-" . c . '- <nul>'
+ let s:cur_menu_item = s:cur_menu_item + 10
+ let s:cur_menu_char = c
+ endif
+ endif
+ call append(s:lnum, 'an 50.' . s:cur_menu_nr . '.' . s:cur_menu_item . ' &Syntax.' . menu_name . "." . submenu_name . ' :cal SetSyn("' . syntax_name . '")<CR>')
+ let s:cur_menu_item = s:cur_menu_item + 10
+ let s:lnum = s:lnum + 1
+endfun
+
+SynMenu AB.A2ps\ config:a2ps
+SynMenu AB.Aap:aap
+SynMenu AB.ABAP/4:abap
+SynMenu AB.Abaqus:abaqus
+SynMenu AB.ABC\ music\ notation:abc
+SynMenu AB.ABEL:abel
+SynMenu AB.AceDB\ model:acedb
+SynMenu AB.Ada:ada
+SynMenu AB.AfLex:aflex
+SynMenu AB.ALSA\ config:alsaconf
+SynMenu AB.Altera\ AHDL:ahdl
+SynMenu AB.Amiga\ DOS:amiga
+SynMenu AB.AMPL:ampl
+SynMenu AB.Ant\ build\ file:ant
+SynMenu AB.ANTLR:antlr
+SynMenu AB.Apache\ config:apache
+SynMenu AB.Apache-style\ config:apachestyle
+SynMenu AB.Applix\ ELF:elf
+SynMenu AB.Arc\ Macro\ Language:aml
+SynMenu AB.Arch\ inventory:arch
+SynMenu AB.ART:art
+SynMenu AB.ASP\ with\ VBScript:aspvbs
+SynMenu AB.ASP\ with\ Perl:aspperl
+SynMenu AB.Assembly.680x0:asm68k
+SynMenu AB.Assembly.Flat:fasm
+SynMenu AB.Assembly.GNU:asm
+SynMenu AB.Assembly.GNU\ H-8300:asmh8300
+SynMenu AB.Assembly.Intel\ IA-64:ia64
+SynMenu AB.Assembly.Microsoft:masm
+SynMenu AB.Assembly.Netwide:nasm
+SynMenu AB.Assembly.PIC:pic
+SynMenu AB.Assembly.Turbo:tasm
+SynMenu AB.Assembly.VAX\ Macro\ Assembly:vmasm
+SynMenu AB.Assembly.Z-80:z8a
+SynMenu AB.Assembly.xa\ 6502\ cross\ assember:a65
+SynMenu AB.ASN\.1:asn
+SynMenu AB.Asterisk\ config:asterisk
+SynMenu AB.Asterisk\ voicemail\ config:asteriskvm
+SynMenu AB.Atlas:atlas
+SynMenu AB.AutoHotKey:autohotkey
+SynMenu AB.AutoIt:autoit
+SynMenu AB.Automake:automake
+SynMenu AB.Avenue:ave
+SynMenu AB.Awk:awk
+SynMenu AB.AYacc:ayacc
+
+SynMenu AB.B:b
+SynMenu AB.Baan:baan
+SynMenu AB.Basic.FreeBasic:freebasic
+SynMenu AB.Basic.IBasic:ibasic
+SynMenu AB.Basic.QBasic:basic
+SynMenu AB.Basic.Visual\ Basic:vb
+SynMenu AB.Bazaar\ commit\ file:bzr
+SynMenu AB.BC\ calculator:bc
+SynMenu AB.BDF\ font:bdf
+SynMenu AB.BibTeX.Bibliography\ database:bib
+SynMenu AB.BibTeX.Bibliography\ Style:bst
+SynMenu AB.BIND.BIND\ config:named
+SynMenu AB.BIND.BIND\ zone:bindzone
+SynMenu AB.Blank:blank
+
+SynMenu C.C:c
+SynMenu C.C++:cpp
+SynMenu C.C#:cs
+SynMenu C.Calendar:calendar
+SynMenu C.Cascading\ Style\ Sheets:css
+SynMenu C.CDL:cdl
+SynMenu C.Cdrdao\ TOC:cdrtoc
+SynMenu C.Cdrdao\ config:cdrdaoconf
+SynMenu C.Century\ Term:cterm
+SynMenu C.CH\ script:ch
+SynMenu C.ChangeLog:changelog
+SynMenu C.Cheetah\ template:cheetah
+SynMenu C.CHILL:chill
+SynMenu C.ChordPro:chordpro
+SynMenu C.Clean:clean
+SynMenu C.Clever:cl
+SynMenu C.Clipper:clipper
+SynMenu C.Cmake:cmake
+SynMenu C.Cmusrc:cmusrc
+SynMenu C.Cobol:cobol
+SynMenu C.Coco/R:coco
+SynMenu C.Cold\ Fusion:cf
+SynMenu C.Conary\ Recipe:conaryrecipe
+SynMenu C.Config.Cfg\ Config\ file:cfg
+SynMenu C.Config.Configure\.in:config
+SynMenu C.Config.Generic\ Config\ file:conf
+SynMenu C.CRM114:crm
+SynMenu C.Crontab:crontab
+SynMenu C.CSP:csp
+SynMenu C.Ctrl-H:ctrlh
+SynMenu C.CUDA:cuda
+SynMenu C.CUPL.CUPL:cupl
+SynMenu C.CUPL.Simulation:cuplsim
+SynMenu C.CVS.commit\ file:cvs
+SynMenu C.CVS.cvsrc:cvsrc
+SynMenu C.Cyn++:cynpp
+SynMenu C.Cynlib:cynlib
+
+SynMenu DE.D:d
+SynMenu DE.Debian.Debian\ ChangeLog:debchangelog
+SynMenu DE.Debian.Debian\ Control:debcontrol
+SynMenu DE.Debian.Debian\ Sources\.list:debsources
+SynMenu DE.Denyhosts:denyhosts
+SynMenu DE.Desktop:desktop
+SynMenu DE.Dict\ config:dictconf
+SynMenu DE.Dictd\ config:dictdconf
+SynMenu DE.Diff:diff
+SynMenu DE.Digital\ Command\ Lang:dcl
+SynMenu DE.Dircolors:dircolors
+SynMenu DE.Django\ template:django
+SynMenu DE.DNS/BIND\ zone:bindzone
+SynMenu DE.DocBook.auto-detect:docbk
+SynMenu DE.DocBook.SGML:docbksgml
+SynMenu DE.DocBook.XML:docbkxml
+SynMenu DE.Dot:dot
+SynMenu DE.Doxygen.C\ with\ doxygen:c.doxygen
+SynMenu DE.Doxygen.C++\ with\ doxygen:cpp.doxygen
+SynMenu DE.Doxygen.IDL\ with\ doxygen:idl.doxygen
+SynMenu DE.Doxygen.Java\ with\ doxygen:java.doxygen
+SynMenu DE.Dracula:dracula
+SynMenu DE.DSSSL:dsl
+SynMenu DE.DTD:dtd
+SynMenu DE.DTML\ (Zope):dtml
+SynMenu DE.DTrace:dtrace
+SynMenu DE.Dylan.Dylan:dylan
+SynMenu DE.Dylan.Dylan\ interface:dylanintr
+SynMenu DE.Dylan.Dylan\ lid:dylanlid
+
+SynMenu DE.EDIF:edif
+SynMenu DE.Eiffel:eiffel
+SynMenu DE.Elinks\ config:elinks
+SynMenu DE.Elm\ filter\ rules:elmfilt
+SynMenu DE.Embedix\ Component\ Description:ecd
+SynMenu DE.ERicsson\ LANGuage:erlang
+SynMenu DE.ESMTP\ rc:esmtprc
+SynMenu DE.ESQL-C:esqlc
+SynMenu DE.Essbase\ script:csc
+SynMenu DE.Esterel:esterel
+SynMenu DE.Eterm\ config:eterm
+SynMenu DE.Eviews:eviews
+SynMenu DE.Exim\ conf:exim
+SynMenu DE.Expect:expect
+SynMenu DE.Exports:exports
+
+SynMenu FG.Fetchmail:fetchmail
+SynMenu FG.FlexWiki:flexwiki
+SynMenu FG.Focus\ Executable:focexec
+SynMenu FG.Focus\ Master:master
+SynMenu FG.FORM:form
+SynMenu FG.Forth:forth
+SynMenu FG.Fortran:fortran
+SynMenu FG.FoxPro:foxpro
+SynMenu FG.FrameScript:framescript
+SynMenu FG.Fstab:fstab
+SynMenu FG.Fvwm.Fvwm\ configuration:fvwm1
+SynMenu FG.Fvwm.Fvwm2\ configuration:fvwm2
+SynMenu FG.Fvwm.Fvwm2\ configuration\ with\ M4:fvwm2m4
+
+SynMenu FG.GDB\ command\ file:gdb
+SynMenu FG.GDMO:gdmo
+SynMenu FG.Gedcom:gedcom
+SynMenu FG.Git.Output:git
+SynMenu FG.Git.Commit:gitcommit
+SynMenu FG.Git.Config:gitconfig
+SynMenu FG.Git.Rebase:gitrebase
+SynMenu FG.Git.Send\ Email:gitsendemail
+SynMenu FG.Gkrellmrc:gkrellmrc
+SynMenu FG.GP:gp
+SynMenu FG.GPG:gpg
+SynMenu FG.Group\ file:group
+SynMenu FG.Grub:grub
+SynMenu FG.GNU\ Server\ Pages:gsp
+SynMenu FG.GNUplot:gnuplot
+SynMenu FG.GrADS\ scripts:grads
+SynMenu FG.Gretl:gretl
+SynMenu FG.Groff:groff
+SynMenu FG.Groovy:groovy
+SynMenu FG.GTKrc:gtkrc
+
+SynMenu HIJK.Hamster:hamster
+SynMenu HIJK.Haskell.Haskell:haskell
+SynMenu HIJK.Haskell.Haskell-c2hs:chaskell
+SynMenu HIJK.Haskell.Haskell-literate:lhaskell
+SynMenu HIJK.HASTE:haste
+SynMenu HIJK.Hercules:hercules
+SynMenu HIJK.Hex\ dump.XXD:xxd
+SynMenu HIJK.Hex\ dump.Intel\ MCS51:hex
+SynMenu HIJK.HTML.HTML:html
+SynMenu HIJK.HTML.HTML\ with\ M4:htmlm4
+SynMenu HIJK.HTML.HTML\ with\ Ruby\ (eRuby):eruby
+SynMenu HIJK.HTML.Cheetah\ HTML\ template:htmlcheetah
+SynMenu HIJK.HTML.Django\ HTML\ template:htmldjango
+SynMenu HIJK.HTML.HTML/OS:htmlos
+SynMenu HIJK.HTML.XHTML:xhtml
+SynMenu HIJK.Host\.conf:hostconf
+SynMenu HIJK.Hyper\ Builder:hb
+SynMenu HIJK.Icewm\ menu:icemenu
+SynMenu HIJK.Icon:icon
+SynMenu HIJK.IDL\Generic\ IDL:idl
+SynMenu HIJK.IDL\Microsoft\ IDL:msidl
+SynMenu HIJK.Indent\ profile:indent
+SynMenu HIJK.Inform:inform
+SynMenu HIJK.Informix\ 4GL:fgl
+SynMenu HIJK.Initng:initng
+SynMenu HIJK.Inittab:inittab
+SynMenu HIJK.Inno\ setup:iss
+SynMenu HIJK.InstallShield\ script:ishd
+SynMenu HIJK.Interactive\ Data\ Lang:idlang
+SynMenu HIJK.IPfilter:ipfilter
+SynMenu HIJK.JAL:jal
+SynMenu HIJK.JAM:jam
+SynMenu HIJK.Jargon:jargon
+SynMenu HIJK.Java.Java:java
+SynMenu HIJK.Java.JavaCC:javacc
+SynMenu HIJK.Java.Java\ Server\ Pages:jsp
+SynMenu HIJK.Java.Java\ Properties:jproperties
+SynMenu HIJK.JavaScript:javascript
+SynMenu HIJK.Jess:jess
+SynMenu HIJK.Jgraph:jgraph
+SynMenu HIJK.Kconfig:kconfig
+SynMenu HIJK.KDE\ script:kscript
+SynMenu HIJK.Kimwitu++:kwt
+SynMenu HIJK.KixTart:kix
+
+SynMenu L-Ma.Lace:lace
+SynMenu L-Ma.LamdaProlog:lprolog
+SynMenu L-Ma.Latte:latte
+SynMenu L-Ma.Ld\ script:ld
+SynMenu L-Ma.LDAP.LDIF:ldif
+SynMenu L-Ma.LDAP.Configuration:ldapconf
+SynMenu L-Ma.Lex:lex
+SynMenu L-Ma.LFTP\ config:lftp
+SynMenu L-Ma.Libao:libao
+SynMenu L-Ma.LifeLines\ script:lifelines
+SynMenu L-Ma.Lilo:lilo
+SynMenu L-Ma.Limits\ config:limits
+SynMenu L-Ma.Linden\ scripting:lsl
+SynMenu L-Ma.Lisp:lisp
+SynMenu L-Ma.Lite:lite
+SynMenu L-Ma.LiteStep\ RC:litestep
+SynMenu L-Ma.Locale\ Input:fdcc
+SynMenu L-Ma.Login\.access:loginaccess
+SynMenu L-Ma.Login\.defs:logindefs
+SynMenu L-Ma.Logtalk:logtalk
+SynMenu L-Ma.LOTOS:lotos
+SynMenu L-Ma.LotusScript:lscript
+SynMenu L-Ma.Lout:lout
+SynMenu L-Ma.LPC:lpc
+SynMenu L-Ma.Lua:lua
+SynMenu L-Ma.Lynx\ Style:lss
+SynMenu L-Ma.Lynx\ config:lynx
+SynMenu L-Ma.M4:m4
+SynMenu L-Ma.MaGic\ Point:mgp
+SynMenu L-Ma.Mail:mail
+SynMenu L-Ma.Mail\ aliases:mailaliases
+SynMenu L-Ma.Mailcap:mailcap
+SynMenu L-Ma.Makefile:make
+SynMenu L-Ma.MakeIndex:ist
+SynMenu L-Ma.Man\ page:man
+SynMenu L-Ma.Man\.conf:manconf
+SynMenu L-Ma.Maple\ V:maple
+SynMenu L-Ma.Mason:mason
+SynMenu L-Ma.Mathematica:mma
+SynMenu L-Ma.Matlab:matlab
+SynMenu L-Ma.Maxima:maxima
+
+SynMenu Me-NO.MEL\ (for\ Maya):mel
+SynMenu Me-NO.Messages\ (/var/log):messages
+SynMenu Me-NO.Metafont:mf
+SynMenu Me-NO.MetaPost:mp
+SynMenu Me-NO.MGL:mgl
+SynMenu Me-NO.MMIX:mmix
+SynMenu Me-NO.Modconf:modconf
+SynMenu Me-NO.Model:model
+SynMenu Me-NO.Modsim\ III:modsim3
+SynMenu Me-NO.Modula\ 2:modula2
+SynMenu Me-NO.Modula\ 3:modula3
+SynMenu Me-NO.Monk:monk
+SynMenu Me-NO.Mplayer\ config:mplayerconf
+SynMenu Me-NO.MOO:moo
+SynMenu Me-NO.Mrxvtrc:mrxvtrc
+SynMenu Me-NO.MS-DOS/Windows.4DOS\ \.bat\ file:btm
+SynMenu Me-NO.MS-DOS/Windows.\.bat\/\.cmd\ file:dosbatch
+SynMenu Me-NO.MS-DOS/Windows.\.ini\ file:dosini
+SynMenu Me-NO.MS-DOS/Windows.Message\ text:msmessages
+SynMenu Me-NO.MS-DOS/Windows.Module\ Definition:def
+SynMenu Me-NO.MS-DOS/Windows.Registry:registry
+SynMenu Me-NO.MS-DOS/Windows.Resource\ file:rc
+SynMenu Me-NO.Msql:msql
+SynMenu Me-NO.MuPAD:mupad
+SynMenu Me-NO.MUSHcode:mush
+SynMenu Me-NO.Muttrc:muttrc
+SynMenu Me-NO.Nanorc:nanorc
+SynMenu Me-NO.Nastran\ input/DMAP:nastran
+SynMenu Me-NO.Natural:natural
+SynMenu Me-NO.Netrc:netrc
+SynMenu Me-NO.Novell\ NCF\ batch:ncf
+SynMenu Me-NO.Not\ Quite\ C\ (LEGO):nqc
+SynMenu Me-NO.Nroff:nroff
+SynMenu Me-NO.NSIS\ script:nsis
+SynMenu Me-NO.Objective\ C:objc
+SynMenu Me-NO.Objective\ C++:objcpp
+SynMenu Me-NO.OCAML:ocaml
+SynMenu Me-NO.Occam:occam
+SynMenu Me-NO.Omnimark:omnimark
+SynMenu Me-NO.OpenROAD:openroad
+SynMenu Me-NO.Open\ Psion\ Lang:opl
+SynMenu Me-NO.Oracle\ config:ora
+
+SynMenu PQ.Packet\ filter\ conf:pf
+SynMenu PQ.Palm\ resource\ compiler:pilrc
+SynMenu PQ.Pam\ config:pamconf
+SynMenu PQ.PApp:papp
+SynMenu PQ.Pascal:pascal
+SynMenu PQ.Password\ file:passwd
+SynMenu PQ.PCCTS:pccts
+SynMenu PQ.PDF:pdf
+SynMenu PQ.Perl.Perl:perl
+SynMenu PQ.Perl.Perl\ POD:pod
+SynMenu PQ.Perl.Perl\ XS:xs
+SynMenu PQ.PHP.PHP\ 3-4:php
+SynMenu PQ.PHP.Phtml\ (PHP\ 2):phtml
+SynMenu PQ.Pike:pike
+SynMenu PQ.Pine\ RC:pine
+SynMenu PQ.Pinfo\ RC:pinfo
+SynMenu PQ.PL/M:plm
+SynMenu PQ.PL/SQL:plsql
+SynMenu PQ.PLP:plp
+SynMenu PQ.PO\ (GNU\ gettext):po
+SynMenu PQ.Postfix\ main\ config:pfmain
+SynMenu PQ.PostScript.PostScript:postscr
+SynMenu PQ.PostScript.PostScript\ Printer\ Description:ppd
+SynMenu PQ.Povray.Povray\ scene\ descr:pov
+SynMenu PQ.Povray.Povray\ configuration:povini
+SynMenu PQ.PPWizard:ppwiz
+SynMenu PQ.Prescribe\ (Kyocera):prescribe
+SynMenu PQ.Printcap:pcap
+SynMenu PQ.Privoxy:privoxy
+SynMenu PQ.Procmail:procmail
+SynMenu PQ.Product\ Spec\ File:psf
+SynMenu PQ.Progress:progress
+SynMenu PQ.Prolog:prolog
+SynMenu PQ.ProMeLa:promela
+SynMenu PQ.Protocols:protocols
+SynMenu PQ.Purify\ log:purifylog
+SynMenu PQ.Pyrex:pyrex
+SynMenu PQ.Python:python
+SynMenu PQ.Quake:quake
+SynMenu PQ.Quickfix\ window:qf
+
+SynMenu R-Sg.R.R:r
+SynMenu R-Sg.R.R\ help:rhelp
+SynMenu R-Sg.R.R\ noweb:rnoweb
+SynMenu R-Sg.Racc\ input:racc
+SynMenu R-Sg.Radiance:radiance
+SynMenu R-Sg.Ratpoison:ratpoison
+SynMenu R-Sg.RCS.RCS\ log\ output:rcslog
+SynMenu R-Sg.RCS.RCS\ file:rcs
+SynMenu R-Sg.Readline\ config:readline
+SynMenu R-Sg.Rebol:rebol
+SynMenu R-Sg.Remind:remind
+SynMenu R-Sg.Relax\ NG\ compact:rnc
+SynMenu R-Sg.Renderman.Renderman\ Shader\ Lang:sl
+SynMenu R-Sg.Renderman.Renderman\ Interface\ Bytestream:rib
+SynMenu R-Sg.Resolv\.conf:resolv
+SynMenu R-Sg.Reva\ Forth:reva
+SynMenu R-Sg.Rexx:rexx
+SynMenu R-Sg.Robots\.txt:robots
+SynMenu R-Sg.RockLinux\ package\ desc\.:desc
+SynMenu R-Sg.Rpcgen:rpcgen
+SynMenu R-Sg.RPL/2:rpl
+SynMenu R-Sg.ReStructuredText:rst
+SynMenu R-Sg.RTF:rtf
+SynMenu R-Sg.Ruby:ruby
+SynMenu R-Sg.S-Lang:slang
+SynMenu R-Sg.Samba\ config:samba
+SynMenu R-Sg.SAS:sas
+SynMenu R-Sg.Sather:sather
+SynMenu R-Sg.Scheme:scheme
+SynMenu R-Sg.Scilab:scilab
+SynMenu R-Sg.Screen\ RC:screen
+SynMenu R-Sg.SDL:sdl
+SynMenu R-Sg.Sed:sed
+SynMenu R-Sg.Sendmail\.cf:sm
+SynMenu R-Sg.Send-pr:sendpr
+SynMenu R-Sg.Sensors\.conf:sensors
+SynMenu R-Sg.Service\ Location\ config:slpconf
+SynMenu R-Sg.Service\ Location\ registration:slpreg
+SynMenu R-Sg.Service\ Location\ SPI:slpspi
+SynMenu R-Sg.Services:services
+SynMenu R-Sg.Setserial\ config:setserial
+SynMenu R-Sg.SGML.SGML\ catalog:catalog
+SynMenu R-Sg.SGML.SGML\ DTD:sgml
+SynMenu R-Sg.SGML.SGML\ Declaration:sgmldecl
+SynMenu R-Sg.SGML.SGML-linuxdoc:sgmllnx
+
+SynMenu Sh-S.Shell\ script.sh\ and\ ksh:sh
+SynMenu Sh-S.Shell\ script.csh:csh
+SynMenu Sh-S.Shell\ script.tcsh:tcsh
+SynMenu Sh-S.Shell\ script.zsh:zsh
+SynMenu Sh-S.SiCAD:sicad
+SynMenu Sh-S.Sieve:sieve
+SynMenu Sh-S.Simula:simula
+SynMenu Sh-S.Sinda.Sinda\ compare:sindacmp
+SynMenu Sh-S.Sinda.Sinda\ input:sinda
+SynMenu Sh-S.Sinda.Sinda\ output:sindaout
+SynMenu Sh-S.SiSU:sisu
+SynMenu Sh-S.SKILL.SKILL:skill
+SynMenu Sh-S.SKILL.SKILL\ for\ Diva:diva
+SynMenu Sh-S.Slice:slice
+SynMenu Sh-S.SLRN.Slrn\ rc:slrnrc
+SynMenu Sh-S.SLRN.Slrn\ score:slrnsc
+SynMenu Sh-S.SmallTalk:st
+SynMenu Sh-S.Smarty\ Templates:smarty
+SynMenu Sh-S.SMIL:smil
+SynMenu Sh-S.SMITH:smith
+SynMenu Sh-S.SNMP\ MIB:mib
+SynMenu Sh-S.SNNS.SNNS\ network:snnsnet
+SynMenu Sh-S.SNNS.SNNS\ pattern:snnspat
+SynMenu Sh-S.SNNS.SNNS\ result:snnsres
+SynMenu Sh-S.Snobol4:snobol4
+SynMenu Sh-S.Snort\ Configuration:hog
+SynMenu Sh-S.SPEC\ (Linux\ RPM):spec
+SynMenu Sh-S.Specman:specman
+SynMenu Sh-S.Spice:spice
+SynMenu Sh-S.Spyce:spyce
+SynMenu Sh-S.Speedup:spup
+SynMenu Sh-S.Splint:splint
+SynMenu Sh-S.Squid\ config:squid
+SynMenu Sh-S.SQL.ESQL-C:esqlc
+SynMenu Sh-S.SQL.MySQL:mysql
+SynMenu Sh-S.SQL.PL/SQL:plsql
+SynMenu Sh-S.SQL.SQL\ Anywhere:sqlanywhere
+SynMenu Sh-S.SQL.SQL\ (automatic):sql
+SynMenu Sh-S.SQL.SQL\ (Oracle):sqloracle
+SynMenu Sh-S.SQL.SQL\ Forms:sqlforms
+SynMenu Sh-S.SQL.SQLJ:sqlj
+SynMenu Sh-S.SQL.SQL-Informix:sqlinformix
+SynMenu Sh-S.SQR:sqr
+SynMenu Sh-S.Ssh.ssh_config:sshconfig
+SynMenu Sh-S.Ssh.sshd_config:sshdconfig
+SynMenu Sh-S.Standard\ ML:sml
+SynMenu Sh-S.Stata.SMCL:smcl
+SynMenu Sh-S.Stata.Stata:stata
+SynMenu Sh-S.Stored\ Procedures:stp
+SynMenu Sh-S.Strace:strace
+SynMenu Sh-S.Streaming\ descriptor\ file:sd
+SynMenu Sh-S.Subversion\ commit:svn
+SynMenu Sh-S.Sudoers:sudoers
+SynMenu Sh-S.Symbian\ meta-makefile:mmp
+SynMenu Sh-S.Sysctl\.conf:sysctl
+
+SynMenu TUV.TADS:tads
+SynMenu TUV.Tags:tags
+SynMenu TUV.TAK.TAK\ compare:takcmp
+SynMenu TUV.TAK.TAK\ input:tak
+SynMenu TUV.TAK.TAK\ output:takout
+SynMenu TUV.Tcl/Tk:tcl
+SynMenu TUV.TealInfo:tli
+SynMenu TUV.Telix\ Salt:tsalt
+SynMenu TUV.Termcap/Printcap:ptcap
+SynMenu TUV.Terminfo:terminfo
+SynMenu TUV.TeX.TeX/LaTeX:tex
+SynMenu TUV.TeX.plain\ TeX:plaintex
+SynMenu TUV.TeX.ConTeXt:context
+SynMenu TUV.TeX.TeX\ configuration:texmf
+SynMenu TUV.TeX.Texinfo:texinfo
+SynMenu TUV.TF\ mud\ client:tf
+SynMenu TUV.Tidy\ configuration:tidy
+SynMenu TUV.Tilde:tilde
+SynMenu TUV.TPP:tpp
+SynMenu TUV.Trasys\ input:trasys
+SynMenu TUV.Trustees:trustees
+SynMenu TUV.TSS.Command\ Line:tsscl
+SynMenu TUV.TSS.Geometry:tssgm
+SynMenu TUV.TSS.Optics:tssop
+SynMenu TUV.Udev\ config:udevconf
+SynMenu TUV.Udev\ permissions:udevperm
+SynMenu TUV.Udev\ rules:udevrules
+SynMenu TUV.UIT/UIL:uil
+SynMenu TUV.UnrealScript:uc
+SynMenu TUV.Updatedb\.conf:updatedb
+SynMenu TUV.Valgrind:valgrind
+SynMenu TUV.Vera:vera
+SynMenu TUV.Verilog-AMS\ HDL:verilogams
+SynMenu TUV.Verilog\ HDL:verilog
+SynMenu TUV.Vgrindefs:vgrindefs
+SynMenu TUV.VHDL:vhdl
+SynMenu TUV.Vim.Vim\ help\ file:help
+SynMenu TUV.Vim.Vim\ script:vim
+SynMenu TUV.Vim.Viminfo\ file:viminfo
+SynMenu TUV.Virata\ config:virata
+SynMenu TUV.Visual\ Basic:vb
+SynMenu TUV.VOS\ CM\ macro:voscm
+SynMenu TUV.VRML:vrml
+SynMenu TUV.VSE\ JCL:vsejcl
+
+SynMenu WXYZ.WEB.CWEB:cweb
+SynMenu WXYZ.WEB.WEB:web
+SynMenu WXYZ.WEB.WEB\ Changes:change
+SynMenu WXYZ.Webmacro:webmacro
+SynMenu WXYZ.Website\ MetaLanguage:wml
+SynMenu WXYZ.wDiff:wdiff
+SynMenu WXYZ.Wget\ config:wget
+SynMenu WXYZ.Whitespace\ (add):whitespace
+SynMenu WXYZ.WildPackets\ EtherPeek\ Decoder:dcd
+SynMenu WXYZ.WinBatch/Webbatch:winbatch
+SynMenu WXYZ.Windows\ Scripting\ Host:wsh
+SynMenu WXYZ.WSML:wsml
+SynMenu WXYZ.WvDial:wvdial
+SynMenu WXYZ.X\ Keyboard\ Extension:xkb
+SynMenu WXYZ.X\ Pixmap:xpm
+SynMenu WXYZ.X\ Pixmap\ (2):xpm2
+SynMenu WXYZ.X\ resources:xdefaults
+SynMenu WXYZ.XBL:xbl
+SynMenu WXYZ.Xinetd\.conf:xinetd
+SynMenu WXYZ.Xmodmap:xmodmap
+SynMenu WXYZ.Xmath:xmath
+SynMenu WXYZ.XML:xml
+SynMenu WXYZ.XML\ Schema\ (XSD):xsd
+SynMenu WXYZ.XQuery:xquery
+SynMenu WXYZ.Xslt:xslt
+SynMenu WXYZ.XFree86\ Config:xf86conf
+SynMenu WXYZ.YAML:yaml
+SynMenu WXYZ.Yacc:yacc
+
+call append(s:lnum, "")
+
+wq
diff --git a/runtime/tutor/runtime/vim48x48.gif b/runtime/tutor/runtime/vim48x48.gif
new file mode 100644
index 000000000..6be182ec9
--- /dev/null
+++ b/runtime/tutor/runtime/vim48x48.gif
Binary files differ
diff --git a/runtime/tutor/src.info b/runtime/tutor/src.info
new file mode 100755
index 000000000..1ab7c6cb1
--- /dev/null
+++ b/runtime/tutor/src.info
Binary files differ
diff --git a/runtime/tutor/tutor.el.utf-8 b/runtime/tutor/tutor.el.utf-8
new file mode 100644
index 000000000..b6c08e15f
--- /dev/null
+++ b/runtime/tutor/tutor.el.utf-8
@@ -0,0 +1,815 @@
+===============================================================================
+= Κ αλ ω σ ή ρ θ α τ ε σ τ ο V I M T u t o r - Έκδοση 1.5 =
+===============================================================================
+
+ Ο Vim είναι ένας πανίσχυρος συντάκτης που έχει πολλές εντολές, πάρα
+ πολλές για να εξηγήσουμε σε μία περιήγηση όπως αυτή. Αυτή η περιήγηση
+ σχεδιάστηκε για να περιγράψει ικανοποιητικά τις εντολές που θα σας
+ κάνουν να χρησιμοποιείτε εύκολα τον Vim σαν έναν γενικής χρήσης συντάκτη.
+
+ Ο κατά προσέγγιση χρόνος που απαιτείται για να ολοκληρώσετε την περιήγηση
+ είναι 25-30 λεπτά, εξαρτώντας από το πόσο χρόνο θα ξοδέψετε για
+ πειραματισμούς.
+
+ Οι εντολές στα μαθήματα θα τροποποιήσουν το κείμενο. Δημιουργήστε ένα
+ αντίγραφο αυτού του αρχείου για να εξασκηθείτε (αν ξεκινήσατε το
+ "Vimtutor" αυτό είναι ήδη ένα αντίγραφο).
+
+ Είναι σημαντικό να θυμάστε ότι αυτή η περιήγηση είναι οργανωμένη έτσι
+ ώστε να διδάσκει μέσω της χρήσης. Αυτό σημαίνει ότι χρειάζεται να
+ εκτελείτε τις εντολές για να τις μάθετε σωστά. Αν διαβάζετε μόνο το
+ κείμενο, θα τις ξεχάσετε!
+
+ Τώρα, βεβαιωθείτε ότι το πλήκτρο Shift-Lock ΔΕΝ είναι πατημένο και
+ πατήστε το πλήκτρο j αρκετές φορές για να μετακινήσετε τον δρομέα έτσι
+ ώστε το Μάθημα 1.1 να γεμίσει πλήρως την οθόνη.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Μάθημα 1.1: ΜΕΤΑΚΙΝΟΝΤΑΣ ΤΟΝ ΔΡΟΜΕΑ
+
+ ** Για να κινήσετε τον δρομέα, πατήστε τα πλήκτρα h,j,k,l όπως δείχνεται. **
+ ^
+ k Hint: Το πλήκτρο h είναι αριστερά και κινεί στ' αριστερά.
+ < h l > Το πλήκτρο l είναι δεξιά και κινεί στα δεξιά.
+ j Το πλήκτρο j μοιάζει με βελάκι προς τα κάτω.
+ v
+
+ 1. Μετακινείστε τον δρομέα τριγύρω στην οθόνη μέχρι να νοιώθετε άνετα.
+
+ 2. Κρατήστε πατημένο το κάτω πλήκτρο (j) μέχρι να επαναληφθεί.
+---> Τώρα ξέρετε πώς να μετακινηθείτε στο επόμενο μάθημα.
+
+ 3. Χρησιμοποιώντας το κάτω πλήκτρο, μετακινηθείτε στο Μάθημα 1.2.
+
+Σημείωση: Αν αμφιβάλλετε για κάτι που πατήσατε, πατήστε <ESC> για να βρεθείτε
+ στην Κανονική Κατάσταση. Μετά πατήστε ξανά την εντολή που θέλατε.
+
+Σημείωση: Τα πλήκτρα του δρομέα θα πρέπει επίσης να δουλεύουν. Αλλά με τα hjkl
+ θα μπορείτε να κινηθείτε πολύ γρηγορότερα, μόλις τα συνηθίσετε.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Μάθημα 1.2: ΜΠΑΙΝΟΝΤΑΣ ΚΑΙ ΒΓΑΙΝΟΝΤΑΣ ΣΤΟΝ VIM
+
+ !! ΣΗΜΕΙΩΣΗ: Πριν εκτελέσετε κάποιο από τα βήματα, διαβάστε όλο το μάθημα!!
+
+ 1. Πατήστε το πλήκτρο <ESC> (για να είστε σίγουρα στην Κανονική Κατάσταση).
+
+ 2. Πληκτρολογήστε: :q! <ENTER>.
+
+---> Αυτό εξέρχεται από τον συντάκτη ΧΩΡΙΣ να σώσει όποιες αλλαγές έχετε κάνει.
+ Αν θέλετε να σώσετε τις αλλαγές και να εξέρθετε πληκτρολογήστε:
+ :wq <ENTER>
+
+ 3. Όταν δείτε την προτροπή του φλοιού, πληκτρολογήστε την εντολή με την οποία
+ μπήκατε σε αυτήν την περιήγηση. Μπορεί να είναι: vimtutor <ENTER>
+ Κανονικά θα χρησιμοποιούσατε: vim tutor <ENTER>
+
+---> 'vim' σημαίνει εισαγωγή στον συντάκτη vim, 'tutor' είναι το αρχείο που
+ θέλουμε να διορθώσουμε.
+
+ 4. Αν έχετε απομνημονεύσει αυτά τα βήματα και έχετε αυτοπεποίθηση, εκτελέστε
+ τα βήματα 1 έως 3 για να βγείτε και να μπείτε ξανά στον συντάκτη. Μετά
+ μετακινήστε τον δρομέα κάτω στο Μάθημα 1.3.
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Μάθημα 1.3: ΔΙΟΡΘΩΣΗ ΚΕΙΜΕΝΟΥ - ΔΙΑΓΡΑΦΗ
+
+ ** Όσο είστε στην Κανονική Κατάσταση πατήστε x για να διαγράψετε τον
+ χαρακτήρα κάτω από τον δρομέα. **
+
+ 1. Μετακινείστε τον δρομέα στην παρακάτω γραμμή σημειωμένη με --->.
+
+ 2. Για να διορθώσετε τα λάθη, κινείστε τον δρομέα μέχρι να είναι πάνω από
+ τον χαρακτήρα που θα διαγραφεί.
+
+ 3. Πατήστε το πλήκτρο x για να διαγράψετε τον ανεπιθύμητο χαρακτήρα.
+
+ 4. Επαναλάβετε τα βήματα 2 μέχρι 4 μέχρι η πρόταση να είναι σωστή.
+
+---> The ccow jumpedd ovverr thhe mooon.
+
+ 5. Τώρα που η γραμμή είναι σωστή, πηγαίντε στο Μάθημα 1.4.
+
+ΣΗΜΕΙΩΣΗ: Καθώς διατρέχετε αυτήν την περιήγηση, προσπαθήστε να μην
+ απομνημονεύετε, μαθαίνετε με τη χρήση.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Μάθημα 1.4: ΔΙΟΡΘΩΣΗ ΚΕΙΜΕΝΟΥ - ΠΑΡΕΜΒΟΛΗ
+
+ ** Όσο είστε σε Κανονική Κατάσταση πατήστε i για να παρεμβάλλετε κείμενο. **
+
+ 1. Μετακινείστε τον δρομέα μέχρι την πρώτη γραμμή παρακάτω σημειωμένη με --->.
+
+ 2. Για να κάνετε την πρώτη γραμμή ίδια με την δεύτερη, μετακινείστε τον
+ δρομέα πάνω στον πρώτο χαρακτήρα ΜΕΤΑ από όπου θα παρεμβληθεί το κείμενο.
+
+ 3. Πατήστε το i και πληκτρολογήστε τις απαραίτητες προσθήκες.
+
+ 4. Καθώς διορθώνετε κάθε λάθος πατήστε <ESC> για να επιστρέψετε στην
+ Κανονική Κατάσταση. Επαναλάβετε τα βήματα 2 μέχρι 4 για να διορθώσετε
+ την πρόταση.
+
+---> There is text misng this .
+---> There is some text missing from this line.
+
+ 5. Όταν είστε άνετοι με την παρεμβολή κειμένου μετακινηθείτε στην
+ παρακάτω περίληψη.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ ΜΑΘΗΜΑ 1 ΠΕΡΙΛΗΨΗ
+
+
+ 1. Ο δρομέας κινείται χρησιμοποιώντας είτε τα πλήκτρα δρομέα ή τα hjkl.
+ h (αριστέρα) j (κάτω) k (πάνω) l (δεξιά)
+
+ 2. Για να μπείτε στον Vim (από την προτροπή %) γράψτε: vim ΑΡΧΕΙΟ <ENTER>
+
+ 3. Για να βγείτε γράψτε: <ESC> :q! <ENTER> για απόρριψη των αλλαγών.
+ Ή γράψτε: <ESC> :wq <ENTER> για αποθήκευση των αλλαγών.
+
+ 4. Για να διαγράψετε έναν χαρακτήρα κάτω από τον δρομέα σε
+ Κανονική Κατάσταση πατήστε: x
+
+ 5. Για να εισάγετε κείμενο στον δρομέα όσο είστε σε Κανονική Κατάσταση γράψτε:
+ i πληκτρολογήστε το κείμενο <ESC>
+
+ΣΗΜΕΙΩΣΗ: Πατώντας <ESC> θα τοποθετηθείτε στην Κανονική Κατάσταση ή θα
+ ακυρώσετε μία ανεπιθύμητη και μερικώς ολοκληρωμένη εντολή.
+
+Τώρα συνεχίστε με το Μάθημα 2.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Μάθημα 2.1: ΕΝΤΟΛΕΣ ΔΙΑΓΡΑΦΗΣ
+
+ ** Γράψτε dw για να διαγράψετε μέχρι το τέλος μίας λέξης. **
+
+ 1. Πατήστε <ESC> για να βεβαιωθείτε ότι είστε στην Κανονική Κατάσταση.
+
+ 2. Μετακινείστε τον δρομέα στην παρακάτω γραμμή σημειωμένη με --->.
+
+ 3. Πηγαίνετε τον δρομέα στην αρχή της λέξης που πρέπει να διαγραφεί.
+
+ 4. Γράψτε dw για να κάνετε την λέξη να εξαφανιστεί.
+
+ΣΗΜΕΙΩΣΗ: Τα γράμματα dw θα εμφανιστούν στην τελευταία γραμμή της οθόνης όσο
+ τα πληκτρολογείτε. Αν γράψατε κάτι λάθος, πατήστε <ESC> και
+ ξεκινήστε από την αρχή.
+
+---> There are a some words fun that don't belong paper in this sentence.
+
+ 5. Επαναλάβετε τα βήματα 3 και 4 μέχρι η πρόταση να είναι σωστή και
+ πηγαίνετε στο Μάθημα 2.2.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Μάθημα 2.2: ΠΕΡΙΣΣΟΤΕΡΕΣ ΕΝΤΟΛΕΣ ΔΙΑΓΡΑΦΗΣ
+
+ ** Πληκτρολογήστε d$ για να διαγράψετε μέχρι το τέλος της γραμμής. **
+
+ 1. Πατήστε <ESC> για να βεβαιωθείτε ότι είστε στην Κανονική Κατάσταση.
+
+ 2. Μετακινείστε τον δρομέα στην παρακάτω γραμμή σημειωμένη με --->.
+
+ 3. Μετακινείστε τον δρομέα στο τέλος της σωστής γραμμής (ΜΕΤΑ την πρώτη . ).
+
+ 4. Πατήστε d$ για να διαγράψετε μέχρι το τέλος της γραμμής.
+
+---> Somebody typed the end of this line twice. end of this line twice.
+
+ 5. Πηγαίνετε στο Μάθημα 2.3 για να καταλάβετε τι συμβαίνει.
+
+
+
+
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Μάθημα 2.3: ΠΕΡΙ ΕΝΤΟΛΩΝ ΚΑΙ ΑΝΤΙΚΕΙΜΕΝΩΝ
+
+
+Η μορφή της εντολής διαγραφής d είναι ως εξής:
+
+ [αριθμός] d αντικείμενο Ή d [αριθμός] αντικείμενο
+ Όπου:
+ αριθμός - πόσες φορές θα εκτελεστεί η εντολή (προαιρετικό, εξ' ορισμού=1).
+ d - η εντολή της διαγραφής.
+ αντικείμενο - πάνω σε τι θα λειτουργήσει η εντολή (παρακάτω λίστα).
+
+ Μία μικρή λίστα από αντικείμενα:
+ w - από τον δρομέα μέχρι το τέλος της λέξης, περιλαμβάνοντας το διάστημα.
+ e - από τον δρομέα μέχρι το τέλος της λέξης, ΧΩΡΙΣ το διάστημα.
+ $ - από τον δρομέα μέχρι το τέλος της γραμμής.
+
+ΣΗΜΕΙΩΣΗ: Για τους τύπους της περιπέτειας, πατώντας απλώς το αντικείμενο όσο
+ είστε στην Κανονική Κατάσταση χωρίς κάποια εντολή θα μετακινήσετε
+ τον δρομέα όπως καθορίζεται στην λίστα αντικειμένων.
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Μάθημα 2.4: ΜΙΑ ΕΞΑΙΡΕΣΗ ΣΤΗΝ 'ΕΝΤΟΛΗ-ΑΝΤΙΚΕΙΜΕΝΟ'
+
+ ** Πληκτρολογήστε dd για να διαγράψετε όλη τη γραμμή. **
+
+ Εξαιτίας της συχνότητας της διαγραφής ολόκληρης γραμμής, οι σχεδιαστές
+ του Vim αποφάσισαν ότι θα ήταν ευκολότερο να γράφετε απλώς δύο d στη
+ σειρά για να διαγράψετε μία γραμμή.
+
+ 1. Μετακινείστε τον δρομέα στη δεύτερη γραμμή της παρακάτω φράσης.
+ 2. Γράψτε dd για να διαγράψετε τη γραμμή.
+ 3. Τώρα μετακινηθείτε στην τέταρτη γραμμή.
+ 4. Γράψτε 2dd (θυμηθείτε αριθμός-εντολή-αντικείμενο) για να
+ διαγράψετε δύο γραμμές.
+
+ 1) Roses are red,
+ 2) Mud is fun,
+ 3) Violets are blue,
+ 4) I have a car,
+ 5) Clocks tell time,
+ 6) Sugar is sweet
+ 7) And so are you.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Μάθημα 2.5: Η ΕΝΤΟΛΗ ΑΝΑΙΡΕΣΗΣ
+
+ ** Πατήστε u για να αναιρέσετε τις τελευταίες εντολές,
+ U για να διορθώσετε όλη τη γραμμή. **
+
+ 1. Μετακινείστε τον δρομέα στην παρακάτω γραμμή σημειωμένη με ---> και
+ τοποθετήστε τον πάνω στο πρώτο λάθος.
+ 2. Πατήστε x για να διαγράψετε τον πρώτο ανεπιθύμητο χαρακτήρα.
+ 3. Τώρα πατήστε u για να αναιρέσετε την τελευταία εκτελεσμένη εντολή.
+ 4. Αυτή τη φορά διορθώστε όλα τα λάθη στη γραμμή χρησιμοποιώντας την εντολή x.
+ 5. Τώρα πατήστε ένα κεφαλαίο U για να επιστρέψετε τη γραμμή στην αρχική
+ της κατάσταση.
+ 6. Τώρα πατήστε u μερικές φορές για να αναιρέσετε την U και
+ προηγούμενες εντολές.
+ 7. Τώρα πατήστε CTRL-R (κρατώντας πατημένο το πλήκτρο CTRL καθώς πατάτε το R)
+ μερικές φορές για να επαναφέρετε τις εντολές (αναίρεση των αναιρέσεων).
+
+---> Fiix the errors oon thhis line and reeplace them witth undo.
+
+ 8. Αυτές είναι πολύ χρήσιμες εντολές. Τώρα πηγαίνετε στην
+ Περίληψη του Μαθήματος 2.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ ΜΑΘΗΜΑ 2 ΠΕΡΙΛΗΨΗ
+
+
+ 1. Για να διαγράψετε από τον δρομέα μέχρι το τέλος λέξης γράψτε: dw
+
+ 2. Για να διαγράψετε από τον δρομέα μέχρι το τέλος γραμμής γράψτε: d$
+
+ 3. Για να διαγράψετε ολόκληρη τη γραμμή γράψτε: dd
+
+ 4. Η μορφή για μία εντολή στην Κανονική Κατάσταση είναι:
+
+ [αριθμός] εντολή αντικείμενο Ή εντολή [αριθμός] αντικείμενο
+ όπου:
+ αριθμός - πόσες φορές να επαναληφθεί η εντολή
+ εντολή - τι να γίνει, όπως η d για διαγραφή
+ αντικείμενο - πάνω σε τι να ενεργήσει η εντολή, όπως w (λέξη),
+ $ (τέλος της γραμμής), κτλ.
+
+ 5. Για να αναιρέσετε προηγούμενες ενέργειες, πατήστε: u (πεζό u)
+ Για να αναιρέσετε όλες τις αλλαγές στη γραμμή, πατήστε: U (κεφαλαίο U)
+ Για να αναιρέσετε τις αναιρέσεις, πατήστε: CTRL-R
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Μάθημα 3.1: Η ΕΝΤΟΛΗ ΤΟΠΟΘΕΤΗΣΗΣ
+
+
+ ** Πατήστε p για να τοποθετήσετε την τελευταία διαγραφή μετά τον δρομέα. **
+
+ 1. Μετακινείστε τον δρομέα στην πρώτη γραμμή της παρακάτω ομάδας.
+
+ 2. Πατήστε dd για να διαγράψετε τη γραμμή και να την αποθηκεύσετε σε
+ προσωρινή μνήμη του Vim.
+
+ 3. Μετακινείστε τον δρομέα στη γραμμή ΠΑΝΩ από εκεί που θα πρέπει να πάει
+ η διαγραμμένη γραμμή.
+
+ 4. Όσο είστε σε Κανονική Κατάσταση, πατήστε p για να βάλετε τη γραμμή.
+
+ 5. Επαναλάβετε τα βήματα 2 έως 4 για να βάλετε όλες τις γραμμές στη
+ σωστή σειρά.
+
+ d) Can you learn too?
+ b) Violets are blue,
+ c) Intelligence is learned,
+ a) Roses are red,
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Μάθημα 3.2: Η ΕΝΤΟΛΗ ΑΝΤΙΚΑΤΑΣΤΑΣΗΣ
+
+
+ ** Πατήστε r και χαρακτήρα για να αλλάξετε αυτόν που είναι
+ κάτω από τον δρομέα. **
+
+ 1. Μετακινείστε τον δρομέα στην πρώτη γραμμή παρακάτω σημειωμένη με --->.
+
+ 2. Μετακινείστε τον δρομέα έτσι ώστε να είναι πάνω στο πρώτο λάθος.
+
+ 3. Πατήστε r και μετά τον χαρακτήρα ο οποίος διορθώνει το λάθος.
+
+ 4. Επαναλάβετε τα βήματα 2 και 3 μέχρι να είναι σωστή η πρώτη γραμμή.
+
+---> Whan this lime was tuoed in, someone presswd some wrojg keys!
+---> When this line was typed in, someone pressed some wrong keys!
+
+ 5. Τώρα πηγαίνετε στο Μάθημα 3.2.
+
+ΣΗΜΕΙΩΣΗ: Να θυμάστε ότι πρέπει να μαθαίνετε με τη χρήση, και όχι με
+ την απομνημόνευση.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Μάθημα 3.3: Η ΕΝΤΟΛΗ ΑΛΛΑΓΗΣ
+
+ ** Για να αλλάξετε τμήμα ή όλη τη λέξη, πατήστε cw . **
+
+ 1. Μετακινείστε τον δρομέα στην πρώτη γραμμή παρακάτω σημειωμένη με --->.
+
+ 2. Τοποθετήστε τον δρομέα πάνω στο u της λέξης lubw.
+
+ 3. Πατήστε cw και τη σωστή λέξη (στην περίπτωση αυτή, γράψτε 'ine'.)
+
+ 4. Πατήστε <ESC> και πηγαίνετε στο επόμενο λάθος (στον πρώτο
+ χαρακτήρα προς αλλαγή).
+
+ 5. Επαναλάβετε τα βήματα 3 και 4 μέχρις ότου η πρώτη πρόταση να είναι
+ ίδια με τη δεύτερη.
+
+---> This lubw has a few wptfd that mrrf changing usf the change command.
+---> This line has a few words that need changing using the change command.
+
+Παρατηρείστε ότι η cw όχι μόνο αντικαθιστάει τη λέξη, αλλά σας εισάγει
+επίσης σε παρεμβολή.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Μάθημα 3.4: ΠΕΡΙΣΣΟΤΕΡΕΣ ΑΛΛΑΓΕΣ ΜΕ c
+
+
+ ** Η εντολή αλλαγής χρησιμοποιείται με τα ίδια αντικείμενα της διαγραφής. **
+
+
+ 1. Η εντολή αλλαγής δουλεύει με τον ίδιο τρόπο όπως η διαγραφή. Η μορφή είναι:
+
+ [αριθμός] c αντικείμενο Ή c [αριθμός] αντικείμενο
+
+ 2. Τα αντικείμενα είναι πάλι τα ίδια, όπως w (λέξη), $ (τέλος γραμμής), κτλ.
+
+ 3. Μετακινηθείτε στην πρώτη γραμμή παρακάτω σημειωμένη με --->.
+
+ 4. Μετακινείστε τον δρομέα στο πρώτο λάθος.
+
+ 5. Γράψτε c$ για να κάνετε το υπόλοιπο της γραμμής ίδιο με τη δεύτερη
+ και πατήστε <ESC>.
+
+---> The end of this line needs some help to make it like the second.
+---> The end of this line needs to be corrected using the c$ command.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ ΜΑΘΗΜΑ 3 ΠΕΡΙΛΗΨΗ
+
+
+ 1. Για να τοποθετήσετε κείμενο που μόλις έχει διαγραφεί, πατήστε p .
+ Αυτό τοποθετεί το διαγραμμένο κείμενο ΜΕΤΑ τον δρομέα (αν διαγράφτηκε
+ γραμμή θα πάει μετά στη γραμμή κάτω από τον δρομέα.
+
+ 2. Για να αντικαταστήσετε τον χαρακτήρα κάτω από τον δρομέα, πατήστε r
+ και μετά τον χαρακτήρα που θα αντικαταστήσει τον αρχικό.
+
+ 3. Η εντολή αλλαγής σας επιτρέπει να αλλάξετε το καθορισμένο αντικείμενο
+ από τον δρομέα μέχρι το τέλος του αντικείμενο. Π.χ. γράψτε cw για να
+ αλλάξετε από τον δρομέα μέχρι το τέλος της λέξης, c$ για να αλλάξετε
+ μέχρι το τέλος γραμμής.
+
+ 4. Η μορφή για την αλλαγή είναι:
+
+ [αριθμός] c αντικείμενο Ή c [αριθμός] αντικείμενο
+
+Τώρα συνεχίστε με το επόμενο μάθημα.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Μάθημα 4.1: ΘΕΣΗ ΚΑΙ ΚΑΤΑΣΤΑΣΗ ΑΡΧΕΙΟΥ
+
+
+ ** Πατήστε CTRL-g για να εμφανιστεί η θέση σας στο αρχείο και η κατάστασή του.
+ Πατήστε SHIFT-G για να πάτε σε μία γραμμή στο αρχείο. **
+
+ Σημείωση: Διαβάστε ολόκληρο το μάθημα πριν εκτελέσετε κάποιο από τα βήματα!!
+
+ 1. Κρατήστε πατημένο το πλήκτρο Ctrl και πατήστε g . Μία γραμμή κατάστασης
+ θα εμφανιστεί στο κάτω μέρος της σελίδας με το όνομα αρχείου και τη
+ γραμμή που είστε. Θυμηθείτε τον αριθμό γραμμής για το Βήμα 3.
+
+ 2. Πατήστε shift-G για να μετακινηθείτε στο τέλος του αρχείου.
+
+ 3. Πατήστε τον αριθμό της γραμμής που ήσασταν και μετά shift-G. Αυτό θα
+ σας επιστρέψει στη γραμμή που ήσασταν πριν πατήσετε για πρώτη φορά Ctrl-g.
+ (Όταν πληκτρολογείτε τους αριθμούς, ΔΕΝ θα εμφανίζονται στην οθόνη).
+
+ 4. Αν νοιώθετε σίγουρος για αυτό, εκτελέστε τα βήματα 1 έως 3.
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Μάθημα 4.2: Η ΕΝΤΟΛΗ ΑΝΑΖΗΤΗΣΗΣ
+
+
+ ** Πατήστε / ακολουθούμενο από τη φράση που ψάχνετε. **
+
+ 1. Σε Κανονική Κατάσταση πατήστε τον χαρακτήρα / . Παρατηρήστε ότι αυτός και
+ ο δρομέας εμφανίζονται στο κάτω μέρος της οθόνης όπως με την εντολή : .
+
+ 2. Τώρα γράψτε 'errroor' <ENTER>. Αυτή είναι η λέξη που θέλετε να ψάξετε.
+
+ 3. Για να ψάξετε ξανά για την ίδια φράση, πατήστε απλώς n .
+ Για να ψάξετε την ίδια φράση στην αντίθετη κατεύθυνση, πατήστε Shift-N .
+
+ 4. Αν θέλετε να ψάξετε για μία φράση προς τα πίσω, χρησιμοποιήστε την εντολή ? αντί της / .
+
+---> Όταν η αναζήτηση φτάσει στο τέλος του αρχείου θα συνεχίσει από την αρχή.
+
+ "errroor" is not the way to spell error; errroor is an error.
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Μάθημα 4.3: ΕΥΡΕΣΗ ΤΑΙΡΙΑΣΤΩΝ ΠΑΡΕΝΘΕΣΕΩΝ
+
+
+ ** Πατήστε % για να βρείτε την αντίστοιχη ), ], ή } . **
+
+ 1. Τοποθετήστε τον δρομέα σε κάποια (, [, ή { στην παρακάτω γραμμή
+ σημειωμένη με --->.
+
+ 2. Τώρα πατήστε τον χαρακτήρα % .
+
+ 3. Ο δρομέας θα πρέπει να είναι στην αντίστοιχη παρένθεση ή αγκύλη.
+
+ 4. Πατήστε % για να μετακινήσετε τον δρομέα πίσω στην πρώτη αγκύλη
+ (του ζευγαριού).
+
+---> This ( is a test line with ('s, ['s ] and {'s } in it. ))
+
+ΣΗΜΕΙΩΣΗ: Αυτό είναι πολύ χρήσιμο στην αποσφαλμάτωση ενός προγράμματος
+ με μη ταιριαστές παρενθέσεις!
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Μάθημα 4.4: ΕΝΑΣ ΤΡΟΠΟΣ ΓΙΑ ΑΛΛΑΓΗ ΛΑΘΩΝ
+
+
+ ** Γράψτε :s/old/new/g για να αλλάξετε το 'new' με το 'old'. **
+
+ 1. Μετακινείστε τον δρομέα στην παρακάτω γραμμή σημειωμένη με --->.
+
+ 2. Γράψτε :s/thee/the <ENTER> . Σημειώστε ότι αυτή η εντολή αλλάζει μόνο
+ την πρώτη εμφάνιση στη γραμμή.
+
+ 3. Τώρα γράψτε :s/thee/the/g εννοώντας γενική αντικατάσταση στη
+ γραμμή. Αυτό αλλάζει όλες τις εμφανίσεις επί της γραμμής.
+
+---> thee best time to see thee flowers is in thee spring.
+
+ 4. Για να αλλάξετε κάθε εμφάνιση μίας συμβολοσειράς μεταξύ δύο γραμμών,
+ γράψτε :#,#s/old/new/g όπου #,# οι αριθμοί των δύο γραμμών.
+ Γράψτε :%s/old/new/g για να αλλάξετε κάθε εμφάνιση σε όλο το αρχείο.
+
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ ΜΑΘΗΜΑ 4 ΠΕΡΙΛΗΨΗ
+
+
+ 1. Το Ctrl-g εμφανίζει τη θέση σας στο αρχείο και την κατάστασή του.
+ Το Shift-G πηγαίνει στο τέλος του αρχείου. Ένας αριθμός γραμμής
+ ακολουθούμενος από Shift-G πηγαίνει σε εκείνη τη γραμμή.
+
+ 2. Γράφοντας / ακολουθούμενο από μία φράση ψάχνει προς τα ΜΠΡΟΣΤΑ για
+ τη φράση. Γράφοντας ? ακολουθούμενο από μία φράση ψάχνει προς τα ΠΙΣΩ
+ για τη φράση. Μετά από μία αναζήτηση πατήστε n για να βρείτε την
+ επόμενη εμφάνιση προς την ίδια κατεύθυνση ή Shift-N για να ψάξετε
+ προς την αντίθετη κατεύθυνση.
+
+ 3. Πατώντας % όσο ο δρομέας είναι πάνω σε μία (,),[,],{, ή } εντοπίζει
+ το αντίστοιχο ταίρι του ζευγαριού.
+
+ 4. Για αντικατάσταση με new του πρώτου old στη γραμμή γράψτε :s/old/new
+ Για αντικατάσταση με new όλων των 'old' στη γραμμή γράψτε :s/old/new/g
+ Για αντικατάσταση φράσεων μεταξύ δύο # γραμμών γράψτε :#,#s/old/new/g
+ Για αντικατάσταση όλων των εμφανίσεων στο αρχείο γράψτε :%s/old/new/g
+ Για ερώτηση επιβεβαίωσης κάθε φορά προσθέστε ένα 'c' "%s/old/new/gc
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Μάθημα 5.1: ΠΩΣ ΕΚΤΕΛΩ ΜΙΑ ΕΞΩΤΕΡΙΚΗ ΕΝΤΟΛΗ
+
+
+** Γράψτε :! ακολουθούμενο από μία εξωτερική εντολή για να την εκτελέσετε. **
+
+ 1. Πατήστε την οικεία εντολή : για να θέσετε τον δρομέα στο κάτω μέρος
+ της οθόνης. Αυτό σας επιτρέπει να δώσετε μία εντολή.
+
+ 2. Τώρα πατήστε το ! (θαυμαστικό). Αυτό σας επιτρέπει να εκτελέσετε
+ οποιαδήποτε εξωτερική εντολή του φλοιού.
+
+ 3. Σαν παράδειγμα γράψτε ls μετά από το ! και πατήστε <ENTER>. Αυτό θα
+ σας εμφανίσει μία λίστα του καταλόγου σας, ακριβώς σαν να ήσασταν στην
+ προτροπή του φλοιού. Ή χρησιμοποιήστε :!dir αν το ls δεν δουλεύει.
+
+---> Σημείωση: Είναι δυνατόν να εκτελέσετε οποιαδήποτε εξωτερική εντολή
+ με αυτόν τον τρόπο.
+
+---> Σημείωση: Όλες οι εντολές : πρέπει να τερματίζονται πατώντας το <ENTER>.
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Μάθημα 5.2: ΠΕΡΙΣΣΟΤΕΡΑ ΠΕΡΙ ΕΓΓΡΑΦΗΣ ΑΡΧΕΙΩΝ
+
+
+ ** Για να σώσετε τις αλλάγες που κάνατε στο αρχείο, γράψτε :w ΑΡΧΕΙΟ. **
+
+ 1. Γράψτε :!dir ή :!ls για να πάρετε μία λίστα του καταλόγου σας.
+ Ήδη ξέρετε ότι πρέπει να πατήσετε <ENTER> μετά από αυτό.
+
+ 2. Διαλέξτε ένα όνομα αρχείου που δεν υπάρχει ακόμα, όπως το TEST.
+
+ 3. Τώρα γράψτε: :w TEST (όπου TEST είναι το όνομα αρχείου που διαλέξατε).
+
+ 4. Αυτό σώζει όλο το αρχείο (vim Tutor) με το όνομα TEST. Για να το
+ επαληθεύσετε, γράψτε ξανά :!dir για να δείτε τον κατάλογό σας.
+
+---> Σημειώστε ότι αν βγαίνατε από τον Vim και μπαίνατε ξανά με το όνομα
+ αρχείου TEST, το αρχείο θα ήταν ακριβές αντίγραφο του tutor όταν το σώσατε.
+
+ 5. Τώρα διαγράψτε το αρχείο γράφοντας (MS-DOS): :!del TEST
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Μάθημα 5.3: ΕΠΙΛΕΚΤΙΚΗ ΕΝΤΟΛΗ ΕΓΓΡΑΦΗΣ
+
+
+ ** Για να σώσετε τμήμα του αρχείου, γράψτε :#,# w ΑΡΧΕΙΟ **
+
+ 1. Άλλη μια φορά, γράψτε :!dir ή :!ls για να πάρετε μία λίστα από τον
+ κατάλογό σας και διαλέξτε ένα κατάλληλο όνομα αρχείου όπως το TEST.
+
+ 2. Μετακινείστε τον δρομέα στο πάνω μέρος αυτής της σελίδας και πατήστε
+ Ctrl-g για να βρείτε τον αριθμό αυτής της γραμμής.
+ ΝΑ ΘΥΜΑΣΤΕ ΑΥΤΟΝ ΤΟΝ ΑΡΙΘΜΟ!
+
+ 3. Τώρα πηγαίνετε στο κάτω μέρος της σελίδας και πατήστε Ctrl-g ξανά.
+ ΝΑ ΘΥΜΑΣΤΕ ΚΑΙ ΑΥΤΟΝ ΤΟΝ ΑΡΙΘΜΟ!
+
+ 4. Για να σώσετε ΜΟΝΟ ένα τμήμα σε αρχείο, γράψτε :#,# w TEST
+ όπου #,# οι δύο αριθμοί που απομνημονεύσατε (πάνω,κάτω) και TEST το
+ όνομα του αρχείου σας.
+
+ 5. Ξανά, δείτε ότι το αρχείο είναι εκεί με την :!dir αλλά ΜΗΝ το διαγράψετε.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Μάθημα 5.4: ΑΝΑΚΤΩΝΤΑΣ ΚΑΙ ΕΝΩΝΟΝΤΑΣ ΑΡΧΕΙΑ
+
+
+ ** Για να εισάγετε τα περιεχόμενα ενός αρχείου, γράψτε :r ΑΡΧΕΙΟ **
+
+ 1. Γράψτε :!dir για να βεβαιωθείτε ότι το TEST υπάρχει από πριν.
+
+ 2. Τοποθετήστε τον δρομέα στο πάνω μέρος της σελίδας.
+
+ΣΗΜΕΙΩΣΗ: Αφότου εκτελέσετε το Βήμα 3 θα δείτε το Μάθημα 5.3.
+ Μετά κινηθείτε ΚΑΤΩ ξανά προς το μάθημα αυτό.
+
+ 3. Τώρα ανακτήστε το αρχείο σας TEST χρησιμοποιώντας την εντολή :r TEST
+ όπου TEST είναι το όνομα του αρχείου.
+
+ΣΗΜΕΙΩΣΗ: Το αρχείο που ανακτάτε τοποθετείται ξεκινώντας εκεί που βρίσκεται
+ ο δρομέας.
+
+ 4. Για να επαληθεύσετε ότι το αρχείο ανακτήθηκε, πίσω τον δρομέα και
+ παρατηρήστε ότι υπάρχουν τώρα δύο αντίγραφα του Μαθήματος 5.3, το
+ αρχικό και η έκδοση του αρχείου.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ ΜΑΘΗΜΑ 5 ΠΕΡΙΛΗΨΗ
+
+
+ 1. :!εντολή εκτελεί μία εξωτερική εντολή.
+
+ Μερικά χρήσιμα παραδείγματα είναι (MS-DOS):
+ :!dir - εμφάνιση λίστας ενός καταλόγου.
+ :!del ΑΡΧΕΙΟ - διαγράφει το ΑΡΧΕΙΟ.
+
+ 2. :w ΑΡΧΕΙΟ γράφει το τρέχων αρχείο του Vim στο δίσκο με όνομα ΑΡΧΕΙΟ.
+
+ 3. :#,#w ΑΡΧΕΙΟ σώζει τις γραμμές από # μέχρι # στο ΑΡΧΕΙΟ.
+
+ 4. :r ΑΡΧΕΙΟ ανακτεί το αρχείο δίσκου ΑΡΧΕΙΟ και το παρεμβάλλει μέσα
+ στο τρέχον αρχείο μετά από τη θέση του δρομέα.
+
+
+
+
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Μάθημα 6.1: Η ΕΝΤΟΛΗ ΑΝΟΙΓΜΑΤΟΣ
+
+
+ ** Πατήστε o για να ανοίξετε μία γραμμή κάτω από τον δρομέα και να
+ βρεθείτε σε Κατάσταση Κειμένου. **
+
+ 1. Μετακινείστε τον δρομέα στην παρακάτω γραμμή σημειωμένη με --->.
+
+ 2. Πατήστε o (πεζό) για να ανοίξετε μία γραμμή ΚΑΤΩ από τον δρομέα και να
+ βρεθείτε σε Κατάσταση Κειμένου.
+
+ 3. Τώρα αντιγράψτε τη σημειωμένη με ---> γραμμή και πατήστε <ESC> για να
+ βγείτε από την Κατάσταση Κειμένου.
+
+---> After typing o the cursor is placed on the open line in Insert mode.
+
+ 4. Για να ανοίξετε μία γραμμή ΠΑΝΩ από τον δρομέα, πατήστε απλά ένα κεφαλαίο
+ O, αντί για ένα πεζό o. Δοκιμάστε το στην παρακάτω γραμμή.
+Ανοίγετε γραμμή πάνω από αυτήν πατώντας Shift-O όσο ο δρομέας είναι στη γραμμή
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Μάθημα 6.2: Η ΕΝΤΟΛΗ ΠΡΟΣΘΗΚΗΣ
+
+ ** Πατήστε a για να εισάγετε κείμενο ΜΕΤΑ τον δρομέα. **
+
+ 1. Μετακινείστε τον δρομέα στο τέλος της πρώτης γραμμής παρακάτω
+ σημειωμένη με ---> πατώντας $ στην Κανονική Κατάσταση.
+
+ 2. Πατήστε ένα a (πεζό) για να προσθέσετε κείμενο ΜΕΤΑ από τον χαρακτήρα
+ που είναι κάτω από τον δρομέα. (Το κεφαλαίο A προσθέτει στο τέλος
+ της γραμμής).
+
+Σημείωση: Αυτό αποφεύγει το πάτημα του i , τον τελευταίο χαρακτήρα, το
+ κείμενο της εισαγωγής, <ESC>, δρομέα-δεξιά, και τέλος, x, μόνο και
+ μόνο για να προσθέσετε στο τέλος της γραμμής!
+
+ 3. Συμπληρώστε τώρα την πρώτη γραμμή. Σημειώστε επίσης ότι η προσθήκη είναι
+ ακριβώς ίδια στην Κατάσταση Κειμένου με την Κατάσταση Εισαγωγής, εκτός
+ από τη θέση που εισάγεται το κείμενο.
+
+---> This line will allow you to practice
+---> This line will allow you to practice appending text to the end of a line.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Μάθημα 6.3: ΑΛΛΗ ΕΚΔΟΣΗ ΤΗΣ ΑΝΤΙΚΑΤΑΣΤΑΣΗΣ
+
+
+ ** Πατήστε κεφαλαίο R για να αλλάξετε περισσότερους από έναν χαρακτήρες. **
+
+ 1. Μετακινείστε τον δρομέα στην πρώτη γραμμή παρακάτω σημειωμένη με --->.
+
+ 2. Τοποθετήστε τον δρομέα στην αρχή της πρώτης λέξης που είναι διαφορετική
+ από τη δεύτερη γραμμή σημειωμένη με ---> (η λέξη 'last').
+
+ 3. Πατήστε τώρα R και αλλάξτε το υπόλοιπο του κειμένου στην πρώτη γραμμή
+ γράφοντας πάνω από το παλιό κείμενο ώστε να κάνετε την πρώτη γραμμή ίδια
+ με τη δεύτερη.
+
+---> To make the first line the same as the last on this page use the keys.
+---> To make the first line the same as the second, type R and the new text.
+
+ 4. Σημειώστε ότι όταν πατάτε <ESC> για να βγείτε, παραμένει οποιοδήποτε
+ αναλλοίωτο κείμενο.
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Μάθημα 6.4: ΡΥΘΜΙΣΗ ΕΠΙΛΟΓΗΣ
+
+
+ ** Ρυθμίστε μία επιλογή έτσι ώστε η αναζήτηση ή η αντικατάσταση να αγνοεί
+ τη διαφορά πεζών-κεφαλαίων **
+
+ 1. Ψάξτε για 'ignore' εισάγοντας:
+ /ignore
+ Συνεχίστε αρκετές φορές πατώντας το πλήκτρο n.
+
+ 2. Θέστε την επιλογή 'ic' (Ignore case) γράφοντας:
+ :set ic
+
+ 3. Ψάξτε τώρα ξανά για 'ignore' πατώντας: n
+ Συνεχίστε την αναζήτηση μερικές ακόμα φορές πατώντας το πλήκτρο n
+
+ 4. Θέστε τις επιλογές 'hlsearch' και 'incsearch':
+ :set hls is
+
+ 5. Εισάγετε τώρα ξανά την εντολή αναζήτησης, και δείτε τι συμβαίνει
+ /ignore
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ ΜΑΘΗΜΑ 6 ΠΕΡΙΛΗΨΗ
+
+
+ 1. Πατώντας o ανοίγει μία γραμμή ΚΑΤΩ από τον δρομέα και τοποθετεί τον
+ δρομέα στην ανοιχτή γραμμή σε Κατάσταση Κειμένου.
+
+ 2. Πατήστε a για να εισάγετε κείμενο ΜΕΤΑ τον χαρακτήρα στον οποίο είναι
+ ο δρομέας. Πατώντας κεφαλαίο A αυτόματα προσθέτει κείμενο στο τέλος
+ της γραμμής.
+
+ 3. Πατώντας κεφαλαίο R εισέρχεται στην Κατάσταη Αντικατάστασης μέχρι να
+ πατηθεί το <ESC> και να εξέλθει.
+
+ 4. Γράφοντας ":set xxx" ρυθμίζει την επιλογή "xxx".
+
+
+
+
+
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ ΜΑΘΗΜΑ 7: ON-LINE ΕΝΤΟΛΕΣ ΒΟΗΘΕΙΑΣ
+
+
+ ** Χρησιμοποιήστε το on-line σύστημα βοήθειας **
+
+ Ο Vim έχει ένα περιεκτικό on-line σύστημα βοήθειας. Για να ξεκινήσει,
+ δοκιμάστε κάποιο από τα τρία:
+ - πατήστε το πλήκτρο <HELP> (αν έχετε κάποιο)
+ - πατήστε το πλήκτρο <F1> (αν έχετε κάποιο)
+ - γράψτε :help <ENTER>
+
+ Γράψτε :q <ENTER> για να κλείσετε το παράθυρο της βοήθειας.
+
+ Μπορείτε να βρείτε βοήθεια πάνω σε κάθε αντικείμενο, δίνοντας μία παράμετρο
+ στην εντολή ":help". Δοκιμάστε αυτά (μην ξεχνάτε να πατάτε <ENTER>):
+
+ :help w
+ :help c_<T
+ :help insert-index
+ :help user-manual
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ ΜΑΘΗΜΑ 8: ΔΗΜΙΟΥΡΓΗΣΤΕ ΕΝΑ SCRIPT ΕΚΚΙΝΗΣΗΣ
+
+ ** Ενεργοποιήστε χαρακτηριστικά του Vim **
+
+ Ο Vim έχει πολλά περισσότερα χαρακτηριστικά απ' ό,τι ο Vi, αλλά τα
+ περισσότερα είναι αρχικά απενεργοποιημένα. Για να αρχίσετε να χρησιμοποιείτε
+ περισσότερα χαρακτηριστικά πρέπει να φτιάξετε ένα αρχείο "vimrc".
+
+ 1. Αρχίστε διορθώνοντας το αρχείο "vimrc", αυτό εξαρτάται από το σύστημά σας:
+ :edit ~/.vimrc για Unix
+ :edit $VIM/_vimrc για MS-Windows
+
+ 2. Τώρα εισάγετε το κείμενο παραδείγματος για αρχείο "vimrc":
+ :read $VIMRUNTIME/vimrc_example.vim
+
+ 3. Γράψτε το αρχείο με την:
+ :write
+
+ Την επόμενη φορά που θα ξεκινήσετε τον Vim θα χρησιμοποιήσει φωτισμό
+ σύνταξης. Μπορείτε να προσθέσετε όλες τις προτιμώμενες επιλογές σ' αυτό
+ το αρχείο "vimrc".
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ Εδώ ολοκληρώνεται το Vim Tutor. Σκοπός του ήταν να δώσει μία σύντομη
+ περίληψη του συντάκτη Vim, τουλάχιστον τόση ώστε να σας επιτρέψει να
+ χρησιμοποιήσετε τον συντάκτη αρκετά εύκολα. Απέχει πολύ από μία
+ ολοκληρωμένη παρουσίαση καθώς ο Vim έχει πάρα πολλές εντολές. Διαβάστε
+ κατόπιν το εγχειρίδιο χρήσης:
+ ":help user-manual".
+
+ Για περαιτέρω διάβασμα και μελέτη, συστήνεται αυτό το βιβλίο:
+ Vim - Vi Improved - by Steve Oualline
+ Publisher: New Riders
+ Το πρώτο βιβλίο πλήρως αφιερωμένο στον Vim.
+ Ιδιαίτερα χρήσιμο για αρχάριους.
+ Υπάρχουν πολλά παραδείγματα και εικόνες.
+ Δείτε την http://iccf-holland.org/click5.html
+
+ Αυτό το βιβλίο είναι παλιότερο και περισσότερο για τον Vi παρά για τον Vim,
+ αλλά επίσης συνιστώμενο:
+ Learning the Vi Editor - by Linda Lamb
+ Publisher: O'Reilly & Associates Inc.
+ Είναι ένα καλό βιβλίο για να μάθετε σχεδόν τα πάντα που θέλετε
+ να κάνετε με τον Vi.
+ Η έκτη έκδοση περιέχει ακόμα πληροφορίες για τον Vim.
+
+ Αυτή η περιήγηση γράφτηκε από τους Michael C. Pierce και Robert K. Ware,
+ Colorado School of Mines χρησιμοποιώντας ιδέες από τον Charles Smith,
+ Colorado State University. E-mail: bware@mines.colorado.edu.
+
+ Προσαρμογή για τον Vim από τον Bram Moolenaar.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/runtime/tutor/tutor.hu.cp1250 b/runtime/tutor/tutor.hu.cp1250
new file mode 100644
index 000000000..84e6bd421
--- /dev/null
+++ b/runtime/tutor/tutor.hu.cp1250
@@ -0,0 +1,823 @@
+===============================================================================
+= d v z l j k a V I M T u t o r b a n - 1.5-s verzi ===
+===============================================================================
+
+ A Vim egy nagyon hatkony szerkeszt, amelnyek rengeteg utastsa
+ van, tl sok, hogy egy ilyen oktatban (tutorban), mint az itteni
+ mindet elmagyarzzuk. Ez az oktat arra trekszik, hogy annyit
+ elmagyarzzon, amennyi elg, hogy knnyedn hasznljuk a Vim-et, az
+ ltalnos cl szvegszerkesztt.
+
+ A feladatok megoldshoz 25-30 perc szksges attl fggen,
+ mennyit tltnk a kisrletezssel.
+
+ A leckben szerepl utastsok mdostani fogjk a szvegek.
+ Ksztsen msolatot errl a fjlrl, ha gyakorolni akar.
+ (Ha "vimtutor"-ral indtotta, akkor ez mr egy msolat.)
+
+ Fontos megrteni, hogy ez az oktat cselekedve tanttat.
+ Ez azt jelenti, hogy nnek ajnlott vgrehajtania az utastsokat,
+ hogy megfelelen megtanulja azokat. Ha csak olvassa, elfelejti!
+
+ Most bizonyosodjon, meg, hogy a Caps-Lock gombja NINCS lenyomva, s
+ Nyomja meg megfelel szmszor a j gombot, hogy az 1.1-es
+ lecke teljesen a kpernyn legyen!
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ 1.1. lecke: A KURZOR MOZGATSA
+
+
+ ** A kurzor mozgatshoz nyomja meg a h,j,k,l gombokat az albbi szerint. **
+ ^
+ k Tipp: A h billenty van balra, s balra mozgat
+ < h l > A l billenty van jobbra, s jobbra mozgat
+ j A j billenty olyan, mint egy lefele nyl
+ v
+ 1. Mozgassa a kurzort krbe az ablakban, amg hozz nem szokik!
+
+ 2. Tartsa lenyomva a lefelt (j), akkor ismtldik!
+---> Most tudja, hogyan mehet a kvetkez leckre.
+
+ 3. A lefel fomb hasznlatval menjen a 1.2. leckre!
+
+Megj: Ha nem biztos benne, mit nyomott meg, nyomja meg az <ESC>-et, hogy
+ norml mdba kerljn, s ismtelje meg a parancsot!
+
+Megj: A kurzor gomboknak is mkdnik kell, de a hjkl hasznlatval
+ sokkal gyorsabban tud, mozogni, ha hozzszokik.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ 1.2. lecke: BE S KILPS A VIMBL
+
+
+ !! MEGJ: Mieltt vgrehajtja az albbi lpseket, olvassa vgig a leckt !!
+
+ 1. Nyomja meg az <ESC> gombot (hogy biztosan norml mdban legyen).
+
+ 2. rja: :q! <ENTER>.
+
+---> Ezzel kilp a szerkesztbl a vltozsok MENTSE NLKL.
+ Ha menteni szeretn a vltozsokat s kilpni, rja:
+ :wq <ENTER>
+
+ 3. Amikor a shell promptot ltja, rja be a parancsot, amely ebbe a
+ tutorba hozza:
+ Ez valsznleg: vimtutor <ENTER>
+ Normlis esetben ezt rn: vim tutor.hu <ENTER>
+
+---> 'vim' jelenti a vimbe belpst, 'tutor.hu' a fjl, amit szerkeszteni kvn.
+
+ 4. Ha megjegyezte a lpseket s biztos magban, hajtsa vgre a lpseket
+ 1-tl 3-ig, hogy kilpjen s visszatrjen a szerkesztbe. Azutn
+ menjen az 1.3. leckre.
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ 1.3. lecke: SZVEG SZERKESZTSE - TRLS
+
+
+** Norml mdban nyomjon x-et, hogy a kurzor alatti karaktert trlje. **
+
+ 1. Mozgassa a kurzort a ---> kezdet sorra!
+
+ 2. A hibk kijavtshoz mozgassa a kurzort amg a trlend karakter
+ fl nem r.
+
+ 3. Nyomja meg az x gombot, hogy trlje a nemkvnt karaktert.
+
+ 4. Ismtelje a 2, 3, 4-es lpseket, hogy kijavtsa a mondatot.
+
+---> szi jjjell izziik aa galaggonya rruuhja.
+
+ 5. Ha a sor helyes, ugorjon a 1.4. leckre.
+
+MEGJ: A tanuls sorn ne memorizlni prbljon, hanem hasznlat sorn tanuljon.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ 1.4. lecke: SZVEG SZERKESZTSE - BESZRS
+
+
+ ** Norml mdban i megnyomsval lehet beilleszteni. **
+
+ 1. Az albbi els ---> kezdet sorra menjen.
+
+ 2. Ahhoz, hogy az elst azonoss tegye a msodikkal, mozgassa a kurzort
+ az els karakterre, amely UTN szveget kell beszrni.
+
+ 3. Nyomjon i-t s rja be a megfelel szveget.
+
+ 4. Amikor mindent bert, nyomjon <ESC>-et, hogy Norml mdba visszatrjen.
+ Ismtelje a 2 s 4 kztti lpseket, hogy kijavtsa a mondatot.
+
+---> Az that sol hizik pr sz.
+---> Az itt lthat sorbl hinyzik pr rsz.
+
+ 5. Ha mr begyakorolta a beszrst, menjen az albbi sszefoglalra.
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ 1. LECKE SSZEFOGLALJA
+
+
+ 1. A kurzort vagy a nyilakkal vagy a hjkl gombokkal mozgathatja.
+ h (balra) j (le) k (fel) l (jobbra)
+
+ 2. A Vimbe (a $ prompttl) gy lphet be: vim FILENAME <ENTER>
+
+ 3. A Vimbl gy lphet ki: <ESC> :q! <ENTER> a vltoztatsok eldobsval.
+ vagy gy: <ESC> :wq <ENTER> a vltozsok mentsvel.
+
+ 4. A kurzor alatti karakter trlse norml mdban: x
+
+ 5. Szveg beszrsa a kurzor utn norml mdban:
+ i gpelje be a szveget <ESC>
+
+MEGJ: Az <ESC> megnyomsa norml mdba viszi, vagy megszakt egy nem befejezett
+ rszben befejezett parancsot.
+
+Most folytassuk a 2. leckvel!
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ 2.1. lecke: TRL UTASTSOK
+
+
+ ** dw trl a sz vgig. **
+
+ 1. Nyomjon <ESC>-et, hogy megbizonyosodjon, hogy norml mdban van!
+
+ 2. Mozgassa a kurzort a ---> kezdet sorra!
+
+ 3. Mozgassa a kurzort arra annak a sznak az elejre, amit trlni szeretne.
+ Trlje az llatokat a mondatbl.
+
+ 4. A sz trlshez rja: dw
+
+ MEGJ: Ha rosszul kezdte az utastst csak nyomjon <ESC> gombot
+ a megszaktshoz.
+
+---> Pr sz kutya nem uhu illik pingvin a mondatba tehn.
+
+ 5. Ismtelje a 3 s 4 kztti utastsokat amg kell s ugorjon a 2.2 leckre!
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ 2.2. lecke: MG TBB TRL UTASTS
+
+
+ ** d$ bersval a sor vgig trlhet. **
+
+ 1. Nyomjon <ESC>-et, hogy megbizonyosodjon, hogy norml mdban van!
+
+ 2. Mozgassa a kurzort a ---> kezdet sorra!
+
+ 3. Mozgassa a kurzort a helyes sor vgre (az els . UTN)!
+
+ 4. d$ begpelsveltrlje a sor vgt!
+
+---> Valaki a sor vgt ktszer gpelte be. ktszer gpelte be.
+
+
+ 5. Menjen a 2.3. leckre, hogy megrtse mi trtnt!
+
+
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ 2.3. lecke: UTASTSOKRL S OBJEKTUMOKRL
+
+
+ A d (delete=trls) utasts formja a kvetkez:
+
+ [szm] d objektum VAGY d [szm] objektum
+ Ahol:
+ szm - hnyszor hajtdjon vgre a parancs (elhagyhat, alaprtk=1).
+ d - a trls (delete) utasts.
+ objektum - amin a parancsnak teljeslnie kell (albb listzva).
+
+ Objektumok rvid listja:
+ w - a kurzortl a sz vgig, belertve a szkzt.
+ e - a kurzortl a sz vgig, NEM belertve a szkzt.
+ $ - a kurzortl a sor vgig.
+
+MEGJ: Vllalkozbbak kedvrt, csupn az objektum begpelsvel parancs nlkl
+ a kurzor oda kerl, amit az objektumlista megad.
+
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ 2.4. lecke: EGY KIVTEL A 'PARANCSOBJEKTUM' ALL
+
+
+ ** dd bersval trlheti az egsz sort. **
+
+ A teljes sor trlsnek gyakorisga miatt a Vi tervezi elhatroztk,
+ hogy knnyebb lenne csupn a d-t ktszer megnyomni, hogy egy sort trljnk.
+
+ 1. Mozgassa a kurzort az albbi kifejezsek msodik sorra!
+ 2. dd begpelsvel trlje a sort!
+ 3. Menjen a 4. (eredetileg 5.) sorra!
+ 4. 2dd (ugyebr szm-utasts-objektum) begpelsvel trljn kt sort!
+
+ 1) Alv szegek a jghideg homokban,
+ 2) - kezdi a klt -
+ 3) Plaktmagnyban z jjelek.
+ 4) Pingvinek ne fljetek,
+ 5) Tvolrl egy vaku villant,
+ 6) gve hagytad a folyosn a villanyt.
+ 7) Ma ontjk vremet.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ 2.5. lecke: A VISSZAVONS (UNDO) PARANCS
+
+
+** u gpelsvel visszavonhat az utols parancs, U az egsz sort helyrelltja. **
+
+ 1. Menjnk az albbi ---> kezdet sor els hibjra!
+ 2. x lenyomsval trlje az els felesleges karaktert!
+ 3. u megnyomsval vonja vissza az utolsnak vgrehajtott utastst!
+ 4. Msodjra javtson ki minden hibt a sorben az x utastssal!
+ 5. Most nagy U -val lltsa vissza a sor eredeti llapott!
+ 6. Nyomja meg az u gombot prszor, hogy az U s sz elz utastsokat
+ visszalltsa!
+ 7. CTRL-R (CTRL gomb lenyomsa mellett ssn R-t) prszor csinlja jra a
+ visszavont parancsokat (redo)!
+
+---> Javtsd a hhibkaat ebbben a sooorban majd lltsa visszaaa az eredetit.
+
+ 8. Ezek nagyon hasznos parancsok. Most ugarjon a 2. lecke sszefoglaljra.
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ 2. LECKE SSZEFOGLALJA
+
+
+ 1. Trls a kurzortl a sz vgig: dw
+
+ 2. Trls a kurzortl a sz vgig: d$
+
+ 3. Egsz sor trlse: dd
+
+ 4. Egy utasts alakja norml mdban:
+
+ [szm] utasts objektum VAGY utasts [szm] objektum
+ ahol:
+ szm - hnyszor ismteljk a parancsot
+ utasts - mit tegynk, pl. d a trlskor
+ objektum - mire hasson az utasts, pldul w (sz=word),
+ $ (a sor vgig), stb.
+
+ 5. Az elz tett visszavonsa (undo): u (kis u)
+ A sor sszes vltozsnak visszavonsa: U (nagy U)
+ Visszavonsok visszavonsa: CTRL-R
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ 3.1. lecke: A PUT PARANCS
+
+
+ ** p letsvel az utolsnak trltet a kurzor utn illeszhetjk. **
+
+ 1. Mozgassuk a kurzort az albbi sorok els sorra.
+
+ 2. dd letsvel trljk a sort s eltroldik a Vim pufferben.
+
+ 3. Mozgassuk a kurzort AFL a sor fl, ahov mozgatni szeretnnk a
+ trlt sort.
+
+ 4. Norml mdban rjunk p bett a trlt sor beillesztshez.
+
+ 5. Folytassuk a 2-4. utastsokkal hogy a helyes sorrendet kapjuk.
+
+ d) Can you learn too?
+ b) Violets are blue,
+ c) Intelligence is learned,
+ a) Roses are red,
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ 3.2. lecke: A REPLACE PARANCS
+
+
+** r s a karakterek letsvel a kurzor alatti karaktert megvltoztatjuk. **
+
+ 1. Mozgassuk a kurzort az els ---> kezdet sorra!
+
+ 2. Mozgassuk a kurzort az els hiba fl!
+
+ 3. r majd a kvnt karakter letsvel vltoztassuk meg a hibsat!
+
+ 4. A 2. s 3. lpsekkel javtsuk az sszes hibt!
+
+---> Whan this lime was tuoed in, someone presswd some wrojg keys!
+---> When this line was typed in, someone pressed some wrong keys!
+
+ 5. Menjnk a 3.2. leckre!
+
+MEGJ: Emlkezzen, hogy nem memorizlssal, hanem gyakorlssal tanuljon.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ 3.3. lecke: A CHANGE PARANCS
+
+
+ ** A sz egy rsznek megvltoztatshoz rjuk: cw . **
+
+ 1. Mozgassuk a kurzort az els ---> kezdet sorra!
+
+ 2. Vigye a kurzort a Ezen sz z betje fl!
+
+ 3. cw s a helyes szrsz (itt 'bben') bersval javtsa a szt!
+
+ 4. <ESC> lenyomsa utn a kvetkez hibra ugorjon (az els cserlend
+ karakterre)!
+
+ 5. A 3. s 4. lpsek ismtlsvel az els mondatot tegye a msodikkal
+ azonoss!
+
+---> Ezen a sorrrrr pr szra meg kell vltozzanak a change utaskrs.
+---> Ebben a sorban pr szt meg kell vltoztatni a change utastssal.
+
+Vegyk szre, hogy a cw nem csak a szt rja t, hanem beszr
+(insert) mdba vlt.
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ 3.4. lecke: TBBFLE VLTOZTATS c-VEL
+
+
+ ** A c utasts hasznlhat ugyanazokkal az objektumokkal mint a trls **
+
+ 1. A change utasts a trlssel azonosan viselkedik. A forma:
+
+ [szm] c objektum OR c [szm] objektum
+
+ 2. Az objektumok is azonosak, pl. w (sz), $ (sorvg), stb.
+
+ 3. Mozgassuk a kurzort az els ---> kezdet sorra!
+
+ 4. Menjnk az els hibra!
+
+ 5. c$ begpelsvel a sorvgeket tegyk azonoss s nyomjunk <ESC>-et!
+
+---> Ennek a sornak a vge kiigaztsra szorul, hogy megegyezzen a msodikkal.
+---> Ennek a sornak a vge a c$ paranccsal vltoztathat meg.
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ 3. LECKE SSZEFOGLALJA
+
+
+ 1. A mr trlt sort beillesztshez nyomjunk p-t. Ez a trlt szveget
+ a kurzor UTN helyezi (ha sor kerlt trlsre, a kurzor allatti sorba).
+
+ 2. A kurzor alatti karakter trshoz az r-et s azt a karaktert
+ nyomjuk, amellyel az eredetit fell szeretnnk rni.
+
+ 3. A vltoztats (c) utasts a karaktertl az objektum vgig
+ vltoztatja meg az objektumot. Pldul a cw a kurzortl a sz vgig,
+ a c$ a sor vgig.
+
+ 4. A vltoztats formtuma:
+
+ [szm] c objektum VAGY c [szm] objektum
+
+Ugorjunk a kvetkez leckre!
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ 4.1. lecke: HELY S FJLLLAPOT
+
+
+ ** CTRL-g megnyomsval megnzhetjk a helynket a fjlban s a fjl llapott.
+ SHIFT-G letsvel a fjl adott sorra ugorhatunk. **
+
+ Megj: Olvassuk el az egsz leckt a lpsek vgrehajtsa eltt!!
+
+ 1. Tartsuk nyomva a Ctrl gombot s nyomjunk g-t. Az llapotsor
+ megjelenik a lap aljn a fjlnvvel s az aktulis sor sorszmval.
+ Jegyezzk meg a sorszmot a 3. lpshez!
+
+ 2. Nyomjunk Shift-G-t a lap aljra ugrshoz!
+
+ 3. ssk be az eredeti sor szmt, majd ssnk shift-G-t! Ezzel
+ visszajutunk az eredeti sorra ahol Ctrl-g-t nyomtunk.
+ (A bert szm NEM fog megjelenni a kpernyn.)
+
+ 4. Ha megjegyezte a feladatot, hajtsa vgre az 1-3. lpseket!
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ 4.2. lecke: A SEARCH PARANCS
+
+
+ ** / majd a kvnt kifejezs bersval kereshetjk meg a kifejezst. **
+
+ 1. Norml mdban ssnk / karaktert! Ez s a kurzor megjelenik
+ a kperny aljn, ahogy a : utasts is.
+
+ 2. rjuk be: 'hiibaa' <ENTER>! Ez az a sz amit keresnk.
+
+ 3. A kifejezs jabb keresshez ssk le egyszeren: n .
+ A kifejezs ellenkez irnyban trtn keresshez ezt ssk be: Shift-N .
+
+ 4. Ha visszafel szeretne keresni, akkor ? kell a ! helyett.
+
+---> "hiibaa" nem a helyes mdja a hiba lersnak; a hiibaa egy hiba.
+
+Megj: Ha a keress elri a fjl vgt, akkor az elejn kezdi.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ 4.3. lecke: ZRJELEK PRJNAK KERESSE
+
+
+ ** % letsvel megtalljuk a ),], vagy } prjt. **
+
+ 1. Helyezze a kurzort valamelyik (, [, vagy { zrjelre a ---> kezdet
+ sorban!
+
+ 2. ssn % karaktert!
+
+ 3. A kurzor a zrjel prjra fog ugrani.
+
+ 4. % letsvel visszaugrik az eredeti zrjelre.
+
+---> Ez ( egy tesztsor (-ekkel, [-ekkel ] s {-ekkel } a sorban. ))
+
+Megj: Ez nagyon hasznos, ha olyan programot debugolunk, amelyben a
+ zrjelek nem prosak!
+
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ 4.4. lecke: A HIBK KIJAVTSNAK EGY MDJA
+
+
+ ** :s/j/rgi/g begpelsvel az 'j'-ra cserljk a 'rgi'-t. **
+
+ 1. Menjnk a ---> kezdet sorra!
+
+ 2. rjuk be: :s/eggy/egy <ENTER> . Ekkor csak az els vltozik meg a
+ sorban.
+
+ 3. Most ezt rjuk: :s/eggy/egg/g amely globlisan helyettest
+ a sorban.
+ Ez a sorban minden elfordulst helyettest.
+
+---> eggy hegy meggy, szembe jn eggy msik heggy.
+
+ 4. Kt sor kztt a karaktersor minden elfordulsnak helyettestse:
+ :#,#s/rgi/j/g ahol #,# a kt sor sorszma.
+ :%s/rgi/j/g a fjlbeli sszes elforduls helyettestse.
+
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ 4. LECKE SSZEFOGLALJA
+
+
+ 1. Ctrl-g kirja az kurzor helyt a fjlban s a fjl llapott.
+ Shift-G a fjl vgre megy, gg az elejre. Egy szm utn
+ Shift-G az adott szm sorra ugrik.
+
+ 2. / utn egy kifejezs ELREFELE keresi a kifejezst.
+ 2. ? utn egy kifejezs VISSZAFELE keresi a kifejezst.
+ Egy keress utn az n a kvetkez elfordulst keresi azonos irnyban
+ Shift-N az ellenkez irnyban keres.
+
+ 3. % begpelsvel, ha (,),[,],{, vagy } karakteren vagyunk a zrjel
+ prjra ugrik.
+
+ 4. az els rgi helyettestse jjal a sorban :s/rgi/j
+ az sszes rgi helyettestse jjal a sorban :s/rgi/j/g
+ kt sor kztti kifejezsekre :#,#s/rgi/j/g
+ # helyn az aktulis sor (.) s az utols ($) is llhat :.,$/rgi/j/g
+ A fjlbeli sszes elforduls helyettestse :%s/rgi/j/g
+ Mindenkori megerstsre vr 'c' hatsra :%s/rgi/j/gc
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ 5.1. lecke: KLS PARANCS VGREHAJTSA
+
+
+ ** :! utn kls parancsot rva vgrehajtdik a parancs. **
+
+ 1. rjuk be az ismers : parancsot, hogy a kurzort a kperny aljra
+ helyezzk. Ez lehetv teszi egy parancs berst.
+
+ 2. ! (felkiltjel) bersval tegyk lehetv kls hj (shell)-parancs
+ vgrehajtst.
+
+ 3. rjunk pldul ls parancsot a ! utn majd ssnk <ENTER>-t. Ez ki
+ fogja listzni a knyvtrunkat ugyangy, mintha a shell promptnl
+ lennnk. Vagy rja ezt :!dir ha az ls nem mkdik.
+
+Megj: Ilymdon brmely kls utasts vgrehajthat.
+
+Megj: Minden : parancs utn <ENTER>-t kell tni.
+
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ 5.2. lecke: BVEBBEN A FJLOK RSRL
+
+
+ ** A fjlok vltozsait gy rhatjuk ki :w FJLNV. **
+
+ 1. :!dir vagy :!ls bersval listzzuk a knyvtrunkat!
+ n mr tudja, hogy <ENTER>-t kell tnie utna.
+
+ 2. Vlasszon egy fjlnevet, amely mg nem ltezik pl. TESZT!
+
+ 3. rja: :w TESZT (ahol TESZT a vlasztott fjlnv)!
+
+ 4. Ez elmenti a teljes fjlt (a Vim Tutort) TESZT nven.
+ Ellenrzskpp rjuk ismt :!dir hogy lssuk a knyvtrat!
+ (Felfel gombbal : utn az elz utastsok visszahozhatak.)
+
+Megj: Ha n kilpne a Vimbl s s visszatrne a TESZT fjlnvvel, akkor a
+ fjl a tutor mentskori pontos msolata lenne.
+
+ 5. Tvoltsa el a fjlt (MS-DOS): :!del TESZT
+ vagy (Unix): :!rm TESZT
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ 5.3. lecke: EGY KIVLASZTOTT RSZ KIRSA
+
+
+ ** A fjl egy rsznek kirshoz rja :#,# w FJLNV **
+
+ 1. :!dir vagy :!ls bersval listzza a knyvtrat, s vlasszon egy
+ megfelel fjlnevet, pl. TESZT.
+
+ 2. Mozgassa a kurzort ennek az oldalnak a tetejre, s nyomjon
+ Ctrl-g-t, hogy megtudja a sorszmot. JEGYEZZE MEG A SZMOT!
+
+ 3. Most menjen a lap aljra, s sse be ismt: Ctrl-g. EZT A SZMOT
+ IS JEGYEZZE MEG!
+
+ 4. Ha csak ezt a rszt szeretn menteni a fjlnak, rja :#,# w TESZT
+ ahol #,# a kt sorszm, amit megjegyzett, TESZT az n fjlneve.
+
+ 5. Ismt nzze meg, hogy a fjl ott van (:!dir) de NE trlje.
+
+ 6. Vimben ltezik egy msik lehetsg: nyomja meg a Shift-V gombprt
+ az els menteni kvnt soron, majd menjen le az utolsra, ezutn
+ rja :w TESZT2 Ekkor a TESZT2 fjlba kerl a kijellt rsz.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ 5.4. lecke: RETRIEVING AND MERGING FILES
+
+
+ ** Egy fjl tartalmnak beillesztshez rja :r FJLNV **
+
+ 1. :!dir bersval nzze meg, hogy az n TESZT fjlja ltezik mg.
+
+ 2. Helyezze a kurzort ennek az oldalnak a tetejre.
+
+MEGJ: A 3. lps utn az 5.3. leckt fogja ltni. Azutn LEFEL indulva
+ keresse meg ismt ezt a leckt.
+
+ 3. Most szrja be a TESZT nev fjlt a :r TESZT paranccsal, ahol
+ TESZT az n fjljnak a neve.
+
+MEGJ: A fjl, amit beillesztett a kurzora alatt helyezkedik el.
+
+ 4. Hogy ellenrizzk, hogy a fjlt tnyleg beillsztettk, menjen
+ vissza, s nzze meg, hogy ktszer szerepel az 5.3. lecke! Az eredeti
+ mellett a fjlbl bemsolt is ott van.
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ 5. LECKE SSZEFOGLALJA
+
+
+ 1. :!parancs vgrehajt egy kls utastst.
+
+ Pr hasznos plda:
+ (MS-DOS) (Unix)
+ :!dir :!ls - knyvtrlista kirsa.
+ :!del FJLNV :!rm FJLNV - FJLNV nev fjl trlse.
+
+ 2. :w FJLNV kirja a jelenlegi Vim-fjlt a lemezre FJNV nven.
+
+ 3. :#,#w FJLNV kirja a kt sorszm (#) kztti sorokat FJLNV-be
+ Msik lehetsg, hogy a kezdsornl Ctrl-v-t nyom lemegy az utols
+ sorra, majd ezt ti be :w FJLNV
+
+ 4. :r FJLNV beolvassa a FJLNV fjlt s behelyezi a jelenlegi fjlba
+ a kurzorpozici utni sorba.
+
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ 6.1. lecke: A OPEN PARANCS
+
+
+** o bersval nyithat egy j sort a kurzor alatt s vlthat beszr mdba **
+
+ 1. Mozgassuk a kurzort a ---> kezdet sorra.
+
+ 2. o (kicsi) bersval nyisson egy sort a kurzor ALATT! Ekkor
+ automatikusan beszr (insert) mdba kerl.
+
+ 3. Msolja le a ---> jel sort s <ESC> megnyomsval lpjen ki
+ a beszr mdbl.
+
+---> Az o lenyomsa utn a kurzor a kvetkez sor elejn ll beszr mdban.
+
+ 4. A kurzor FELETTI for megnyitshoz egyzseren a nagy O bett rjon
+kicsi helyett. Prblja ki a kvetkez soron!
+Nyisson egy j sort efelett Shift-O megnyomsval, mialatt a kurzor
+ezen a soron ll.
+
+
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ 6.2. lecke: AZ APPEND PARANCS
+
+
+ ** a lenyomsval a kuror UTN szrhatunk szveget. **
+
+ 1. Mozgassuk a kurzort a kvetkez ---> kezdet sor vgre gy,
+ hogy norml mdban $ r be.
+
+ 2. a (kicsi) letsvel szveget szrhat be AMG a karakter mg,
+ amelyen a kurzor ll.
+ (A nagy A az egsz sor vgre rja a szveget.)
+
+Megj: A Vimben a sor legvgre is lehet llni, azonba ez eldjben
+ a Vi-ban nem lehetsges, ezrt abban az a nlkl elg krlmnyes
+ a sor vghez szveget rni.
+
+ 3. Egsztse ki az els sort. Vegye szre, hogy az a utasts (append)
+ teljesen egyezik az i-vel (insert) csupn a beszrt szveg helye
+ klnbzik.
+
+---> Ez a sor lehetv teszi nnek, hogy gyakorolja
+---> Ez a sor lehetv teszi nnek, hogy gyakorolja a sor vgre beillesztst.
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ 6.3. lecke: AZ TRS MSIK VLTOZATA
+
+
+ ** Nagy R bersval rhat fell tbb mint egy karaktert. **
+
+ 1. Mozgassuk a kurzort az els ---> kezdet sorra!
+
+ 2. Place the cursor at the beginning of the first word that is different
+ from the second line marked ---> (the word 'last').
+
+ 3. Now type R and replace the remainder of the text on the first line by
+ typing over the old text to make the first line the same as the second.
+
+---> To make the first line the same as the last on this page use the keys.
+---> To make the first line the same as the second, type R and the new text.
+
+ 4. Note that when you press <ESC> to exit, any unaltered text remains.
+
+
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ 6.4. lecke: BELLTSOK
+
+** lltsuk be, hogy a keress s a helyettests ne fggjn kis/NAGYbetktl **
+
+ 1. Keressk meg az 'ignore'-t az berva:
+ /ignore
+ Ezt ismteljk tbbszr az n billentyvel
+
+ 2. lltsuk be az 'ic' (Ignore case) lehetsget gy:
+ :set ic
+
+ 3. Most keressnk ismt az 'ignore'-ra n-nel
+ Ismteljk meg tbbszr a keresst: n
+
+ 4. lltsuk be a 'hlsearch' s 'incsearch' lehetsgeket:
+ :set hls is
+
+ 5. Most ismt rjuk be a keresparancsot, s lssuk mi trtnik:
+ /ignore
+
+ 6. A kiemelst szntessk meg albbi utastsok egyikvel:
+ :set nohls vagy :nohlsearch
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ 6. LECKE SSZEFOGLALJA
+
+
+ 1. Typing o opens a line BELOW the cursor and places the cursor on the open
+ line in Insert mode.
+ Typing a capital O opens the line ABOVE the line the cursor is on.
+
+ 2. Type an a to insert text AFTER the character the cursor is on.
+ Typing a capital A automatically appends text to the end of the line.
+
+ 3. Typing a capital R enters Replace mode until <ESC> is pressed to exit.
+
+ 4. Typing ":set xxx" sets the option "xxx"
+
+
+
+
+
+
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ 7. lecke: ON-LINE HELP PARANCSOK
+
+
+ ** Az online sgrendszer hasznlata **
+
+ A Vim rszletes sgval rendelkezik. Indulshoz a kvetkezk egyikt
+ tegye:
+ - nyomja meg a <HELP> gombot (ha van ilyen)
+ - nyomja meg az <F1> gombot (ha van ilyen)
+ - rja be: :help <ENTER>
+
+ :q <ENTER> bersval zrhatja be a sgablakot.
+
+ Majdnem minden tmakrrl tallhat sgt, argumentum megadsval
+ ":help" utasts . Prblja az albbiakat ki (<ENTER>-t ne felejtsk):
+
+ :help w
+ :help c_<T
+ :help insert-index
+ :help user-manual
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ 8. lecke: INDTSZKRIPT RSA
+
+ ** A Vim lehetsgeinek belltsa **
+
+ A Vim rengeteg lehetsggel rendelkezik a Vi-hoz kpest, de a legtbb
+ alapbl elrhetetlen. Ahhoz, hogy alapbl tbb lehetsgnk legyen ksztennk
+ kell egy "vimrc" fjlt.
+
+ 1. Kezdjk el szerkeszteni a "vimrc" fjlt, ennek mdja:
+ :edit ~/.vimrc Unixon, Linuxon
+ :edit $VIM/_vimrc MS-Windowson
+
+ 2. Most szrjuk be a plda "vimrc" fjl szvegt:
+
+ :read $VIMRUNTIME/vimrc_example.vim
+
+ 3. rjuk ki a fjlt:
+
+ :write
+
+ Legkzelebb a Vim szintaxiskiemelssel indul.
+ Hozzadhatja kedvenc belltsait ehhez a "vimrc" fjlhoz.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ Itt vgzdik a Vim oktat, melynek a szndka egy rvid ttekints a
+ Vimrl, amely elg ahhoz, hogy elg knnyedn kezeljk a szerkesztt.
+ Tvol van a teljessgtl, mivel a Vimnek szmtalan tovbbi utastsa
+ van. Ezutn a felhasznli kziknyvet rdemes elolvasni az angolul
+ tudknak: ":help user-manual". (egyelre nem tud magyarul)
+
+ Tovbbi magyar olvasnivalk rhetek el az albbi oldalrl.
+ http://ubuntu.hu/index.php?title=Vim
+
+ For further reading and studying, this book is recommended:
+ Vim - Vi Improved - by Steve Oualline
+ Publisher: New Riders
+ The first book completely dedicated to Vim. Especially useful for beginners.
+ There are many examples and pictures.
+ See http://iccf-holland.org/click5.html
+
+ This book is older and more about Vi than Vim, but also recommended:
+ Learning the Vi Editor - by Linda Lamb
+ Publisher: O'Reilly & Associates Inc.
+ It is a good book to get to know almost anything you want to do with Vi.
+ The sixth edition also includes information on Vim.
+
+ This tutorial was written by Michael C. Pierce and Robert K. Ware,
+ Colorado School of Mines using ideas supplied by Charles Smith,
+ Colorado State University. E-mail: bware@mines.colorado.edu.
+
+ Modified for Vim by Bram Moolenaar.