changeset 14695:b178e2039b2d

Update runtime files. commit https://github.com/vim/vim/commit/93a1df2c205c8399d96c172d9483e0793d32892a Author: Bram Moolenaar <Bram@vim.org> Date: Mon Sep 10 11:51:50 2018 +0200 Update runtime files.
author Christian Brabandt <cb@256bit.org>
date Mon, 10 Sep 2018 12:00:07 +0200
parents 0cda70849b92
children 195e8b1fcbbf
files runtime/doc/eval.txt runtime/doc/options.txt runtime/doc/syntax.txt runtime/doc/tags runtime/doc/terminal.txt runtime/doc/todo.txt runtime/ftplugin/vim.vim runtime/syntax/sh.vim runtime/syntax/tex.vim runtime/tutor/tutor.ru runtime/tutor/tutor.ru.cp1251
diffstat 11 files changed, 85 insertions(+), 175 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -5978,11 +5978,14 @@ match({expr}, {pat} [, {start} [, {count
 		When {expr} is a |List| then this returns the index of the
 		first item where {pat} matches.  Each item is used as a
 		String, |Lists| and |Dictionaries| are used as echoed.
+
 		Otherwise, {expr} is used as a String.  The result is a
 		Number, which gives the index (byte offset) in {expr} where
 		{pat} matches.
+
 		A match at the first character or |List| item returns zero.
 		If there is no match -1 is returned.
+
 		For getting submatches see |matchlist()|.
 		Example: >
 			:echo match("testing", "ing")	" results in 4
@@ -8386,7 +8389,9 @@ term_dumpwrite({buf}, {filename} [, {opt
 		Dump the contents of the terminal screen of {buf} in the file
 		{filename}.  This uses a format that can be used with
 		|term_dumpload()| and |term_dumpdiff()|.
-		If {filename} already exists an error is given.	*E953*
+		If the job in the terminal already finished an error is given:
+		*E958*
+		If {filename} already exists an error is given:	*E953*
 		Also see |terminal-diff|.
 
 		{options} is a dictionary with these optional entries:
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -846,7 +846,7 @@ A jump table for the options with a shor
 	'{A-Z0-9}, or `{A-Z0-9} command takes one to another file.
 	Note that for some commands the 'autowrite' option is not used, see
 	'autowriteall' for that.
-	Some buffers will not be written, specifically when 'buttype' is
+	Some buffers will not be written, specifically when 'buftype' is
 	"nowrite", "nofile", "terminal" or "prompt".
 
 			 *'autowriteall'* *'awa'* *'noautowriteall'* *'noawa'*
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -3211,6 +3211,12 @@ by syntax/tex.vim.  Please consider uplo
 which typically would go in $HOME/after/syntax/tex/[pkgname].vim, to
 http://vim.sf.net/.
 
+I've included some support for various popular packages on my website: >
+
+	http://www.drchip.org/astronaut/vim/index.html#LATEXPKGS
+<
+The syntax files there go into your .../after/syntax/tex/ directory.
+
 					*tex-error* *g:tex_no_error*
  Tex: Excessive Error Highlighting? ~
 
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -4626,6 +4626,7 @@ E954	options.txt	/*E954*
 E955	eval.txt	/*E955*
 E956	pattern.txt	/*E956*
 E957	eval.txt	/*E957*
+E958	eval.txt	/*E958*
 E96	diff.txt	/*E96*
 E97	diff.txt	/*E97*
 E98	diff.txt	/*E98*
@@ -5463,6 +5464,7 @@ channel-drop	channel.txt	/*channel-drop*
 channel-functions	usr_41.txt	/*channel-functions*
 channel-mode	channel.txt	/*channel-mode*
 channel-more	channel.txt	/*channel-more*
+channel-noblock	channel.txt	/*channel-noblock*
 channel-open	channel.txt	/*channel-open*
 channel-open-options	channel.txt	/*channel-open-options*
 channel-raw	channel.txt	/*channel-raw*
@@ -7183,6 +7185,7 @@ job-err_io	channel.txt	/*job-err_io*
 job-exit_cb	channel.txt	/*job-exit_cb*
 job-functions	usr_41.txt	/*job-functions*
 job-in_io	channel.txt	/*job-in_io*
+job-noblock	channel.txt	/*job-noblock*
 job-options	channel.txt	/*job-options*
 job-out_cb	channel.txt	/*job-out_cb*
 job-out_io	channel.txt	/*job-out_io*
--- a/runtime/doc/terminal.txt
+++ b/runtime/doc/terminal.txt
@@ -617,7 +617,18 @@ 2.  The difference between the first and
 3.  The contents of the second dump
 
 You can usually see what differs in the second part.  Use the 'ruler' to
-relate it to the position in the first or second dump.
+relate it to the position in the first or second dump.  Letters indicate the
+kind of difference:
+	X	different character
+	>	cursor in first but not in second
+	<	cursor in second but not in first
+	w	character width differs (single vs double width)
+	f	foreground color differs
+	b	background color differs
+	a	attribute differs (bold, underline, reverse, etc.)
+	?	character missing in both
+	+	character missing in first
+	-	character missing in second
 
 Alternatively, press "s" to swap the first and second dump. Do this several
 times so that you can spot the difference in the context of the text.
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -38,8 +38,10 @@ browser use: https://github.com/vim/vim/
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
+tar plugin: use "file" to check compression type, use bzip2 only when it
+recognizes bzip2 or file ends in .bz2
+
 'incsearch' with :s: (#3321)
-- :/foo/s//<Esc>  changes last search pattern.  Also E486.
 - :s/foo  using CTRL-G moves to another line, should not happen, or use the
   correct line (it uses the last but one line) (Lifepillar, Aug 18, #3345)
 - Also support range: :/foo/,/bar/delete
@@ -103,6 +105,9 @@ Does not build with MinGW out of the box
 Crash when mixing matchadd and substitute()? (Max Christian Pohle, 2018 May
 13, #2910)  Can't reproduce?
 
+Patch to add script line number to script ID. (ichizok, Ozaki Kiichi, 2018 Aug
+24, #3362)
+
 Errors found with random data:
     heap-buffer-overflow in alist_add (#2472)
 
@@ -125,8 +130,8 @@ Related to bracketed paste.  I cannot re
 Patch in pull request #2967: Allow white space in sign text. (Ben Jackson)
 Test fails in AppVeyor.
 
-Patch to add script line number to script ID. (ichizok, Ozaki Kiichi, 2018 Aug
-24, #3362)
+Job_info() returns command without backslashes. (Daniel Hahler, 2018 Sep 3,
+#3404)
 
 Removing flags from 'cpoptions' breaks the Winbar buttons in termdebug.
 (Dominique Pelle, 2018 Jul 16)
@@ -134,6 +139,10 @@ Removing flags from 'cpoptions' breaks t
 Problem with two buffers with the same name a/b, if it didn't exist before and
 is created outside of Vim. (dskloetg, 2018 Jul 16, #3219)
 
+Invalid memory access with old regexp engine. (Dominique Pelle, 2018 Sep 3,
+#3405)  Introduced by 8.0.1517, which was fixing another memory access error.
+(Sep 8)
+
 Memory leak in test_assert:
 ==19127==    by 0x2640D7: alloc (misc2.c:874)
 ==19127==    by 0x2646D6: vim_strsave (misc2.c:1315)
@@ -188,8 +197,12 @@ Olaf Dabrunz is working on this. (10 Jan
 9   Instead invoking an external diff program, use builtin code.  One can be
     found here: http://www.ioplex.com/~miallen/libmba/dl/src/diff.c
     It's complicated and badly documented.
-Alternative: use the xdiff library.  Unfinished Patch from Christian Brabandt,
-2018 Mar 20, #2732)
+Alternative: use the xdiff library from git.  Unfinished Patch from Christian
+Brabandt, 2018 Mar 20, #2732)
+Note that this is NOT libxdiff.
+-> avoid writing all the text to a file, use in-memory only
+-> add option to use external diff above a certain size.
+-> when making changes, diff only the part of the buffer that changed.
 
 Difference between two regexp engines: #3373
 
@@ -202,6 +215,9 @@ includes the first screen line. (2018 Au
 
 Refactored HTML indent file. (Michael Lee, #1821)
 
+Test for user name completeion ":e ~s<Tab>" fails because we don't get all
+user names.  Is there another function to get more? (2018 Sep 3, Stuckrad)
+
 Patch to add getregpoint() and setreg() with an option to set "".
 (Andy Massimino, 2018 Aug 24, #3370)
 Better name?
@@ -348,13 +364,6 @@ Add the debug command line history to vi
 Avoid that "sign unplace id" does a redraw right away, esp. when there is a
 sequence of these commands. (Andy Stewart, 2018 Mar 16)
 
-ch_sendraw() with long string does not try to read in between, which may cause
-a deadlock if the reading side is waiting for the write to finish. (Nate
-Bosch, 2018 Jan 13, #2548)
-Perhaps just make chunks of 1024 bytes?
-Probably better: Make the write non-blocking
-Also a problem on MS-Windows: #2828.
-
 Add Makefiles to the runtime/spell directory tree, since nobody uses Aap.
 Will have to explain the manual steps (downloading the .aff and .dic files,
 applying the diff, etc.
--- a/runtime/ftplugin/vim.vim
+++ b/runtime/ftplugin/vim.vim
@@ -67,10 +67,10 @@ if !exists("no_plugin_maps") && !exists(
   vnoremap <silent><buffer> [[ m':<C-U>exe "normal! gv"<Bar>call search('^\s*fu\%[nction]\>', "bW")<CR>
   nnoremap <silent><buffer> ]] m':call search('^\s*fu\%[nction]\>', "W")<CR>
   vnoremap <silent><buffer> ]] m':<C-U>exe "normal! gv"<Bar>call search('^\s*fu\%[nction]\>', "W")<CR>
-  nnoremap <silent><buffer> [] m':call search('^\s*endf*\%[unction]\>', "bW")<CR>
-  vnoremap <silent><buffer> [] m':<C-U>exe "normal! gv"<Bar>call search('^\s*endf*\%[unction]\>', "bW")<CR>
-  nnoremap <silent><buffer> ][ m':call search('^\s*endf*\%[unction]\>', "W")<CR>
-  vnoremap <silent><buffer> ][ m':<C-U>exe "normal! gv"<Bar>call search('^\s*endf*\%[unction]\>', "W")<CR>
+  nnoremap <silent><buffer> [] m':call search('^\s*endf\%[unction]\>', "bW")<CR>
+  vnoremap <silent><buffer> [] m':<C-U>exe "normal! gv"<Bar>call search('^\s*endf\%[unction]\>', "bW")<CR>
+  nnoremap <silent><buffer> ][ m':call search('^\s*endf\%[unction]\>', "W")<CR>
+  vnoremap <silent><buffer> ][ m':<C-U>exe "normal! gv"<Bar>call search('^\s*endf\%[unction]\>', "W")<CR>
 
   " Move around comments
   nnoremap <silent><buffer> ]" :call search('^\(\s*".*\n\)\@<!\(\s*"\)', "W")<CR>
@@ -87,8 +87,7 @@ if exists("loaded_matchit")
  	\ '\<\(wh\%[ile]\|for\)\>:\<brea\%[k]\>:\<con\%[tinue]\>:\<end\(w\%[hile]\|fo\%[r]\)\>,' .
 	\ '\<if\>:\<el\%[seif]\>:\<en\%[dif]\>,' .
 	\ '\<try\>:\<cat\%[ch]\>:\<fina\%[lly]\>:\<endt\%[ry]\>,' .
-	\ '\<aug\%[roup]\s\+\%(END\>\)\@!\S:\<aug\%[roup]\s\+END\>,' .
-	\ '(:)'
+	\ '\<aug\%[roup]\s\+\%(END\>\)\@!\S:\<aug\%[roup]\s\+END\>,'
   " Ignore syntax region commands and settings, any 'en*' would clobber
   " if-endif.
   " - set spl=de,en
--- a/runtime/syntax/sh.vim
+++ b/runtime/syntax/sh.vim
@@ -2,8 +2,8 @@
 " Language:		shell (sh) Korn shell (ksh) bash (sh)
 " Maintainer:		Charles E. Campbell  <NdrOchipS@PcampbellAfamily.Mbiz>
 " Previous Maintainer:	Lennart Schultz <Lennart.Schultz@ecmwf.int>
-" Last Change:		Jul 31, 2018
-" Version:		179
+" Last Change:		Sep 04, 2018
+" Version:		182
 " URL:		http://www.drchip.org/astronaut/vim/index.html#SYNTAX_SH
 " For options and settings, please use:      :help ft-sh-syntax
 " This file includes many ideas from Eric Brunet (eric.brunet@ens.fr)
@@ -151,6 +151,7 @@ syn cluster shPPSRightList	contains=shCo
 syn cluster shSubShList	contains=@shCommandSubList,shCommandSubBQ,shCaseEsac,shColon,shCommandSub,shComment,shDo,shEcho,shExpr,shFor,shIf,shHereString,shRedir,shSetList,shSource,shStatement,shVariable,shCtrlSeq,shOperator
 syn cluster shTestList	contains=shCharClass,shCommandSub,shCommandSubBQ,shCtrlSeq,shDeref,shDerefSimple,shDoubleQuote,shSpecialDQ,shExDoubleQuote,shExpr,shExSingleQuote,shNumber,shOperator,shSingleQuote,shTest,shTestOpr
 syn cluster shNoZSList	contains=shSpecialNoZS
+syn cluster shForList	contains=shTestOpr,shNumber,shDerefSimple,shDeref,shCommandSub,shCommandSubBQ,shArithmetic
 
 " Echo: {{{1
 " ====
@@ -243,7 +244,7 @@ syn match   shCharClass	contained	"\[:\(
 ShFoldIfDoFor syn region shDo	transparent	matchgroup=shConditional start="\<do\>" matchgroup=shConditional end="\<done\>"			contains=@shLoopList
 ShFoldIfDoFor syn region shIf	transparent	matchgroup=shConditional start="\<if\_s" matchgroup=shConditional skip=+-fi\>+ end="\<;\_s*then\>" end="\<fi\>"	contains=@shIfList
 ShFoldIfDoFor syn region shFor		matchgroup=shLoop start="\<for\ze\_s\s*\%(((\)\@!" end="\<in\>" end="\<do\>"me=e-2			contains=@shLoopList,shDblParen skipwhite nextgroup=shCurlyIn
-ShFoldIfDoFor syn region shForPP	matchgroup=shLoop start='\<for\>\_s*((' end='))' contains=shTestOpr
+ShFoldIfDoFor syn region shForPP	matchgroup=shLoop start='\<for\>\_s*((' end='))' contains=@shForList
 
 if exists("b:is_kornshell") || exists("b:is_bash") || exists("b:is_posix")
  syn cluster shCaseList	add=shRepeat
@@ -290,7 +291,7 @@ endif
 " Misc: {{{1
 "======
 syn match   shWrapLineOperator "\\$"
-syn region  shCommandSubBQ   	start="`" skip="\\\\\|\\." end="`"	contains=@shCommandSubList
+syn region  shCommandSubBQ   	start="`" skip="\\\\\|\\." end="`"	contains=shBQComment,@shCommandSubList
 syn match   shEscape	contained	'\%(^\)\@!\%(\\\\\)*\\.'	nextgroup=shSingleQuote,shDoubleQuote,shComment
 
 " $() and $(()): {{{1
@@ -374,6 +375,7 @@ syn match	shComment		"^\s*\zs#.*$"	conta
 syn match	shComment		"\s\zs#.*$"	contains=@shCommentGroup
 syn match	shComment	contained	"#.*$"	contains=@shCommentGroup
 syn match	shQuickComment	contained	"#.*$"
+syn match	shBQComment	contained	"#.\{-}\ze`"	contains=@shCommentGroup
 
 " Here Documents: {{{1
 " =========================================
@@ -525,8 +527,8 @@ if exists("b:is_bash")
  syn region shDerefPPSright	contained	start='.'	skip=@\%(\\\\\)\+@		end='\ze}'	contains=@shPPSRightList
 
  " bash : ${parameter/#substring/replacement}
- syn match  shDerefPSR	contained	'/#'	nextgroup=shDerefPSRleft
- syn region shDerefPSRleft	contained	start='.'	skip=@\%(\\\\\)*\\/@ matchgroup=shDerefOp	end='/' end='\ze}' nextgroup=shDerefPSRright
+ syn match  shDerefPSR	contained	'/#'	nextgroup=shDerefPSRleft,shDoubleQuote,shSingleQuote
+ syn region shDerefPSRleft	contained	start='[^"']'	skip=@\%(\\\\\)*\\/@ matchgroup=shDerefOp	end='/' end='\ze}' nextgroup=shDerefPSRright
  syn region shDerefPSRright	contained	start='.'	skip=@\%(\\\\\)\+@		end='\ze}'
 endif
 
@@ -534,7 +536,7 @@ endif
 "syn region shParen matchgroup=shArithRegion start='[^$]\zs(\%(\ze[^(]\|$\)' end=')' contains=@shArithParenList
 syn region shParen matchgroup=shArithRegion start='\$\@!(\%(\ze[^(]\|$\)' end=')' contains=@shArithParenList
 
-" Useful sh Keywords: {{{1
+" Additional sh Keywords: {{{1
 " ===================
 syn keyword shStatement break cd chdir continue eval exec exit kill newgrp pwd read readonly return shift test trap ulimit umask wait
 syn keyword shConditional contained elif else then
@@ -542,20 +544,22 @@ if !exists("g:sh_no_error")
  syn keyword shCondError elif else then
 endif
 
-" Useful ksh Keywords: {{{1
-" ====================
+" Additional ksh Keywords and Aliases: {{{1
+" ===================================
 if exists("b:is_kornshell") || exists("b:is_bash") || exists("b:is_posix")
- syn keyword shStatement autoload bg false fc fg functions getopts hash history integer jobs let nohup printf r stop suspend times true type unalias whence
+ syn keyword shStatement bg builtin disown enum export false fg getconf getopts hist jobs let printf sleep true typeset unalias unset whence
+ syn keyword shStatement autoload compound fc float functions hash history integer nameref nohup r redirect source stop suspend times type
  if exists("b:is_posix")
   syn keyword shStatement command
  else
   syn keyword shStatement time
  endif
 
-" Useful bash Keywords: {{{1
+" Additional bash Keywords: {{{1
 " =====================
  if exists("b:is_bash")
-  syn keyword shStatement bind builtin dirs disown enable help logout popd pushd shopt source
+"  syn keyword shStatement bind builtin dirs disown enable help logout popd pushd shopt source
+syn keyword shStatement bind builtin caller compopt declare dirs disown enable export help local logout mapfile popd pushd readarray shopt source typeset unset
  else
   syn keyword shStatement login newgrp
  endif
@@ -637,6 +641,7 @@ if !exists("skip_sh_syntax_inits")
  hi def link shParen	shArithmetic
  hi def link shPosnParm	shShellVariables
  hi def link shQuickComment	shComment
+ hi def link shBQComment	shComment
  hi def link shRange	shOperator
  hi def link shRedir	shOperator
  hi def link shSetListDelim	shOperator
--- a/runtime/syntax/tex.vim
+++ b/runtime/syntax/tex.vim
@@ -1,8 +1,8 @@
 " Vim syntax file
 " Language:	TeX
 " Maintainer:	Charles E. Campbell <NdrchipO@ScampbellPfamily.AbizM>
-" Last Change:	Mar 30, 2018
-" Version:	109
+" Last Change:	Sep 09, 2018
+" Version:	110
 " URL:		http://www.drchip.org/astronaut/vim/index.html#SYNTAX_TEX
 "
 " Notes: {{{1
@@ -596,7 +596,6 @@ if s:tex_fast =~# 'v'
   if exists("g:tex_verbspell") && g:tex_verbspell
    syn region texZone		start="\\begin{[vV]erbatim}"		end="\\end{[vV]erbatim}\|%stopzone\>"	contains=@Spell
    " listings package:
-   syn region texZone		start="\\begin{lstlisting}"		end="\\end{lstlisting}\|%stopzone\>"	contains=@Spell
    if b:tex_stylish
     syn region texZone		start="\\verb\*\=\z([^\ta-zA-Z@]\)"	end="\z1\|%stopzone\>"			contains=@Spell
    else
@@ -683,13 +682,7 @@ if has("conceal") && &enc == 'utf-8'
     \ ['approx'		, '≈'],
     \ ['ast'		, '∗'],
     \ ['asymp'		, '≍'],
-    \ ['backepsilon'	, '∍'],
-    \ ['backsimeq'	, '≃'],
     \ ['backslash'	, '∖'],
-    \ ['barwedge'	, '⊼'],
-    \ ['because'	, '∵'],
-    \ ['beth'           , 'ܒ'],
-    \ ['between'	, '≬'],
     \ ['bigcap'		, '∩'],
     \ ['bigcirc'	, '○'],
     \ ['bigcup'		, '∪'],
@@ -701,38 +694,18 @@ if has("conceal") && &enc == 'utf-8'
     \ ['bigtriangleup'	, '∆'],
     \ ['bigvee'		, '⋁'],
     \ ['bigwedge'	, '⋀'],
-    \ ['blacksquare'	, '∎'],
     \ ['bot'		, '⊥'],
     \ ['bowtie'	        , '⋈'],
-    \ ['boxdot'		, '⊡'],
-    \ ['boxminus'	, '⊟'],
-    \ ['boxplus'	, '⊞'],
-    \ ['boxtimes'	, '⊠'],
-    \ ['Box'            , '☐'],
     \ ['bullet'	        , '•'],
-    \ ['bumpeq'		, '≏'],
-    \ ['Bumpeq'		, '≎'],
     \ ['cap'		, '∩'],
-    \ ['Cap'		, '⋒'],
     \ ['cdot'		, '·'],
     \ ['cdots'		, '⋯'],
     \ ['circ'		, '∘'],
-    \ ['circeq'		, '≗'],
-    \ ['circlearrowleft', '↺'],
-    \ ['circlearrowright', '↻'],
-    \ ['circledast'	, '⊛'],
-    \ ['circledcirc'	, '⊚'],
     \ ['clubsuit'	, '♣'],
-    \ ['complement'	, '∁'],
     \ ['cong'		, '≅'],
     \ ['coprod'		, '∐'],
     \ ['copyright'	, '©'],
     \ ['cup'		, '∪'],
-    \ ['Cup'		, '⋓'],
-    \ ['curlyeqprec'	, '⋞'],
-    \ ['curlyeqsucc'	, '⋟'],
-    \ ['curlyvee'	, '⋎'],
-    \ ['curlywedge'	, '⋏'],
     \ ['dagger'	        , '†'],
     \ ['dashv'		, '⊣'],
     \ ['ddagger'	, '‡'],
@@ -741,50 +714,27 @@ if has("conceal") && &enc == 'utf-8'
     \ ['diamondsuit'	, '♢'],
     \ ['div'		, '÷'],
     \ ['doteq'		, '≐'],
-    \ ['doteqdot'	, '≑'],
-    \ ['dotplus'	, '∔'],
     \ ['dots'		, '…'],
-    \ ['dotsb'		, '⋯'],
-    \ ['dotsc'		, '…'],
-    \ ['dotsi'		, '⋯'],
-    \ ['dotso'		, '…'],
-    \ ['doublebarwedge'	, '⩞'],
     \ ['downarrow'	, '↓'],
     \ ['Downarrow'	, '⇓'],
     \ ['ell'		, 'ℓ'],
     \ ['emptyset'	, '∅'],
-    \ ['eqcirc'		, '≖'],
-    \ ['eqsim'		, '≂'],
-    \ ['eqslantgtr'	, '⪖'],
-    \ ['eqslantless'	, '⪕'],
     \ ['equiv'		, '≡'],
-    \ ['eth'            , 'ð'],
     \ ['exists'		, '∃'],
-    \ ['fallingdotseq'	, '≒'],
     \ ['flat'		, '♭'],
     \ ['forall'		, '∀'],
     \ ['frown'		, '⁔'],
     \ ['ge'		, '≥'],
     \ ['geq'		, '≥'],
-    \ ['geqq'		, '≧'],
     \ ['gets'		, '←'],
-    \ ['gimel'          , 'ℷ'],
     \ ['gg'		, '⟫'],
-    \ ['gneqq'		, '≩'],
-    \ ['gtrdot'		, '⋗'],
-    \ ['gtreqless'	, '⋛'],
-    \ ['gtrless'	, '≷'],
-    \ ['gtrsim'		, '≳'],
     \ ['hbar'		, 'ℏ'],
     \ ['heartsuit'	, '♡'],
     \ ['hookleftarrow'	, '↩'],
     \ ['hookrightarrow'	, '↪'],
     \ ['iff'            , '⇔'],
-    \ ['iiint'		, '∭'],
-    \ ['iint'		, '∬'],
     \ ['Im'		, 'ℑ'],
     \ ['imath'		, 'ɩ'],
-    \ ['implies'	, '⇒'],
     \ ['in'		, '∈'],
     \ ['infty'		, '∞'],
     \ ['int'		, '∫'],
@@ -793,69 +743,33 @@ if has("conceal") && &enc == 'utf-8'
     \ ['lceil'		, '⌈'],
     \ ['ldots'		, '…'],
     \ ['le'		, '≤'],
-    \ ['leadsto'	, '↝'],
     \ ['left('		, '('],
     \ ['left\['		, '['],
     \ ['left\\{'	, '{'],
     \ ['leftarrow'	, '←'],
     \ ['Leftarrow'	, '⇐'],
-    \ ['leftarrowtail'	, '↢'],
     \ ['leftharpoondown', '↽'],
     \ ['leftharpoonup'	, '↼'],
     \ ['leftrightarrow'	, '↔'],
     \ ['Leftrightarrow'	, '⇔'],
-    \ ['leftrightsquigarrow', '↭'],
-    \ ['leftthreetimes'	, '⋋'],
     \ ['leq'		, '≤'],
     \ ['leq'		, '≤'],
-    \ ['leqq'		, '≦'],
-    \ ['lessdot'	, '⋖'],
-    \ ['lesseqgtr'	, '⋚'],
-    \ ['lesssim'	, '≲'],
     \ ['lfloor'		, '⌊'],
     \ ['ll'		, '≪'],
     \ ['lmoustache'     , '╭'],
-    \ ['lneqq'		, '≨'],
     \ ['lor'		, '∨'],
-    \ ['ltimes'		, '⋉'],
     \ ['mapsto'		, '↦'],
-    \ ['measuredangle'	, '∡'],
     \ ['mid'		, '∣'],
     \ ['models'		, '╞'],
     \ ['mp'		, '∓'],
     \ ['nabla'		, '∇'],
     \ ['natural'	, '♮'],
-    \ ['ncong'		, '≇'],
     \ ['ne'		, '≠'],
     \ ['nearrow'	, '↗'],
     \ ['neg'		, '¬'],
     \ ['neq'		, '≠'],
-    \ ['nexists'	, '∄'],
-    \ ['ngeq'		, '≱'],
-    \ ['ngeqq'		, '≱'],
-    \ ['ngtr'		, '≯'],
     \ ['ni'		, '∋'],
-    \ ['nleftarrow'	, '↚'],
-    \ ['nLeftarrow'	, '⇍'],
-    \ ['nLeftrightarrow', '⇎'],
-    \ ['nleq'		, '≰'],
-    \ ['nleqq'		, '≰'],
-    \ ['nless'		, '≮'],
-    \ ['nmid'		, '∤'],
     \ ['notin'		, '∉'],
-    \ ['nparallel'      , '∦'],
-    \ ['nprec'		, '⊀'],
-    \ ['nrightarrow'	, '↛'],
-    \ ['nRightarrow'	, '⇏'],
-    \ ['nsim'		, '≁'],
-    \ ['nsucc'		, '⊁'],
-    \ ['ntriangleleft'	, '⋪'],
-    \ ['ntrianglelefteq', '⋬'],
-    \ ['ntriangleright'	, '⋫'],
-    \ ['ntrianglerighteq', '⋭'],
-    \ ['nvdash'		, '⊬'],
-    \ ['nvDash'		, '⊭'],
-    \ ['nVdash'		, '⊮'],
     \ ['nwarrow'	, '↖'],
     \ ['odot'		, '⊙'],
     \ ['oint'		, '∮'],
@@ -868,15 +782,9 @@ if has("conceal") && &enc == 'utf-8'
     \ ['parallel'	, '║'],
     \ ['partial'	, '∂'],
     \ ['perp'		, '⊥'],
-    \ ['pitchfork'	, '⋔'],
     \ ['pm'		, '±'],
     \ ['prec'		, '≺'],
-    \ ['precapprox'	, '⪷'],
-    \ ['preccurlyeq'	, '≼'],
     \ ['preceq'		, '⪯'],
-    \ ['precnapprox'	, '⪹'],
-    \ ['precneqq'	, '⪵'],
-    \ ['precsim'	, '≾'],
     \ ['prime'		, '′'],
     \ ['prod'		, '∏'],
     \ ['propto'		, '∝'],
@@ -888,13 +796,8 @@ if has("conceal") && &enc == 'utf-8'
     \ ['right\\}'	, '}'],
     \ ['rightarrow'	, '→'],
     \ ['Rightarrow'	, '⇒'],
-    \ ['rightarrowtail'	, '↣'],
     \ ['rightleftharpoons', '⇌'],
-    \ ['rightsquigarrow', '↝'],
-    \ ['rightthreetimes', '⋌'],
-    \ ['risingdotseq'	, '≓'],
     \ ['rmoustache'     , '╮'],
-    \ ['rtimes'		, '⋊'],
     \ ['S'	        , '§'],
     \ ['searrow'	, '↘'],
     \ ['setminus'	, '∖'],
@@ -903,7 +806,6 @@ if has("conceal") && &enc == 'utf-8'
     \ ['simeq'		, '⋍'],
     \ ['smile'		, '‿'],
     \ ['spadesuit'	, '♠'],
-    \ ['sphericalangle'	, '∢'],
     \ ['sqcap'		, '⊓'],
     \ ['sqcup'		, '⊔'],
     \ ['sqsubset'	, '⊏'],
@@ -912,60 +814,30 @@ if has("conceal") && &enc == 'utf-8'
     \ ['sqsupseteq'	, '⊒'],
     \ ['star'		, '✫'],
     \ ['subset'		, '⊂'],
-    \ ['Subset'		, '⋐'],
     \ ['subseteq'	, '⊆'],
-    \ ['subseteqq'	, '⫅'],
-    \ ['subsetneq'	, '⊊'],
-    \ ['subsetneqq'	, '⫋'],
     \ ['succ'		, '≻'],
-    \ ['succapprox'	, '⪸'],
-    \ ['succcurlyeq'	, '≽'],
     \ ['succeq'		, '⪰'],
-    \ ['succnapprox'	, '⪺'],
-    \ ['succneqq'	, '⪶'],
-    \ ['succsim'	, '≿'],
     \ ['sum'		, '∑'],
     \ ['supset'		, '⊃'],
-    \ ['Supset'		, '⋑'],
     \ ['supseteq'	, '⊇'],
-    \ ['supseteqq'	, '⫆'],
-    \ ['supsetneq'	, '⊋'],
-    \ ['supsetneqq'	, '⫌'],
     \ ['surd'		, '√'],
     \ ['swarrow'	, '↙'],
-    \ ['therefore'	, '∴'],
     \ ['times'		, '×'],
     \ ['to'		, '→'],
     \ ['top'		, '⊤'],
     \ ['triangle'	, '∆'],
     \ ['triangleleft'	, '⊲'],
-    \ ['trianglelefteq'	, '⊴'],
-    \ ['triangleq'	, '≜'],
     \ ['triangleright'	, '⊳'],
-    \ ['trianglerighteq', '⊵'],
-    \ ['twoheadleftarrow', '↞'],
-    \ ['twoheadrightarrow', '↠'],
-    \ ['ulcorner'       , '⌜'],
     \ ['uparrow'	, '↑'],
     \ ['Uparrow'	, '⇑'],
     \ ['updownarrow'	, '↕'],
     \ ['Updownarrow'	, '⇕'],
-    \ ['urcorner'       , '⌝'],
-    \ ['varnothing'	, '∅'],
-    \ ['vartriangle'	, '∆'],
     \ ['vdash'		, '⊢'],
-    \ ['vDash'		, '⊨'],
-    \ ['Vdash'		, '⊩'],
     \ ['vdots'		, '⋮'],
     \ ['vee'		, '∨'],
-    \ ['veebar'		, '⊻'],
-    \ ['Vvdash'		, '⊪'],
     \ ['wedge'		, '∧'],
     \ ['wp'		, '℘'],
     \ ['wr'		, '≀']]
-"    \ ['jmath'		, 'X']
-"    \ ['uminus'	, 'X']
-"    \ ['uplus'		, 'X']
   if &ambw == "double" || exists("g:tex_usedblwidth")
     let s:texMathList= s:texMathList + [
     \ ['right\\rangle'	, '〉'],
--- a/runtime/tutor/tutor.ru
+++ b/runtime/tutor/tutor.ru
@@ -540,7 +540,7 @@
 
 ---> ""      `';    .
 
-!       ,    
+!       ,    
 	 .
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -607,15 +607,15 @@
       .
 
   4.   `'   `'  , 
-	:s/old/new
+	:s//
        `'   `'  , 
-	:s/old/new/g
+	:s///g
            , 
-	:#,#s/old/new/g
+	:#,#s///g
          `'  `'  , 
-	:%s/old/new/g
+	:%s///g
           ,  'c'
-	:%s/old/new/gc
+	:%s///gc
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 		     5.1:    
--- a/runtime/tutor/tutor.ru.cp1251
+++ b/runtime/tutor/tutor.ru.cp1251
@@ -540,7 +540,7 @@
 
 ---> ""      `';    .
 
-!       ,    
+!       ,    
 	 .
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -607,15 +607,15 @@
       .
 
   4.   `'   `'  , 
-	:s/old/new
+	:s//
        `'   `'  , 
-	:s/old/new/g
+	:s///g
            , 
-	:#,#s/old/new/g
+	:#,#s///g
          `'  `'  , 
-	:%s/old/new/g
+	:%s///g
           ,  'c'
-	:%s/old/new/gc
+	:%s///gc
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 		     5.1: