# HG changeset patch # User Christian Brabandt # Date 1536573607 -7200 # Node ID b178e2039b2d3422db027601d0561823efc9704e # Parent 0cda70849b92691a1781f164e91379a953d87c22 Update runtime files. commit https://github.com/vim/vim/commit/93a1df2c205c8399d96c172d9483e0793d32892a Author: Bram Moolenaar Date: Mon Sep 10 11:51:50 2018 +0200 Update runtime files. diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt --- 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: diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt --- 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'* diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt --- 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? ~ diff --git a/runtime/doc/tags b/runtime/doc/tags --- 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* diff --git a/runtime/doc/terminal.txt b/runtime/doc/terminal.txt --- 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. diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt --- 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// 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" 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. diff --git a/runtime/ftplugin/vim.vim b/runtime/ftplugin/vim.vim --- a/runtime/ftplugin/vim.vim +++ b/runtime/ftplugin/vim.vim @@ -67,10 +67,10 @@ if !exists("no_plugin_maps") && !exists( vnoremap [[ m':exe "normal! gv"call search('^\s*fu\%[nction]\>', "bW") nnoremap ]] m':call search('^\s*fu\%[nction]\>', "W") vnoremap ]] m':exe "normal! gv"call search('^\s*fu\%[nction]\>', "W") - nnoremap [] m':call search('^\s*endf*\%[unction]\>', "bW") - vnoremap [] m':exe "normal! gv"call search('^\s*endf*\%[unction]\>', "bW") - nnoremap ][ m':call search('^\s*endf*\%[unction]\>', "W") - vnoremap ][ m':exe "normal! gv"call search('^\s*endf*\%[unction]\>', "W") + nnoremap [] m':call search('^\s*endf\%[unction]\>', "bW") + vnoremap [] m':exe "normal! gv"call search('^\s*endf\%[unction]\>', "bW") + nnoremap ][ m':call search('^\s*endf\%[unction]\>', "W") + vnoremap ][ m':exe "normal! gv"call search('^\s*endf\%[unction]\>', "W") " Move around comments nnoremap ]" :call search('^\(\s*".*\n\)\@ @@ -87,8 +87,7 @@ if exists("loaded_matchit") \ '\<\(wh\%[ile]\|for\)\>:\:\:\,' . \ '\:\:\,' . \ '\:\:\:\,' . - \ '\\)\@!\S:\,' . - \ '(:)' + \ '\\)\@!\S:\,' " Ignore syntax region commands and settings, any 'en*' would clobber " if-endif. " - set spl=de,en diff --git a/runtime/syntax/sh.vim b/runtime/syntax/sh.vim --- 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 " Previous Maintainer: Lennart Schultz -" 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="\" matchgroup=shConditional end="\" contains=@shLoopList ShFoldIfDoFor syn region shIf transparent matchgroup=shConditional start="\+ end="\<;\_s*then\>" end="\" contains=@shIfList ShFoldIfDoFor syn region shFor matchgroup=shLoop start="\ -" 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' , '〉'], diff --git a/runtime/tutor/tutor.ru b/runtime/tutor/tutor.ru --- 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: diff --git a/runtime/tutor/tutor.ru.cp1251 b/runtime/tutor/tutor.ru.cp1251 --- 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: