To: vim_dev@googlegroups.com Subject: Patch 8.1.1280 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 8.1.1280 Problem: Remarks about functionality not in Vi clutters the help. Solution: Move all info about what is new in Vim or already existed in Vi to vi_diff.txt. Remove {not in Vi} remarks. (closes #4268) Add "noet" to the help files modeline. Also include many other help file improvements. Files: runtime/doc/vi_diff.txt, runtime/doc/arabic.txt, runtime/doc/autocmd.txt, runtime/doc/change.txt, runtime/doc/channel.txt, runtime/doc/cmdline.txt, runtime/doc/debugger.txt, runtime/doc/debug.txt, runtime/doc/develop.txt, runtime/doc/diff.txt, runtime/doc/digraph.txt, runtime/doc/editing.txt, runtime/doc/eval.txt, runtime/doc/farsi.txt, runtime/doc/filetype.txt, runtime/doc/fold.txt, runtime/doc/ft_ada.txt, runtime/doc/ft_rust.txt, runtime/doc/ft_sql.txt, runtime/doc/gui.txt, runtime/doc/gui_w32.txt, runtime/doc/gui_x11.txt, runtime/doc/hangulin.txt, runtime/doc/hebrew.txt, runtime/doc/helphelp.txt, runtime/doc/help.txt, runtime/doc/howto.txt, runtime/doc/if_cscop.txt, runtime/doc/if_lua.txt, runtime/doc/if_mzsch.txt, runtime/doc/if_ole.txt, runtime/doc/if_perl.txt, runtime/doc/if_pyth.txt, runtime/doc/if_ruby.txt, runtime/doc/if_sniff.txt, runtime/doc/if_tcl.txt, runtime/doc/indent.txt, runtime/doc/index.txt, runtime/doc/insert.txt, runtime/doc/intro.txt, runtime/doc/map.txt, runtime/doc/mbyte.txt, runtime/doc/message.txt, runtime/doc/mlang.txt, runtime/doc/motion.txt, runtime/doc/netbeans.txt, runtime/doc/options.txt, runtime/doc/os_390.txt, runtime/doc/os_amiga.txt, runtime/doc/os_beos.txt, runtime/doc/os_dos.txt, runtime/doc/os_mac.txt, runtime/doc/os_mint.txt, runtime/doc/os_msdos.txt, runtime/doc/os_os2.txt, runtime/doc/os_qnx.txt, runtime/doc/os_risc.txt, runtime/doc/os_unix.txt, runtime/doc/os_vms.txt, runtime/doc/os_win32.txt, runtime/doc/pattern.txt, runtime/doc/pi_getscript.txt, runtime/doc/pi_gzip.txt, runtime/doc/pi_logipat.txt, runtime/doc/pi_netrw.txt, runtime/doc/pi_paren.txt, runtime/doc/pi_spec.txt, runtime/doc/pi_tar.txt, runtime/doc/pi_vimball.txt, runtime/doc/pi_zip.txt, runtime/doc/print.txt, runtime/doc/quickfix.txt, runtime/doc/quickref.txt, runtime/doc/quotes.txt, runtime/doc/recover.txt, runtime/doc/remote.txt, runtime/doc/repeat.txt, runtime/doc/rileft.txt, runtime/doc/russian.txt, runtime/doc/scroll.txt, runtime/doc/sign.txt, runtime/doc/spell.txt, runtime/doc/sponsor.txt, runtime/doc/starting.txt, runtime/doc/syntax.txt, runtime/doc/tabpage.txt, runtime/doc/tagsrch.txt, runtime/doc/terminal.txt, runtime/doc/term.txt, runtime/doc/textprop.txt, runtime/doc/tips.txt, runtime/doc/todo.txt, runtime/doc/uganda.txt, runtime/doc/undo.txt, runtime/doc/usr_01.txt, runtime/doc/usr_02.txt, runtime/doc/usr_03.txt, runtime/doc/usr_04.txt, runtime/doc/usr_05.txt, runtime/doc/usr_06.txt, runtime/doc/usr_07.txt, runtime/doc/usr_08.txt, runtime/doc/usr_09.txt, runtime/doc/usr_10.txt, runtime/doc/usr_11.txt, runtime/doc/usr_12.txt, runtime/doc/usr_20.txt, runtime/doc/usr_21.txt, runtime/doc/usr_22.txt, runtime/doc/usr_23.txt, runtime/doc/usr_24.txt, runtime/doc/usr_25.txt, runtime/doc/usr_26.txt, runtime/doc/usr_27.txt, runtime/doc/usr_28.txt, runtime/doc/usr_29.txt, runtime/doc/usr_30.txt, runtime/doc/usr_31.txt, runtime/doc/usr_32.txt, runtime/doc/usr_40.txt, runtime/doc/usr_41.txt, runtime/doc/usr_43.txt, runtime/doc/usr_44.txt, runtime/doc/usr_45.txt, runtime/doc/usr_90.txt, runtime/doc/usr_toc.txt, runtime/doc/various.txt, runtime/doc/version4.txt, runtime/doc/version5.txt, runtime/doc/version6.txt, runtime/doc/version7.txt, runtime/doc/version8.txt, runtime/doc/visual.txt, runtime/doc/windows.txt, runtime/doc/tags *** ../vim-8.1.1279/runtime/doc/vi_diff.txt 2019-04-28 16:00:05.363613444 +0200 --- runtime/doc/vi_diff.txt 2019-05-05 18:01:22.684074302 +0200 *************** *** 1,4 **** ! *vi_diff.txt* For Vim version 8.1. Last change: 2016 Aug 16 VIM REFERENCE MANUAL by Bram Moolenaar --- 1,4 ---- ! *vi_diff.txt* For Vim version 8.1. Last change: 2019 May 05 VIM REFERENCE MANUAL by Bram Moolenaar *************** *** 6,14 **** Differences between Vim and Vi *vi-differences* ! Throughout the help files differences between Vim and Vi/Ex are given in ! curly braces, like "{not in Vi}". This file only lists what has not been ! mentioned in other files and gives an overview. Vim is mostly POSIX 1003.2-1 compliant. The only command known to be missing is ":open". There are probably a lot of small differences (either because Vim --- 6,13 ---- Differences between Vim and Vi *vi-differences* ! This file lists the differences between Vim and Vi/Ex and gives an overview of ! what is in Vim that is not in Vi. Vim is mostly POSIX 1003.2-1 compliant. The only command known to be missing is ":open". There are probably a lot of small differences (either because Vim *************** *** 180,185 **** --- 179,188 ---- line with tab labels can be used to quickly switch between these pages. |tab-page| + Terminal window. |:terminal| + Vim can create a window in which a terminal emulator runs. This can + be used to execute an arbitrary command, a shell or a debugger. + Syntax highlighting. |:syntax| Vim can highlight keywords, patterns and other things. This is defined by a number of |:syntax| commands, and can be made to *************** *** 194,199 **** --- 197,207 ---- |'hlsearch'|, matching parens |matchparen| and the cursor line and column |'cursorline'| |'cursorcolumn'|. + Text properties |textprop.txt| + Vim supports highlighting text by a plugin. Property types can be + specificed with |prop_type_add()| and properties can be placed with + |prop_add()|. + Spell checking. |spell| When the 'spell' option is set Vim will highlight spelling mistakes. About 50 languages are currently supported, selected with the *************** *** 262,267 **** --- 270,277 ---- ~ swap case u make lowercase U make uppercase + {Vi has no Visual mode, the name "visual" is used for Normal mode, to + distinguish it from Ex mode} Block operators. |visual-block| With Visual mode a rectangular block of text can be selected. Start *************** *** 522,527 **** --- 532,541 ---- The used tags are remembered. Commands that can be used with the tag stack are CTRL-T, ":pop" and ":tag". ":tags" lists the tag stack. + Vi uses 'wrapscan' when searching for a tag. When jumping to a tag Vi starts + searching in line 2 of another file. It does not find a tag in line 1 of + another file when 'wrapscan' is not set. + The 'tags' option can be set to a list of tag file names. Thus multiple tag files can be used. For file names that start with "./", the "./" is replaced with the path of the current file. This makes it possible to use a *************** *** 795,817 **** effect is of resetting 'compatible' and removing flags from 'cpoptions' can be found at the help for the specific command. ! Below is listed what features are present in Vi. Anything else has been added ! by Vim. - The following Ex commands are supported by Vi: ~ ! TODO ! `:set` but not `:set inv{option}`, `:set option&`, `:set all&`, ! `:set option+=value`, ! `:set option^=value` ! `:set option-=value` ! `:set option<` The following Normal mode commands are supported by Vi: ~ ! TODO The following options are supported by Vi: ~ --- 809,1039 ---- effect is of resetting 'compatible' and removing flags from 'cpoptions' can be found at the help for the specific command. ! The help files used to mark features that are in Vim but not in Vi with {not ! in Vi}. However, since these remarks cluttered the help files we now do it ! the other way around: Below is listed what Vi already supported. Anything ! else has been added by Vim. ! The following Ex commands are supported by Vi: ~ ! `:abbreviate` enter abbreviation ! `:append` append text ! `:args` print the argument list ! `:cd` change directory; Vi: no "cd -" ! `:change` replace a line or series of lines ! `:chdir` change directory ! `:copy` copy lines ! `:delete` delete lines ! `:edit` edit a file ! `:exit` same as ":xit" ! `:file` show or set the current file name; Vi: without the column number ! `:global` execute commands for matching lines ! `:insert` insert text ! `:join` join lines; Vi: not :join! ! `:k` set a mark ! `:list` print lines ! `:map` show or enter a mapping ! `:mark` set a mark ! `:move` move lines ! `:Next` go to previous file in the argument list; no count or ++opt ! `:next` go to next file in the argument list; no count or ++opt ! `:number` print lines with line number ! `:open` start open mode (not implemented in Vim) ! `:pop` jump to older entry in tag stack (only in some versions) ! `:preserve` write all text to swap file ! `:print` print lines ! `:put` insert contents of register in the text ! `:quit` quit Vi ! `:read` read file into the text ! `:recover` recover a file from a swap file ! `:rewind` go to the first file in the argument list; no ++opt ! `:set` set option; but not `:set inv{option}`, `:set option&`, ! `:set all&`, `:set option+=value`, `:set option^=value` ! `:set option-=value` `:set option<` ! `:shell` escape to a shell ! `:source` read Vim or Ex commands from a file ! `:stop` suspend the editor or escape to a shell ! `:substitute` find and replace text; Vi: no '&', 'i', 's', 'r' or 'I' flag, ! confirm prompt only supports 'y' and 'n', no highlighting ! `:suspend` same as ":stop" ! `:t` same as ":copy" ! `:tag` jump to tag ! `:unabbreviate` remove abbreviation ! `:undo` undo last change {Vi: only one level} ! `:unmap` remove mapping ! `:vglobal` execute commands for not matching lines ! `:version` print version number and other info ! `:visual` same as ":edit", but turns off "Ex" mode ! `:wq` write to a file and quit Vi ! `:write` write to a file ! `:xit` write if buffer changed and quit Vi ! `:yank` yank lines into a register ! `:z` print some lines {not in all versions of Vi} ! `:!` filter lines or execute an external command ! `:"` comment ! `:#` same as ":number" ! `:*` execute contents of a register ! `:&` repeat last ":substitute" ! `:<` shift lines one 'shiftwidth' left ! `:=` print the cursor line number ! `:>` shift lines one 'shiftwidth' right ! `:@` execute contents of a register; but not `:@`; `:@@` only in ! some versions The following Normal mode commands are supported by Vi: ~ ! |CTRL-B| scroll N screens Backwards ! |CTRL-C| interrupt current (search) command ! |CTRL-D| scroll Down N lines (default: half a screen); Vim scrolls ! 'scroll' screen lines, Vi scrolls file lines; makes a ! difference when lines wrap ! |CTRL-E| scroll N lines upwards (N lines Extra) ! |CTRL-F| scroll N screens Forward ! |CTRL-G| display current file name and position ! || same as "h" ! |CTRL-H| same as "h" ! || same as "j" ! |CTRL-J| same as "j" ! |CTRL-L| redraw screen ! || cursor to the first CHAR N lines lower ! |CTRL-M| same as ! |CTRL-N| same as "j" ! |CTRL-P| same as "k" ! |CTRL-R| in some Vi versions: same as CTRL-L ! |CTRL-T| jump to N older Tag in tag list ! |CTRL-U| N lines Upwards (default: half a screen) ! |CTRL-Y| scroll N lines downwards ! |CTRL-Z| suspend program (or start new shell) ! |CTRL-]| :ta to ident under cursor ! |CTRL-^| edit alternate file; Vi: no count ! || same as "l" ! |!| filter Nmove text through the {filter} command ! |!!| filter N lines through the {filter} command ! " use register {a-zA-Z0-9.%#:-"} for next delete, yank or put ! (uppercase to append) ({.%#:} only work with put) ! |$| cursor to the end of Nth next line ! |%| find the next (curly/square) bracket on this line and go to ! its match, or go to matching comment bracket, or go to ! matching preprocessor directive (Vi: no count supported) ! |&| repeat last :s ! |'| jump to mark (Vi: only lowercase marks) ! |(| cursor N sentences backward ! |)| cursor N sentences forward ! |+| same as ! |,| repeat latest f, t, F or T in opposite direction N times ! |-| cursor to the first CHAR N lines higher ! |.| repeat last change with count replaced with N ! |/| search forward for the Nth occurrence of {pattern} ! |0| cursor to the first char of the line ! |:| start entering an Ex command ! |;| repeat latest f, t, F or T N times ! |<| shift Nmove lines one 'shiftwidth' leftwards ! |<<| shift N lines one 'shiftwidth' leftwards ! |=| filter Nmove lines through "indent" ! |==| filter N lines through "indent" ! |>| shift Nmove lines one 'shiftwidth' rightwards ! |>>| shift N lines one 'shiftwidth' rightwards ! |?| search backward for the Nth previous occurrence of {pattern} ! |@| execute the contents of register {a-z} N times ! |@@| repeat the previous @{a-z} N times ! |A| append text after the end of the line N times ! |B| cursor N WORDS backward ! |C| change from the cursor position to the end of the line ! |D| delete the characters under the cursor until the end of the ! line and N-1 more lines [into register x]; synonym for "d$" ! |E| cursor forward to the end of WORD N ! |F| cursor to the Nth occurrence of {char} to the left ! |G| cursor to line N, default last line ! |H| cursor to line N from top of screen ! |I| insert text before the first CHAR on the line N times ! |J| Join N lines; default is 2 ! |L| cursor to line N from bottom of screen ! |M| cursor to middle line of screen ! |N| repeat the latest '/' or '?' N times in opposite direction ! |O| begin a new line above the cursor and insert text, repeat N ! times ! |P| put the text [from register x] before the cursor N times ! |Q| switch to "Ex" mode ! |R| enter replace mode: overtype existing characters, repeat the ! entered text N-1 times ! |S| delete N lines [into register x] and start insert; synonym for ! "cc". ! |T| cursor till after Nth occurrence of {char} to the left ! |U| undo all latest changes on one line ! |W| cursor N WORDS forward ! |X| delete N characters before the cursor [into register x] ! |Y| yank N lines [into register x]; synonym for "yy" ! |ZZ| store current file if modified, and exit ! |[[| cursor N sections backward ! |]]| cursor N sections forward ! |^| cursor to the first CHAR of the line ! |_| cursor to the first CHAR N - 1 lines lower ! |`| cursor to the mark {a-zA-Z0-9} ! |a| append text after the cursor N times ! |b| cursor N words backward ! |c| delete Nmove text [into register x] and start insert ! |cc| delete N lines [into register x] and start insert ! |d| delete Nmove text [into register x] ! |dd| delete N lines [into register x] ! |e| cursor forward to the end of word N ! |f| cursor to Nth occurrence of {char} to the right ! |h| cursor N chars to the left ! |i| insert text before the cursor N times ! |j| cursor N lines downward ! |k| cursor N lines upward ! |l| cursor N chars to the right ! |m| set mark {A-Za-z} at cursor position ! |n| repeat the latest '/' or '?' N times ! |o| begin a new line below the cursor and insert text ! |p| put the text [from register x] after the cursor N times ! |r| replace N chars with {char} ! |s| (substitute) delete N characters [into register x] and start ! insert ! |t| cursor till before Nth occurrence of {char} to the right ! |u| undo changes {Vi: only one level} ! |w| cursor N words forward ! |x| delete N characters under and after the cursor [into register ! x] ! |y| yank Nmove text [into register x] ! |yy| yank N lines [into register x] ! |z| current line to the top ! |z-| current line to the bottom ! |z+| cursor on line N ! |z^| cursor on line N ! |{| cursor N paragraphs backward ! | cursor to column N ! |}| cursor N paragraphs forward ! |~| switch case of N characters under the cursor; Vim: depends on ! 'tildeop' ! || same as "x" ! ! ! The following commands are supported in Insert mode by Vi: ~ ! ! CTRL-@ insert previously inserted text and stop insert ! CTRL-C quit insert mode, without checking for abbreviation, unless ! 'insertmode' set. ! CTRL-D delete one shiftwidth of indent in the current line ! delete character before the cursor ! CTRL-H same as ! insert a character ! CTRL-I same as ! same as ! CTRL-J same as ! begin new line ! CTRL-M same as ! CTRL-T insert one shiftwidth of indent in current line ! CTRL-V {char} insert next non-digit literally ! CTRL-W delete word before the cursor ! CTRL-Z when 'insertmode' set: suspend Vim ! end insert mode (unless 'insertmode' set) ! CTRL-[ same as ! 0 CTRL-D delete all indent in the current line ! ^ CTRL-D delete all indent in the current line, restore it in the next ! line ! delete character under the cursor The following options are supported by Vi: ~ *************** *** 849,859 **** --- 1071,1084 ---- 'term' name of the terminal 'terse' shorten some messages 'timeout' 'to' time out on mappings and key codes + 'timeoutlen' 'tm' time for 'timeout' {only in some Vi versions} 'ttytype' 'tty' alias for 'term' 'verbose' 'vbs' give informative messages {only in some Vi versions as a boolean option} 'warn' warn for shell command when buffer was changed 'window' 'wi' nr of lines to scroll for CTRL-F and CTRL-B + {Vi also uses the option to specify the number of + displayed lines} 'wrapmargin' 'wm' chars from the right where wrapping starts 'wrapscan' 'ws' searches wrap around the end of the file 'writeany' 'wa' write to file with no need for "!" override *************** *** 968,974 **** -i Elvis: Start each window in Insert mode. -i {viminfo} Vim: Use {viminfo} for viminfo file. ! -L Vim: Same as "-r" (also in some versions of Vi). -l Nvi, Vi, Vim: Set 'lisp' and 'showmatch' options. --- 1193,1200 ---- -i Elvis: Start each window in Insert mode. -i {viminfo} Vim: Use {viminfo} for viminfo file. ! -L Vim: Same as "-r" {only in some versions of Vi: "List ! recoverable edit sessions"}. -l Nvi, Vi, Vim: Set 'lisp' and 'showmatch' options. *** ../vim-8.1.1279/runtime/doc/arabic.txt 2018-05-17 13:40:51.000000000 +0200 --- runtime/doc/arabic.txt 2019-05-05 17:35:42.792578962 +0200 *************** *** 1,4 **** ! *arabic.txt* For Vim version 8.1. Last change: 2010 Nov 13 VIM REFERENCE MANUAL by Nadim Shaikli --- 1,4 ---- ! *arabic.txt* For Vim version 8.1. Last change: 2019 May 05 VIM REFERENCE MANUAL by Nadim Shaikli *************** *** 6,12 **** Arabic Language support (options & mappings) for Vim *Arabic* - {Vi does not have any of these commands} *E800* In order to use right-to-left and Arabic mapping support, it is --- 6,11 ---- *************** *** 319,322 **** No other bugs are known to exist. ! vim:tw=78:ts=8:ft=help:norl: --- 318,321 ---- No other bugs are known to exist. ! vim:tw=78:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/autocmd.txt 2019-04-27 20:36:52.526303597 +0200 --- runtime/doc/autocmd.txt 2019-05-05 17:35:49.508541837 +0200 *************** *** 1,10 **** ! *autocmd.txt* For Vim version 8.1. Last change: 2018 May 03 VIM REFERENCE MANUAL by Bram Moolenaar ! Automatic commands *autocommand* For a basic explanation, see section |40.3| in the user manual. --- 1,10 ---- ! *autocmd.txt* For Vim version 8.1. Last change: 2019 May 05 VIM REFERENCE MANUAL by Bram Moolenaar ! Automatic commands *autocommand* *autocommands* For a basic explanation, see section |40.3| in the user manual. *************** *** 20,26 **** 10. Using autocommands |autocmd-use| 11. Disabling autocommands |autocmd-disable| - {Vi does not have any of these commands} ============================================================================== 1. Introduction *autocmd-intro* --- 20,25 ---- *************** *** 308,313 **** --- 307,313 ---- |FileChangedShellPost| After handling a file changed since editing started |FileChangedRO| before making the first change to a read-only file + |DiffUpdated| after diffs have been updated |DirChanged| after the working directory has changed |ShellCmdPost| after executing a shell command *************** *** 317,322 **** --- 317,323 ---- |FuncUndefined| a user function is used but it isn't defined |SpellFileMissing| a spell file is used but it can't be found |SourcePre| before sourcing a Vim script + |SourcePost| after sourcing a Vim script |SourceCmd| before sourcing a Vim script |Cmd-event| |VimResized| after the Vim window size changed *************** *** 352,358 **** when popup menu is not visible |TextChangedP| after a change was made to the text in Insert mode when popup menu visible ! |TextYankPost| after text is yanked or deleted |ColorSchemePre| before loading a color scheme |ColorScheme| after loading a color scheme --- 353,359 ---- when popup menu is not visible |TextChangedP| after a change was made to the text in Insert mode when popup menu visible ! |TextYankPost| after text has been yanked or deleted |ColorSchemePre| before loading a color scheme |ColorScheme| after loading a color scheme *************** *** 585,591 **** recursively. Sets these |v:event| keys: ! completed_item height nr of items visible width screen cells row top screen row --- 586,592 ---- recursively. Sets these |v:event| keys: ! completed_item See |complete-items|. height nr of items visible width screen cells row top screen row *************** *** 642,647 **** --- 643,650 ---- Not triggered when there is typeahead or when an operator is pending. For an example see |match-parens|. + Note: This can not be skipped with + `:noautocmd`. Careful: This is triggered very often, don't do anything that the user does not expect or that is slow. *************** *** 782,794 **** Not triggered when 'shelltemp' is off. *FilterWritePost* FilterWritePost After writing a file for a filter command or ! making a diff. Vim checks the pattern against the name of the current buffer as with FilterWritePre. Not triggered when 'shelltemp' is off. *FilterWritePre* FilterWritePre Before writing a file for a filter command or ! making a diff. Vim checks the pattern against the name of the current buffer, not the name of the temporary file that is the output of the --- 785,798 ---- Not triggered when 'shelltemp' is off. *FilterWritePost* FilterWritePost After writing a file for a filter command or ! making a diff with an external diff (see ! DiffUpdated for internal diff). Vim checks the pattern against the name of the current buffer as with FilterWritePre. Not triggered when 'shelltemp' is off. *FilterWritePre* FilterWritePre Before writing a file for a filter command or ! making a diff with an external diff. Vim checks the pattern against the name of the current buffer, not the name of the temporary file that is the output of the *************** *** 889,894 **** --- 893,900 ---- plugin. You can always use `:noa` to prevent triggering this autocommand. + When using |:set| in the autocommand the event + is not triggered again. *QuickFixCmdPre* QuickFixCmdPre Before a quickfix command is run (|:make|, |:lmake|, |:grep|, |:lgrep|, |:grepadd|, *************** *** 1036,1045 **** anything else that takes time is involved. *TextChanged* TextChanged After a change was made to the text in the ! current buffer in Normal mode. That is when ! |b:changedtick| has changed. Not triggered when there is typeahead or when an operator is pending. Careful: This is triggered very often, don't do anything that the user does not expect or that is slow. --- 1042,1055 ---- anything else that takes time is involved. *TextChanged* TextChanged After a change was made to the text in the ! current buffer in Normal mode. That is after ! |b:changedtick| has changed (also when that ! happened before the TextChanged autocommand ! was defined). Not triggered when there is typeahead or when an operator is pending. + Note: This can not be skipped with + `:noautocmd`. Careful: This is triggered very often, don't do anything that the user does not expect or that is slow. *************** *** 1438,1444 **** In commands which expect a file name, you can use "" for the file name that is being read |:| (you can also use "%" for the current file name). "" can be used for the buffer number of the currently effective ! buffer. This also works for buffers that doesn't have a name. But it doesn't work for files without a buffer (e.g., with ":r file"). *gzip-example* --- 1448,1454 ---- In commands which expect a file name, you can use "" for the file name that is being read |:| (you can also use "%" for the current file name). "" can be used for the buffer number of the currently effective ! buffer. This also works for buffers that don't have a name. But it doesn't work for files without a buffer (e.g., with ":r file"). *gzip-example* *************** *** 1628,1632 **** This will write the file without triggering the autocommands defined by the gzip plugin. ! vim:tw=78:ts=8:ft=help:norl: --- 1638,1645 ---- This will write the file without triggering the autocommands defined by the gzip plugin. + Note that some autocommands are not triggered right away, but only later. + This specifically applies to |CursorMoved| and |TextChanged|. ! ! vim:tw=78:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/change.txt 2019-01-11 22:15:00.519123428 +0100 --- runtime/doc/change.txt 2019-05-05 17:36:05.556453071 +0200 *************** *** 1,4 **** ! *change.txt* For Vim version 8.1. Last change: 2018 May 12 VIM REFERENCE MANUAL by Bram Moolenaar --- 1,4 ---- ! *change.txt* For Vim version 8.1. Last change: 2019 May 05 VIM REFERENCE MANUAL by Bram Moolenaar *************** *** 34,40 **** deletes the last character of the count. See |:fixdel| if the key does not do what you want. See |'whichwrap'| for deleting a line break ! (join lines). {Vi does not support } *X* *dh* ["x]X Delete [count] characters before the cursor [into --- 34,40 ---- deletes the last character of the count. See |:fixdel| if the key does not do what you want. See |'whichwrap'| for deleting a line break ! (join lines). *X* *dh* ["x]X Delete [count] characters before the cursor [into *************** *** 59,65 **** {Visual}["x]x or *v_x* *v_d* *v_* {Visual}["x]d or {Visual}["x] Delete the highlighted text [into register x] (for ! {Visual} see |Visual-mode|). {not in Vi} {Visual}["x]CTRL-H or *v_CTRL-H* *v_* {Visual}["x] When in Select mode: Delete the highlighted text [into --- 59,65 ---- {Visual}["x]x or *v_x* *v_d* *v_* {Visual}["x]d or {Visual}["x] Delete the highlighted text [into register x] (for ! {Visual} see |Visual-mode|). {Visual}["x]CTRL-H or *v_CTRL-H* *v_* {Visual}["x] When in Select mode: Delete the highlighted text [into *************** *** 69,75 **** {Visual}["x]D Delete the highlighted lines [into register x] (for {Visual} see |Visual-mode|). In Visual block mode, "D" deletes the highlighted text plus all text until ! the end of the line. {not in Vi} *:d* *:de* *:del* *:delete* *:dl* *:dp* :[range]d[elete] [x] Delete [range] lines (default: current line) [into --- 69,75 ---- {Visual}["x]D Delete the highlighted lines [into register x] (for {Visual} see |Visual-mode|). In Visual block mode, "D" deletes the highlighted text plus all text until ! the end of the line. *:d* *:de* *:del* *:delete* *:dl* *:dp* :[range]d[elete] [x] Delete [range] lines (default: current line) [into *************** *** 116,131 **** *v_J* {Visual}J Join the highlighted lines, with a minimum of two lines. Remove the indent and insert up to two spaces ! (see below). {not in Vi} *gJ* gJ Join [count] lines, with a minimum of two lines. ! Don't insert or remove any spaces. {not in Vi} *v_gJ* {Visual}gJ Join the highlighted lines, with a minimum of two ! lines. Don't insert or remove any spaces. {not in ! Vi} *:j* *:join* :[range]j[oin][!] [flags] --- 116,130 ---- *v_J* {Visual}J Join the highlighted lines, with a minimum of two lines. Remove the indent and insert up to two spaces ! (see below). *gJ* gJ Join [count] lines, with a minimum of two lines. ! Don't insert or remove any spaces. *v_gJ* {Visual}gJ Join the highlighted lines, with a minimum of two ! lines. Don't insert or remove any spaces. *:j* *:join* :[range]j[oin][!] [flags] *************** *** 134,140 **** If a [range] has equal start and end values, this command does nothing. The default behavior is to join the current line with the line below it. - {not in Vi: !} See |ex-flags| for [flags]. :[range]j[oin][!] {count} [flags] --- 133,138 ---- *************** *** 142,148 **** current line |cmdline-ranges|). Same as "J", except with [!] the join does not insert or delete any spaces. - {not in Vi: !} See |ex-flags| for [flags]. These commands delete the between lines. This has the effect of joining --- 140,145 ---- *************** *** 209,216 **** {Visual}["x]c or *v_c* *v_s* {Visual}["x]s Delete the highlighted text [into register x] and ! start insert (for {Visual} see |Visual-mode|). {not ! in Vi} *v_r* {Visual}["x]r{char} Replace all selected characters by {char}. --- 206,212 ---- {Visual}["x]c or *v_c* *v_s* {Visual}["x]s Delete the highlighted text [into register x] and ! start insert (for {Visual} see |Visual-mode|). *v_r* {Visual}["x]r{char} Replace all selected characters by {char}. *************** *** 218,231 **** *v_C* {Visual}["x]C Delete the highlighted lines [into register x] and start insert. In Visual block mode it works ! differently |v_b_C|. {not in Vi} *v_S* {Visual}["x]S Delete the highlighted lines [into register x] and ! start insert (for {Visual} see |Visual-mode|). {not ! in Vi} *v_R* {Visual}["x]R Currently just like {Visual}["x]S. In a next version ! it might work differently. {not in Vi} Notes: - You can end Insert and Replace mode with . --- 214,226 ---- *v_C* {Visual}["x]C Delete the highlighted lines [into register x] and start insert. In Visual block mode it works ! differently |v_b_C|. *v_S* {Visual}["x]S Delete the highlighted lines [into register x] and ! start insert (for {Visual} see |Visual-mode|). *v_R* {Visual}["x]R Currently just like {Visual}["x]S. In a next version ! it might work differently. Notes: - You can end Insert and Replace mode with . *************** *** 322,342 **** tilde cannot be used as an operator} *g~* ! g~{motion} Switch case of {motion} text. {not in Vi} g~g~ *g~g~* *g~~* ! g~~ Switch case of current line. {not in Vi}. *v_~* {Visual}~ Switch case of highlighted text (for {Visual} see ! |Visual-mode|). {not in Vi} *v_U* {Visual}U Make highlighted text uppercase (for {Visual} see ! |Visual-mode|). {not in Vi} *gU* *uppercase* ! gU{motion} Make {motion} text uppercase. {not in Vi} Example: > :map! gUiw`]a < This works in Insert mode: press CTRL-F to make the --- 317,337 ---- tilde cannot be used as an operator} *g~* ! g~{motion} Switch case of {motion} text. g~g~ *g~g~* *g~~* ! g~~ Switch case of current line. *v_~* {Visual}~ Switch case of highlighted text (for {Visual} see ! |Visual-mode|). *v_U* {Visual}U Make highlighted text uppercase (for {Visual} see ! |Visual-mode|). *gU* *uppercase* ! gU{motion} Make {motion} text uppercase. Example: > :map! gUiw`]a < This works in Insert mode: press CTRL-F to make the *************** *** 345,371 **** gUgU *gUgU* *gUU* ! gUU Make current line uppercase. {not in Vi}. *v_u* {Visual}u Make highlighted text lowercase (for {Visual} see ! |Visual-mode|). {not in Vi} *gu* *lowercase* ! gu{motion} Make {motion} text lowercase. {not in Vi} gugu *gugu* *guu* ! guu Make current line lowercase. {not in Vi}. *g?* *rot13* ! g?{motion} Rot13 encode {motion} text. {not in Vi} *v_g?* {Visual}g? Rot13 encode the highlighted text (for {Visual} see ! |Visual-mode|). {not in Vi} g?g? *g?g?* *g??* ! g?? Rot13 encode current line. {not in Vi}. To turn one line into title caps, make every first letter of a word uppercase: > --- 340,366 ---- gUgU *gUgU* *gUU* ! gUU Make current line uppercase. *v_u* {Visual}u Make highlighted text lowercase (for {Visual} see ! |Visual-mode|). *gu* *lowercase* ! gu{motion} Make {motion} text lowercase. gugu *gugu* *guu* ! guu Make current line lowercase. *g?* *rot13* ! g?{motion} Rot13 encode {motion} text. *v_g?* {Visual}g? Rot13 encode the highlighted text (for {Visual} see ! |Visual-mode|). g?g? *g?g?* *g??* ! g?? Rot13 encode current line. To turn one line into title caps, make every first letter of a word uppercase: > *************** *** 375,392 **** Adding and subtracting ~ *CTRL-A* CTRL-A Add [count] to the number or alphabetic character at ! or after the cursor. {not in Vi} *v_CTRL-A* {Visual}CTRL-A Add [count] to the number or alphabetic character in ! the highlighted text. {not in Vi} *v_g_CTRL-A* {Visual}g CTRL-A Add [count] to the number or alphabetic character in the highlighted text. If several lines are highlighted, each one will be incremented by an additional [count] (so effectively creating a ! [count] incrementing sequence). {not in Vi} For Example, if you have this list of numbers: 1. ~ 1. ~ --- 370,387 ---- Adding and subtracting ~ *CTRL-A* CTRL-A Add [count] to the number or alphabetic character at ! or after the cursor. *v_CTRL-A* {Visual}CTRL-A Add [count] to the number or alphabetic character in ! the highlighted text. *v_g_CTRL-A* {Visual}g CTRL-A Add [count] to the number or alphabetic character in the highlighted text. If several lines are highlighted, each one will be incremented by an additional [count] (so effectively creating a ! [count] incrementing sequence). For Example, if you have this list of numbers: 1. ~ 1. ~ *************** *** 401,411 **** *CTRL-X* CTRL-X Subtract [count] from the number or alphabetic ! character at or after the cursor. {not in Vi} *v_CTRL-X* {Visual}CTRL-X Subtract [count] from the number or alphabetic ! character in the highlighted text. {not in Vi} On MS-Windows, this is mapped to cut Visual text |dos-standard-mappings|. If you want to disable the --- 396,406 ---- *CTRL-X* CTRL-X Subtract [count] from the number or alphabetic ! character at or after the cursor. *v_CTRL-X* {Visual}CTRL-X Subtract [count] from the number or alphabetic ! character in the highlighted text. On MS-Windows, this is mapped to cut Visual text |dos-standard-mappings|. If you want to disable the *************** *** 417,423 **** character in the highlighted text. If several lines are highlighted, each value will be decremented by an additional [count] (so effectively creating a [count] ! decrementing sequence). {not in Vi} The CTRL-A and CTRL-X commands can work for: - signed and unsigned decimal numbers --- 412,418 ---- character in the highlighted text. If several lines are highlighted, each value will be decremented by an additional [count] (so effectively creating a [count] ! decrementing sequence). The CTRL-A and CTRL-X commands can work for: - signed and unsigned decimal numbers *************** *** 485,492 **** *v_<* {Visual}[count]< Shift the highlighted lines [count] 'shiftwidth' ! leftwards (for {Visual} see |Visual-mode|). {not in ! Vi} *>* >{motion} Shift {motion} lines one 'shiftwidth' rightwards. --- 480,486 ---- *v_<* {Visual}[count]< Shift the highlighted lines [count] 'shiftwidth' ! leftwards (for {Visual} see |Visual-mode|). *>* >{motion} Shift {motion} lines one 'shiftwidth' rightwards. *************** *** 500,507 **** *v_>* {Visual}[count]> Shift the highlighted lines [count] 'shiftwidth' ! rightwards (for {Visual} see |Visual-mode|). {not in ! Vi} *:<* :[range]< Shift [range] lines one 'shiftwidth' left. Repeat '<' --- 494,500 ---- *v_>* {Visual}[count]> Shift the highlighted lines [count] 'shiftwidth' ! rightwards (for {Visual} see |Visual-mode|). *:<* :[range]< Shift [range] lines one 'shiftwidth' left. Repeat '<' *************** *** 512,518 **** Repeat '<' for shifting multiple 'shiftwidth's. :[range]le[ft] [indent] left align lines in [range]. Sets the indent in the ! lines to [indent] (default 0). {not in Vi} *:>* :[range]> [flags] Shift {count} [range] lines one 'shiftwidth' right. --- 505,511 ---- Repeat '<' for shifting multiple 'shiftwidth's. :[range]le[ft] [indent] left align lines in [range]. Sets the indent in the ! lines to [indent] (default 0). *:>* :[range]> [flags] Shift {count} [range] lines one 'shiftwidth' right. *************** *** 579,585 **** *v_!* {Visual}!{filter} Filter the highlighted lines through the external program {filter} (for {Visual} see |Visual-mode|). - {not in Vi} :{range}![!]{filter} [!][arg] *:range!* Filter {range} lines through the external program --- 572,577 ---- *************** *** 613,619 **** *v_=* {Visual}= Filter the highlighted lines like with ={motion}. - {not in Vi} *tempfile* *setuid* --- 605,610 ---- *************** *** 640,650 **** For the {pattern} see |pattern|. {string} can be a literal string, or something special; see |sub-replace-special|. - *E939* When [range] and [count] are omitted, replace in the current line only. When [count] is given, replace in [count] lines, starting with the last line in [range]. When [range] is omitted start in the current line. [count] must be a positive number. Also see |cmdline-ranges|. --- 631,641 ---- For the {pattern} see |pattern|. {string} can be a literal string, or something special; see |sub-replace-special|. When [range] and [count] are omitted, replace in the current line only. When [count] is given, replace in [count] lines, starting with the last line in [range]. When [range] is omitted start in the current line. + *E939* [count] must be a positive number. Also see |cmdline-ranges|. *************** *** 678,692 **** For example, when you first do a substitution with `:s/pattern/repl/flags` and then `/search` for something else, `g&` will do `:%s/search/repl/flags`. ! Mnemonic: global substitute. {not in Vi} *:snomagic* *:sno* :[range]sno[magic] ... Same as `:substitute`, but always use 'nomagic'. - {not in Vi} *:smagic* *:sm* :[range]sm[agic] ... Same as `:substitute`, but always use 'magic'. - {not in Vi} *:s_flags* The flags that you can use for the substitute commands: --- 669,681 ---- For example, when you first do a substitution with `:s/pattern/repl/flags` and then `/search` for something else, `g&` will do `:%s/search/repl/flags`. ! Mnemonic: global substitute. *:snomagic* *:sno* :[range]sno[magic] ... Same as `:substitute`, but always use 'nomagic'. *:smagic* *:sm* :[range]sm[agic] ... Same as `:substitute`, but always use 'magic'. *:s_flags* The flags that you can use for the substitute commands: *************** *** 697,703 **** :&& :s/this/that/& < Note that `:s` and `:&` don't keep the flags. - {not in Vi} [c] Confirm each substitution. Vim highlights the matching string (with |hl-IncSearch|). You can type: *:s_c* --- 686,691 ---- *************** *** 705,720 **** 'l' to substitute this match and then quit ("last") 'n' to skip this match to quit substituting ! 'a' to substitute this and all remaining matches {not in Vi} ! 'q' to quit substituting {not in Vi} ! CTRL-E to scroll the screen up {not in Vi, not available when ! compiled without the |+insert_expand| feature} ! CTRL-Y to scroll the screen down {not in Vi, not available when ! compiled without the |+insert_expand| feature} If the 'edcompatible' option is on, Vim remembers the [c] flag and toggles it each time you use it, but resets it when you give a new search pattern. - {not in Vi: highlighting of the match, other responses than 'y' or 'n'} *:s_e* [e] When the search pattern fails, do not issue an error message and, in --- 693,707 ---- 'l' to substitute this match and then quit ("last") 'n' to skip this match to quit substituting ! 'a' to substitute this and all remaining matches ! 'q' to quit substituting ! CTRL-E to scroll the screen up {not available when compiled ! without the |+insert_expand| feature} ! CTRL-Y to scroll the screen down {not available when compiled ! without the |+insert_expand| feature} If the 'edcompatible' option is on, Vim remembers the [c] flag and toggles it each time you use it, but resets it when you give a new search pattern. *:s_e* [e] When the search pattern fails, do not issue an error message and, in *************** *** 726,732 **** No previous substitute regular expression Trailing characters Interrupted - {not in Vi} *:s_g* [g] Replace all occurrences in the line. Without this argument, --- 713,718 ---- *************** *** 736,761 **** pattern. If the 'gdefault' option is on, this flag is on by default and the [g] argument switches it off. [i] Ignore case for the pattern. The 'ignorecase' and 'smartcase' options are not used. - {not in Vi} [I] Don't ignore case for the pattern. The 'ignorecase' and 'smartcase' options are not used. - {not in Vi} [n] Report the number of matches, do not actually substitute. The [c] flag is ignored. The matches are reported as if 'report' is zero. Useful to |count-items|. If \= |sub-replace-expression| is used, the expression will be evaluated in the |sandbox| at every match. ! [p] Print the line containing the last substitute. ! [#] Like [p] and prepend the line number. ! [l] Like [p] but print the text like |:list|. [r] Only useful in combination with `:&` or `:s` without arguments. `:&r` works the same way as `:~`: When the search pattern is empty, use the previously used search pattern instead of the search pattern from the --- 722,749 ---- pattern. If the 'gdefault' option is on, this flag is on by default and the [g] argument switches it off. + *:s_i* [i] Ignore case for the pattern. The 'ignorecase' and 'smartcase' options are not used. + *:s_I* [I] Don't ignore case for the pattern. The 'ignorecase' and 'smartcase' options are not used. + *:s_n* [n] Report the number of matches, do not actually substitute. The [c] flag is ignored. The matches are reported as if 'report' is zero. Useful to |count-items|. If \= |sub-replace-expression| is used, the expression will be evaluated in the |sandbox| at every match. ! [p] Print the line containing the last substitute. *:s_p* ! [#] Like [p] and prepend the line number. *:s_#* ! [l] Like [p] but print the text like |:list|. *:s_l* + *:s_r* [r] Only useful in combination with `:&` or `:s` without arguments. `:&r` works the same way as `:~`: When the search pattern is empty, use the previously used search pattern instead of the search pattern from the *************** *** 772,778 **** /green :& < The last command will replace "blue" with "red". - {not in Vi} Note that there is no flag to change the "magicness" of the pattern. A different command is used instead, or you can use |/\v| and friends. The --- 760,765 ---- *************** *** 854,860 **** - magic is always set without regard to 'magic'. - A ~ inserts a tilde literally. - and \r inserts a carriage-return (CTRL-M). ! - \ does not have a special meaning. it's just one of \x. Examples: > :s/a\|b/xxx\0xxx/g modifies "a b" to "xxxaxxx xxxbxxx" --- 841,847 ---- - magic is always set without regard to 'magic'. - A ~ inserts a tilde literally. - and \r inserts a carriage-return (CTRL-M). ! - \ does not have a special meaning. It's just one of \x. Examples: > :s/a\|b/xxx\0xxx/g modifies "a b" to "xxxaxxx xxxbxxx" *************** *** 940,948 **** breaks. Thus each item becomes a line, except that they can contain line breaks themselves. ! The whole matched text can be accessed with "submatch(0)". The text matched ! with the first pair of () with "submatch(1)". Likewise for further ! sub-matches in (). Be careful: The separation character must not appear in the expression! Consider using a character like "@" or ":". There is no problem if the result --- 927,935 ---- breaks. Thus each item becomes a line, except that they can contain line breaks themselves. ! The |submatch()| function can be used to obtain matched text. The whole ! matched text can be accessed with "submatch(0)". The text matched with the ! first pair of () with "submatch(1)". Likewise for further sub-matches in (). Be careful: The separation character must not appear in the expression! Consider using a character like "@" or ":". There is no problem if the result *************** *** 998,1004 **** a single tabstop. Each value in the list represents the width of one tabstop, except the final value which applies to all following tabstops. - {not in Vi} *retab-example* Example for using autocommands and ":retab" to edit a file which is stored --- 985,990 ---- *************** *** 1022,1038 **** :reg[isters] Display the contents of all numbered and named registers. If a register is written to for |:redir| it will not be listed. - {not in Vi} :reg[isters] {arg} Display the contents of the numbered and named registers that are mentioned in {arg}. For example: > :reg 1a < to display registers '1' and 'a'. Spaces are allowed ! in {arg}. {not in Vi} *:di* *:display* ! :di[splay] [arg] Same as :registers. {not in Vi} *y* *yank* ["x]y{motion} Yank {motion} text [into register x]. When no --- 1008,1023 ---- :reg[isters] Display the contents of all numbered and named registers. If a register is written to for |:redir| it will not be listed. :reg[isters] {arg} Display the contents of the numbered and named registers that are mentioned in {arg}. For example: > :reg 1a < to display registers '1' and 'a'. Spaces are allowed ! in {arg}. *:di* *:display* ! :di[splay] [arg] Same as :registers. *y* *yank* ["x]y{motion} Yank {motion} text [into register x]. When no *************** *** 1051,1061 **** *v_y* {Visual}["x]y Yank the highlighted text [into register x] (for ! {Visual} see |Visual-mode|). {not in Vi} *v_Y* {Visual}["x]Y Yank the highlighted lines [into register x] (for ! {Visual} see |Visual-mode|). {not in Vi} *:y* *:yank* *E850* :[range]y[ank] [x] Yank [range] lines [into register x]. Yanking to the --- 1036,1046 ---- *v_y* {Visual}["x]y Yank the highlighted text [into register x] (for ! {Visual} see |Visual-mode|). *v_Y* {Visual}["x]Y Yank the highlighted lines [into register x] (for ! {Visual} see |Visual-mode|). *:y* *:yank* *E850* :[range]y[ank] [x] Yank [range] lines [into register x]. Yanking to the *************** *** 1082,1088 **** Leaves the cursor at the end of the new text. Using the mouse only works when 'mouse' contains 'n' or 'a'. - {not in Vi} If you have a scrollwheel and often accidentally paste text, you can use these mappings to disable the pasting with the middle mouse button: > --- 1067,1072 ---- *************** *** 1093,1103 **** *gp* ["x]gp Just like "p", but leave the cursor just after the new ! text. {not in Vi} *gP* ["x]gP Just like "P", but leave the cursor just after the new ! text. {not in Vi} *:pu* *:put* :[line]pu[t] [x] Put the text [from register x] after [line] (default --- 1077,1087 ---- *gp* ["x]gp Just like "p", but leave the cursor just after the new ! text. *gP* ["x]gP Just like "P", but leave the cursor just after the new ! text. *:pu* *:put* :[line]pu[t] [x] Put the text [from register x] after [line] (default *************** *** 1125,1138 **** ["x]]p or *]p* *]* ["x]] Like "p", but adjust the indent to the current line. Using the mouse only works when 'mouse' contains 'n' ! or 'a'. {not in Vi} ["x][P or *[P* ["x]]P or *]P* ["x][p or *[p* *[* ["x][ Like "P", but adjust the indent to the current line. Using the mouse only works when 'mouse' contains 'n' ! or 'a'. {not in Vi} You can use these commands to copy text from one place to another. Do this by first getting the text into a register with a yank, delete or change --- 1109,1122 ---- ["x]]p or *]p* *]* ["x]] Like "p", but adjust the indent to the current line. Using the mouse only works when 'mouse' contains 'n' ! or 'a'. ["x][P or *[P* ["x]]P or *]P* ["x][p or *[p* *[* ["x][ Like "P", but adjust the indent to the current line. Using the mouse only works when 'mouse' contains 'n' ! or 'a'. You can use these commands to copy text from one place to another. Do this by first getting the text into a register with a yank, delete or change *************** *** 1242,1248 **** 3. Small delete register "- *quote_-* *quote-* This register contains text from commands that delete less than one line, except when the command specifies a register with ["x]. - {not in Vi} 4. Named registers "a to "z or "A to "Z *quote_alpha* *quotea* Vim fills these registers only when you say so. Specify them as lowercase --- 1226,1231 ---- *************** *** 1252,1258 **** 5. Read-only registers ":, ". and "% These are '%', '#', ':' and '.'. You can use them only with the "p", "P", ! and ":put" commands and with CTRL-R. {not in Vi} *quote_.* *quote.* *E29* ". Contains the last inserted text (the same as what is inserted with the insert mode commands CTRL-A and CTRL-@). Note: this --- 1235,1241 ---- 5. Read-only registers ":, ". and "% These are '%', '#', ':' and '.'. You can use them only with the "p", "P", ! and ":put" commands and with CTRL-R. *quote_.* *quote.* *E29* ". Contains the last inserted text (the same as what is inserted with the insert mode commands CTRL-A and CTRL-@). Note: this *************** *** 1306,1318 **** If the "= register is used for the "p" command, the String is split up at characters. If the String ends in a , it is regarded as a linewise ! register. {not in Vi} 8. Selection and drop registers "*, "+ and "~ Use these registers for storing and retrieving the selected text for the GUI. See |quotestar| and |quoteplus|. When the clipboard is not available or not working, the unnamed register is used instead. For Unix systems the clipboard ! is only available when the |+xterm_clipboard| feature is present. {not in Vi} Note that there is only a distinction between "* and "+ for X11 systems. For an explanation of the difference, see |x11-selection|. Under MS-Windows, use --- 1289,1301 ---- If the "= register is used for the "p" command, the String is split up at characters. If the String ends in a , it is regarded as a linewise ! register. 8. Selection and drop registers "*, "+ and "~ Use these registers for storing and retrieving the selected text for the GUI. See |quotestar| and |quoteplus|. When the clipboard is not available or not working, the unnamed register is used instead. For Unix systems the clipboard ! is only available when the |+xterm_clipboard| feature is present. Note that there is only a distinction between "* and "+ for X11 systems. For an explanation of the difference, see |x11-selection|. Under MS-Windows, use *************** *** 1323,1329 **** operation. When something has been dropped onto Vim, the "~ register is filled in and the pseudo key is sent for notification. You can remap this key if you want; the default action (for all modes) is to insert the ! contents of the "~ register at the cursor position. {not in Vi} {only available when compiled with the |+dnd| feature, currently only with the GTK GUI} --- 1306,1312 ---- operation. When something has been dropped onto Vim, the "~ register is filled in and the pseudo key is sent for notification. You can remap this key if you want; the default action (for all modes) is to insert the ! contents of the "~ register at the cursor position. {only available when compiled with the |+dnd| feature, currently only with the GTK GUI} *************** *** 1333,1339 **** 9. Black hole register "_ *quote_* When writing to this register, nothing happens. This can be used to delete text without affecting the normal registers. When reading from this register, ! nothing is returned. {not in Vi} 10. Last search pattern register "/ *quote_/* *quote/* Contains the most recent search-pattern. This is used for "n" and 'hlsearch'. --- 1316,1322 ---- 9. Black hole register "_ *quote_* When writing to this register, nothing happens. This can be used to delete text without affecting the normal registers. When reading from this register, ! nothing is returned. 10. Last search pattern register "/ *quote_/* *quote/* Contains the most recent search-pattern. This is used for "n" and 'hlsearch'. *************** *** 1342,1348 **** register. The search direction is available in |v:searchforward|. Note that the value is restored when returning from a function |function-search-undo|. - {not in Vi} *@/* You can write to a register with a `:let` command |:let-@|. Example: > --- 1325,1330 ---- *************** *** 1373,1389 **** :[range]ce[nter] [width] *:ce* *:center* Center lines in [range] between [width] columns (default 'textwidth' or 80 when 'textwidth' is 0). - {not in Vi} :[range]ri[ght] [width] *:ri* *:right* Right-align lines in [range] at [width] columns (default 'textwidth' or 80 when 'textwidth' is 0). - {not in Vi} *:le* *:left* :[range]le[ft] [indent] Left-align lines in [range]. Sets the indent in the ! lines to [indent] (default 0). {not in Vi} *gq* gq{motion} Format the lines that {motion} moves over. --- 1355,1369 ---- :[range]ce[nter] [width] *:ce* *:center* Center lines in [range] between [width] columns (default 'textwidth' or 80 when 'textwidth' is 0). :[range]ri[ght] [width] *:ri* *:right* Right-align lines in [range] at [width] columns (default 'textwidth' or 80 when 'textwidth' is 0). *:le* *:left* :[range]le[ft] [indent] Left-align lines in [range]. Sets the indent in the ! lines to [indent] (default 0). *gq* gq{motion} Format the lines that {motion} moves over. *************** *** 1410,1433 **** gqgq *gqgq* *gqq* gqq Format the current line. With a count format that ! many lines. {not in Vi} *v_gq* {Visual}gq Format the highlighted text. (for {Visual} see ! |Visual-mode|). {not in Vi} *gw* gw{motion} Format the lines that {motion} moves over. Similar to |gq| but puts the cursor back at the same position in the text. However, 'formatprg' and 'formatexpr' are ! not used. {not in Vi} gwgw *gwgw* *gww* ! gww Format the current line as with "gw". {not in Vi} *v_gw* {Visual}gw Format the highlighted text as with "gw". (for ! {Visual} see |Visual-mode|). {not in Vi} Example: To format the current paragraph use: *gqap* > gqap --- 1390,1413 ---- gqgq *gqgq* *gqq* gqq Format the current line. With a count format that ! many lines. *v_gq* {Visual}gq Format the highlighted text. (for {Visual} see ! |Visual-mode|). *gw* gw{motion} Format the lines that {motion} moves over. Similar to |gq| but puts the cursor back at the same position in the text. However, 'formatprg' and 'formatexpr' are ! not used. gwgw *gwgw* *gww* ! gww Format the current line as with "gw". *v_gw* {Visual}gw Format the highlighted text as with "gw". (for ! {Visual} see |Visual-mode|). Example: To format the current paragraph use: *gqap* > gqap *************** *** 1457,1463 **** program. *format-formatexpr* ! The 'formatexpr' option can be set to a Vim Script function that performs reformatting of the buffer. This should usually happen in an |ftplugin|, since formatting is highly dependent on the type of file. It makes sense to use an |autoload| script, so the corresponding script is only loaded --- 1437,1443 ---- program. *format-formatexpr* ! The 'formatexpr' option can be set to a Vim script function that performs reformatting of the buffer. This should usually happen in an |ftplugin|, since formatting is highly dependent on the type of file. It makes sense to use an |autoload| script, so the corresponding script is only loaded *************** *** 1491,1497 **** You can then enable the formatting by executing: > setlocal formatexpr=format#Format() ! > Note: this function explicitly returns non-zero when called from insert mode (which basically means, text is inserted beyond the 'textwidth' limit). This causes Vim to fall back to reformat the text by using the internal formatter. --- 1471,1477 ---- You can then enable the formatting by executing: > setlocal formatexpr=format#Format() ! Note: this function explicitly returns non-zero when called from insert mode (which basically means, text is inserted beyond the 'textwidth' limit). This causes Vim to fall back to reformat the text by using the internal formatter. *************** *** 1901,1904 **** process you may end up with duplicated lines. This also depends on the system library function used. ! vim:tw=78:ts=8:ft=help:norl: --- 1881,1884 ---- process you may end up with duplicated lines. This also depends on the system library function used. ! vim:tw=78:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/channel.txt 2018-09-06 16:27:20.664831945 +0200 --- runtime/doc/channel.txt 2019-05-05 17:36:27.876329529 +0200 *************** *** 1,4 **** ! *channel.txt* For Vim version 8.1. Last change: 2018 Apr 18 VIM REFERENCE MANUAL by Bram Moolenaar --- 1,4 ---- ! *channel.txt* For Vim version 8.1. Last change: 2019 May 05 VIM REFERENCE MANUAL by Bram Moolenaar *************** *** 24,30 **** 11. Controlling a job |job-control| 12. Using a prompt buffer |prompt-buffer| - {Vi does not have any of these features} {only when compiled with the |+channel| feature for channel stuff} You can check this with: `has('channel')` {only when compiled with the |+job| feature for job stuff} --- 24,29 ---- *************** *** 308,316 **** Command "redraw" ~ ! The other commands do not update the screen, so that you can send a sequence ! of commands without the cursor moving around. You must end with the "redraw" ! command to show any changed text and show the cursor where it belongs. The argument is normally an empty string: ["redraw", ""] ~ --- 307,316 ---- Command "redraw" ~ ! The other commands do not explicitly update the screen, so that you can send a ! sequence of commands without the cursor moving around. A redraw can happen as ! a side effect of some commands. You must end with the "redraw" command to ! show any changed text and show the cursor where it belongs. The argument is normally an empty string: ["redraw", ""] ~ *************** *** 820,827 **** The user can go to Normal mode and navigate through the buffer. This can be useful see older output or copy text. Any command that starts Insert mode, such as "a", "i", "A" and "I", will move ! the cursor to the last line, after the prompt. ! vim:tw=78:ts=8:ft=help:norl: --- 820,833 ---- The user can go to Normal mode and navigate through the buffer. This can be useful see older output or copy text. + The CTRL-W key can be used to start a window command, such as CTRL-W w to + switch to the next window. This also works in Insert mode (use Shift-CTRL-W + to delete a word). When leaving the window Insert mode will be stopped. When + coming back to the prompt window Insert mode will be restored. + Any command that starts Insert mode, such as "a", "i", "A" and "I", will move ! the cursor to the last line. "A" will move to the end of the line, "I" to the ! start of the line. ! vim:tw=78:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/cmdline.txt 2018-09-10 21:04:09.860392752 +0200 --- runtime/doc/cmdline.txt 2019-05-05 17:32:09.689749856 +0200 *************** *** 1,4 **** ! *cmdline.txt* For Vim version 8.1. Last change: 2018 May 14 VIM REFERENCE MANUAL by Bram Moolenaar --- 1,4 ---- ! *cmdline.txt* For Vim version 8.1. Last change: 2019 May 05 VIM REFERENCE MANUAL by Bram Moolenaar *************** *** 66,72 **** - All searches are put in the search history, including the ones that come from commands like "*" and "#". But for a mapping, only the last search is remembered (to avoid that long mappings trash the history). - {Vi: no history} {not available when compiled without the |+cmdline_hist| feature} There is an automatic completion of names on the command-line; see --- 66,71 ---- *************** *** 124,135 **** :cnoremap < *c_* *c_Insert* ! Toggle between insert and overstrike. {not in Vi} {char1} {char2} or *c_digraph* CTRL-K {char1} {char2} *c_CTRL-K* enter digraph (see |digraphs|). When {char1} is a special ! key, the code for that key is inserted in <> form. {not in Vi} CTRL-R {0-9a-z"%#:-=.} *c_CTRL-R* *c_* Insert the contents of a numbered or named register. Between --- 123,134 ---- :cnoremap < *c_* *c_Insert* ! Toggle between insert and overstrike. {char1} {char2} or *c_digraph* CTRL-K {char1} {char2} *c_CTRL-K* enter digraph (see |digraphs|). When {char1} is a special ! key, the code for that key is inserted in <> form. CTRL-R {0-9a-z"%#:-=.} *c_CTRL-R* *c_* Insert the contents of a numbered or named register. Between *************** *** 165,171 **** too. When the result is a Float it's automatically converted to a String. ! See |registers| about registers. {not in Vi} Implementation detail: When using the |expression| register and invoking setcmdpos(), this sets the position before inserting the resulting string. Use CTRL-R CTRL-R to set the --- 164,170 ---- too. When the result is a Float it's automatically converted to a String. ! See |registers| about registers. Implementation detail: When using the |expression| register and invoking setcmdpos(), this sets the position before inserting the resulting string. Use CTRL-R CTRL-R to set the *************** *** 188,194 **** currently displayed match is used. With CTRL-W the part of the word that was already typed is not inserted again. - {not in Vi} CTRL-F and CTRL-P: {only when |+file_in_path| feature is included} --- 187,192 ---- *************** *** 313,323 **** off, since you are expected to type a command. After switching it on with CTRL-^, the new state is not used again for the next command or Search pattern. - {not in Vi} *c_CTRL-]* ! CTRL-] Trigger abbreviation, without inserting a character. {not in ! Vi} For Emacs-style editing on the command-line see |emacs-keys|. --- 311,319 ---- off, since you are expected to type a command. After switching it on with CTRL-^, the new state is not used again for the next command or Search pattern. *c_CTRL-]* ! CTRL-] Trigger abbreviation, without inserting a character. For Emacs-style editing on the command-line see |emacs-keys|. *************** *** 332,338 **** *:his* *:history* :his[tory] Print the history of last entered commands. - {not in Vi} {not available when compiled without the |+cmdline_hist| feature} --- 328,333 ---- *************** *** 344,350 **** i[nput] or @ input line history d[ebug] or > debug command history a[ll] all of the above - {not in Vi} If the numbers {first} and/or {last} are given, the respective range of entries from a history is listed. These numbers can --- 339,344 ---- *************** *** 534,541 **** to add comments. Example: > :set ai "set 'autoindent' option It is not possible to add a comment to a shell command ":!cmd" or to the ! ":map" command and a few others, because they see the '"' as part of their ! argument. This is mentioned where the command is explained. *:bar* *:\bar* '|' can be used to separate commands, so you can give multiple commands in one --- 528,572 ---- to add comments. Example: > :set ai "set 'autoindent' option It is not possible to add a comment to a shell command ":!cmd" or to the ! ":map" command and a few others (mainly commands that expect expressions) ! that see the '"' as part of their argument: ! ! :argdo ! :autocmd ! :bufdo ! :cexpr (and the like) ! :cdo (and the like) ! :command ! :cscope (and the like) ! :debug ! :display ! :echo (and the like) ! :elseif ! :execute ! :folddoopen ! :folddoclosed ! :for ! :grep (and the like) ! :help (and the like) ! :if ! :let ! :make ! :map (and the like including :abbrev commands) ! :menu (and the like) ! :mkspell ! :normal ! :ownsyntax ! :popup ! :promptfind (and the like) ! :registers ! :return ! :sort ! :syntax ! :tabdo ! :tearoff ! :vimgrep (and the like) ! :while ! :windo *:bar* *:\bar* '|' can be used to separate commands, so you can give multiple commands in one *************** *** 899,905 **** directory. :. Reduce file name to be relative to current directory, if possible. File name is unmodified if it is not below the ! current directory. For maximum shortness, use ":~:.". :h Head of the file name (the last component and any separators removed). Cannot be used with :e, :r or :t. --- 930,937 ---- directory. :. Reduce file name to be relative to current directory, if possible. File name is unmodified if it is not below the ! current directory, but on MS-Windows the drive is removed if ! it is the current drive. For maximum shortness, use ":~:.". :h Head of the file name (the last component and any separators removed). Cannot be used with :e, :r or :t. *************** *** 1168,1171 **** @ string for |input()| - text for |:insert| or |:append| ! vim:tw=78:ts=8:ft=help:norl: --- 1200,1203 ---- @ string for |input()| - text for |:insert| or |:append| ! vim:tw=78:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/debugger.txt 2018-05-17 13:40:51.000000000 +0200 --- runtime/doc/debugger.txt 2019-05-05 17:39:30.515314777 +0200 *************** *** 1,4 **** ! *debugger.txt* For Vim version 8.1. Last change: 2017 Nov 21 VIM REFERENCE MANUAL by Gordon Prieur --- 1,4 ---- ! *debugger.txt* For Vim version 8.1. Last change: 2019 May 05 VIM REFERENCE MANUAL by Gordon Prieur *************** *** 10,16 **** 2. Vim Compile Options |debugger-compilation| 3. Integrated Debuggers |debugger-integration| - {Vi does not have any of these features} ============================================================================== 1. Debugger Features *debugger-features* --- 10,15 ---- *************** *** 139,142 **** For Sun NetBeans support see |netbeans|. ! vim:tw=78:sw=4:ts=8:ft=help:norl: --- 138,141 ---- For Sun NetBeans support see |netbeans|. ! vim:tw=78:sw=4:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/debug.txt 2018-05-17 13:40:51.000000000 +0200 --- runtime/doc/debug.txt 2018-07-29 14:23:36.355157624 +0200 *************** *** 172,175 **** http://msdn.microsoft.com/vstudio/express/visualC/default.aspx ========================================================================= ! vim:tw=78:ts=8:ft=help:norl: --- 172,175 ---- http://msdn.microsoft.com/vstudio/express/visualC/default.aspx ========================================================================= ! vim:tw=78:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/develop.txt 2018-05-17 13:40:51.000000000 +0200 --- runtime/doc/develop.txt 2019-02-17 17:26:56.181603202 +0100 *************** *** 1,4 **** ! *develop.txt* For Vim version 8.1. Last change: 2018 May 02 VIM REFERENCE MANUAL by Bram Moolenaar --- 1,4 ---- ! *develop.txt* For Vim version 8.1. Last change: 2019 Feb 17 VIM REFERENCE MANUAL by Bram Moolenaar *************** *** 355,360 **** --- 355,378 ---- cmd; } + When a block has one line the braces can be left out. When an if/else has + braces on one block, it usually looks better when the other block also has + braces: + OK: if (cond) + cmd; + else + cmd; + + OK: if (cond) + { + cmd; + } + else + { + cmd; + cmd; + } + Use ANSI (new style) function declarations with the return type on a separate indented line. *************** *** 367,376 **** */ int function_name( ! int arg1, /* short comment about arg1 */ ! int arg2) /* short comment about arg2 */ { ! int local; /* comment about local */ local = arg1 * arg2; --- 385,394 ---- */ int function_name( ! int arg1, // short comment about arg1 ! int arg2) // short comment about arg2 { ! int local; // comment about local local = arg1 * arg2; *************** *** 563,566 **** Note that some compilers cannot handle long lines or strings. The C89 standard specifies a limit of 509 characters. ! vim:tw=78:ts=8:ft=help:norl: --- 581,584 ---- Note that some compilers cannot handle long lines or strings. The C89 standard specifies a limit of 509 characters. ! vim:tw=78:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/diff.txt 2018-09-10 17:50:32.709306979 +0200 --- runtime/doc/diff.txt 2019-05-04 22:37:03.397001141 +0200 *************** *** 1,4 **** ! *diff.txt* For Vim version 8.1. Last change: 2017 Oct 03 VIM REFERENCE MANUAL by Bram Moolenaar --- 1,4 ---- ! *diff.txt* For Vim version 8.1. Last change: 2019 May 04 VIM REFERENCE MANUAL by Bram Moolenaar *************** *** 16,23 **** 4. Copying diffs |copy-diffs| 5. Diff options |diff-options| - {not in Vi} - ============================================================================== 1. Starting diff mode *start-vimdiff* --- 16,21 ---- *************** *** 179,186 **** need another buffer. This command is useful: > command DiffOrig vert new | set bt=nofile | r ++edit # | 0d_ \ | diffthis | wincmd p | diffthis ! (this is in |vimrc_example.vim|). Use ":DiffOrig" to see the differences ! between the current buffer and the file it was loaded from. A buffer that is unloaded cannot be used for the diff. But it does work for hidden buffers. You can use ":hide" to close a window without unloading the --- 177,184 ---- need another buffer. This command is useful: > command DiffOrig vert new | set bt=nofile | r ++edit # | 0d_ \ | diffthis | wincmd p | diffthis ! (this is in |defaults.vim|). Use ":DiffOrig" to see the differences between ! the current buffer and the file it was loaded from. A buffer that is unloaded cannot be used for the diff. But it does work for hidden buffers. You can use ":hide" to close a window without unloading the *** ../vim-8.1.1279/runtime/doc/digraph.txt 2018-12-14 18:52:57.169528762 +0100 --- runtime/doc/digraph.txt 2019-05-05 17:39:34.763291093 +0200 *************** *** 1,4 **** ! *digraph.txt* For Vim version 8.1. Last change: 2016 Nov 04 VIM REFERENCE MANUAL by Bram Moolenaar --- 1,4 ---- ! *digraph.txt* For Vim version 8.1. Last change: 2019 May 05 VIM REFERENCE MANUAL by Bram Moolenaar *************** *** 18,24 **** 2. Using digraphs |digraphs-use| 3. Default digraphs |digraphs-default| - {Vi does not have any of these commands} ============================================================================== 1. Defining digraphs *digraphs-define* --- 18,23 ---- *************** *** 59,76 **** "10". That's because NUL characters are internally represented with a NL character. When you write the file it will become a NUL character. ! When Vim was compiled without the |+multi_byte| feature, you need to specify ! the character in the encoding given with 'encoding'. You might want to use ! something like this: > ! ! if has("multi_byte") ! digraph oe 339 ! elseif &encoding == "iso-8859-15" ! digraph oe 189 ! endif ! ! This defines the "oe" digraph for a character that is number 339 in Unicode ! and 189 in latin9 (iso-8859-15). ============================================================================== 2. Using digraphs *digraphs-use* --- 58,66 ---- "10". That's because NUL characters are internally represented with a NL character. When you write the file it will become a NUL character. ! Example: > ! digraph oe 339 ! This defines the "oe" digraph for a character that is number 339 in Unicode. ============================================================================== 2. Using digraphs *digraphs-use* *************** *** 113,123 **** You may have problems using Vim with characters which have a value above 128. For example: You insert ue (u-umlaut) and the editor echoes \334 in Insert ! mode. After leaving the Insert mode everything is fine. Note that fmt ! removes all characters with a value above 128 from the text being formatted. ! On some Unix systems this means you have to define the environment-variable ! LC_CTYPE. If you are using csh, then put the following line in your .cshrc: > ! setenv LC_CTYPE iso_8859_1 ============================================================================== 3. Default digraphs *digraphs-default* --- 103,116 ---- You may have problems using Vim with characters which have a value above 128. For example: You insert ue (u-umlaut) and the editor echoes \334 in Insert ! mode. After leaving the Insert mode everything is fine. On some Unix systems ! this means you have to define the environment-variable LC_CTYPE. If you are ! using csh, then put the following line in your .cshrc: > ! setenv LC_CTYPE en_US.utf8 ! (or similar for a different language or country). The value must be a valid ! locale on your system, i.e. on Unix-like systems it must be present in the ! output of > ! locale -a ============================================================================== 3. Default digraphs *digraphs-default* *************** *** 161,168 **** Example: a: is ä and o: is ö These are the RFC1345 digraphs for the one-byte characters. See the output of ! ":digraphs" for the others. The characters above 255 are only available when ! Vim was compiled with the |+multi_byte| feature. EURO --- 154,160 ---- Example: a: is ä and o: is ö These are the RFC1345 digraphs for the one-byte characters. See the output of ! ":digraphs" for the others. EURO *************** *** 1490,1493 **** ſt ft FB05 64261 LATIN SMALL LIGATURE LONG S T st st FB06 64262 LATIN SMALL LIGATURE ST ! vim:tw=78:ts=8:ft=help:norl: --- 1482,1485 ---- ſt ft FB05 64261 LATIN SMALL LIGATURE LONG S T st st FB06 64262 LATIN SMALL LIGATURE ST ! vim:tw=78:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/editing.txt 2019-04-27 20:36:52.526303597 +0200 --- runtime/doc/editing.txt 2019-05-05 17:40:01.711140762 +0200 *************** *** 1,4 **** ! *editing.txt* For Vim version 8.1. Last change: 2018 Mar 29 VIM REFERENCE MANUAL by Bram Moolenaar --- 1,4 ---- ! *editing.txt* For Vim version 8.1. Last change: 2019 May 05 VIM REFERENCE MANUAL by Bram Moolenaar *************** *** 44,50 **** :keepalt {cmd} Execute {cmd} while keeping the current alternate file name. Note that commands invoked indirectly (e.g., with a function) may still set the alternate file ! name. {not in Vi} All file names are remembered in the buffer list. When you enter a file name, for editing (e.g., with ":e filename") or writing (e.g., with ":w filename"), --- 44,50 ---- :keepalt {cmd} Execute {cmd} while keeping the current alternate file name. Note that commands invoked indirectly (e.g., with a function) may still set the alternate file ! name. All file names are remembered in the buffer list. When you enter a file name, for editing (e.g., with ":e filename") or writing (e.g., with ":w filename"), *************** *** 60,73 **** option is set), and the file status (readonly, modified, read errors, new file). See the 'shortmess' option about how to make this message shorter. - {Vi does not include column number} :f[ile]! like |:file|, but don't truncate the name even when 'shortmess' indicates this. {count}CTRL-G Like CTRL-G, but prints the current file name with full path. If the count is higher than 1 the current ! buffer number is also given. {not in Vi} *g_CTRL-G* *word-count* *byte-count* g CTRL-G Prints the current position of the cursor in five --- 60,72 ---- option is set), and the file status (readonly, modified, read errors, new file). See the 'shortmess' option about how to make this message shorter. :f[ile]! like |:file|, but don't truncate the name even when 'shortmess' indicates this. {count}CTRL-G Like CTRL-G, but prints the current file name with full path. If the count is higher than 1 the current ! buffer number is also given. *g_CTRL-G* *word-count* *byte-count* g CTRL-G Prints the current position of the cursor in five *************** *** 80,86 **** column are shown, separated with a dash. Also see the 'ruler' option and the |wordcount()| function. - {not in Vi} *v_g_CTRL-G* {Visual}g CTRL-G Similar to "g CTRL-G", but Word, Character, Line, and --- 79,84 ---- *************** *** 88,94 **** displayed. In Blockwise mode, Column count is also shown. (For {Visual} see |Visual-mode|.) - {not in VI} *:file_f* :f[ile][!] {name} Sets the current file name to {name}. The optional ! --- 86,91 ---- *************** *** 98,111 **** to hold the old name. *:0file* :0f[ile][!] Remove the name of the current buffer. The optional ! ! avoids truncating the message, as with |:file|. {not ! in Vi} :buffers :files :ls List all the currently known file names. See ! 'windows.txt' |:files| |:buffers| |:ls|. {not in ! Vi} Vim will remember the full path name of a file name that you enter. In most cases when the file name is displayed only the name you typed is shown, but --- 95,106 ---- to hold the old name. *:0file* :0f[ile][!] Remove the name of the current buffer. The optional ! ! avoids truncating the message, as with |:file|. :buffers :files :ls List all the currently known file names. See ! 'windows.txt' |:files| |:buffers| |:ls|. Vim will remember the full path name of a file name that you enter. In most cases when the file name is displayed only the name you typed is shown, but *************** *** 244,262 **** If 'fileformats' is not empty, the first format given will be used for the new buffer. If 'fileformats' is empty, the 'fileformat' of the current buffer is used. - {not in Vi} *:ene!* *:enew!* :ene[w]! Edit a new, unnamed buffer. Discard any changes to the current buffer. Set 'fileformat' like |:enew|. - {not in Vi} *:fin* *:find* :fin[d][!] [++opt] [+cmd] {file} Find {file} in 'path' and then |:edit| it. ! {not in Vi} {not available when the |+file_in_path| ! feature was disabled at compile time} :{count}fin[d][!] [++opt] [+cmd] {file} Just like ":find", but use the {count} match in --- 239,255 ---- If 'fileformats' is not empty, the first format given will be used for the new buffer. If 'fileformats' is empty, the 'fileformat' of the current buffer is used. *:ene!* *:enew!* :ene[w]! Edit a new, unnamed buffer. Discard any changes to the current buffer. Set 'fileformat' like |:enew|. *:fin* *:find* :fin[d][!] [++opt] [+cmd] {file} Find {file} in 'path' and then |:edit| it. ! {not available when the |+file_in_path| feature was ! disabled at compile time} :{count}fin[d][!] [++opt] [+cmd] {file} Just like ":find", but use the {count} match in *************** *** 278,284 **** :vie[w][!] [++opt] [+cmd] file When used in Ex mode: Leave |Ex-mode|, go back to Normal mode. Otherwise same as |:edit|, but set ! 'readonly' option for this buffer. {not in Vi} *CTRL-^* *CTRL-6* CTRL-^ Edit the alternate file. Mostly the alternate file is --- 271,277 ---- :vie[w][!] [++opt] [+cmd] file When used in Ex mode: Leave |Ex-mode|, go back to Normal mode. Otherwise same as |:edit|, but set ! 'readonly' option for this buffer. *CTRL-^* *CTRL-6* CTRL-^ Edit the alternate file. Mostly the alternate file is *************** *** 297,303 **** ":e #[count]"). This is a quick way to switch between files. See |CTRL-^| above for further details. - {not in Vi} [count]]f *]f* *[f* [count][f Same as "gf". Deprecated. --- 290,295 ---- *************** *** 331,337 **** For Unix the '~' character is expanded, like in "~user/file". Environment variables are expanded too |expand-env|. - {not in Vi} {not available when the |+file_in_path| feature was disabled at compile time} --- 323,328 ---- *************** *** 341,347 **** Leading blanks are skipped, otherwise all blanks and special characters are included in the file name. (For {Visual} see |Visual-mode|.) - {not in VI} *gF* [count]gF Same as "gf", except if a number follows the file --- 332,337 ---- *************** *** 637,643 **** still be added to the argument list, but won't be edited. No check for duplicates is done. Also see |++opt| and |+cmd|. - {not in Vi} :[count]arga[dd] {name} .. *:arga* *:argadd* *E479* :[count]arga[dd] --- 627,632 ---- *************** *** 659,665 **** There is no check for duplicates, it is possible to add a file to the argument list twice. The currently edited file is not changed. - {not in Vi} Note: you can also use this method: > :args ## x < This will add the "x" item and sort the new list. --- 648,653 ---- *************** *** 673,679 **** when it's deleted from the argument list. Example: > :argdel *.obj - < {not in Vi} :[range]argd[elete] Delete the {range} files from the argument list. Example: > --- 661,666 ---- *************** *** 688,694 **** < Removes all the files from the arglist. When the last number in the range is too high, up to the last argument is deleted. - {not in Vi} *:argu* *:argument* :[count]argu[ment] [count] [++opt] [+cmd] --- 675,680 ---- *************** *** 697,710 **** when changes have been made and Vim does not want to |abandon| the current buffer. Also see |++opt| and |+cmd|. - {not in Vi} :[count]argu[ment]! [count] [++opt] [+cmd] Edit file [count] in the argument list, discard any changes to the current buffer. When [count] is omitted the current entry is used. Also see |++opt| and |+cmd|. - {not in Vi} :[count]n[ext] [++opt] [+cmd] *:n* *:ne* *:next* *E165* *E163* Edit [count] next file. This fails when changes have --- 683,694 ---- *************** *** 727,733 **** Edit [count] previous file in argument list. This fails when changes have been made and Vim does not want to |abandon| the current buffer. ! Also see |++opt| and |+cmd|. {Vi: no count or ++opt}. :[count]N[ext]! [count] [++opt] [+cmd] Edit [count] previous file in argument list. Discard --- 711,717 ---- Edit [count] previous file in argument list. This fails when changes have been made and Vim does not want to |abandon| the current buffer. ! Also see |++opt| and |+cmd|. :[count]N[ext]! [count] [++opt] [+cmd] Edit [count] previous file in argument list. Discard *************** *** 748,791 **** :rew[ind]! [++opt] [+cmd] Start editing the first file in the argument list. Discard any changes to the buffer. Also see |++opt| ! and |+cmd|. {Vi: no ++opt} *:fir* *:first* :fir[st][!] [++opt] [+cmd] ! Other name for ":rewind". {not in Vi} *:la* *:last* :la[st] [++opt] [+cmd] Start editing the last file in the argument list. This fails when changes have been made and Vim does not want to |abandon| the current buffer. ! Also see |++opt| and |+cmd|. {not in Vi} :la[st]! [++opt] [+cmd] Start editing the last file in the argument list. Discard any changes to the buffer. Also see |++opt| ! and |+cmd|. {not in Vi} *:wn* *:wnext* :[count]wn[ext] [++opt] Write current file and start editing the [count] ! next file. Also see |++opt| and |+cmd|. {not in Vi} :[count]wn[ext] [++opt] {file} Write current file to {file} and start editing the [count] next file, unless {file} already exists and the 'writeany' option is off. Also see |++opt| and ! |+cmd|. {not in Vi} :[count]wn[ext]! [++opt] {file} Write current file to {file} and start editing the ! [count] next file. Also see |++opt| and |+cmd|. {not ! in Vi} :[count]wN[ext][!] [++opt] [file] *:wN* *:wNext* :[count]wp[revious][!] [++opt] [file] *:wp* *:wprevious* Same as :wnext, but go to previous file instead of ! next. {not in Vi} The [count] in the commands above defaults to one. For some commands it is possible to use two counts. The last one (rightmost one) is used. --- 732,774 ---- :rew[ind]! [++opt] [+cmd] Start editing the first file in the argument list. Discard any changes to the buffer. Also see |++opt| ! and |+cmd|. *:fir* *:first* :fir[st][!] [++opt] [+cmd] ! Other name for ":rewind". *:la* *:last* :la[st] [++opt] [+cmd] Start editing the last file in the argument list. This fails when changes have been made and Vim does not want to |abandon| the current buffer. ! Also see |++opt| and |+cmd|. :la[st]! [++opt] [+cmd] Start editing the last file in the argument list. Discard any changes to the buffer. Also see |++opt| ! and |+cmd|. *:wn* *:wnext* :[count]wn[ext] [++opt] Write current file and start editing the [count] ! next file. Also see |++opt| and |+cmd|. :[count]wn[ext] [++opt] {file} Write current file to {file} and start editing the [count] next file, unless {file} already exists and the 'writeany' option is off. Also see |++opt| and ! |+cmd|. :[count]wn[ext]! [++opt] {file} Write current file to {file} and start editing the ! [count] next file. Also see |++opt| and |+cmd|. :[count]wN[ext][!] [++opt] [file] *:wN* *:wNext* :[count]wp[revious][!] [++opt] [file] *:wp* *:wprevious* Same as :wnext, but go to previous file instead of ! next. The [count] in the commands above defaults to one. For some commands it is possible to use two counts. The last one (rightmost one) is used. *************** *** 826,833 **** LOCAL ARGUMENT LIST - {not in Vi} - *:arglocal* :argl[ocal] Make a local copy of the global argument list. Doesn't start editing another file. --- 809,814 ---- *************** *** 878,884 **** autocommand event is disabled by adding it to 'eventignore'. This considerably speeds up editing each file. - {not in Vi} Also see |:windo|, |:tabdo|, |:bufdo|, |:cdo|, |:ldo|, |:cfdo| and |:lfdo| --- 859,864 ---- *************** *** 901,908 **** Note: When the 'write' option is off, you are not able to write any file. *:w* *:write* ! *E502* *E503* *E504* *E505* ! *E512* *E514* *E667* *E796* *E949* :w[rite] [++opt] Write the whole buffer to the current file. This is the normal way to save changes to a file. It fails when the 'readonly' option is set or when there is --- 881,888 ---- Note: When the 'write' option is off, you are not able to write any file. *:w* *:write* ! *E502* *E503* *E504* *E505* ! *E512* *E514* *E667* *E796* *E949* :w[rite] [++opt] Write the whole buffer to the current file. This is the normal way to save changes to a file. It fails when the 'readonly' option is set or when there is *************** *** 970,981 **** When 'filetype' is empty filetype detection is done with the new name, before the file is written. When the write was successful 'readonly' is reset. - {not in Vi} *:up* *:update* :[range]up[date][!] [++opt] [>>] [file] Like ":write", but only write when the buffer has been ! modified. {not in Vi} WRITING WITH MULTIPLE BUFFERS *buffer-write* --- 950,960 ---- When 'filetype' is empty filetype detection is done with the new name, before the file is written. When the write was successful 'readonly' is reset. *:up* *:update* :[range]up[date][!] [++opt] [>>] [file] Like ":write", but only write when the buffer has been ! modified. WRITING WITH MULTIPLE BUFFERS *buffer-write* *************** *** 983,993 **** *:wa* *:wall* :wa[ll] Write all changed buffers. Buffers without a file name cause an error message. Buffers which are ! readonly are not written. {not in Vi} :wa[ll]! Write all changed buffers, even the ones that are readonly. Buffers without a file name are not ! written and cause an error message. {not in Vi} Vim will warn you if you try to overwrite a file that has been changed --- 962,972 ---- *:wa* *:wall* :wa[ll] Write all changed buffers. Buffers without a file name cause an error message. Buffers which are ! readonly are not written. :wa[ll]! Write all changed buffers, even the ones that are readonly. Buffers without a file name are not ! written and cause an error message. Vim will warn you if you try to overwrite a file that has been changed *************** *** 1118,1124 **** :conf[irm] q[uit] Quit, but give prompt when changes have been made, or the last file in the argument list has not been ! edited. See |:confirm| and 'confirm'. {not in Vi} :q[uit]! Quit without writing, also when the current buffer has changes. The buffer is unloaded, also when it has --- 1097,1103 ---- :conf[irm] q[uit] Quit, but give prompt when changes have been made, or the last file in the argument list has not been ! edited. See |:confirm| and 'confirm'. :q[uit]! Quit without writing, also when the current buffer has changes. The buffer is unloaded, also when it has *************** *** 1131,1137 **** :cq[uit] Quit always, without writing, and return an error code. See |:cq|. Used for Manx's QuickFix mode (see ! |quickfix|). {not in Vi} *:wq* :wq [++opt] Write the current file and quit. Writing fails when --- 1110,1116 ---- :cq[uit] Quit always, without writing, and return an error code. See |:cq|. Used for Manx's QuickFix mode (see ! |quickfix|). *:wq* :wq [++opt] Write the current file and quit. Writing fails when *************** *** 1169,1175 **** *ZQ* ZQ Quit without checking for changes (same as ":q!"). ! {not in Vi} MULTIPLE WINDOWS AND BUFFERS *window-exit* --- 1148,1154 ---- *ZQ* ZQ Quit without checking for changes (same as ":q!"). ! MULTIPLE WINDOWS AND BUFFERS *window-exit* *************** *** 1177,1212 **** :qa[ll] Exit Vim, unless there are some buffers which have been changed. (Use ":bmod" to go to the next modified buffer). When 'autowriteall' is set all changed buffers will be ! written, like |:wqall|. {not in Vi} :conf[irm] qa[ll] Exit Vim. Bring up a prompt when some buffers have been ! changed. See |:confirm|. {not in Vi} ! :qa[ll]! Exit Vim. Any changes to buffers are lost. {not in Vi} Also see |:cquit|, it does the same but exits with a non-zero value. *:quita* *:quitall* ! :quita[ll][!] Same as ":qall". {not in Vi} :wqa[ll] [++opt] *:wqa* *:wqall* *:xa* *:xall* :xa[ll] Write all changed buffers and exit Vim. If there are buffers without a file name, which are readonly or which cannot be ! written for another reason, Vim will not quit. {not in Vi} :conf[irm] wqa[ll] [++opt] :conf[irm] xa[ll] Write all changed buffers and exit Vim. Bring up a prompt when some buffers are readonly or cannot be written for ! another reason. See |:confirm|. {not in Vi} :wqa[ll]! [++opt] :xa[ll]! Write all changed buffers, even the ones that are readonly, and exit Vim. If there are buffers without a file name or which cannot be written for another reason, or there is a terminal with a running job, Vim will not quit. - {not in Vi} ============================================================================== 6. Dialogs *edit-dialogs* --- 1156,1190 ---- :qa[ll] Exit Vim, unless there are some buffers which have been changed. (Use ":bmod" to go to the next modified buffer). When 'autowriteall' is set all changed buffers will be ! written, like |:wqall|. :conf[irm] qa[ll] Exit Vim. Bring up a prompt when some buffers have been ! changed. See |:confirm|. ! :qa[ll]! Exit Vim. Any changes to buffers are lost. Also see |:cquit|, it does the same but exits with a non-zero value. *:quita* *:quitall* ! :quita[ll][!] Same as ":qall". :wqa[ll] [++opt] *:wqa* *:wqall* *:xa* *:xall* :xa[ll] Write all changed buffers and exit Vim. If there are buffers without a file name, which are readonly or which cannot be ! written for another reason, Vim will not quit. :conf[irm] wqa[ll] [++opt] :conf[irm] xa[ll] Write all changed buffers and exit Vim. Bring up a prompt when some buffers are readonly or cannot be written for ! another reason. See |:confirm|. :wqa[ll]! [++opt] :xa[ll]! Write all changed buffers, even the ones that are readonly, and exit Vim. If there are buffers without a file name or which cannot be written for another reason, or there is a terminal with a running job, Vim will not quit. ============================================================================== 6. Dialogs *edit-dialogs* *************** *** 1317,1326 **** --- 1295,1306 ---- name. On Unix systems: Change the current directory to the home directory. Use |:pwd| to print the current directory on all systems. + On Unix systems: clear any window-local directory. :cd[!] {path} Change the current directory to {path}. If {path} is relative, it is searched for in the directories listed in |'cdpath'|. + Clear any window-local directory. Does not change the meaning of an already opened file, because its full path name is remembered. Files from the |arglist| may change though! *************** *** 1330,1336 **** < *:cd-* *E186* :cd[!] - Change to the previous current directory (before the ! previous ":cd {path}" command). {not in Vi} *:chd* *:chdir* :chd[ir][!] [path] Same as |:cd|. --- 1310,1316 ---- < *:cd-* *E186* :cd[!] - Change to the previous current directory (before the ! previous ":cd {path}" command). *:chd* *:chdir* :chd[ir][!] [path] Same as |:cd|. *************** *** 1341,1360 **** The current directory is not changed for windows in other tabs and for windows in the current tab that have their own window-local directory. - {not in Vi} *:tch* *:tchdir* ! :tch[dir][!] Same as |:tcd|. {not in Vi} *:lc* *:lcd* :lc[d][!] {path} Like |:cd|, but only set the current directory when the cursor is in the current window. The current directory for other windows is not changed, switching to another window will stop using {path}. - {not in Vi} *:lch* *:lchdir* ! :lch[dir][!] Same as |:lcd|. {not in Vi} *:pw* *:pwd* *E187* :pw[d] Print the current directory name. {Vi: no pwd} --- 1321,1338 ---- The current directory is not changed for windows in other tabs and for windows in the current tab that have their own window-local directory. *:tch* *:tchdir* ! :tch[dir][!] Same as |:tcd|. *:lc* *:lcd* :lc[d][!] {path} Like |:cd|, but only set the current directory when the cursor is in the current window. The current directory for other windows is not changed, switching to another window will stop using {path}. *:lch* *:lchdir* ! :lch[dir][!] Same as |:lcd|. *:pw* *:pwd* *E187* :pw[d] Print the current directory name. {Vi: no pwd} *************** *** 1416,1423 **** file. Otherwise both and are considered to end a line and when the file is written the will be replaced with . - characters are shown on the screen as ^@. You can enter them with ! "CTRL-V CTRL-@" or "CTRL-V 000" {Vi cannot handle characters in the ! file} - To insert a character in the file split a line. When writing the buffer to a file a will be written for the . - Vim normally appends an at the end of the file if there is none. --- 1394,1400 ---- file. Otherwise both and are considered to end a line and when the file is written the will be replaced with . - characters are shown on the screen as ^@. You can enter them with ! "CTRL-V CTRL-@" or "CTRL-V 000" - To insert a character in the file split a line. When writing the buffer to a file a will be written for the . - Vim normally appends an at the end of the file if there is none. *************** *** 1436,1442 **** The text in the swap file and the undo file is also encrypted. *E843* However, this is done block-by-block and may reduce the time needed to crack a password. You can disable the swap file, but then a crash will cause you to ! lose your work. The undo file can be disabled without much disadvantage. > :set noundofile :noswapfile edit secrets --- 1413,1419 ---- The text in the swap file and the undo file is also encrypted. *E843* However, this is done block-by-block and may reduce the time needed to crack a password. You can disable the swap file, but then a crash will cause you to ! lose your work. The undo file can be disabled without too much disadvantage. > :set noundofile :noswapfile edit secrets *************** *** 1768,1771 **** currently work with 'path' items that contain a URL or use the double star with depth limiter (/usr/**2) or upward search (;) notations. ! vim:tw=78:ts=8:ft=help:norl: --- 1745,1748 ---- currently work with 'path' items that contain a URL or use the double star with depth limiter (/usr/**2) or upward search (;) notations. ! vim:tw=78:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/eval.txt 2019-05-05 15:47:37.821923550 +0200 --- runtime/doc/eval.txt 2019-05-05 17:40:12.571080122 +0200 *************** *** 1,4 **** ! *eval.txt* For Vim version 8.1. Last change: 2018 May 17 VIM REFERENCE MANUAL by Bram Moolenaar --- 1,4 ---- ! *eval.txt* For Vim version 8.1. Last change: 2019 May 05 VIM REFERENCE MANUAL by Bram Moolenaar *************** *** 27,38 **** 7. Commands |expression-commands| 8. Exception handling |exception-handling| 9. Examples |eval-examples| ! 10. No +eval feature |no-eval-feature| ! 11. The sandbox |eval-sandbox| ! 12. Textlock |textlock| ! 13. Testing |testing| ! ! {Vi does not have any of these commands} ============================================================================== 1. Variables *variables* --- 27,37 ---- 7. Commands |expression-commands| 8. Exception handling |exception-handling| 9. Examples |eval-examples| ! 10. Vim script version |vimscript-version| ! 11. No +eval feature |no-eval-feature| ! 12. The sandbox |eval-sandbox| ! 13. Textlock |textlock| ! 14. Testing |testing| ============================================================================== 1. Variables *variables* *************** *** 107,113 **** To avoid a leading zero to cause octal conversion, or for using a different base, use |str2nr()|. ! *TRUE* *FALSE* For boolean operators Numbers are used. Zero is FALSE, non-zero is TRUE. You can also use |v:false| and |v:true|. When TRUE is returned from a function it is the Number one, FALSE is the number zero. --- 106,112 ---- To avoid a leading zero to cause octal conversion, or for using a different base, use |str2nr()|. ! *TRUE* *FALSE* *Boolean* For boolean operators Numbers are used. Zero is FALSE, non-zero is TRUE. You can also use |v:false| and |v:true|. When TRUE is returned from a function it is the Number one, FALSE is the number zero. *************** *** 187,196 **** arguments will be passed to the function. Example: > let Cb = function('Callback', ['foo'], myDict) ! call Cb() This will invoke the function as if using: > ! call myDict.Callback('foo') This is very useful when passing a function around, e.g. in the arguments of |ch_open()|. --- 186,195 ---- arguments will be passed to the function. Example: > let Cb = function('Callback', ['foo'], myDict) ! call Cb('bar') This will invoke the function as if using: > ! call myDict.Callback('foo', 'bar') This is very useful when passing a function around, e.g. in the arguments of |ch_open()|. *************** *** 461,467 **** 1.4 Dictionaries ~ ! *dict* *Dictionaries* *Dictionary* A Dictionary is an associative array: Each entry has a key and a value. The entry can be located with the key. The entries are stored without a specific ordering. --- 460,466 ---- 1.4 Dictionaries ~ ! *dict* *Dict* *Dictionaries* *Dictionary* A Dictionary is an associative array: Each entry has a key and a value. The entry can be located with the key. The entries are stored without a specific ordering. *************** *** 525,531 **** :endfor If you want both the key and the value use the |items()| function. It returns ! a List in which each item is a List with two items, the key and the value: > :for [key, value] in items(mydict) : echo key . ': ' . value :endfor --- 524,530 ---- :endfor If you want both the key and the value use the |items()| function. It returns ! a List in which each item is a List with two items, the key and the value: > :for [key, value] in items(mydict) : echo key . ': ' . value :endfor *************** *** 625,632 **** 1.5 Blobs ~ *blob* *Blob* *Blobs* *E978* ! A Blob mostly behaves like a |List| of numbers, where the numbers have an ! 8-bit value, from 0 to 255. Blob creation ~ --- 624,634 ---- 1.5 Blobs ~ *blob* *Blob* *Blobs* *E978* ! A Blob is a binary object. It can be used to read an image from a file and ! send it over a channel, for example. ! ! A Blob mostly behaves like a |List| of numbers, where each number has the ! value of an 8-bit byte, from 0 to 255. Blob creation ~ *************** *** 662,667 **** --- 664,679 ---- :echo get(myblob, idx, 999) + Blob iteration ~ + + The |:for| loop executes commands for each byte of a Blob. The loop variable is + set to each byte in the Blob. Example: > + :for byte in 0z112233 + : call Doit(byte) + :endfor + This calls Doit() with 0x11, 0x22 and 0x33. + + Blob concatenation ~ Two blobs can be concatenated with the "+" operator: > *************** *** 686,692 **** :let otherblob = myblob[:] " make a copy of the Blob If the first index is beyond the last byte of the Blob or the second index is ! before the first byte, the result is an empty list. There is no error message. If the second index is equal to or greater than the length of the list the --- 698,704 ---- :let otherblob = myblob[:] " make a copy of the Blob If the first index is beyond the last byte of the Blob or the second index is ! before the first index, the result is an empty Blob. There is no error message. If the second index is equal to or greater than the length of the list the *************** *** 964,975 **** if get(Part1, 'name') == get(Part2, 'name') " Part1 and Part2 refer to the same function ! When using "is" or "isnot" with a |List| or a |Dictionary| this checks if the ! expressions are referring to the same |List| or |Dictionary| instance. A copy ! of a |List| is different from the original |List|. When using "is" without ! a |List| or a |Dictionary| it is equivalent to using "equal", using "isnot" ! equivalent to using "not equal". Except that a different type means the ! values are different: > echo 4 == '4' 1 echo 4 is '4' --- 976,987 ---- if get(Part1, 'name') == get(Part2, 'name') " Part1 and Part2 refer to the same function ! Using "is" or "isnot" with a |List|, |Dictionary| or |Blob| checks whether ! the expressions are referring to the same |List|, |Dictionary| or |Blob| ! instance. A copy of a |List| is different from the original |List|. When ! using "is" without a |List|, |Dictionary| or |Blob|, it is equivalent to ! using "equal", using "isnot" equivalent to using "not equal". Except that ! a different type means the values are different: > echo 4 == '4' 1 echo 4 is '4' *************** *** 1030,1036 **** expr7 / expr7 Number division *expr-/* expr7 % expr7 Number modulo *expr-%* ! For all, except ".", Strings are converted to Numbers. For bitwise operators see |and()|, |or()| and |xor()|. Note the difference between "+" and ".": --- 1042,1048 ---- expr7 / expr7 Number division *expr-/* expr7 % expr7 Number modulo *expr-%* ! For all, except "." and "..", Strings are converted to Numbers. For bitwise operators see |and()|, |or()| and |xor()|. Note the difference between "+" and ".": *************** *** 1154,1160 **** indexes expr1a and expr1b, inclusive. Examples: > :let b = 0zDEADBEEF :let bs = b[1:2] " 0zADBE ! :let bs = b[] " copy ov 0zDEADBEEF Using expr8[expr1] or expr8[expr1a : expr1b] on a |Funcref| results in an error. --- 1166,1172 ---- indexes expr1a and expr1b, inclusive. Examples: > :let b = 0zDEADBEEF :let bs = b[1:2] " 0zADBE ! :let bs = b[:] " copy of 0zDEADBEEF Using expr8[expr1] or expr8[expr1a : expr1b] on a |Funcref| results in an error. *************** *** 1227,1237 **** 3. empty {M} 1e40 missing .{M} - *float-pi* *float-e* - A few useful values to copy&paste: > - :let pi = 3.14159265359 - :let e = 2.71828182846 - Rationale: Before floating point was introduced, the text "123.456" was interpreted as the two numbers "123" and "456", both converted to a string and concatenated, --- 1239,1244 ---- *************** *** 1240,1245 **** --- 1247,1261 ---- incompatibility was accepted in favor of being able to use the normal notation for floating point numbers. + *float-pi* *float-e* + A few useful values to copy&paste: > + :let pi = 3.14159265359 + :let e = 2.71828182846 + Or, if you don't want to write them in as floating-point literals, you can + also use functions, like the following: > + :let pi = acos(-1.0) + :let e = exp(1.0) + < *floating-point-precision* The precision and range of floating points numbers depends on what "double" means in the library Vim was compiled with. There is no way to change this at *************** *** 1585,1591 **** variables for each buffer. Use local buffer variables instead |b:var|. ! Predefined Vim variables: *vim-variable* *v:var* *v:* *v:beval_col* *beval_col-variable* v:beval_col The number of the column, over which the mouse pointer is. --- 1601,1609 ---- variables for each buffer. Use local buffer variables instead |b:var|. ! PREDEFINED VIM VARIABLES *vim-variable* *v:var* *v:* ! *E963* ! Some variables can be set by the user, but the type cannot be changed. *v:beval_col* *beval_col-variable* v:beval_col The number of the column, over which the mouse pointer is. *************** *** 1878,1884 **** This is the screen column number, like with |virtcol()|. The value is zero when there was no mouse button click. ! *v:none* *none-variable* v:none An empty String. Used to put an empty item in JSON. See |json_encode()|. When used as a number this evaluates to zero. --- 1896,1902 ---- This is the screen column number, like with |virtcol()|. The value is zero when there was no mouse button click. ! *v:none* *none-variable* *None* v:none An empty String. Used to put an empty item in JSON. See |json_encode()|. When used as a number this evaluates to zero. *************** *** 2036,2062 **** For ":edit +cmd file" the value is ":cmd\r". *v:t_TYPE* *v:t_bool* *t_bool-variable* ! v:t_bool Value of Boolean type. Read-only. See: |type()| *v:t_channel* *t_channel-variable* ! v:t_channel Value of Channel type. Read-only. See: |type()| *v:t_dict* *t_dict-variable* ! v:t_dict Value of Dictionary type. Read-only. See: |type()| *v:t_float* *t_float-variable* ! v:t_float Value of Float type. Read-only. See: |type()| *v:t_func* *t_func-variable* ! v:t_func Value of Funcref type. Read-only. See: |type()| *v:t_job* *t_job-variable* ! v:t_job Value of Job type. Read-only. See: |type()| *v:t_list* *t_list-variable* ! v:t_list Value of List type. Read-only. See: |type()| *v:t_none* *t_none-variable* ! v:t_none Value of None type. Read-only. See: |type()| *v:t_number* *t_number-variable* ! v:t_number Value of Number type. Read-only. See: |type()| *v:t_string* *t_string-variable* ! v:t_string Value of String type. Read-only. See: |type()| *v:t_blob* *t_blob-variable* ! v:t_blob Value of Blob type. Read-only. See: |type()| *v:termresponse* *termresponse-variable* v:termresponse The escape sequence returned by the terminal for the |t_RV| --- 2054,2080 ---- For ":edit +cmd file" the value is ":cmd\r". *v:t_TYPE* *v:t_bool* *t_bool-variable* ! v:t_bool Value of |Boolean| type. Read-only. See: |type()| *v:t_channel* *t_channel-variable* ! v:t_channel Value of |Channel| type. Read-only. See: |type()| *v:t_dict* *t_dict-variable* ! v:t_dict Value of |Dictionary| type. Read-only. See: |type()| *v:t_float* *t_float-variable* ! v:t_float Value of |Float| type. Read-only. See: |type()| *v:t_func* *t_func-variable* ! v:t_func Value of |Funcref| type. Read-only. See: |type()| *v:t_job* *t_job-variable* ! v:t_job Value of |Job| type. Read-only. See: |type()| *v:t_list* *t_list-variable* ! v:t_list Value of |List| type. Read-only. See: |type()| *v:t_none* *t_none-variable* ! v:t_none Value of |None| type. Read-only. See: |type()| *v:t_number* *t_number-variable* ! v:t_number Value of |Number| type. Read-only. See: |type()| *v:t_string* *t_string-variable* ! v:t_string Value of |String| type. Read-only. See: |type()| *v:t_blob* *t_blob-variable* ! v:t_blob Value of |Blob| type. Read-only. See: |type()| *v:termresponse* *termresponse-variable* v:termresponse The escape sequence returned by the terminal for the |t_RV| *************** *** 2191,2197 **** Number assert file contents is equal assert_exception({error} [, {msg}]) Number assert {error} is in v:exception ! assert_fails({cmd} [, {error}]) Number assert {cmd} fails assert_false({actual} [, {msg}]) Number assert {actual} is false assert_inrange({lower}, {upper}, {actual} [, {msg}]) --- 2209,2216 ---- Number assert file contents is equal assert_exception({error} [, {msg}]) Number assert {error} is in v:exception ! assert_fails({cmd} [, {error} [, {msg}]]) ! Number assert {cmd} fails assert_false({actual} [, {msg}]) Number assert {actual} is false assert_inrange({lower}, {upper}, {actual} [, {msg}]) *************** *** 2276,2282 **** debugbreak({pid}) Number interrupt process being debugged deepcopy({expr} [, {noref}]) any make a full copy of {expr} delete({fname} [, {flags}]) Number delete the file or directory {fname} ! deletebufline({expr}, {first}[, {last}]) Number delete lines from buffer {expr} did_filetype() Number |TRUE| if FileType autocmd event used diff_filler({lnum}) Number diff filler lines about {lnum} --- 2295,2301 ---- debugbreak({pid}) Number interrupt process being debugged deepcopy({expr} [, {noref}]) any make a full copy of {expr} delete({fname} [, {flags}]) Number delete the file or directory {fname} ! deletebufline({expr}, {first} [, {last}]) Number delete lines from buffer {expr} did_filetype() Number |TRUE| if FileType autocmd event used diff_filler({lnum}) Number diff filler lines about {lnum} *************** *** 2475,2481 **** none remove all text properties prop_find({props} [, {direction}]) Dict search for a text property ! prop_list({lnum} [, {props}) List text properties in {lnum} prop_remove({props} [, {lnum} [, {lnum-end}]]) Number remove a text property prop_type_add({name}, {props}) none define a new property type --- 2494,2500 ---- none remove all text properties prop_find({props} [, {direction}]) Dict search for a text property ! prop_list({lnum} [, {props}) List text properties in {lnum} prop_remove({props} [, {lnum} [, {lnum-end}]]) Number remove a text property prop_type_add({name}, {props}) none define a new property type *************** *** 2492,2500 **** pyxeval({expr}) any evaluate |python_x| expression range({expr} [, {max} [, {stride}]]) List items from {expr} to {max} ! readdir({directory} [, {expr}]) ! List file names on {dir} with evalating ! {expr} readfile({fname} [, {type} [, {max}]]) List get list of lines from file {fname} reg_executing() String get the executing register name --- 2511,2517 ---- pyxeval({expr}) any evaluate |python_x| expression range({expr} [, {max} [, {stride}]]) List items from {expr} to {max} ! readdir({dir} [, {expr}]) List file names in {dir} selected by {expr} readfile({fname} [, {type} [, {max}]]) List get list of lines from file {fname} reg_executing() String get the executing register name *************** *** 2542,2549 **** server2client({clientid}, {string}) Number send reply string serverlist() String get a list of available servers ! setbufline({expr}, {lnum}, {line}) ! Number set line {lnum} to {line} in buffer {expr} setbufvar({expr}, {varname}, {val}) none set {varname} in buffer {expr} to {val} --- 2559,2566 ---- server2client({clientid}, {string}) Number send reply string serverlist() String get a list of available servers ! setbufline({expr}, {lnum}, {text}) ! Number set line {lnum} to {text} in buffer {expr} setbufvar({expr}, {varname}, {val}) none set {varname} in buffer {expr} to {val} *************** *** 2661,2667 **** term_setrestore({buf}, {command}) none set command to restore terminal term_setsize({buf}, {rows}, {cols}) none set the size of a terminal ! term_start({cmd}, {options}) Number open a terminal window and run a job term_wait({buf} [, {time}]) Number wait for screen to be updated test_alloc_fail({id}, {countdown}, {repeat}) none make memory allocation fail --- 2678,2684 ---- term_setrestore({buf}, {command}) none set command to restore terminal term_setsize({buf}, {rows}, {cols}) none set the size of a terminal ! term_start({cmd} [, {options}]) Number open a terminal window and run a job term_wait({buf} [, {time}]) Number wait for screen to be updated test_alloc_fail({id}, {countdown}, {repeat}) none make memory allocation fail *************** *** 2693,2699 **** toupper({expr}) String the String {expr} switched to uppercase tr({src}, {fromstr}, {tostr}) String translate chars of {src} in {fromstr} to chars in {tostr} ! trim({text}[, {mask}]) String trim characters in {mask} from {text} trunc({expr}) Float truncate Float {expr} type({name}) Number type of variable {name} undofile({name}) String undo file name for {name} --- 2710,2716 ---- toupper({expr}) String the String {expr} switched to uppercase tr({src}, {fromstr}, {tostr}) String translate chars of {src} in {fromstr} to chars in {tostr} ! trim({text} [, {mask}]) String trim characters in {mask} from {text} trunc({expr}) Float truncate Float {expr} type({name}) Number type of variable {name} undofile({name}) String undo file name for {name} *************** *** 2772,2781 **** :let flag = and(bits, 0x80) ! append({lnum}, {expr}) *append()* ! When {expr} is a |List|: Append each item of the |List| as a text line below line {lnum} in the current buffer. ! Otherwise append {expr} as one text line below line {lnum} in the current buffer. {lnum} can be zero to insert a line before the first one. Returns 1 for failure ({lnum} out of range or out of memory), --- 2789,2798 ---- :let flag = and(bits, 0x80) ! append({lnum}, {text}) *append()* ! When {text} is a |List|: Append each item of the |List| as a text line below line {lnum} in the current buffer. ! Otherwise append {text} as one text line below line {lnum} in the current buffer. {lnum} can be zero to insert a line before the first one. Returns 1 for failure ({lnum} out of range or out of memory), *************** *** 2884,2890 **** call assert_exception('E492:') endtry ! assert_fails({cmd} [, {error}]) *assert_fails()* Run {cmd} and add an error message to |v:errors| if it does NOT produce an error. Also see |assert-return|. When {error} is given it must match in |v:errmsg|. --- 2901,2907 ---- call assert_exception('E492:') endtry ! assert_fails({cmd} [, {error} [, {msg}]]) *assert_fails()* Run {cmd} and add an error message to |v:errors| if it does NOT produce an error. Also see |assert-return|. When {error} is given it must match in |v:errmsg|. *************** *** 2893,2899 **** assert_false({actual} [, {msg}]) *assert_false()* When {actual} is not false an error message is added to ! |v:errors|, like with |assert_equal()|. Also see |assert-return|. A value is false when it is zero. When {actual} is not a number the assert fails. --- 2910,2916 ---- assert_false({actual} [, {msg}]) *assert_false()* When {actual} is not false an error message is added to ! |v:errors|, like with |assert_equal()|. Also see |assert-return|. A value is false when it is zero. When {actual} is not a number the assert fails. *************** *** 2901,2909 **** "Expected False but got {actual}" is produced. assert_inrange({lower}, {upper}, {actual} [, {msg}]) *assert_inrange()* ! This asserts number values. When {actual} is lower than ! {lower} or higher than {upper} an error message is added to ! |v:errors|. Also see |assert-return|. When {msg} is omitted an error in the form "Expected range {lower} - {upper}, but got {actual}" is produced. --- 2918,2926 ---- "Expected False but got {actual}" is produced. assert_inrange({lower}, {upper}, {actual} [, {msg}]) *assert_inrange()* ! This asserts number and |Float| values. When {actual} is lower ! than {lower} or higher than {upper} an error message is added ! to |v:errors|. Also see |assert-return|. When {msg} is omitted an error in the form "Expected range {lower} - {upper}, but got {actual}" is produced. *************** *** 3014,3028 **** When showing a balloon is not possible nothing happens, no error message. ! {only available when compiled with the +balloon_eval or ! +balloon_eval_term feature} balloon_split({msg}) *balloon_split()* Split {msg} into lines to be displayed in a balloon. The splits are made for the current window size and optimize to show debugger output. Returns a |List| with the split lines. ! {only available when compiled with the +balloon_eval_term feature} *browse()* --- 3031,3045 ---- When showing a balloon is not possible nothing happens, no error message. ! {only available when compiled with the |+balloon_eval| or ! |+balloon_eval_term| feature} balloon_split({msg}) *balloon_split()* Split {msg} into lines to be displayed in a balloon. The splits are made for the current window size and optimize to show debugger output. Returns a |List| with the split lines. ! {only available when compiled with the |+balloon_eval_term| feature} *browse()* *************** *** 3274,3280 **** is removed. Note that Vim does not know when the text received on a raw channel is complete, it may only return the first part and you ! need to use ch_readraw() to fetch the rest. See |channel-use|. {only available when compiled with the |+channel| feature} --- 3291,3297 ---- is removed. Note that Vim does not know when the text received on a raw channel is complete, it may only return the first part and you ! need to use |ch_readraw()| to fetch the rest. See |channel-use|. {only available when compiled with the |+channel| feature} *************** *** 3337,3344 **** When {mode} is omitted or "a" append to the file. When {mode} is "w" start with an empty file. ! The file is flushed after every message, on Unix you can use ! "tail -f" to see what is going on in real time. This function is not available in the |sandbox|. NOTE: the channel communication is stored in the file, be --- 3354,3362 ---- When {mode} is omitted or "a" append to the file. When {mode} is "w" start with an empty file. ! Use |ch_log()| to write log messages. The file is flushed ! after every message, on Unix you can use "tail -f" to see what ! is going on in real time. This function is not available in the |sandbox|. NOTE: the channel communication is stored in the file, be *************** *** 3367,3373 **** {only available when compiled with the |+channel| feature} ch_readblob({handle} [, {options}]) *ch_readblob()* ! Like ch_read() but reads binary data and returns a Blob. See |channel-more|. {only available when compiled with the |+channel| feature} --- 3385,3391 ---- {only available when compiled with the |+channel| feature} ch_readblob({handle} [, {options}]) *ch_readblob()* ! Like ch_read() but reads binary data and returns a |Blob|. See |channel-more|. {only available when compiled with the |+channel| feature} *************** *** 3388,3394 **** {only available when compiled with the |+channel| feature} ch_sendraw({handle}, {expr} [, {options}]) *ch_sendraw()* ! Send string or Blob {expr} over {handle}. Works like |ch_sendexpr()|, but does not encode the request or decode the response. The caller is responsible for the correct contents. Also does not add a newline for a channel --- 3406,3412 ---- {only available when compiled with the |+channel| feature} ch_sendraw({handle}, {expr} [, {options}]) *ch_sendraw()* ! Send |String| or |Blob| {expr} over {handle}. Works like |ch_sendexpr()|, but does not encode the request or decode the response. The caller is responsible for the correct contents. Also does not add a newline for a channel *************** *** 3446,3451 **** --- 3464,3473 ---- < With {utf8} set to 1, always treat as utf-8 characters. A combining character is a separate character. |nr2char()| does the opposite. + To turn a string into a list of character numbers: > + let str = "ABC" + let list = map(split(str, '\zs'), {_, val -> char2nr(val)}) + < Result: [65, 66, 67] cindent({lnum}) *cindent()* Get the amount of indent for line {lnum} according the C *************** *** 3551,3557 **** completion. See |ins-completion|. The items are: mode Current completion mode name string. ! See |completion_info_mode| for the values. pum_visible |TRUE| if popup menu is visible. See |pumvisible()|. items List of completion matches. Each item is a --- 3573,3579 ---- completion. See |ins-completion|. The items are: mode Current completion mode name string. ! See |complete_info_mode| for the values. pum_visible |TRUE| if popup menu is visible. See |pumvisible()|. items List of completion matches. Each item is a *************** *** 3812,3825 **** To delete a line from the buffer use |:delete| or |deletebufline()|. ! deletebufline({expr}, {first}[, {last}]) *deletebufline()* Delete lines {first} to {last} (inclusive) from buffer {expr}. If {last} is omitted then delete line {first} only. On success 0 is returned, on failure 1 is returned. For the use of {expr}, see |bufname()| above. ! {first} and {last} are used like with |setline()|. Note that when using |line()| this refers to the current buffer. Use "$" to refer to the last line in buffer {expr}. --- 3834,3847 ---- To delete a line from the buffer use |:delete| or |deletebufline()|. ! deletebufline({expr}, {first} [, {last}]) *deletebufline()* Delete lines {first} to {last} (inclusive) from buffer {expr}. If {last} is omitted then delete line {first} only. On success 0 is returned, on failure 1 is returned. For the use of {expr}, see |bufname()| above. ! {first} and {last} are used like with |getline()|. Note that when using |line()| this refers to the current buffer. Use "$" to refer to the last line in buffer {expr}. *************** *** 3864,3870 **** - |v:false|, |v:none| and |v:null| are empty, |v:true| is not. - A |Job| is empty when it failed to start. - A |Channel| is empty when it is closed. ! - A Blob is empty when its length is zero. For a long |List| this is much faster than comparing the length with zero. --- 3886,3892 ---- - |v:false|, |v:none| and |v:null| are empty, |v:true| is not. - A |Job| is empty when it failed to start. - A |Channel| is empty when it is closed. ! - A |Blob| is empty when its length is zero. For a long |List| this is much faster than comparing the length with zero. *************** *** 3880,3887 **** *eval()* eval({string}) Evaluate {string} and return the result. Especially useful to turn the result of |string()| back into the original value. ! This works for Numbers, Floats, Strings and composites of ! them. Also works for |Funcref|s that refer to existing functions. eventhandler() *eventhandler()* --- 3902,3909 ---- *eval()* eval({string}) Evaluate {string} and return the result. Especially useful to turn the result of |string()| back into the original value. ! This works for Numbers, Floats, Strings, Blobs and composites ! of them. Also works for |Funcref|s that refer to existing functions. eventhandler() *eventhandler()* *************** *** 3913,3918 **** --- 3935,3941 ---- 1 exists 0 does not exist -1 not implemented on this system + |exepath()| can be used to get the full path of an executable. execute({command} [, {silent}]) *execute()* Execute an Ex command or commands and return the output as a *************** *** 4118,4124 **** all "README" files in the current directory and below: > :echo expand("**/README") < ! Expand() can also be used to expand variables and environment variables that are only known in a shell. But this can be slow, because a shell may be used to do the expansion. See |expr-env-expand|. --- 4141,4147 ---- all "README" files in the current directory and below: > :echo expand("**/README") < ! expand() can also be used to expand variables and environment variables that are only known in a shell. But this can be slow, because a shell may be used to do the expansion. See |expr-env-expand|. *************** *** 4204,4209 **** --- 4227,4235 ---- will behave as if is typed, to avoid getting stuck, waiting for a character to be typed before the script continues. + Note that if you manage to call feedkeys() while + executing commands, thus calling it recursively, then + all typehead will be consumed by the last call. '!' When used with 'x' will not end Insert mode. Can be used in a test when a timer is set to exit Insert mode a little later. Useful for testing CursorHoldI. *************** *** 4604,4610 **** endfor < To get buffer-local options use: > ! getbufvar({bufnr}, '&') < *getbufline()* --- 4630,4636 ---- endfor < To get buffer-local options use: > ! getbufvar({bufnr}, '&option_name') < *getbufline()* *************** *** 4785,4790 **** --- 4811,4818 ---- Example: > :cmap eescape(getcmdline(), ' \') < Also see |getcmdtype()|, |getcmdpos()| and |setcmdpos()|. + Returns an empty string when entering a password or using + |inputsecret()|. getcmdpos() *getcmdpos()* Return the position of the cursor in the command line as a *************** *** 5234,5240 **** tabnr tab page number. variables a reference to the dictionary with tabpage-local variables ! windows List of |window-ID|s in the tag page. gettabvar({tabnr}, {varname} [, {def}]) *gettabvar()* Get the value of a tab-local variable {varname} in tab page --- 5262,5268 ---- tabnr tab page number. variables a reference to the dictionary with tabpage-local variables ! windows List of |window-ID|s in the tab page. gettabvar({tabnr}, {varname} [, {def}]) *gettabvar()* Get the value of a tab-local variable {varname} in tab page *************** *** 5334,5345 **** winrow topmost screen column of the window, row from |win_screenpos()| - To obtain all window-local variables use: > - gettabwinvar({tabnr}, {winnr}, '&') - getwinpos([{timeout}]) *getwinpos()* The result is a list with two numbers, the result of ! getwinposx() and getwinposy() combined: [x-pos, y-pos] {timeout} can be used to specify how long to wait in msec for a response from the terminal. When omitted 100 msec is used. --- 5362,5370 ---- winrow topmost screen column of the window, row from |win_screenpos()| getwinpos([{timeout}]) *getwinpos()* The result is a list with two numbers, the result of ! getwinposx() and getwinposy() combined: [x-pos, y-pos] {timeout} can be used to specify how long to wait in msec for a response from the terminal. When omitted 100 msec is used. *************** *** 5347,5353 **** When using a value less than 10 and no response is received within that time, a previously reported position is returned, if available. This can be used to poll for the position and ! do some work in the mean time: > while 1 let res = getwinpos(1) if res[0] >= 0 --- 5372,5378 ---- When using a value less than 10 and no response is received within that time, a previously reported position is returned, if available. This can be used to poll for the position and ! do some work in the meantime: > while 1 let res = getwinpos(1) if res[0] >= 0 *************** *** 5394,5399 **** --- 5419,5427 ---- If the expansion fails, the result is an empty String or List. + You can also use |readdir()| if you need to do complicated + things, such as limiting the number of matches. + A name for a non-existing file is not included. A symbolic link is only included if it points to an existing file. However, when the {alllinks} argument is present and it is *************** *** 5649,5655 **** < Note that Vim uses UTF-8 for all Unicode encodings, conversion from/to UCS-2 is automatically changed to use UTF-8. You cannot use UCS-2 in a string anyway, because of the NUL bytes. - {only available when compiled with the |+multi_byte| feature} *indent()* indent({lnum}) The result is a Number, which is indent of line {lnum} in the --- 5677,5682 ---- *************** *** 5833,5839 **** isnan({expr}) *isnan()* Return |TRUE| if {expr} is a float with value NaN. > echo isnan(0.0 / 0.0) ! < 1 ~ {only available when compiled with the |+float| feature} --- 5860,5866 ---- isnan({expr}) *isnan()* Return |TRUE| if {expr} is a float with value NaN. > echo isnan(0.0 / 0.0) ! < 1 {only available when compiled with the |+float| feature} *************** *** 5841,5847 **** Return a |List| with all the key-value pairs of {dict}. Each |List| item is a list with two items: the key of a {dict} entry and the value of this entry. The |List| is in arbitrary ! order. job_getchannel({job}) *job_getchannel()* Get the channel handle that {job} is using. --- 5868,5878 ---- Return a |List| with all the key-value pairs of {dict}. Each |List| item is a list with two items: the key of a {dict} entry and the value of this entry. The |List| is in arbitrary ! order. Also see |keys()| and |values()|. ! Example: > ! for [key, value] in items(mydict) ! echo key . ': ' . value ! endfor job_getchannel({job}) *job_getchannel()* Get the channel handle that {job} is using. *************** *** 5884,5889 **** --- 5915,5924 ---- |:!cmd| this does not wait for the job to finish. To start a job in a terminal window see |term_start()|. + If the job fails to start then |job_status()| on the returned + Job object results in "fail" and none of the callbacks will be + invoked. + {command} can be a String. This works best on MS-Windows. On Unix it is split up in white-separated parts to be passed to execvp(). Arguments in double quotes can contain white space. *************** *** 6035,6040 **** --- 6070,6077 ---- The decoding is permissive: - A trailing comma in an array and object is ignored, e.g. "[1, 2, ]" is the same as "[1, 2]". + - Integer keys are accepted in objects, e.g. {1:2} is the + same as {"1":2}. - More floating point numbers are recognized, e.g. "1." for "1.0", or "001.2" for "1.2". Special floating point values "Infinity", "-Infinity" and "NaN" (capitalization ignored) *************** *** 6046,6051 **** --- 6083,6090 ---- - Control characters U+0000 through U+001F which are not escaped in strings are accepted, e.g. " " (tab character in string) for "\t". + - An empty JSON expression or made of only spaces is accepted + and results in v:none. - Backslash in an invalid 2-character sequence escape is ignored, e.g. "\a" is decoded as "a". - A correct surrogate pair in JSON strings should normally be *************** *** 6063,6080 **** The encoding is specified in: https://tools.ietf.org/html/rfc7159.html Vim values are converted as follows: ! Number decimal number ! Float floating point number Float nan "NaN" Float inf "Infinity" Float -inf "-Infinity" ! String in double quotes (possibly null) ! Funcref not possible, error ! List as an array (possibly null); when used recursively: [] ! Dict as an object (possibly null); when used recursively: {} ! Blob as an array of the individual bytes v:false "false" v:true "true" v:none "null" --- 6102,6119 ---- The encoding is specified in: https://tools.ietf.org/html/rfc7159.html Vim values are converted as follows: ! |Number| decimal number ! |Float| floating point number Float nan "NaN" Float inf "Infinity" Float -inf "-Infinity" ! |String| in double quotes (possibly null) ! |Funcref| not possible, error ! |List| as an array (possibly null); when used recursively: [] ! |Dict| as an object (possibly null); when used recursively: {} ! |Blob| as an array of the individual bytes v:false "false" v:true "true" v:none "null" *************** *** 6085,6091 **** keys({dict}) *keys()* Return a |List| with all the keys of {dict}. The |List| is in ! arbitrary order. *len()* *E701* len({expr}) The result is a Number, which is the length of the argument. --- 6124,6130 ---- keys({dict}) *keys()* Return a |List| with all the keys of {dict}. The |List| is in ! arbitrary order. Also see |items()| and |values()|. *len()* *E701* len({expr}) The result is a Number, which is the length of the argument. *************** *** 6093,6098 **** --- 6132,6138 ---- used, as with |strlen()|. When {expr} is a |List| the number of items in the |List| is returned. + When {expr} is a |Blob| the number of bytes is returned. When {expr} is a |Dictionary| the number of entries in the |Dictionary| is returned. Otherwise an error is given. *************** *** 6177,6189 **** line(".") line number of the cursor line("'t") line number of mark t line("'" . marker) line number of mark marker ! < *last-position-jump* ! This autocommand jumps to the last known position in a file ! just after opening it, if the '" mark is set: > ! :au BufReadPost * ! \ if line("'\"") > 1 && line("'\"") <= line("$") && &ft !~# 'commit' ! \ | exe "normal! g`\"" ! \ | endif line2byte({lnum}) *line2byte()* Return the byte count from the start of the buffer for line --- 6217,6225 ---- line(".") line number of the cursor line("'t") line number of mark t line("'" . marker) line number of mark marker ! < ! To jump to the last known position when opening a file see ! |last-position-jump|. line2byte({lnum}) *line2byte()* Return the byte count from the start of the buffer for line *************** *** 6641,6648 **** --- 6677,6686 ---- *mkdir()* *E739* mkdir({name} [, {path} [, {prot}]]) Create directory {name}. + If {path} is "p" then intermediate directories are created as necessary. Otherwise it must be "". + If {prot} is given it is used to set the protection bits of the new directory. The default is 0755 (rwxr-xr-x: r/w for the user readable for others). Use 0700 to make it unreadable *************** *** 6651,6659 **** with 0755. Example: > :call mkdir($HOME . "/tmp/foo/bar", "p", 0700) < This function is not available in the |sandbox|. There is no error if the directory already exists and the "p" ! flag is passed (since patch 8.0.1708). Not available on all systems. To check use: > :if exists("*mkdir") < --- 6689,6705 ---- with 0755. Example: > :call mkdir($HOME . "/tmp/foo/bar", "p", 0700) + < This function is not available in the |sandbox|. + There is no error if the directory already exists and the "p" ! flag is passed (since patch 8.0.1708). However, without the ! "p" option the call will fail. ! ! The function result is a Number, which is 1 if the call was ! successful or 0 if the directory creation failed or partly ! failed. ! Not available on all systems. To check use: > :if exists("*mkdir") < *************** *** 6668,6674 **** nov Operator-pending (forced characterwise |o_v|) noV Operator-pending (forced linewise |o_V|) noCTRL-V Operator-pending (forced blockwise |o_CTRL-V|); ! CTRL-V is one character niI Normal using |i_CTRL-O| in |Insert-mode| niR Normal using |i_CTRL-O| in |Replace-mode| niV Normal using |i_CTRL-O| in |Virtual-Replace-mode| --- 6714,6720 ---- nov Operator-pending (forced characterwise |o_v|) noV Operator-pending (forced linewise |o_V|) noCTRL-V Operator-pending (forced blockwise |o_CTRL-V|); ! CTRL-V is one character niI Normal using |i_CTRL-O| in |Insert-mode| niR Normal using |i_CTRL-O| in |Replace-mode| niV Normal using |i_CTRL-O| in |Virtual-Replace-mode| *************** *** 6739,6744 **** --- 6785,6794 ---- nr2char(10), because NULs are represented with newline characters. nr2char(0) is a real NUL and terminates the string, thus results in an empty string. + To turn a list of character numbers into a string: > + let list = [65, 66, 67] + let str = join(map(list, {_, val -> nr2char(val)}), '') + < Result: "ABC" or({expr}, {expr}) *or()* Bitwise OR on the two arguments. The arguments are converted *************** *** 6934,6941 **** *printf-S* S The text of the String argument is used. If a precision is specified, no more display cells than the ! number specified are used. Without the |+multi_byte| ! feature works just like 's'. *printf-f* *E807* f F The Float argument is converted into a string of the --- 6984,6990 ---- *printf-S* S The text of the String argument is used. If a precision is specified, no more display cells than the ! number specified are used. *printf-f* *E807* f F The Float argument is converted into a string of the *************** *** 7040,7050 **** for a property that does not continue in another line; can be zero end_lnum line number for the end of text ! end_col column just after the text; not used when "length" ! is present; when {col} and "end_col" are equal ! this is a zero-width text property bufnr buffer to add the property to; when omitted ! the current buffer is used id user defined ID for the property; when omitted zero is used type name of the text property type --- 7089,7100 ---- for a property that does not continue in another line; can be zero end_lnum line number for the end of text ! end_col column just after the text; not used when ! "length" is present; when {col} and "end_col" ! are equal, and "end_lnum" is omitted or equal ! to {lnum}, this is a zero-width text property bufnr buffer to add the property to; when omitted ! the current buffer is used id user defined ID for the property; when omitted zero is used type name of the text property type *************** *** 7089,7095 **** start position with "lnum" and "col" must be given; when omitted the current buffer is used ! lnum" start in this line (when omitted start at the cursor) col start at this column (when omitted and "lnum" is given: use column 1, --- 7139,7145 ---- start position with "lnum" and "col" must be given; when omitted the current buffer is used ! lnum start in this line (when omitted start at the cursor) col start at this column (when omitted and "lnum" is given: use column 1, *************** *** 7107,7113 **** See |text-properties| for information about text properties. ! prop_list({lnum} [, {props}]) *prop_list()* Return a List with all text properties in line {lnum}. When {props} contains a "bufnr" item, use this buffer instead --- 7157,7163 ---- See |text-properties| for information about text properties. ! prop_list({lnum} [, {props}]) *prop_list()* Return a List with all text properties in line {lnum}. When {props} contains a "bufnr" item, use this buffer instead *************** *** 7279,7284 **** --- 7329,7336 ---- *readdir()* readdir({directory} [, {expr}]) Return a list with file and directory names in {directory}. + You can also use |glob()| if you don't need to do complicated + things, such as limiting the number of matches. When {expr} is omitted all entries are included. When {expr} is given, it is evaluated to check what to do: *************** *** 7344,7350 **** reg_recording() *reg_recording()* Returns the single letter name of the register being recorded. ! Returns an empty string string when not recording. See |q|. reltime([{start} [, {end}]]) *reltime()* Return an item that represents a time value. The format of --- 7396,7402 ---- reg_recording() *reg_recording()* Returns the single letter name of the register being recorded. ! Returns an empty string when not recording. See |q|. reltime([{start} [, {end}]]) *reltime()* Return an item that represents a time value. The format of *************** *** 7491,7496 **** --- 7543,7551 ---- Example: > :echo "last item: " . remove(mylist, -1) :call remove(mylist, 0, 9) + < + Use |delete()| to remove a file. + remove({blob}, {idx} [, {end}]) Without {end}: Remove the byte at {idx} from |Blob| {blob} and return the byte. *************** *** 7501,7513 **** Example: > :echo "last byte: " . remove(myblob, -1) :call remove(mylist, 0, 9) remove({dict}, {key}) Remove the entry from {dict} with key {key}. Example: > :echo "removed " . remove(dict, "one") < If there is no {key} in {dict} this is an error. - Use |delete()| to remove a file. - rename({from}, {to}) *rename()* Rename the file by the name {from} to the name {to}. This should also work to move files across file systems. The --- 7556,7567 ---- Example: > :echo "last byte: " . remove(myblob, -1) :call remove(mylist, 0, 9) + remove({dict}, {key}) Remove the entry from {dict} with key {key}. Example: > :echo "removed " . remove(dict, "one") < If there is no {key} in {dict} this is an error. rename({from}, {to}) *rename()* Rename the file by the name {from} to the name {to}. This should also work to move files across file systems. The *************** *** 7771,7776 **** --- 7825,7831 ---- When evaluating {skip} causes an error the search is aborted and -1 returned. {skip} can be a string, a lambda, a funcref or a partial. + Anything else makes the function fail. For {stopline} and {timeout} see |search()|. *************** *** 7867,7873 **** < setbufline({expr}, {lnum}, {text}) *setbufline()* Set line {lnum} to {text} in buffer {expr}. To insert ! lines use |append()|. For the use of {expr}, see |bufname()| above. --- 7922,7929 ---- < setbufline({expr}, {lnum}, {text}) *setbufline()* Set line {lnum} to {text} in buffer {expr}. To insert ! lines use |append()|. Any text properties in {lnum} are ! cleared. For the use of {expr}, see |bufname()| above. *************** *** 7947,7953 **** setline({lnum}, {text}) *setline()* Set line {lnum} of the current buffer to {text}. To insert lines use |append()|. To set lines in another buffer use ! |setbufline()|. {lnum} is used like with |getline()|. When {lnum} is just below the last line the {text} will be --- 8003,8009 ---- setline({lnum}, {text}) *setline()* Set line {lnum} of the current buffer to {text}. To insert lines use |append()|. To set lines in another buffer use ! |setbufline()|. Any text properties in {lnum} are cleared. {lnum} is used like with |getline()|. When {lnum} is just below the last line the {text} will be *************** *** 8437,8443 **** the sign group name. To use the global sign group, use an empty string. {group} functions as a namespace for {id}, thus two groups can use the same IDs. Refer to |sign-identifier| ! for more information. {name} refers to a defined sign. {expr} refers to a buffer name or number. For the accepted --- 8493,8499 ---- the sign group name. To use the global sign group, use an empty string. {group} functions as a namespace for {id}, thus two groups can use the same IDs. Refer to |sign-identifier| ! and |sign-group| for more information. {name} refers to a defined sign. {expr} refers to a buffer name or number. For the accepted *************** *** 8725,8731 **** as when using a floating point number in an expression, see |floating-point-format|. But it's a bit more permissive. E.g., "1e40" is accepted, while in an expression you need to ! write "1.0e40". Text after the number is silently ignored. The decimal point is always '.', no matter what the locale is set to. A comma ends the number: "12,345.67" is converted to --- 8781,8788 ---- as when using a floating point number in an expression, see |floating-point-format|. But it's a bit more permissive. E.g., "1e40" is accepted, while in an expression you need to ! write "1.0e40". The hexadecimal form "0x123" is also ! accepted, but not others, like binary or octal. Text after the number is silently ignored. The decimal point is always '.', no matter what the locale is set to. A comma ends the number: "12,345.67" is converted to *************** *** 8794,8803 **** strdisplaywidth({expr} [, {col}]) *strdisplaywidth()* The result is a Number, which is the number of display cells ! String {expr} occupies on the screen when it starts at {col}. ! When {col} is omitted zero is used. Otherwise it is the ! screen column where to start. This matters for Tab ! characters. The option settings of the current window are used. This matters for anything that's displayed differently, such as 'tabstop' and 'display'. --- 8851,8860 ---- strdisplaywidth({expr} [, {col}]) *strdisplaywidth()* The result is a Number, which is the number of display cells ! String {expr} occupies on the screen when it starts at {col} ! (first column is zero). When {col} is omitted zero is used. ! Otherwise it is the screen column where to start. This ! matters for Tab characters. The option settings of the current window are used. This matters for anything that's displayed differently, such as 'tabstop' and 'display'. *************** *** 8999,9009 **** swapinfo({fname}) *swapinfo()* The result is a dictionary, which holds information about the swapfile {fname}. The available fields are: ! version VIM version user user name host host name fname original file name ! pid PID of the VIM process that created the swap file mtime last modification time in seconds inode Optional: INODE number of the file --- 9056,9066 ---- swapinfo({fname}) *swapinfo()* The result is a dictionary, which holds information about the swapfile {fname}. The available fields are: ! version Vim version user user name host host name fname original file name ! pid PID of the Vim process that created the swap file mtime last modification time in seconds inode Optional: INODE number of the file *************** *** 9103,9109 **** concealable region if there are two consecutive regions with the same replacement character. For an example, if the text is "123456" and both "23" and "45" are concealed ! and replace by the character "X", then: call returns ~ synconcealed(lnum, 1) [0, '', 0] synconcealed(lnum, 2) [1, 'X', 1] --- 9160,9166 ---- concealable region if there are two consecutive regions with the same replacement character. For an example, if the text is "123456" and both "23" and "45" are concealed ! and replaced by the character "X", then: call returns ~ synconcealed(lnum, 1) [0, '', 0] synconcealed(lnum, 2) [1, 'X', 1] *************** *** 9331,9337 **** The top part of the buffer contains the contents of the first file, the bottom part of the buffer contains the contents of the second file. The middle part shows the differences. ! The parts are separated by a line of dashes. If the {options} argument is present, it must be a Dict with these possible members: --- 9388,9394 ---- The top part of the buffer contains the contents of the first file, the bottom part of the buffer contains the contents of the second file. The middle part shows the differences. ! The parts are separated by a line of equals. If the {options} argument is present, it must be a Dict with these possible members: *************** *** 9376,9382 **** 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* Also see |terminal-diff|. {options} is a dictionary with these optional entries: --- 9433,9441 ---- 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 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: *************** *** 9422,9431 **** "dict" can have these members: "visible" one when the cursor is visible, zero when it is hidden. ! "blink" one when the cursor is visible, zero when it ! is hidden. "shape" 1 for a block cursor, 2 for underline and 3 for a vertical bar. {buf} must be the buffer number of a terminal window. If the buffer does not exist or is not a terminal window, an empty --- 9481,9491 ---- "dict" can have these members: "visible" one when the cursor is visible, zero when it is hidden. ! "blink" one when the cursor is blinking, zero when it ! is not blinking. "shape" 1 for a block cursor, 2 for underline and 3 for a vertical bar. + "color" color of the cursor, e.g. "green" {buf} must be the buffer number of a terminal window. If the buffer does not exist or is not a terminal window, an empty *************** *** 9455,9461 **** used for |term_getline()| and |getline()|, so that: > term_getline(buf, N) < is equal to: > ! `getline(N + term_getscrolled(buf)) < (if that line exists). {buf} is used as with |term_getsize()|. --- 9515,9521 ---- used for |term_getline()| and |getline()|, so that: > term_getline(buf, N) < is equal to: > ! getline(N + term_getscrolled(buf)) < (if that line exists). {buf} is used as with |term_getsize()|. *************** *** 9596,9602 **** exist or is not a terminal window, an error is given. {only available when compiled with the |+terminal| feature} ! term_start({cmd}, {options}) *term_start()* Open a terminal window and run {cmd} in it. {cmd} can be a string or a List, like with |job_start()|. The --- 9656,9662 ---- exist or is not a terminal window, an error is given. {only available when compiled with the |+terminal| feature} ! term_start({cmd} [, {options}]) *term_start()* Open a terminal window and run {cmd} in it. {cmd} can be a string or a List, like with |job_start()|. The *************** *** 9613,9621 **** |job-options|. However, not all options can be used. These are supported: all timeout options ! "stoponexit" ! "callback", "out_cb", "err_cb" ! "exit_cb", "close_cb" "in_io", "in_top", "in_bot", "in_name", "in_buf" "out_io", "out_name", "out_buf", "out_modifiable", "out_msg" "err_io", "err_name", "err_buf", "err_modifiable", "err_msg" --- 9673,9680 ---- |job-options|. However, not all options can be used. These are supported: all timeout options ! "stoponexit", "cwd", "env" ! "callback", "out_cb", "err_cb", "exit_cb", "close_cb" "in_io", "in_top", "in_bot", "in_name", "in_buf" "out_io", "out_name", "out_buf", "out_modifiable", "out_msg" "err_io", "err_name", "err_buf", "err_modifiable", "err_msg" *************** *** 9735,9741 **** Only to be used for testing! test_override({name}, {val}) *test_override()* ! Overrides certain parts of Vims internal processing to be able to run tests. Only to be used for testing Vim! The override is enabled when {val} is non-zero and removed when {val} is zero. --- 9794,9800 ---- Only to be used for testing! test_override({name}, {val}) *test_override()* ! Overrides certain parts of Vim's internal processing to be able to run tests. Only to be used for testing Vim! The override is enabled when {val} is non-zero and removed when {val} is zero. *************** *** 9906,9912 **** echo tr("", "<>", "{}") < returns "{blob}" ! trim({text}[, {mask}]) *trim()* Return {text} as a String where any character in {mask} is removed from the beginning and end of {text}. If {mask} is not given, {mask} is all characters up to 0x20, --- 9965,9971 ---- echo tr("", "<>", "{}") < returns "{blob}" ! trim({text} [, {mask}]) *trim()* Return {text} as a String where any character in {mask} is removed from the beginning and end of {text}. If {mask} is not given, {mask} is all characters up to 0x20, *************** *** 9946,9955 **** Dictionary: 4 |v:t_dict| Float: 5 |v:t_float| Boolean: 6 |v:t_bool| (v:false and v:true) ! None 7 |v:t_none| (v:null and v:none) ! Job 8 |v:t_job| ! Channel 9 |v:t_channel| ! Blob 10 |v:t_blob| For backward compatibility, this method can be used: > :if type(myvar) == type(0) :if type(myvar) == type("") --- 10005,10014 ---- Dictionary: 4 |v:t_dict| Float: 5 |v:t_float| Boolean: 6 |v:t_bool| (v:false and v:true) ! None: 7 |v:t_none| (v:null and v:none) ! Job: 8 |v:t_job| ! Channel: 9 |v:t_channel| ! Blob: 10 |v:t_blob| For backward compatibility, this method can be used: > :if type(myvar) == type(0) :if type(myvar) == type("") *************** *** 9972,9978 **** If {name} is empty undofile() returns an empty string, since a buffer without a file name will not write an undo file. Useful in combination with |:wundo| and |:rundo|. ! When compiled without the +persistent_undo option this always returns an empty string. undotree() *undotree()* --- 10031,10037 ---- If {name} is empty undofile() returns an empty string, since a buffer without a file name will not write an undo file. Useful in combination with |:wundo| and |:rundo|. ! When compiled without the |+persistent_undo| option this always returns an empty string. undotree() *undotree()* *************** *** 10028,10034 **** values({dict}) *values()* Return a |List| with all the values of {dict}. The |List| is ! in arbitrary order. virtcol({expr}) *virtcol()* --- 10087,10093 ---- values({dict}) *values()* Return a |List| with all the values of {dict}. The |List| is ! in arbitrary order. Also see |items()| and |keys()|. virtcol({expr}) *virtcol()* *************** *** 10107,10113 **** Get the |window-ID| for the specified window. When {win} is missing use the current window. With {win} this is the window number. The top window has ! number 1. Use `win_getid(winnr())` for the current window. Without {tab} use the current tab, otherwise the tab with number {tab}. The first tab has number one. Return zero if the window cannot be found. --- 10166,10172 ---- Get the |window-ID| for the specified window. When {win} is missing use the current window. With {win} this is the window number. The top window has ! number 1. Without {tab} use the current tab, otherwise the tab with number {tab}. The first tab has number one. Return zero if the window cannot be found. *************** *** 10385,10391 **** amiga Amiga version of Vim. arabic Compiled with Arabic support |Arabic|. arp Compiled with ARP support (Amiga). ! autocmd Compiled with autocommand support. |autocommand| autoservername Automatically enable |clientserver| balloon_eval Compiled with |balloon-eval| support. balloon_multiline GUI supports multiline balloons. --- 10444,10451 ---- amiga Amiga version of Vim. arabic Compiled with Arabic support |Arabic|. arp Compiled with ARP support (Amiga). ! autocmd Compiled with autocommand support. (always true) ! autochdir Compiled with support for 'autochdir' autoservername Automatically enable |clientserver| balloon_eval Compiled with |balloon-eval| support. balloon_multiline GUI supports multiline balloons. *************** *** 10407,10413 **** conpty Platform where |ConPTY| can be used. cryptv Compiled with encryption support |encryption|. cscope Compiled with |cscope| support. ! cursorbind Compiled with |cursorbind| (always true) debug Compiled with "DEBUG" defined. dialog_con Compiled with console dialog support. dialog_gui Compiled with GUI dialog support. --- 10467,10473 ---- conpty Platform where |ConPTY| can be used. cryptv Compiled with encryption support |encryption|. cscope Compiled with |cscope| support. ! cursorbind Compiled with |'cursorbind'| (always true) debug Compiled with "DEBUG" defined. dialog_con Compiled with console dialog support. dialog_gui Compiled with GUI dialog support. *************** *** 10419,10425 **** emacs_tags Compiled with support for Emacs tags. eval Compiled with expression evaluation support. Always true, of course! ! ex_extra |+ex_extra|, always true now extra_search Compiled with support for |'incsearch'| and |'hlsearch'| farsi Compiled with Farsi support |farsi|. --- 10479,10485 ---- emacs_tags Compiled with support for Emacs tags. eval Compiled with expression evaluation support. Always true, of course! ! ex_extra |+ex_extra| (always true) extra_search Compiled with support for |'incsearch'| and |'hlsearch'| farsi Compiled with Farsi support |farsi|. *************** *** 10481,10487 **** mouse_urxvt Compiled with support for urxvt mouse. mouse_xterm Compiled with support for xterm mouse. mouseshape Compiled with support for 'mouseshape'. ! multi_byte Compiled with support for 'encoding' multi_byte_encoding 'encoding' is set to a multi-byte encoding. multi_byte_ime Compiled with support for IME input method. multi_lang Compiled with support for multiple languages. --- 10541,10547 ---- mouse_urxvt Compiled with support for urxvt mouse. mouse_xterm Compiled with support for xterm mouse. mouseshape Compiled with support for 'mouseshape'. ! multi_byte Compiled with support for 'encoding' (always true) multi_byte_encoding 'encoding' is set to a multi-byte encoding. multi_byte_ime Compiled with support for IME input method. multi_lang Compiled with support for multiple languages. *************** *** 10511,10517 **** reltime Compiled with |reltime()| support. rightleft Compiled with 'rightleft' support. ruby Compiled with Ruby interface |ruby|. ! scrollbind Compiled with 'scrollbind' support. showcmd Compiled with 'showcmd' support. signs Compiled with |:sign| support. smartindent Compiled with 'smartindent' support. --- 10571,10577 ---- reltime Compiled with |reltime()| support. rightleft Compiled with 'rightleft' support. ruby Compiled with Ruby interface |ruby|. ! scrollbind Compiled with 'scrollbind' support. (always true) showcmd Compiled with 'showcmd' support. signs Compiled with |:sign| support. smartindent Compiled with 'smartindent' support. *************** *** 10527,10536 **** system Compiled to use system() instead of fork()/exec(). tag_binary Compiled with binary searching in tags files |tag-binary-search|. ! tag_old_static Compiled with support for old static tags |tag-old-static|. - tag_any_white Compiled with support for any white characters in tags - files |tag-any-white|. tcl Compiled with Tcl interface. termguicolors Compiled with true color in terminal support. terminal Compiled with |terminal| support. --- 10587,10594 ---- system Compiled to use system() instead of fork()/exec(). tag_binary Compiled with binary searching in tags files |tag-binary-search|. ! tag_old_static Support for old static tags was removed, see |tag-old-static|. tcl Compiled with Tcl interface. termguicolors Compiled with true color in terminal support. terminal Compiled with |terminal| support. *************** *** 11315,11342 **** NOTE: The ":append" and ":insert" commands don't work properly inside a ":while" and ":for" loop. ! :for {var} in {list} *:for* *E690* *E732* :endfo[r] *:endfo* *:endfor* Repeat the commands between ":for" and ":endfor" for ! each item in {list}. Variable {var} is set to the ! value of each item. ! When an error is detected for a command inside the ! loop, execution continues after the "endfor". ! Changing {list} inside the loop affects what items are ! used. Make a copy if this is unwanted: > :for item in copy(mylist) ! < When not making a copy, Vim stores a reference to the ! next item in the list, before executing the commands ! with the current item. Thus the current item can be ! removed without effect. Removing any later item means ! it will not be found. Thus the following example ! works (an inefficient way to make a list empty): > for item in mylist call remove(mylist, 0) endfor ! < Note that reordering the list (e.g., with sort() or reverse()) may have unexpected effects. :for [{var1}, {var2}, ...] in {listlist} :endfo[r] Like ":for" above, but each item in {listlist} must be --- 11373,11406 ---- NOTE: The ":append" and ":insert" commands don't work properly inside a ":while" and ":for" loop. ! :for {var} in {object} *:for* *E690* *E732* :endfo[r] *:endfo* *:endfor* Repeat the commands between ":for" and ":endfor" for ! each item in {object}. {object} can be a |List| or ! a |Blob|. Variable {var} is set to the value of each ! item. When an error is detected for a command inside ! the loop, execution continues after the "endfor". ! Changing {object} inside the loop affects what items ! are used. Make a copy if this is unwanted: > :for item in copy(mylist) ! < ! When {object} is a |List| and not making a copy, Vim ! stores a reference to the next item in the |List| ! before executing the commands with the current item. ! Thus the current item can be removed without effect. ! Removing any later item means it will not be found. ! Thus the following example works (an inefficient way ! to make a |List| empty): > for item in mylist call remove(mylist, 0) endfor ! < Note that reordering the |List| (e.g., with sort() or reverse()) may have unexpected effects. + When {object} is a |Blob|, Vim always makes a copy to + iterate over. Unlike with |List|, modifying the + |Blob| does not affect the iteration. + :for [{var1}, {var2}, ...] in {listlist} :endfo[r] Like ":for" above, but each item in {listlist} must be *************** *** 11412,11425 **** commands are skipped. When {pattern} is omitted all errors are caught. Examples: > ! :catch /^Vim:Interrupt$/ " catch interrupts (CTRL-C) ! :catch /^Vim\%((\a\+)\)\=:E/ " catch all Vim errors ! :catch /^Vim\%((\a\+)\)\=:/ " catch errors and interrupts ! :catch /^Vim(write):/ " catch all errors in :write ! :catch /^Vim\%((\a\+)\)\=:E123/ " catch error E123 ! :catch /my-exception/ " catch user exception ! :catch /.*/ " catch everything ! :catch " same as /.*/ < Another character can be used instead of / around the {pattern}, so long as it does not have a special --- 11476,11489 ---- commands are skipped. When {pattern} is omitted all errors are caught. Examples: > ! :catch /^Vim:Interrupt$/ " catch interrupts (CTRL-C) ! :catch /^Vim\%((\a\+)\)\=:E/ " catch all Vim errors ! :catch /^Vim\%((\a\+)\)\=:/ " catch errors and interrupts ! :catch /^Vim(write):/ " catch all errors in :write ! :catch /^Vim\%((\a\+)\)\=:E123:/ " catch error E123 ! :catch /my-exception/ " catch user exception ! :catch /.*/ " catch everything ! :catch " same as /.*/ < Another character can be used instead of / around the {pattern}, so long as it does not have a special *************** *** 12689,12695 **** ============================================================================== 10. Vim script versions *vimscript-version* *vimscript-versions* ! Over time many features have been added to Vim script. This includes Ex commands, functions, variable types, etc. Each individual feature can be checked with the |has()| and |exists()| functions. --- 12753,12759 ---- ============================================================================== 10. Vim script versions *vimscript-version* *vimscript-versions* ! *scriptversion* Over time many features have been added to Vim script. This includes Ex commands, functions, variable types, etc. Each individual feature can be checked with the |has()| and |exists()| functions. *************** *** 12710,12718 **** < String concatenation with "." is not supported, use ".." instead. This avoids the ambiguity using "." for Dict member access and floating point numbers. Now ".5" means the number 0.5. ! Test for support with: > ! has('vimscript-2') ============================================================================== 11. No +eval feature *no-eval-feature* --- 12774,12787 ---- < String concatenation with "." is not supported, use ".." instead. This avoids the ambiguity using "." for Dict member access and floating point numbers. Now ".5" means the number 0.5. ! > ! :scriptversion 3 ! < All |vim-variable|s must be prefixed by "v:". E.g. "version" doesn't ! work as |v:version| anymore, it can be used as a normal variable. ! Same for some obvious names as "count" and others. + Test for support with: > + has('vimscript-3') ============================================================================== 11. No +eval feature *no-eval-feature* *************** *** 12822,12825 **** Find more information in the file src/testdir/README.txt. ! vim:tw=78:ts=8:ft=help:norl: --- 12891,12894 ---- Find more information in the file src/testdir/README.txt. ! vim:tw=78:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/farsi.txt 2019-02-16 15:09:21.225946157 +0100 --- runtime/doc/farsi.txt 2019-05-05 17:40:23.067021524 +0200 *************** *** 1,4 **** ! *farsi.txt* For Vim version 8.1. Last change: 2019 Feb 16 VIM REFERENCE MANUAL by Mortaza Ghassab Shiran --- 1,4 ---- ! *farsi.txt* For Vim version 8.1. Last change: 2019 May 05 VIM REFERENCE MANUAL by Mortaza Ghassab Shiran *************** *** 6,12 **** Right to Left and Farsi Mapping for Vim *farsi* *Farsi* - {Vi does not have any of these commands} *E27* Farsi support has been removed in patch 8.1.0932. At that time it was --- 6,11 ---- *** ../vim-8.1.1279/runtime/doc/filetype.txt 2018-05-17 13:40:51.000000000 +0200 --- runtime/doc/filetype.txt 2019-05-05 17:40:44.726900525 +0200 *************** *** 1,4 **** ! *filetype.txt* For Vim version 8.1. Last change: 2018 Apr 18 VIM REFERENCE MANUAL by Bram Moolenaar --- 1,4 ---- ! *filetype.txt* For Vim version 8.1. Last change: 2019 May 05 VIM REFERENCE MANUAL by Bram Moolenaar *************** *** 12,18 **** Also see |autocmd.txt|. - {Vi does not have any of these commands} ============================================================================== 1. Filetypes *filetypes* *file-types* --- 12,17 ---- *************** *** 320,327 **** Note that the last one is the value of $VIMRUNTIME which has been expanded. Note that when using a plugin manager or |packages| many directories will be ! added to 'runtimepath'. These plugins earch require their own directory, ! don't put them directly in ~/.vim/plugin. What if it looks like your plugin is not being loaded? You can find out what happens when Vim starts up by using the |-V| argument: > --- 319,326 ---- Note that the last one is the value of $VIMRUNTIME which has been expanded. Note that when using a plugin manager or |packages| many directories will be ! added to 'runtimepath'. These plugins each require their own directory, don't ! put them directly in ~/.vim/plugin. What if it looks like your plugin is not being loaded? You can find out what happens when Vim starts up by using the |-V| argument: > *************** *** 638,648 **** setlocal expandtab shiftwidth=4 softtabstop=4 tabstop=8 ! To disable this behaviour, set the following variable in your vimrc: > let g:python_recommended_style = 0 RPM SPEC *ft-spec-plugin* Since the text for this plugin is rather long it has been put in a separate --- 637,676 ---- setlocal expandtab shiftwidth=4 softtabstop=4 tabstop=8 ! To disable this behavior, set the following variable in your vimrc: > let g:python_recommended_style = 0 + R MARKDOWN *ft-rmd-plugin* + + By default ftplugin/html.vim is not sourced. If you want it sourced, add to + your |vimrc|: > + let rmd_include_html = 1 + + The 'formatexpr' option is set dynamically with different values for R code + and for Markdown code. If you prefer that 'formatexpr' is not set, add to your + |vimrc|: > + let rmd_dynamic_comments = 0 + + + R RESTRUCTURED TEXT *ft-rrst-plugin* + + The 'formatexpr' option is set dynamically with different values for R code + and for ReStructured text. If you prefer that 'formatexpr' is not set, add to + your |vimrc|: > + let rrst_dynamic_comments = 0 + + + RESTRUCTUREDTEXT *ft-rst-plugin* + + The following formatting setting are optionally available: > + setlocal expandtab shiftwidth=3 softtabstop=3 tabstop=8 + + To enable this behavior, set the following variable in your vimrc: > + let g:rst_style = 1 + + RPM SPEC *ft-spec-plugin* Since the text for this plugin is rather long it has been put in a separate *************** *** 695,698 **** < ! vim:tw=78:ts=8:ft=help:norl: --- 723,726 ---- < ! vim:tw=78:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/fold.txt 2018-05-17 13:40:51.000000000 +0200 --- runtime/doc/fold.txt 2019-05-05 17:32:54.065507338 +0200 *************** *** 1,4 **** ! *fold.txt* For Vim version 8.1. Last change: 2017 Mar 18 VIM REFERENCE MANUAL by Bram Moolenaar --- 1,4 ---- ! *fold.txt* For Vim version 8.1. Last change: 2019 May 05 VIM REFERENCE MANUAL by Bram Moolenaar *************** *** 14,20 **** 3. Fold options |fold-options| 4. Behavior of folds |fold-behavior| - {Vi has no Folding} {not available when compiled without the |+folding| feature} ============================================================================== --- 14,19 ---- *************** *** 601,604 **** are used. ============================================================================== ! vim:tw=78:ts=8:ft=help:norl: --- 600,603 ---- are used. ============================================================================== ! vim:tw=78:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/ft_ada.txt 2018-05-17 13:40:51.000000000 +0200 --- runtime/doc/ft_ada.txt 2018-06-17 22:23:13.773656146 +0200 *************** *** 249,255 **** External command used for |g:decada.Make()| (|'makeprg'|). *g:decada.Error_Format* ! g:decada.Error_Format| string Error format (|'errorformat'|). ============================================================================== --- 249,255 ---- External command used for |g:decada.Make()| (|'makeprg'|). *g:decada.Error_Format* ! g:decada.Error_Format string Error format (|'errorformat'|). ============================================================================== *** ../vim-8.1.1279/runtime/doc/ft_rust.txt 2017-10-27 21:53:22.000000000 +0200 --- runtime/doc/ft_rust.txt 2018-08-08 23:07:19.236325204 +0200 *************** *** 1,4 **** ! *ft_rust.txt* Filetype plugin for Rust ============================================================================== CONTENTS *rust* --- 1,6 ---- ! *ft_rust.txt* For Vim version 8.1. Last change: 2017 Nov 02 ! ! This is documentation for the Rust filetype plugin. ============================================================================== CONTENTS *rust* *************** *** 234,237 **** Note: This binding is only available in MacVim. ============================================================================== ! vim:tw=78:sw=4:noet:ts=8:ft=help:norl: --- 236,239 ---- Note: This binding is only available in MacVim. ============================================================================== ! vim:tw=78:sw=4:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/ft_sql.txt 2018-05-17 13:41:40.000000000 +0200 --- runtime/doc/ft_sql.txt 2018-07-29 14:23:36.363157576 +0200 *************** *** 777,780 **** as they were. ! vim:tw=78:ts=8:ft=help:norl: --- 777,780 ---- as they were. ! vim:tw=78:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/gui.txt 2019-04-28 14:02:25.410687613 +0200 --- runtime/doc/gui.txt 2019-05-05 17:40:49.138875880 +0200 *************** *** 1,4 **** ! *gui.txt* For Vim version 8.1. Last change: 2019 Apr 28 VIM REFERENCE MANUAL by Bram Moolenaar --- 1,4 ---- ! *gui.txt* For Vim version 8.1. Last change: 2019 May 05 VIM REFERENCE MANUAL by Bram Moolenaar *************** *** 19,25 **** |gui_x11.txt| For specific items of the X11 GUI. |gui_w32.txt| For specific items of the Win32 GUI. - {Vi does not have any of these commands} ============================================================================== 1. Starting the GUI *gui-start* *E229* *E233* --- 19,24 ---- *** ../vim-8.1.1279/runtime/doc/gui_w32.txt 2019-04-28 19:46:17.018060159 +0200 --- runtime/doc/gui_w32.txt 2019-05-05 17:40:54.634845175 +0200 *************** *** 1,4 **** ! *gui_w32.txt* For Vim version 8.1. Last change: 2017 Oct 27 VIM REFERENCE MANUAL by Bram Moolenaar --- 1,4 ---- ! *gui_w32.txt* For Vim version 8.1. Last change: 2019 May 05 VIM REFERENCE MANUAL by Bram Moolenaar *************** *** 19,25 **** |gui.txt| For generic items of the GUI. |os_win32.txt| For Win32 specific items. - {Vi does not have a Windows GUI} ============================================================================== 1. Starting the GUI *gui-w32-start* --- 19,24 ---- *************** *** 414,420 **** *:simalt* *:sim* :sim[alt] {key} simulate pressing {key} while holding Alt pressed. ! {not in Vi} {only for Win32 versions} Note: ":si" means ":s" with the "i" flag. Normally, Vim takes control of all Alt- combinations, to increase the --- 413,419 ---- *:simalt* *:sim* :sim[alt] {key} simulate pressing {key} while holding Alt pressed. ! {only for Win32 versions} Note: ":si" means ":s" with the "i" flag. Normally, Vim takes control of all Alt- combinations, to increase the *************** *** 462,465 **** :exe 'sign place 1 line=1 name=vimxpm file=' . expand('%:p') < ! vim:tw=78:sw=4:ts=8:ft=help:norl: --- 461,464 ---- :exe 'sign place 1 line=1 name=vimxpm file=' . expand('%:p') < ! vim:tw=78:sw=4:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/gui_x11.txt 2018-05-17 13:41:40.000000000 +0200 --- runtime/doc/gui_x11.txt 2019-05-05 17:40:59.550817699 +0200 *************** *** 1,4 **** ! *gui_x11.txt* For Vim version 8.1. Last change: 2018 May 06 VIM REFERENCE MANUAL by Bram Moolenaar --- 1,4 ---- ! *gui_x11.txt* For Vim version 8.1. Last change: 2019 May 05 VIM REFERENCE MANUAL by Bram Moolenaar *************** *** 19,25 **** Other relevant documentation: |gui.txt| For generic items of the GUI. - {Vi does not have any of these commands} ============================================================================== 1. Starting the X11 GUI *gui-x11-start* *E665* --- 19,24 ---- *************** *** 48,54 **** ":gui -f". Don't use "vim -fg", because "-fg" specifies the foreground color. ! When using "gvim -f" and then ":gui", Vim will run in the foreground. The "-f" argument will be remembered. To force running Vim in the background use ":gui -b". --- 47,53 ---- ":gui -f". Don't use "vim -fg", because "-fg" specifies the foreground color. ! When using "vim -f" and then ":gui", Vim will run in the foreground. The "-f" argument will be remembered. To force running Vim in the background use ":gui -b". *************** *** 376,383 **** distribution. For GTK+ 3, an effect similar to the above can be obtained by adding the ! following snippet of CSS code to $XDG_HOME_DIR/gtk-3.0/gtk.css (usually, ! $HOME/.config/gtk-3.0/gtk.css): For GTK+ 3 < 3.20: > --- 375,382 ---- distribution. For GTK+ 3, an effect similar to the above can be obtained by adding the ! following snippet of CSS code to $XDG_HOME_DIR/gtk-3.0/gtk.css (see the next ! section): For GTK+ 3 < 3.20: > *************** *** 408,413 **** --- 407,416 ---- GTK+ uses CSS for styling and layout of widgets. In this subsection, we'll have a quick look at GTK+ CSS through simple, illustrative examples. + You can usually edit the config with: > + vim $HOME/.config/gtk-3.0/gtk.css + + Example 1. Empty Space Adjustment ~ By default, the toolbar and the tabline of the GTK+ 3 GUI are somewhat larger *************** *** 492,497 **** --- 495,510 ---- in mind always when you try improving a theme. + Example 3. border color ~ + + To eliminate borders when maximized: > + + @define-color bg_color #1B2B34; + #vim-main-window { + background-color: @bg_color; + } + + Using Vim as a GTK+ plugin ~ *gui-gtk-socketid* When the GTK+ version of Vim starts up normally, it creates its own top level *************** *** 721,724 **** both by choosing to use either of the "* or "+ registers. ! vim:tw=78:sw=4:ts=8:ft=help:norl: --- 734,737 ---- both by choosing to use either of the "* or "+ registers. ! vim:tw=78:sw=4:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/hangulin.txt 2018-05-17 13:41:40.000000000 +0200 --- runtime/doc/hangulin.txt 2018-07-29 14:23:36.363157576 +0200 *************** *** 109,112 **** SungHyun Nam Chi-Deok Hwang <...> ! vim:tw=78:ts=8:ft=help:norl: --- 109,112 ---- SungHyun Nam Chi-Deok Hwang <...> ! vim:tw=78:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/hebrew.txt 2018-05-17 13:41:40.000000000 +0200 --- runtime/doc/hebrew.txt 2019-05-05 17:41:19.574705732 +0200 *************** *** 1,4 **** ! *hebrew.txt* For Vim version 8.1. Last change: 2007 Jun 14 VIM REFERENCE MANUAL by Ron Aaron (and Avner Lottem) --- 1,4 ---- ! *hebrew.txt* For Vim version 8.1. Last change: 2019 May 05 VIM REFERENCE MANUAL by Ron Aaron (and Avner Lottem) *************** *** 10,19 **** Lottem. Ron Aaron is currently helping support these features. ! {Vi does not have any of these commands} ! ! All this is only available when the |+rightleft| feature was enabled at ! compile time. Introduction --- 10,16 ---- Lottem. Ron Aaron is currently helping support these features. ! {only available when the |+rightleft| feature was enabled at compile time} Introduction *************** *** 139,142 **** problem, set isprint=@,128-255. ! vim:tw=78:ts=8:ft=help:norl: --- 136,139 ---- problem, set isprint=@,128-255. ! vim:tw=78:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/helphelp.txt 2018-05-17 13:41:40.000000000 +0200 --- runtime/doc/helphelp.txt 2019-05-04 22:41:34.687538617 +0200 *************** *** 1,4 **** ! *helphelp.txt* For Vim version 8.1. Last change: 2017 Mar 19 VIM REFERENCE MANUAL by Bram Moolenaar --- 1,4 ---- ! *helphelp.txt* For Vim version 8.1. Last change: 2019 May 04 VIM REFERENCE MANUAL by Bram Moolenaar *************** *** 24,30 **** the very top. The 'helplang' option is used to select a language, if the main help file is available in several languages. - {not in Vi} *{subject}* *E149* *E661* :h[elp] {subject} Like ":help", additionally jump to the tag {subject}. --- 24,29 ---- *************** *** 97,103 **** command from a following command. You need to type CTRL-V first to insert the or . Example: > :help soonly - < {not in Vi} :h[elp]! [subject] Like ":help", but in non-English help files prefer to find a tag in a file with the same language as the --- 96,101 ---- *************** *** 133,139 **** |:execute| when needed. Compressed help files will not be searched (Fedora compresses the help files). - {not in Vi} *:lh* *:lhelpgrep* :lh[elpgrep] {pattern}[@xx] --- 131,136 ---- *************** *** 147,157 **** *:exu* *:exusage* :exu[sage] Show help on Ex commands. Added to simulate the Nvi ! command. {not in Vi} *:viu* *:viusage* :viu[sage] Show help on Normal mode commands. Added to simulate ! the Nvi command. {not in Vi} When no argument is given to |:help| the file given with the 'helpfile' option will be opened. Otherwise the specified tag is searched for in all "doc/tags" --- 144,154 ---- *:exu* *:exusage* :exu[sage] Show help on Ex commands. Added to simulate the Nvi ! command. *:viu* *:viusage* :viu[sage] Show help on Normal mode commands. Added to simulate ! the Nvi command. When no argument is given to |:help| the file given with the 'helpfile' option will be opened. Otherwise the specified tag is searched for in all "doc/tags" *************** *** 199,205 **** Only for backwards compatibility. It now executes the ToolBar.FindHelp menu entry instead of using a builtin dialog. {only when compiled with |+GUI_GTK|} - {not in Vi} *:helpt* *:helptags* *E154* *E150* *E151* *E152* *E153* *E670* --- 196,201 ---- *************** *** 224,231 **** To rebuild the help tags in the runtime directory (requires write permission there): > :helptags $VIMRUNTIME/doc - < {not in Vi} - ============================================================================== 2. Translated help files *help-translated* --- 220,225 ---- *************** *** 370,373 **** You can find the details in $VIMRUNTIME/syntax/help.vim ! vim:tw=78:ts=8:ft=help:norl: --- 364,367 ---- You can find the details in $VIMRUNTIME/syntax/help.vim ! vim:tw=78:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/help.txt 2019-01-17 15:43:21.749878443 +0100 --- runtime/doc/help.txt 2019-01-17 14:55:00.628054659 +0100 *************** *** 1,4 **** ! *help.txt* For Vim version 8.1. Last change: 2017 Oct 28 VIM - main help file k --- 1,4 ---- ! *help.txt* For Vim version 8.1. Last change: 2019 Jan 17 VIM - main help file k *************** *** 10,16 **** Jump to a subject: Position the cursor on a tag (e.g. |bars|) and hit CTRL-]. With the mouse: ":set mouse=a" to enable the mouse (in xterm or GUI). Double-click the left mouse button on a tag, e.g. |bars|. ! Jump back: Type CTRL-T or CTRL-O. Repeat to go further back. Get specific help: It is possible to go directly to whatever you want help on, by giving an argument to the |:help| command. --- 10,16 ---- Jump to a subject: Position the cursor on a tag (e.g. |bars|) and hit CTRL-]. With the mouse: ":set mouse=a" to enable the mouse (in xterm or GUI). Double-click the left mouse button on a tag, e.g. |bars|. ! Jump back: Type CTRL-O. Repeat to go further back. Get specific help: It is possible to go directly to whatever you want help on, by giving an argument to the |:help| command. *************** *** 31,43 **** help entries for "word". Or use ":helpgrep word". |:helpgrep| Vim stands for Vi IMproved. Most of Vim was made by Bram Moolenaar, but only through the help of many others. See |credits|. ------------------------------------------------------------------------------ *doc-file-list* *Q_ct* BASIC: |quickref| Overview of the most common commands you will use ! |tutor| 30 minutes training course for beginners |copying| About copyrights |iccf| Helping poor children in Uganda |sponsor| Sponsor Vim development, become a registered Vim user --- 31,47 ---- help entries for "word". Or use ":helpgrep word". |:helpgrep| + Getting started: Do the Vim tutor, a 20 minute interactive training for the + basic commands, see |vimtutor|. + Read the user manual from start to end: |usr_01.txt| + Vim stands for Vi IMproved. Most of Vim was made by Bram Moolenaar, but only through the help of many others. See |credits|. ------------------------------------------------------------------------------ *doc-file-list* *Q_ct* BASIC: |quickref| Overview of the most common commands you will use ! |tutor| 20 minutes training course for beginners |copying| About copyrights |iccf| Helping poor children in Uganda |sponsor| Sponsor Vim development, become a registered Vim user *************** *** 113,119 **** |scroll.txt| scrolling the text in the window |insert.txt| Insert and Replace mode |change.txt| deleting and replacing text - |indent.txt| automatic indenting for C and other languages |undo.txt| Undo and Redo |repeat.txt| repeating commands, Vim scripts and debugging |visual.txt| using the Visual mode (selecting a text area) --- 117,122 ---- *************** *** 126,139 **** |pattern.txt| regexp patterns and search commands |map.txt| key mapping and abbreviations |tagsrch.txt| tags and special searches - |quickfix.txt| commands for a quick edit-compile-fix cycle |windows.txt| commands for using multiple windows and buffers |tabpage.txt| commands for using multiple tab pages - |syntax.txt| syntax highlighting |spell.txt| spell checking |diff.txt| working with two to four versions of the same file |autocmd.txt| automatically executing commands on an event - |filetype.txt| settings done specifically for a type of file |eval.txt| expression evaluation, conditional commands |channel.txt| Jobs, Channels, inter-process communication |fold.txt| hide (fold) ranges of lines --- 129,139 ---- *************** *** 143,160 **** |remote.txt| using Vim as a server or client |term.txt| using different terminals and mice |terminal.txt| Terminal window support |digraph.txt| list of available digraphs |mbyte.txt| multi-byte text support |mlang.txt| non-English language support |arabic.txt| Arabic language support and editing |farsi.txt| Farsi (Persian) editing |hebrew.txt| Hebrew language support and editing |russian.txt| Russian language support and editing - |ft_ada.txt| Ada (the programming language) support - |ft_rust.txt| Filetype plugin for Rust - |ft_sql.txt| about the SQL filetype plugin |hangulin.txt| Hangul (Korean) input mode - |rileft.txt| right-to-left editing mode GUI ~ |gui.txt| Graphical User Interface (GUI) --- 143,169 ---- |remote.txt| using Vim as a server or client |term.txt| using different terminals and mice |terminal.txt| Terminal window support + + Programming language support ~ + |indent.txt| automatic indenting for C and other languages + |syntax.txt| syntax highlighting + |textprop.txt| Attaching properties to text for highlighting or other + |filetype.txt| settings done specifically for a type of file + |quickfix.txt| commands for a quick edit-compile-fix cycle + |ft_ada.txt| Ada (the programming language) support + |ft_rust.txt| Filetype plugin for Rust + |ft_sql.txt| about the SQL filetype plugin + + Language support ~ |digraph.txt| list of available digraphs |mbyte.txt| multi-byte text support |mlang.txt| non-English language support + |rileft.txt| right-to-left editing mode |arabic.txt| Arabic language support and editing |farsi.txt| Farsi (Persian) editing |hebrew.txt| Hebrew language support and editing |russian.txt| Russian language support and editing |hangulin.txt| Hangul (Korean) input mode GUI ~ |gui.txt| Graphical User Interface (GUI) *************** *** 224,227 **** 'compatible'. ------------------------------------------------------------------------------ ! vim:tw=78:fo=tcq2:isk=!-~,^*,^\|,^\":ts=8:ft=help:norl: --- 233,236 ---- 'compatible'. ------------------------------------------------------------------------------ ! vim:tw=78:isk=!-~,^*,^\|,^\":ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/howto.txt 2018-05-17 13:41:40.000000000 +0200 --- runtime/doc/howto.txt 2018-07-29 14:23:36.363157576 +0200 *************** *** 93,96 **** |2html.vim| convert a colored file to HTML |less| use Vim like less or more with syntax highlighting ! vim:tw=78:ts=8:ft=help:norl: --- 93,96 ---- |2html.vim| convert a colored file to HTML |less| use Vim like less or more with syntax highlighting ! vim:tw=78:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/if_cscop.txt 2018-05-17 13:41:41.000000000 +0200 --- runtime/doc/if_cscop.txt 2019-05-05 17:41:29.350651064 +0200 *************** *** 1,4 **** ! *if_cscop.txt* For Vim version 8.1. Last change: 2018 Jan 21 VIM REFERENCE MANUAL by Andy Kahn --- 1,4 ---- ! *if_cscop.txt* For Vim version 8.1. Last change: 2019 May 05 VIM REFERENCE MANUAL by Andy Kahn *************** *** 21,27 **** 7. Availability & Information |cscope-info| This is currently for Unix and Win32 only. - {Vi does not have any of these commands} ============================================================================== 1. Cscope introduction *cscope-intro* --- 21,26 ---- *************** *** 484,487 **** Win32 support was added by Sergey Khorev . Contact him if you have Win32-specific issues. ! vim:tw=78:ts=8:ft=help:norl: --- 483,486 ---- Win32 support was added by Sergey Khorev . Contact him if you have Win32-specific issues. ! vim:tw=78:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/if_lua.txt 2019-03-23 13:56:30.189804811 +0100 --- runtime/doc/if_lua.txt 2019-05-05 17:57:40.985303358 +0200 *************** *** 1,4 **** ! *if_lua.txt* For Vim version 8.1. Last change: 2015 Oct 16 VIM REFERENCE MANUAL by Luis Carvalho --- 1,4 ---- ! *if_lua.txt* For Vim version 8.1. Last change: 2019 May 05 VIM REFERENCE MANUAL by Luis Carvalho *************** *** 17,33 **** 9. luaeval() Vim function |lua-luaeval| 10. Dynamic loading |lua-dynamic| ! {Vi does not have any of these commands} ! ! The Lua interface is available only when Vim was compiled with the ! |+lua| feature. ============================================================================== 1. Commands *lua-commands* *:lua* :[range]lua {chunk} ! Execute Lua chunk {chunk}. {not in Vi} Examples: > --- 17,30 ---- 9. luaeval() Vim function |lua-luaeval| 10. Dynamic loading |lua-dynamic| ! {only available when Vim was compiled with the |+lua| feature} ============================================================================== 1. Commands *lua-commands* *:lua* :[range]lua {chunk} ! Execute Lua chunk {chunk}. Examples: > *************** *** 38,44 **** :[range]lua << {endmarker} {script} {endmarker} ! Execute Lua script {script}. {not in Vi} Note: This command doesn't work when the Lua feature wasn't compiled in. To avoid errors, see |script-here|. --- 35,41 ---- :[range]lua << {endmarker} {script} {endmarker} ! Execute Lua script {script}. Note: This command doesn't work when the Lua feature wasn't compiled in. To avoid errors, see |script-here|. *************** *** 75,81 **** If the value returned by the function is a string it becomes the text of the line in the current turn. The default for [range] is the whole file: "1,$". - {not in Vi} Examples: > --- 72,77 ---- *************** *** 89,95 **** *:luafile* :[range]luafile {file} ! Execute Lua script in {file}. {not in Vi} The whole argument is used as a single file name. Examples: --- 85,91 ---- *:luafile* :[range]luafile {file} ! Execute Lua script in {file}. The whole argument is used as a single file name. Examples: *** ../vim-8.1.1279/runtime/doc/if_mzsch.txt 2018-05-17 13:41:41.000000000 +0200 --- runtime/doc/if_mzsch.txt 2019-05-05 17:58:07.097159011 +0200 *************** *** 1,4 **** ! *if_mzsch.txt* For Vim version 8.1. Last change: 2017 Oct 08 VIM REFERENCE MANUAL by Sergey Khorev --- 1,4 ---- ! *if_mzsch.txt* For Vim version 8.1. Last change: 2019 May 05 VIM REFERENCE MANUAL by Sergey Khorev *************** *** 15,24 **** 7. Dynamic loading |mzscheme-dynamic| 8. MzScheme setup |mzscheme-setup| ! {Vi does not have any of these commands} ! ! The MzScheme interface is available only if Vim was compiled with the ! |+mzscheme| feature. Based on the work of Brent Fulgham. Dynamic loading added by Sergey Khorev --- 15,21 ---- 7. Dynamic loading |mzscheme-dynamic| 8. MzScheme setup |mzscheme-setup| ! {only available when Vim was compiled with the |+mzscheme| feature} Based on the work of Brent Fulgham. Dynamic loading added by Sergey Khorev *************** *** 40,46 **** *:mzscheme* *:mz* :[range]mz[scheme] {stmt} ! Execute MzScheme statement {stmt}. {not in Vi} :[range]mz[scheme] << {endmarker} {script} --- 37,43 ---- *:mzscheme* *:mz* :[range]mz[scheme] {stmt} ! Execute MzScheme statement {stmt}. :[range]mz[scheme] << {endmarker} {script} *************** *** 51,57 **** |script-here|. *:mzfile* *:mzf* ! :[range]mzf[ile] {file} Execute the MzScheme script in {file}. {not in Vi} All of these commands do essentially the same thing - they execute a piece of MzScheme code, with the "current range" set to the given line --- 48,54 ---- |script-here|. *:mzfile* *:mzf* ! :[range]mzf[ile] {file} Execute the MzScheme script in {file}. All of these commands do essentially the same thing - they execute a piece of MzScheme code, with the "current range" set to the given line *************** *** 312,315 **** raco pkg install cext-lib # raco ctool command < ====================================================================== ! vim:tw=78:ts=8:sts=4:ft=help:norl: --- 309,312 ---- raco pkg install cext-lib # raco ctool command < ====================================================================== ! vim:tw=78:ts=8:noet:sts=4:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/if_ole.txt 2018-05-17 13:41:41.000000000 +0200 --- runtime/doc/if_ole.txt 2019-05-05 17:42:02.554465232 +0200 *************** *** 1,4 **** ! *if_ole.txt* For Vim version 8.1. Last change: 2008 Aug 16 VIM REFERENCE MANUAL by Paul Moore --- 1,4 ---- ! *if_ole.txt* For Vim version 8.1. Last change: 2019 May 05 VIM REFERENCE MANUAL by Paul Moore *************** *** 12,21 **** 4. Registration |ole-registration| 5. MS Visual Studio integration |MSVisualStudio| ! {Vi does not have any of these commands} ! ! OLE is only available when compiled with the |+ole| feature. See ! src/if_ole.INSTALL. An alternative is using the client-server communication |clientserver|. ============================================================================== --- 12,19 ---- 4. Registration |ole-registration| 5. MS Visual Studio integration |MSVisualStudio| ! {only available when compiled with the |+ole| feature. See ! src/if_ole.INSTALL} An alternative is using the client-server communication |clientserver|. ============================================================================== *************** *** 202,205 **** [.Net remarks provided by Dave Fishburn and Brian Sturk] ============================================================================== ! vim:tw=78:ts=8:ft=help:norl: --- 200,203 ---- [.Net remarks provided by Dave Fishburn and Brian Sturk] ============================================================================== ! vim:tw=78:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/if_perl.txt 2019-01-12 22:47:01.256088105 +0100 --- runtime/doc/if_perl.txt 2019-05-05 17:58:30.901027316 +0200 *************** *** 1,4 **** ! *if_perl.txt* For Vim version 8.1. Last change: 2017 Nov 24 VIM REFERENCE MANUAL by Sven Verdoolaege --- 1,4 ---- ! *if_perl.txt* For Vim version 8.1. Last change: 2019 May 05 VIM REFERENCE MANUAL by Sven Verdoolaege *************** *** 11,19 **** 3. Using the Perl interface |perl-using| 4. Dynamic loading |perl-dynamic| ! {Vi does not have any of these commands} ! ! The Perl interface only works when Vim was compiled with the |+perl| feature. ============================================================================== 1. Editing Perl files *perl-editing* --- 11,17 ---- 3. Using the Perl interface |perl-using| 4. Dynamic loading |perl-dynamic| ! {only available when Vim was compiled with the |+perl| feature} ============================================================================== 1. Editing Perl files *perl-editing* *************** *** 44,51 **** Sven Verdoolaege Matt Gerassimof ! Perl for MS-Windows can be found at: http://www.perl.com/ ! The ActiveState one should work. ============================================================================== 3. Using the Perl interface *perl-using* --- 42,50 ---- Sven Verdoolaege Matt Gerassimof ! Perl for MS-Windows (and other platforms) can be found at: ! http://www.perl.org/ ! The ActiveState one should work, Strawberry Perl is a good alternative. ============================================================================== 3. Using the Perl interface *perl-using* *************** *** 191,197 **** and inserting line breaks. *perl-Blob* ! VIM::Blob({expr}) Return Blob literal string 0zXXXX from scalar value. *perl-SetHeight* Window->SetHeight({height}) --- 190,196 ---- and inserting line breaks. *perl-Blob* ! VIM::Blob({expr}) Return |Blob| literal string 0zXXXX from scalar value. *perl-SetHeight* Window->SetHeight({height}) *************** *** 306,309 **** with. ============================================================================== ! vim:tw=78:ts=8:ft=help:norl: --- 305,308 ---- with. ============================================================================== ! vim:tw=78:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/if_pyth.txt 2018-05-17 13:41:41.000000000 +0200 --- runtime/doc/if_pyth.txt 2019-05-04 22:42:16.327312200 +0200 *************** *** 1,4 **** ! *if_pyth.txt* For Vim version 8.1. Last change: 2018 Jan 30 VIM REFERENCE MANUAL by Paul Moore --- 1,4 ---- ! *if_pyth.txt* For Vim version 8.1. Last change: 2019 May 04 VIM REFERENCE MANUAL by Paul Moore *************** *** 19,26 **** 11. Python X |python_x| 12. Building with Python support |python-building| - {Vi does not have any of these commands} - The Python 2.x interface is available only when Vim was compiled with the |+python| feature. The Python 3 interface is available only when Vim was compiled with the --- 19,24 ---- *************** *** 60,68 **** endfunction To see what version of Python you have: > - :python import sys :python print(sys.version) Note: Python is very sensitive to the indenting. Make sure the "class" line and "EOF" do not have any indent. --- 58,67 ---- endfunction To see what version of Python you have: > :python print(sys.version) + There is no need to import sys, it's done by default. + Note: Python is very sensitive to the indenting. Make sure the "class" line and "EOF" do not have any indent. *************** *** 75,91 **** None. If a string is returned, it becomes the text of the line in the current turn. The default for [range] is the whole file: "1,$". - {not in Vi} Examples: > :pydo return "%s\t%d" % (line[::-1], len(line)) :pydo if line: return "%4d: %s" % (linenr, line) < *:pyfile* *:pyf* :[range]pyf[ile] {file} Execute the Python script in {file}. The whole ! argument is used as a single file name. {not in Vi} Both of these commands do essentially the same thing - they execute a piece of Python code, with the "current range" |python-range| set to the given line --- 74,101 ---- None. If a string is returned, it becomes the text of the line in the current turn. The default for [range] is the whole file: "1,$". Examples: > :pydo return "%s\t%d" % (line[::-1], len(line)) :pydo if line: return "%4d: %s" % (linenr, line) < + One can use `:pydo` in possible conjunction with `:py` to filter a range using + python. For example: > + + :py3 << EOF + needle = vim.eval('@a') + replacement = vim.eval('@b') + + def py_vim_string_replace(str): + return str.replace(needle, replacement) + EOF + :'<,'>py3do return py_vim_string_replace(line) + < *:pyfile* *:pyf* :[range]pyf[ile] {file} Execute the Python script in {file}. The whole ! argument is used as a single file name. Both of these commands do essentially the same thing - they execute a piece of Python code, with the "current range" |python-range| set to the given line *************** *** 98,104 **** To pass arguments you need to set sys.argv[] explicitly. Example: > - :python import sys :python sys.argv = ["foo", "bar"] :pyfile myscript.py --- 108,113 ---- *************** *** 168,178 **** - a dictionary if the Vim expression evaluates to a Vim dictionary Dictionaries and lists are recursively expanded. Examples: > :py text_width = vim.eval("&tw") ! :py str = vim.eval("12+12") # NB result is a string! Use ! # string.atoi() to convert to ! # a number. ! :py tagList = vim.eval('taglist("eval_expr")') < The latter will return a python list of python dicts, for instance: [{'cmd': '/^eval_expr(arg, nextcmd)$/', 'static': 0, 'name': ~ --- 177,191 ---- - a dictionary if the Vim expression evaluates to a Vim dictionary Dictionaries and lists are recursively expanded. Examples: > + :" value of the 'textwidth' option :py text_width = vim.eval("&tw") ! : ! :" contents of the 'a' register ! :py a_reg = vim.eval("@a") ! : ! :" Result is a string! Use string.atoi() to convert to a number. ! :py str = vim.eval("12+12") ! : :py tagList = vim.eval('taglist("eval_expr")') < The latter will return a python list of python dicts, for instance: [{'cmd': '/^eval_expr(arg, nextcmd)$/', 'static': 0, 'name': ~ *************** *** 924,927 **** one you prefer, before running configure. ============================================================================== ! vim:tw=78:ts=8:ft=help:norl: --- 937,940 ---- one you prefer, before running configure. ============================================================================== ! vim:tw=78:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/if_ruby.txt 2019-03-26 22:50:19.147698161 +0100 --- runtime/doc/if_ruby.txt 2019-05-05 17:59:08.636818323 +0200 *************** *** 1,4 **** ! *if_ruby.txt* For Vim version 8.1. Last change: 2018 Mar 15 VIM REFERENCE MANUAL by Shugo Maeda --- 1,4 ---- ! *if_ruby.txt* For Vim version 8.1. Last change: 2019 May 05 VIM REFERENCE MANUAL by Shugo Maeda *************** *** 14,23 **** 6. rubyeval() Vim function |ruby-rubyeval| 7. Dynamic loading |ruby-dynamic| - {Vi does not have any of these commands} *E266* *E267* *E268* *E269* *E270* *E271* *E272* *E273* ! The Ruby interface only works when Vim was compiled with the |+ruby| feature. The home page for ruby is http://www.ruby-lang.org/. You can find links for downloading Ruby there. --- 14,22 ---- 6. rubyeval() Vim function |ruby-rubyeval| 7. Dynamic loading |ruby-dynamic| *E266* *E267* *E268* *E269* *E270* *E271* *E272* *E273* ! {only available when Vim was compiled with the |+ruby| feature} The home page for ruby is http://www.ruby-lang.org/. You can find links for downloading Ruby there. *************** *** 248,251 **** with. ============================================================================== ! vim:tw=78:ts=8:ft=help:norl: --- 247,250 ---- with. ============================================================================== ! vim:tw=78:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/if_sniff.txt 2018-05-17 13:41:41.000000000 +0200 --- runtime/doc/if_sniff.txt 2018-07-29 14:23:36.363157576 +0200 *************** *** 8,11 **** The SNiFF+ support was removed at patch 7.4.1433. If you want to check it out sync to before that. ! vim:tw=78:ts=8:ft=help:norl: --- 8,11 ---- The SNiFF+ support was removed at patch 7.4.1433. If you want to check it out sync to before that. ! vim:tw=78:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/if_tcl.txt 2018-05-17 13:41:41.000000000 +0200 --- runtime/doc/if_tcl.txt 2019-05-05 17:59:23.388736552 +0200 *************** *** 1,4 **** ! *if_tcl.txt* For Vim version 8.1. Last change: 2016 Jan 01 VIM REFERENCE MANUAL by Ingo Wilken --- 1,4 ---- ! *if_tcl.txt* For Vim version 8.1. Last change: 2019 May 05 VIM REFERENCE MANUAL by Ingo Wilken *************** *** 16,24 **** 8. Examples |tcl-examples| 9. Dynamic loading |tcl-dynamic| ! {Vi does not have any of these commands} *E280* ! ! The Tcl interface only works when Vim was compiled with the |+tcl| feature. WARNING: There are probably still some bugs. Please send bug reports, comments, ideas etc to --- 16,23 ---- 8. Examples |tcl-examples| 9. Dynamic loading |tcl-dynamic| ! *E280* ! {only available when Vim was compiled with the |+tcl| feature} WARNING: There are probably still some bugs. Please send bug reports, comments, ideas etc to *************** *** 66,77 **** possible to add or delete lines using this command. If {cmd} returns an error, the command is interrupted. The default for [range] is the whole file: "1,$". ! See |tcl-var-line| and |tcl-var-lnum|. {not in Vi} *:tclfile* *:tclf* :tclf[ile] {file} Execute the Tcl script in {file}. This is the same as ":tcl source {file}", but allows file name completion. - {not in Vi} Note that Tcl objects (like variables) persist from one command to the next, --- 65,75 ---- possible to add or delete lines using this command. If {cmd} returns an error, the command is interrupted. The default for [range] is the whole file: "1,$". ! See |tcl-var-line| and |tcl-var-lnum|. *:tclfile* *:tclf* :tclf[ile] {file} Execute the Tcl script in {file}. This is the same as ":tcl source {file}", but allows file name completion. Note that Tcl objects (like variables) persist from one command to the next, *************** *** 544,547 **** the shared library must match the Tcl version Vim was compiled with. ============================================================================== ! vim:tw=78:ts=8:ft=help:norl: --- 542,545 ---- the shared library must match the Tcl version Vim was compiled with. ============================================================================== ! vim:tw=78:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/indent.txt 2019-01-31 14:12:52.760076333 +0100 --- runtime/doc/indent.txt 2019-02-21 21:42:02.738685574 +0100 *************** *** 1,4 **** ! *indent.txt* For Vim version 8.1. Last change: 2018 Apr 04 VIM REFERENCE MANUAL by Bram Moolenaar --- 1,4 ---- ! *indent.txt* For Vim version 8.1. Last change: 2019 Feb 21 VIM REFERENCE MANUAL by Bram Moolenaar *************** *** 589,596 **** user manual. If you want to write your own indent file, it must set the 'indentexpr' ! option. Setting the 'indentkeys' option is often useful. See the ! $VIMRUNTIME/indent directory for examples. REMARKS ABOUT SPECIFIC INDENT FILES ~ --- 589,597 ---- user manual. If you want to write your own indent file, it must set the 'indentexpr' ! option. Setting the 'indentkeys' option is often useful. ! See the $VIMRUNTIME/indent/README.txt file for hints. ! See the $VIMRUNTIME/indent directory for examples. REMARKS ABOUT SPECIFIC INDENT FILES ~ *************** *** 603,616 **** These conventions are not universally followed, so the Clojure indent script offers a few configurable options, listed below. ! If the current vim does not include searchpairpos(), the indent script falls back to normal 'lisp' indenting, and the following options are ignored. *g:clojure_maxlines* ! Set maximum scan distance of searchpairpos(). Larger values trade performance ! for correctness when dealing with very long forms. A value of 0 will scan ! without limits. > " Default let g:clojure_maxlines = 100 --- 604,617 ---- These conventions are not universally followed, so the Clojure indent script offers a few configurable options, listed below. ! If the current vim does not include |searchpairpos()|, the indent script falls back to normal 'lisp' indenting, and the following options are ignored. *g:clojure_maxlines* ! Set maximum scan distance of |searchpairpos()|. Larger values trade ! performance for correctness when dealing with very long forms. A value of 0 ! will scan without limits. > " Default let g:clojure_maxlines = 100 *************** *** 908,913 **** --- 909,933 ---- and 'default:' are indented at the same level than the 'switch()' to avoid meaningless indentation. You can use the above option to return to the traditional way. + ------------- + + *PHP_noArrowMatching* + By default the indent script will indent multi-line chained calls by matching + the position of the '->': > + + $user_name_very_long->name() + ->age() + ->info(); + + You can revert to the classic way of indenting by setting this option to 1: > + :let g:PHP_noArrowMatching = 1 + + You will obtain the following result: > + + $user_name_very_long->name() + ->age() + ->info(); + PYTHON *ft-python-indent* *************** *** 917,927 **** that you can change the value of 'shiftwidth' later. Indent after an open paren: > ! let g:pyindent_open_paren = '&sw * 2' Indent after a nested paren: > ! let g:pyindent_nested_paren = '&sw' Indent for a continuation line: > ! let g:pyindent_continue = '&sw * 2' R *ft-r-indent* --- 937,957 ---- that you can change the value of 'shiftwidth' later. Indent after an open paren: > ! let g:pyindent_open_paren = 'shiftwidth() * 2' Indent after a nested paren: > ! let g:pyindent_nested_paren = 'shiftwidth()' Indent for a continuation line: > ! let g:pyindent_continue = 'shiftwidth() * 2' ! ! The method uses |searchpair()| to look back for unclosed parenthesis. This ! can sometimes be slow, thus it timeouts after 150 msec. If you notice the ! indenting isn't correct, you can set a larger timeout in msec: > ! let g:pyindent_searchpair_timeout = 500 ! ! If looking back for unclosed parenthesis is still too slow, especially during ! a copy-paste operation, or if you don't need indenting inside multi-line ! parentheses, you can completely disable this feature: > ! let g:pyindent_disable_parentheses_indenting = 1 R *ft-r-indent* *************** *** 960,965 **** --- 990,1000 ---- paste(x) paste(x) } } < + The code will be indented after lines that match the pattern + `'\(&\||\|+\|-\|\*\|/\|=\|\~\|%\|->\)\s*$'`. If you want indentation after + lines that match a different pattern, you should set the appropriate value of + `r_indent_op_pattern` in your |vimrc|. + SHELL *ft-sh-indent* *************** *** 1010,1016 **** indenting width (default is 'shiftwidth'): > let b:verilog_indent_width = 4 ! let b:verilog_indent_width = &sw * 2 In addition, you can turn the verbose mode for debug issue: > --- 1045,1051 ---- indenting width (default is 'shiftwidth'): > let b:verilog_indent_width = 4 ! let b:verilog_indent_width = shiftwidth() * 2 In addition, you can turn the verbose mode for debug issue: > *************** *** 1133,1141 **** For indenting Vim scripts there is one variable that specifies the amount of indent for a continuation line, a line that starts with a backslash: > ! :let g:vim_indent_cont = &sw * 3 Three times shiftwidth is the default value. ! vim:tw=78:ts=8:ft=help:norl: --- 1168,1176 ---- For indenting Vim scripts there is one variable that specifies the amount of indent for a continuation line, a line that starts with a backslash: > ! :let g:vim_indent_cont = shiftwidth() * 3 Three times shiftwidth is the default value. ! vim:tw=78:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/index.txt 2019-05-05 15:02:26.176319819 +0200 --- runtime/doc/index.txt 2019-05-05 14:56:42.134251046 +0200 *************** *** 1,4 **** ! *index.txt* For Vim version 8.1. Last change: 2018 Apr 19 VIM REFERENCE MANUAL by Bram Moolenaar --- 1,4 ---- ! *index.txt* For Vim version 8.1. Last change: 2019 Apr 24 VIM REFERENCE MANUAL by Bram Moolenaar *************** *** 17,25 **** 2.3. Square bracket commands |[| 2.4. Commands starting with 'g' |g| 2.5. Commands starting with 'z' |z| 3. Visual mode |visual-index| 4. Command-line editing |ex-edit-index| ! 5. EX commands |ex-cmd-index| For an overview of options see help.txt |option-list|. For an overview of built-in functions see |functions|. --- 17,27 ---- 2.3. Square bracket commands |[| 2.4. Commands starting with 'g' |g| 2.5. Commands starting with 'z' |z| + 2.6. Operator-pending mode |operator-pending-index| 3. Visual mode |visual-index| 4. Command-line editing |ex-edit-index| ! 5. Terminal-Job mode |terminal-job-index| ! 6. EX commands |ex-cmd-index| For an overview of options see help.txt |option-list|. For an overview of built-in functions see |functions|. *************** *** 166,171 **** --- 168,187 ---- |i_CTRL-X_s| CTRL-X s spelling suggestions {not available when compiled without the |+insert_expand| feature} + commands in completion mode (see |popupmenu-keys|) + + |complete_CTRL-E| CTRL-E stop completion and go back to original text + |complete_CTRL-Y| CTRL-Y accept selected match and stop completion + CTRL-L insert one character from the current match + insert currently selected match + delete one character and redo search + CTRL-H same as + select the previous match + select the next match + select a match several entries back + select a match several entries forward + other stop completion and insert the typed character + ============================================================================== 2. Normal mode *normal-index* *************** *** 528,537 **** |CTRL-W_CTRL-]| CTRL-W CTRL-] same as "CTRL-W ]" |CTRL-W_CTRL-^| CTRL-W CTRL-^ same as "CTRL-W ^" |CTRL-W_CTRL-_| CTRL-W CTRL-_ same as "CTRL-W _" - |CTRL-W_quote| CTRL-W " terminal window: paste register |CTRL-W_+| CTRL-W + increase current window height N lines |CTRL-W_-| CTRL-W - decrease current window height N lines - |CTRL-W_.| CTRL-W . terminal window: type CTRL-W |CTRL-W_:| CTRL-W : same as |:|, edit a command line |CTRL-W_<| CTRL-W < decrease current window width N columns |CTRL-W_=| CTRL-W = make all windows the same height & width --- 544,551 ---- *************** *** 540,546 **** |CTRL-W_J| CTRL-W J move current window to the very bottom |CTRL-W_K| CTRL-W K move current window to the very top |CTRL-W_L| CTRL-W L move current window to the far right - |CTRL-W_N| CTRL-W N terminal window: go to Terminal Normal mode |CTRL-W_P| CTRL-W P go to preview window |CTRL-W_R| CTRL-W R rotate windows upwards N times |CTRL-W_S| CTRL-W S same as "CTRL-W s" --- 554,559 ---- *************** *** 570,575 **** --- 583,590 ---- |CTRL-W_gF| CTRL-W g F edit file name under the cursor in a new tab page and jump to the line number following the file name. + |CTRL-W_gt| CTRL-W g t same as `gt`: go to next tab page + |CTRL-W_gT| CTRL-W g T same as `gT`: go to previous tab page |CTRL-W_h| CTRL-W h go to Nth left window (stop at first window) |CTRL-W_i| CTRL-W i split window and jump to declaration of identifier under the cursor *************** *** 847,852 **** --- 862,871 ---- position the cursor at the start (left side) of the screen |zt| zt redraw, cursor line at top of window + |zuw| zuw undo |zw| + |zug| zug undo |zg| + |zuW| zuW undo |zW| + |zuG| zuG undo |zG| |zv| zv open enough folds to view the cursor line |zw| zw mark word as wrong (bad) spelled word |zx| zx re-apply 'foldlevel' and do "zv" *************** *** 855,860 **** --- 874,890 ---- |z| z same as "zl" ============================================================================== + 2.6 Operator-pending mode *operator-pending-index* + + These can be used after an operator, but before a {motion} has been entered. + + tag char action in Operator-pending mode ~ + ----------------------------------------------------------------------- + |o_v| v force operator to work characterwise + |o_V| V force operator to work linewise + |o_CTRL-V| CTRL-V force operator to work blockwise + + ============================================================================== 3. Visual mode *visual-index* Most commands in Visual mode are the same as in Normal mode. The ones listed *************** *** 976,982 **** "Completion" below refers to context-sensitive completion. It will complete file names, tags, commands etc. as appropriate. ! tag command action in Command-line editing mode ~ ------------------------------------------------------------------------------ CTRL-@ not used |c_CTRL-A| CTRL-A do completion on the pattern in front of the --- 1006,1012 ---- "Completion" below refers to context-sensitive completion. It will complete file names, tags, commands etc. as appropriate. ! tag command action in Command-line editing mode ~ ------------------------------------------------------------------------------ CTRL-@ not used |c_CTRL-A| CTRL-A do completion on the pattern in front of the *************** *** 1016,1025 **** command-line from history. |c_CTRL-Q| CTRL-Q same as CTRL-V, unless it's used for terminal control flow ! |c_CTRL-R| CTRL-R {0-9a-z"%#*:= CTRL-F CTRL-P CTRL-W CTRL-A} insert the contents of a register or object under the cursor as if typed ! |c_CTRL-R_CTRL-R| CTRL-R CTRL-R {0-9a-z"%#*:= CTRL-F CTRL-P CTRL-W CTRL-A} insert the contents of a register or object under the cursor literally CTRL-S (used for terminal control flow) --- 1046,1056 ---- command-line from history. |c_CTRL-Q| CTRL-Q same as CTRL-V, unless it's used for terminal control flow ! |c_CTRL-R| CTRL-R {regname} insert the contents of a register or object under the cursor as if typed ! |c_CTRL-R_CTRL-R| CTRL-R CTRL-R {regname} ! |c_CTRL-R_CTRL-O| CTRL-R CTRL-O {regname} insert the contents of a register or object under the cursor literally CTRL-S (used for terminal control flow) *************** *** 1066,1081 **** |c_| toggle insert/overstrike mode |c_| cursor at mouse click You found it, Arthur! *holy-grail* *:smile* ============================================================================== ! 5. EX commands *ex-cmd-index* *:index* This is a brief but complete listing of all the ":" commands, without mentioning any arguments. The optional part of the command name is inside []. The commands are sorted on the non-optional part of their name. ! tag command action ~ ------------------------------------------------------------------------------ |:!| :! filter lines or execute an external command |:!!| :!! repeat last ":!" command --- 1097,1133 ---- |c_| toggle insert/overstrike mode |c_| cursor at mouse click + ============================================================================== + 5. Terminal-Job mode *terminal-job-index* + + Most Normal mode commands except for window commands (|CTRL-W|) do not work in + a terminal window. Switch to Terminal-Normal mode to use them. + This assumes 'termwinkey' is not set. + + tag char action in Terminal-Job mode ~ + ----------------------------------------------------------------------- + |t_CTRL-\_CTRL-N| CTRL-\ CTRL-N switch to Terminal-Normal mode + |t_CTRL-W_N| CTRL-W N switch to Terminal-Normal mode + |t_CTRL-W_:| CTRL-W : enter an Ex command + |t_CTRL-W_.| CTRL-W . type CTRL-W in the terminal + CTRL-W CTRL-\ send a CTRL-\ to the job in the terminal + |t_CTRL-W_quote| CTRL-W " {0-9a-z"%#*:=} + paste register in the terminal + |t_CTRL-W_CTRL-C| CTRL-W CTRL-C forcefully ends the job + |t_CTRL-W_CTRL-W| CTRL-W CTRL-W move focus to the next window + |t_CTRL-W_gt| CTRL-W gt go to next tabpage, same as `gt` + |t_CTRL-W_gT| CTRL-W gT go to previous tabpage, same as `gT` + You found it, Arthur! *holy-grail* *:smile* ============================================================================== ! 6. EX commands *ex-cmd-index* *:index* This is a brief but complete listing of all the ":" commands, without mentioning any arguments. The optional part of the command name is inside []. The commands are sorted on the non-optional part of their name. ! tag command action ~ ------------------------------------------------------------------------------ |:!| :! filter lines or execute an external command |:!!| :!! repeat last ":!" command *************** *** 1465,1472 **** |:recover| :rec[over] recover a file from a swap file |:redo| :red[o] redo one undone change |:redir| :redi[r] redirect messages to a file or register ! |:redraw| :redr[aw] force a redraw of the display ! |:redrawstatus| :redraws[tatus] force a redraw of the status line(s) |:registers| :reg[isters] display the contents of registers |:resize| :res[ize] change current window height |:retab| :ret[ab] change tab size --- 1517,1525 ---- |:recover| :rec[over] recover a file from a swap file |:redo| :red[o] redo one undone change |:redir| :redi[r] redirect messages to a file or register ! |:redraw| :redr[aw] force a redraw of the display ! |:redrawstatus| :redraws[tatus] force a redraw of the status line(s) ! |:redrawtabline| :redrawt[abline] force a redraw of the tabline |:registers| :reg[isters] display the contents of registers |:resize| :res[ize] change current window height |:retab| :ret[ab] change tab size *************** *** 1506,1512 **** |:sbrewind| :sbr[ewind] split window and go to first file in the buffer list |:scriptnames| :scr[iptnames] list names of all sourced Vim scripts ! |:scriptencoding| :scripte[ncoding] encoding used in sourced Vim script |:scscope| :scs[cope] split window and execute cscope command |:set| :se[t] show or set options |:setfiletype| :setf[iletype] set 'filetype', unless it was set already --- 1559,1566 ---- |:sbrewind| :sbr[ewind] split window and go to first file in the buffer list |:scriptnames| :scr[iptnames] list names of all sourced Vim scripts ! |:scriptencoding| :scripte[ncoding] encoding used in sourced Vim script ! |:scriptversion| :scriptv[ersion] version of Vim script used |:scscope| :scs[cope] split window and execute cscope command |:set| :se[t] show or set options |:setfiletype| :setf[iletype] set 'filetype', unless it was set already *************** *** 1653,1659 **** argument list |:wq| :wq write to a file and quit window or Vim |:wqall| :wqa[ll] write all changed buffers and quit Vim - |:wsverb| :ws[verb] pass the verb to workshop over IPC |:wundo| :wu[ndo] write undo information to a file |:wviminfo| :wv[iminfo] write to viminfo file |:xit| :x[it] write if buffer changed and quit window or Vim --- 1707,1712 ---- *** ../vim-8.1.1279/runtime/doc/insert.txt 2019-04-06 13:45:51.564756966 +0200 --- runtime/doc/insert.txt 2019-05-05 17:42:43.198237570 +0200 *************** *** 1,4 **** ! *insert.txt* For Vim version 8.1. Last change: 2018 Feb 10 VIM REFERENCE MANUAL by Bram Moolenaar --- 1,4 ---- ! *insert.txt* For Vim version 8.1. Last change: 2019 May 05 VIM REFERENCE MANUAL by Bram Moolenaar *************** *** 62,68 **** CTRL-@ Insert previously inserted text and stop insert. {Vi: only when typed as first char, only up to 128 chars} *i_CTRL-A* ! CTRL-A Insert previously inserted text. {not in Vi} *i_CTRL-H* *i_* *i_BS* or CTRL-H Delete the character before the cursor (see |i_backspacing| --- 62,68 ---- CTRL-@ Insert previously inserted text and stop insert. {Vi: only when typed as first char, only up to 128 chars} *i_CTRL-A* ! CTRL-A Insert previously inserted text. *i_CTRL-H* *i_* *i_BS* or CTRL-H Delete the character before the cursor (see |i_backspacing| *************** *** 75,81 **** "eol", delete the ; the next line is appended after the current one. See |:fixdel| if your key does not do what you want. - {not in Vi} *i_CTRL-W* CTRL-W Delete the word before the cursor (see |i_backspacing| about joining lines). See the section "word motions", --- 75,80 ---- *************** *** 102,111 **** key, the code for that key is inserted in <> form. For example, the string "" can be entered by typing (two keys). Neither char is considered for ! mapping. {not in Vi} ! CTRL-N Find next keyword (see |i_CTRL-N|). {not in Vi} ! CTRL-P Find previous keyword (see |i_CTRL-P|). {not in Vi} CTRL-R {0-9a-z"%#*+:.-=} *i_CTRL-R* Insert the contents of a register. Between typing CTRL-R and --- 101,110 ---- key, the code for that key is inserted in <> form. For example, the string "" can be entered by typing (two keys). Neither char is considered for ! mapping. ! CTRL-N Find next keyword (see |i_CTRL-N|). ! CTRL-P Find previous keyword (see |i_CTRL-P|). CTRL-R {0-9a-z"%#*+:.-=} *i_CTRL-R* Insert the contents of a register. Between typing CTRL-R and *************** *** 142,148 **** converted to a String. When append() or setline() is invoked the undo sequence will be broken. ! See |registers| about registers. {not in Vi} CTRL-R CTRL-R {0-9a-z"%#*+/:.-=} *i_CTRL-R_CTRL-R* Insert the contents of a register. Works like using a single --- 141,147 ---- converted to a String. When append() or setline() is invoked the undo sequence will be broken. ! See |registers| about registers. CTRL-R CTRL-R {0-9a-z"%#*+/:.-=} *i_CTRL-R_CTRL-R* Insert the contents of a register. Works like using a single *************** *** 154,160 **** < Options 'textwidth', 'formatoptions', etc. still apply. If you also want to avoid these, use CTRL-R CTRL-O, see below. The '.' register (last inserted text) is still inserted as ! typed. {not in Vi} CTRL-R CTRL-O {0-9a-z"%#*+/:.-=} *i_CTRL-R_CTRL-O* Insert the contents of a register literally and don't --- 153,159 ---- < Options 'textwidth', 'formatoptions', etc. still apply. If you also want to avoid these, use CTRL-R CTRL-O, see below. The '.' register (last inserted text) is still inserted as ! typed. CTRL-R CTRL-O {0-9a-z"%#*+/:.-=} *i_CTRL-R_CTRL-O* Insert the contents of a register literally and don't *************** *** 163,176 **** insert the text above the current line, like with `P`. Does not replace characters! The '.' register (last inserted text) is still inserted as ! typed. {not in Vi} CTRL-R CTRL-P {0-9a-z"%#*+/:.-=} *i_CTRL-R_CTRL-P* Insert the contents of a register literally and fix the indent, like |[|. Does not replace characters! The '.' register (last inserted text) is still inserted as ! typed. {not in Vi} *i_CTRL-T* CTRL-T Insert one shiftwidth of indent at the start of the current --- 162,175 ---- insert the text above the current line, like with `P`. Does not replace characters! The '.' register (last inserted text) is still inserted as ! typed. CTRL-R CTRL-P {0-9a-z"%#*+/:.-=} *i_CTRL-R_CTRL-P* Insert the contents of a register literally and fix the indent, like |[|. Does not replace characters! The '.' register (last inserted text) is still inserted as ! typed. *i_CTRL-T* CTRL-T Insert one shiftwidth of indent at the start of the current *************** *** 206,217 **** CTRL-X Enter CTRL-X mode. This is a sub-mode where commands can be given to complete words or scroll the window. See ! |i_CTRL-X| and |ins-completion|. {not in Vi} *i_CTRL-E* ! CTRL-E Insert the character which is below the cursor. {not in Vi} *i_CTRL-Y* ! CTRL-Y Insert the character which is above the cursor. {not in Vi} Note that for CTRL-E and CTRL-Y 'textwidth' is not used, to be able to copy characters from a long line. --- 205,216 ---- CTRL-X Enter CTRL-X mode. This is a sub-mode where commands can be given to complete words or scroll the window. See ! |i_CTRL-X| and |ins-completion|. *i_CTRL-E* ! CTRL-E Insert the character which is below the cursor. *i_CTRL-Y* ! CTRL-Y Insert the character which is above the cursor. Note that for CTRL-E and CTRL-Y 'textwidth' is not used, to be able to copy characters from a long line. *************** *** 228,234 **** is set. Please refer to |rileft.txt| for more information about right-to-left mode. - {not in Vi} Only if compiled with the |+rightleft| feature. *i_CTRL-^* --- 227,232 ---- *************** *** 248,261 **** The language mappings are normally used to type characters that are different from what the keyboard produces. The 'keymap' option can be used to install a whole number of them. - {not in Vi} *i_CTRL-]* ! CTRL-] Trigger abbreviation, without inserting a character. {not in ! Vi} *i_* ! Toggle between Insert and Replace mode. {not in Vi} ----------------------------------------------------------------------- *i_backspacing* --- 246,257 ---- The language mappings are normally used to type characters that are different from what the keyboard produces. The 'keymap' option can be used to install a whole number of them. *i_CTRL-]* ! CTRL-] Trigger abbreviation, without inserting a character. *i_* ! Toggle between Insert and Replace mode. ----------------------------------------------------------------------- *i_backspacing* *************** *** 379,386 **** CTRL-L when 'insertmode' is set: go to Normal mode *i_CTRL-L* CTRL-G u break undo sequence, start new change *i_CTRL-G_u* CTRL-G U don't break undo with next left/right cursor *i_CTRL-G_U* ! movement (but only if the cursor stays ! within same the line) ----------------------------------------------------------------------- Note: If the cursor keys take you out of Insert mode, check the 'noesckeys' --- 375,382 ---- CTRL-L when 'insertmode' is set: go to Normal mode *i_CTRL-L* CTRL-G u break undo sequence, start new change *i_CTRL-G_u* CTRL-G U don't break undo with next left/right cursor *i_CTRL-G_U* ! movement, if the cursor stays within ! same the line ----------------------------------------------------------------------- Note: If the cursor keys take you out of Insert mode, check the 'noesckeys' *************** *** 434,444 **** This makes it possible to use the cursor keys in Insert mode, without breaking the undo sequence and therefore using |.| (redo) will work as expected. ! Also entering a text like (with the "(" mapping from above): > Lorem ipsum (dolor ! will be repeatable by the |.|to the expected Lorem ipsum (dolor) --- 430,440 ---- This makes it possible to use the cursor keys in Insert mode, without breaking the undo sequence and therefore using |.| (redo) will work as expected. ! Also entering a text like (with the "(" mapping from above): Lorem ipsum (dolor ! will be repeatable by using |.| to the expected Lorem ipsum (dolor) *************** *** 519,533 **** character is replaced with several spaces. The result of this is that the number of characters in the line increases. Backspacing will delete one space at a time. The original character will be put back for only one space ! that you backspace over (the last one). {Vi does not have the 'expandtab' ! option} *ins-smarttab* When the 'smarttab' option is on, a inserts 'shiftwidth' positions at the beginning of a line and 'tabstop' positions in other places. This means that often spaces instead of a character are inserted. When 'smarttab' is off, a always inserts 'tabstop' positions, and 'shiftwidth' is only ! used for ">>" and the like. {not in Vi} *ins-softtabstop* When the 'softtabstop' option is non-zero, a inserts 'softtabstop' --- 515,528 ---- character is replaced with several spaces. The result of this is that the number of characters in the line increases. Backspacing will delete one space at a time. The original character will be put back for only one space ! that you backspace over (the last one). *ins-smarttab* When the 'smarttab' option is on, a inserts 'shiftwidth' positions at the beginning of a line and 'tabstop' positions in other places. This means that often spaces instead of a character are inserted. When 'smarttab' is off, a always inserts 'tabstop' positions, and 'shiftwidth' is only ! used for ">>" and the like. *ins-softtabstop* When the 'softtabstop' option is non-zero, a inserts 'softtabstop' *************** *** 567,580 **** several spaces. The result of this is that the number of characters in the line increases. Backspacing will delete one space at a time. The original character will be put back for only one space that you backspace over (the ! last one). {Vi does not have the 'expandtab' option} ============================================================================== 6. Virtual Replace mode *vreplace-mode* *Virtual-Replace-mode* Enter Virtual Replace mode with the "gR" command in normal mode. {not available when compiled without the |+vreplace| feature} - {Vi does not have Virtual Replace mode} Virtual Replace mode is similar to Replace mode, but instead of replacing actual characters in the file, you are replacing screen real estate, so that --- 562,574 ---- several spaces. The result of this is that the number of characters in the line increases. Backspacing will delete one space at a time. The original character will be put back for only one space that you backspace over (the ! last one). ============================================================================== 6. Virtual Replace mode *vreplace-mode* *Virtual-Replace-mode* Enter Virtual Replace mode with the "gR" command in normal mode. {not available when compiled without the |+vreplace| feature} Virtual Replace mode is similar to Replace mode, but instead of replacing actual characters in the file, you are replacing screen real estate, so that *************** *** 1079,1085 **** leading text is changed. If you want to suppress the warning message for an empty result, return ! v:none. This is useful to implement asynchronous completion with complete(). Other items are ignored. --- 1073,1080 ---- leading text is changed. If you want to suppress the warning message for an empty result, return ! |v:none|. This is useful to implement asynchronous completion with ! |complete()|. Other items are ignored. *************** *** 1543,1549 **** If you wish non-filetype syntax items to also be included, you can use a regular expression syntax (added in version 13.0 of ! autoload\syntaxcomplete.vim) to add items. Looking at the output from ":syntax list" while editing a PHP file I can see some of these entries: > htmlArg,htmlTag,htmlTagName,javaScriptStatement,javaScriptGlobalObjects --- 1538,1544 ---- If you wish non-filetype syntax items to also be included, you can use a regular expression syntax (added in version 13.0 of ! autoload/syntaxcomplete.vim) to add items. Looking at the output from ":syntax list" while editing a PHP file I can see some of these entries: > htmlArg,htmlTag,htmlTagName,javaScriptStatement,javaScriptGlobalObjects *************** *** 1806,1812 **** the last blank. *gI* ! gI Insert text in column 1 [count] times. {not in Vi} *gi* gi Insert text in the same position as where Insert mode --- 1801,1807 ---- the last blank. *gI* ! gI Insert text in column 1 [count] times. *gi* gi Insert text in the same position as where Insert mode *************** *** 1817,1823 **** but NOT for inserted/deleted characters. When the |:keepjumps| command modifier is used the |'^| mark won't be changed. - {not in Vi} *o* o Begin a new line below the cursor and insert text, --- 1812,1817 ---- *************** *** 1884,1890 **** script, the insertion only starts after the function or script is finished. This command does not work from |:normal|. - {not in Vi} *:stopi* *:stopinsert* :stopi[nsert] Stop Insert mode as soon as possible. Works like --- 1878,1883 ---- *************** *** 1901,1912 **** Note that when using this command in a function or script that the replacement will only start after the function or script is finished. - {not in Vi} *:startgreplace* :startg[replace][!] Just like |:startreplace|, but use Virtual Replace mode, like with |gR|. - {not in Vi} ============================================================================== 10. Inserting a file *inserting-file* --- 1894,1903 ---- *************** *** 2013,2016 **** [READ ERRORS] not all of the file could be read ! vim:tw=78:ts=8:ft=help:norl: --- 2004,2007 ---- [READ ERRORS] not all of the file could be read ! vim:tw=78:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/intro.txt 2018-05-17 13:41:41.000000000 +0200 --- runtime/doc/intro.txt 2019-05-05 17:43:22.626016554 +0200 *************** *** 1,4 **** ! *intro.txt* For Vim version 8.1. Last change: 2018 Jan 24 VIM REFERENCE MANUAL by Bram Moolenaar --- 1,4 ---- ! *intro.txt* For Vim version 8.1. Last change: 2019 May 05 VIM REFERENCE MANUAL by Bram Moolenaar *************** *** 34,42 **** is not located in the default place. You can jump to subjects like with tags: Use CTRL-] to jump to a subject under the cursor, use CTRL-T to jump back. ! Throughout this manual the differences between Vi and Vim are mentioned in ! curly braces, like this: {Vi does not have on-line help}. See |vi_diff.txt| ! for a summary of the differences between Vim and Vi. This manual refers to Vim on various machines. There may be small differences between different computers and terminals. Besides the remarks given in this --- 34,40 ---- is not located in the default place. You can jump to subjects like with tags: Use CTRL-] to jump to a subject under the cursor, use CTRL-T to jump back. ! The differences between Vi and Vim are mentioned in |vi_diff.txt|. This manual refers to Vim on various machines. There may be small differences between different computers and terminals. Besides the remarks given in this *************** *** 52,80 **** there. For beginners, there is a hands-on |tutor|. To learn using Vim, read the user manual |usr_toc.txt|. ! *book* ! There are many books on Vi that contain a section for beginners. There are ! two books I can recommend: ! ! "Vim - Vi Improved" by Steve Oualline ! ! This is the very first book completely dedicated to Vim. It is very good for ! beginners. The most often used commands are explained with pictures and ! examples. The less often used commands are also explained, the more advanced ! features are summarized. There is a comprehensive index and a quick ! reference. Parts of this book have been included in the user manual ! |frombook|. ! Published by New Riders Publishing. ISBN: 0735710015 ! For more information try one of these: ! http://iccf-holland.org/click5.html ! http://www.vim.org/iccf/click5.html ! ! "Learning the Vi editor" by Linda Lamb and Arnold Robbins ! ! This is a book about Vi that includes a chapter on Vim (in the sixth edition). ! The first steps in Vi are explained very well. The commands that Vim adds are ! only briefly mentioned. There is also a German translation. ! Published by O'Reilly. ISBN: 1-56592-426-6. ============================================================================== 2. Vim on the internet *internet* --- 50,60 ---- there. For beginners, there is a hands-on |tutor|. To learn using Vim, read the user manual |usr_toc.txt|. ! *book* *books* ! Most books on Vi and Vim contain a section for beginners. Others are spending ! more words on specific functionality. You can find an overview of Vim books ! here: ! http://iccf-holland.org/vim_books.html ============================================================================== 2. Vim on the internet *internet* *************** *** 84,92 **** contain links to the most recent version of Vim. The FAQ is a list of Frequently Asked Questions. Read this if you have problems. ! Vim home page: http://www.vim.org/ ! Vim FAQ: http://vimdoc.sf.net/ ! Downloading: ftp://ftp.vim.org/pub/vim/MIRRORS Usenet News group where Vim is discussed: *news* *usenet* --- 64,72 ---- contain links to the most recent version of Vim. The FAQ is a list of Frequently Asked Questions. Read this if you have problems. ! Vim home page: https://www.vim.org/ ! Vim FAQ: https://vimhelp.appspot.com/vim_faq.txt.html ! Downloading: https://www.vim.org/download.php Usenet News group where Vim is discussed: *news* *usenet* *************** *** 114,123 **** See http://www.vim.org/maillist.php for the latest information. NOTE: - You can only send messages to these lists if you have subscribed! - You need to send the messages from the same location as where you subscribed from (to avoid spam mail). - - Maximum message size is 40000 characters. *subscribe-maillist* If you want to join, send a message to --- 94,105 ---- See http://www.vim.org/maillist.php for the latest information. NOTE: + - Anyone can see the archive, e.g. on Google groups. Search this if you have + questions. - You can only send messages to these lists if you have subscribed! + - The first message is moderated, thus it may take a few hours to show up. - You need to send the messages from the same location as where you subscribed from (to avoid spam mail). *subscribe-maillist* If you want to join, send a message to *************** *** 150,156 **** Where reproduce.vim is a script that reproduces the problem. Try different machines, if relevant (is this an MS-Windows specific bug perhaps?). ! Send me patches if you can! It will help to include information about the version of Vim you are using and your setup. You can get the information with this command: > --- 132,141 ---- Where reproduce.vim is a script that reproduces the problem. Try different machines, if relevant (is this an MS-Windows specific bug perhaps?). ! Send me patches if you can! If you create a pull request on ! https://github.com/vim/vim then the automated checks will run and report any ! obvious problems. But you can also send the patch by email (use an attachment ! to avoid white space changes). It will help to include information about the version of Vim you are using and your setup. You can get the information with this command: > *************** *** 189,195 **** ============================================================================== 3. Credits *credits* *author* *Bram* *Moolenaar* ! Most of Vim was written by Bram Moolenaar . Parts of the documentation come from several Vi manuals, written by: W.N. Joy --- 174,180 ---- ============================================================================== 3. Credits *credits* *author* *Bram* *Moolenaar* ! Most of Vim was created by Bram Moolenaar . Parts of the documentation come from several Vi manuals, written by: W.N. Joy *************** *** 268,273 **** --- 253,259 ---- Ken Takata fixes and features Kazunobu Kuriyama GTK 3 Christian Brabandt many fixes, features, user support, etc. + Yegappan Lakshmanan many quickfix features I wish to thank all the people that sent me bug reports and suggestions. The list is too long to mention them all here. Vim would not be the same without *************** *** 280,288 **** Vi "the original". Without further remarks this is the version of Vi that appeared in Sun OS 4.x. ":version" returns "Version 3.7, 6/7/85". Sometimes other versions are referred ! to. Only runs under Unix. Source code only available with a ! license. More information on Vi can be found through: ! http://vi-editor.org [doesn't currently work...] *Posix* Posix From the IEEE standard 1003.2, Part 2: Shell and utilities. Generally known as "Posix". This is a textual description of --- 266,274 ---- Vi "the original". Without further remarks this is the version of Vi that appeared in Sun OS 4.x. ":version" returns "Version 3.7, 6/7/85". Sometimes other versions are referred ! to. Only runs under Unix. Source code is now available under a ! BSD-style license. More information on Vi can be found through: ! http://ex-vi.sourceforge.net/ *Posix* Posix From the IEEE standard 1003.2, Part 2: Shell and utilities. Generally known as "Posix". This is a textual description of *************** *** 297,305 **** Source code is freely available. *Elvis* Elvis Another Vi clone, made by Steve Kirkendall. Very compact but isn't ! as flexible as Vim. ! The version used is 2.1. It is still being developed. Source code is ! freely available. ============================================================================== 4. Notation *notation* --- 283,296 ---- Source code is freely available. *Elvis* Elvis Another Vi clone, made by Steve Kirkendall. Very compact but isn't ! as flexible as Vim. Development has stalled, Elvis has left the ! building! Source code is freely available. ! *Neovim* ! Neovim A Vim clone. Forked the Vim source in 2014 and went a different way. ! Very much bound to github and has many more dependencies, making ! development more complex and limiting portability. Code has been ! refactored, resulting in patches not being exchangeable with Vim. ! Supports a remote GUI and integration with scripting languages. ============================================================================== 4. Notation *notation* *************** *** 595,603 **** If the 'showmode' option is on "-- VREPLACE --" is shown at the bottom of the window. ! Insert Normal mode Entered when CTRL-O given in Insert mode. This is ! like Normal mode, but after executing one command Vim ! returns to Insert mode. If the 'showmode' option is on "-- (insert) --" is shown at the bottom of the window. --- 586,594 ---- If the 'showmode' option is on "-- VREPLACE --" is shown at the bottom of the window. ! Insert Normal mode Entered when CTRL-O is typed in Insert mode (see ! |i_CTRL-O|). This is like Normal mode, but after ! executing one command Vim returns to Insert mode. If the 'showmode' option is on "-- (insert) --" is shown at the bottom of the window. *************** *** 710,716 **** like typing ":" commands after another. All command line editing, completion etc. is available. Use the ":vi" command |:visual| to exit "Ex" mode. - {not in Vi} ============================================================================== 7. The window contents *window-contents* --- 701,706 ---- *************** *** 906,909 **** 6. ~ ============================================================================== ! vim:tw=78:ts=8:ft=help:norl: --- 896,899 ---- 6. ~ ============================================================================== ! vim:tw=78:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/map.txt 2019-04-25 21:27:40.566186854 +0200 --- runtime/doc/map.txt 2019-05-05 17:43:30.013975122 +0200 *************** *** 1,4 **** ! *map.txt* For Vim version 8.1. Last change: 2018 May 13 VIM REFERENCE MANUAL by Bram Moolenaar --- 1,4 ---- ! *map.txt* For Vim version 8.1. Last change: 2019 May 05 VIM REFERENCE MANUAL by Bram Moolenaar *************** *** 76,82 **** Map the key sequence {lhs} to {rhs} for the modes where the map command applies. Disallow mapping of {rhs}, to avoid nested and recursive mappings. Often ! used to redefine a command. {not in Vi} :unm[ap] {lhs} |mapmode-nvo| *:unm* *:unmap* --- 76,82 ---- Map the key sequence {lhs} to {rhs} for the modes where the map command applies. Disallow mapping of {rhs}, to avoid nested and recursive mappings. Often ! used to redefine a command. :unm[ap] {lhs} |mapmode-nvo| *:unm* *:unmap* *************** *** 110,116 **** :cmapc[lear] |mapmode-c| *:cmapc* *:cmapclear* :tmapc[lear] |mapmode-t| *:tmapc* *:tmapclear* Remove ALL mappings for the modes where the map ! command applies. {not in Vi} Use the argument to remove buffer-local mappings |:map-| Warning: This also removes the default mappings. --- 110,116 ---- :cmapc[lear] |mapmode-c| *:cmapc* *:cmapclear* :tmapc[lear] |mapmode-t| *:tmapc* *:tmapclear* Remove ALL mappings for the modes where the map ! command applies. Use the argument to remove buffer-local mappings |:map-| Warning: This also removes the default mappings. *************** *** 143,149 **** :tma[p] {lhs} |mapmode-t| *:tmap_l* List the key mappings for the key sequences starting with {lhs} in the modes where the map command applies. - {not in Vi} These commands are used to map a key or key sequence to a string of characters. You can use this to put command sequences under function keys, --- 143,148 ---- *************** *** 160,166 **** that mapping won't get expanded yet, Vim is waiting for another character. If you type a space, then "foo" will get inserted, plus the space. If you type "a", then "bar" will get inserted. - {Vi does not allow ambiguous mappings} 1.2 SPECIAL ARGUMENTS *:map-arguments* --- 159,164 ---- *************** *** 1016,1060 **** *:norea* *:noreabbrev* :norea[bbrev] [] [] [lhs] [rhs] ! same as ":ab", but no remapping for this {rhs} {not ! in Vi} *:ca* *:cabbrev* :ca[bbrev] [] [] [lhs] [rhs] ! same as ":ab", but for Command-line mode only. {not ! in Vi} *:cuna* *:cunabbrev* ! :cuna[bbrev] {lhs} same as ":una", but for Command-line mode only. {not ! in Vi} *:cnorea* *:cnoreabbrev* :cnorea[bbrev] [] [] [lhs] [rhs] same as ":ab", but for Command-line mode only and no ! remapping for this {rhs} {not in Vi} *:ia* *:iabbrev* :ia[bbrev] [] [] [lhs] [rhs] ! same as ":ab", but for Insert mode only. {not in Vi} *:iuna* *:iunabbrev* ! :iuna[bbrev] {lhs} same as ":una", but for insert mode only. {not in ! Vi} *:inorea* *:inoreabbrev* :inorea[bbrev] [] [] [lhs] [rhs] ! same as ":ab", but for Insert mode only and no ! remapping for this {rhs} {not in Vi} *:abc* *:abclear* ! :abc[lear] [] Remove all abbreviations. {not in Vi} *:iabc* *:iabclear* ! :iabc[lear] [] Remove all abbreviations for Insert mode. {not in Vi} *:cabc* *:cabclear* ! :cabc[lear] [] Remove all abbreviations for Command-line mode. {not ! in Vi} *using_CTRL-V* It is possible to use special characters in the rhs of an abbreviation. --- 1014,1053 ---- *:norea* *:noreabbrev* :norea[bbrev] [] [] [lhs] [rhs] ! Same as ":ab", but no remapping for this {rhs}. *:ca* *:cabbrev* :ca[bbrev] [] [] [lhs] [rhs] ! Same as ":ab", but for Command-line mode only. *:cuna* *:cunabbrev* ! :cuna[bbrev] {lhs} Same as ":una", but for Command-line mode only. *:cnorea* *:cnoreabbrev* :cnorea[bbrev] [] [] [lhs] [rhs] same as ":ab", but for Command-line mode only and no ! remapping for this {rhs} *:ia* *:iabbrev* :ia[bbrev] [] [] [lhs] [rhs] ! Same as ":ab", but for Insert mode only. *:iuna* *:iunabbrev* ! :iuna[bbrev] {lhs} Same as ":una", but for insert mode only. *:inorea* *:inoreabbrev* :inorea[bbrev] [] [] [lhs] [rhs] ! Same as ":ab", but for Insert mode only and no ! remapping for this {rhs}. *:abc* *:abclear* ! :abc[lear] [] Remove all abbreviations. *:iabc* *:iabclear* ! :iabc[lear] [] Remove all abbreviations for Insert mode. *:cabc* *:cabclear* ! :cabc[lear] [] Remove all abbreviations for Command-line mode. *using_CTRL-V* It is possible to use special characters in the rhs of an abbreviation. *************** *** 1147,1154 **** The |:scriptnames| command can be used to see which scripts have been sourced and what their number is. ! This is all {not in Vi} and {not available when compiled without the |+eval| ! feature}. ============================================================================== 4. User-defined commands *user-commands* --- 1140,1146 ---- The |:scriptnames| command can be used to see which scripts have been sourced and what their number is. ! This is all {not available when compiled without the |+eval| feature}. ============================================================================== 4. User-defined commands *user-commands* *************** *** 1391,1397 **** number. -count=N A count (default N) which is specified either in the line number position, or as an initial argument (like |:Next|). ! Specifying -count (without a default) acts like -count=0 Note that -range=N and -count=N are mutually exclusive - only one should be specified. --- 1383,1389 ---- number. -count=N A count (default N) which is specified either in the line number position, or as an initial argument (like |:Next|). ! -count acts like -count=0 Note that -range=N and -count=N are mutually exclusive - only one should be specified. *************** *** 1402,1415 **** relate to arguments, (loaded) buffers, windows or tab pages. Possible values are (second column is the short name used in listing): ! -addr=lines Range of lines (this is the default) -addr=arguments arg Range for arguments -addr=buffers buf Range for buffers (also not loaded buffers) -addr=loaded_buffers load Range for loaded buffers -addr=windows win Range for windows -addr=tabs tab Range for tab pages -addr=quickfix qf Range for quickfix entries ! -addr=other ? other kind of range Special cases ~ --- 1394,1409 ---- relate to arguments, (loaded) buffers, windows or tab pages. Possible values are (second column is the short name used in listing): ! -addr=lines Range of lines (this is the default for -range) -addr=arguments arg Range for arguments -addr=buffers buf Range for buffers (also not loaded buffers) -addr=loaded_buffers load Range for loaded buffers -addr=windows win Range for windows -addr=tabs tab Range for tab pages -addr=quickfix qf Range for quickfix entries ! -addr=other ? other kind of range; can use ".", "$" and "%" ! as with "lines" (this is the default for ! -count) Special cases ~ *************** *** 1569,1572 **** invokes the user command, it will run in the context of the script it was defined in. This matters if || is used in a command. ! vim:tw=78:ts=8:ft=help:norl: --- 1563,1566 ---- invokes the user command, it will run in the context of the script it was defined in. This matters if || is used in a command. ! vim:tw=78:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/mbyte.txt 2019-04-28 14:02:25.410687613 +0200 --- runtime/doc/mbyte.txt 2019-04-28 13:51:04.377867566 +0200 *************** *** 1,4 **** ! *mbyte.txt* For Vim version 8.1. Last change: 2018 Jan 21 VIM REFERENCE MANUAL by Bram Moolenaar et al. --- 1,4 ---- ! *mbyte.txt* For Vim version 8.1. Last change: 2019 Apr 28 VIM REFERENCE MANUAL by Bram Moolenaar et al. *************** *** 14,22 **** manual. For changing the language of messages and menus see |mlang.txt|. - {not available when compiled without the |+multi_byte| feature} - - 1. Getting started |mbyte-first| 2. Locale |mbyte-locale| 3. Encoding |mbyte-encoding| --- 14,19 ---- *************** *** 44,59 **** languages and it is quite complicated. - COMPILING - - If you already have a compiled Vim program, check if the |+multi_byte| feature - is included. The |:version| command can be used for this. - - If +multi_byte is not included, you should compile Vim with "normal", "big" or - "huge" features. You can further tune what features are included. See the - INSTALL files in the source directory. - - LOCALE First of all, you must make sure your current locale is set correctly. If --- 41,46 ---- *************** *** 1482,1485 **** Taro Muraoka Yasuhiro Matsumoto ! vim:tw=78:ts=8:ft=help:norl: --- 1469,1472 ---- Taro Muraoka Yasuhiro Matsumoto ! vim:tw=78:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/message.txt 2018-05-17 13:41:41.000000000 +0200 --- runtime/doc/message.txt 2019-05-05 17:12:07.079736244 +0200 *************** *** 1,4 **** ! *message.txt* For Vim version 8.1. Last change: 2018 Feb 04 VIM REFERENCE MANUAL by Bram Moolenaar --- 1,4 ---- ! *message.txt* For Vim version 8.1. Last change: 2019 May 05 VIM REFERENCE MANUAL by Bram Moolenaar *************** *** 557,570 **** tag. Sometimes this message is not given, even though the tags file is not properly sorted. - *E460* > - The resource fork would be lost (add ! to override) - - On the Macintosh (classic), when writing a file, Vim attempts to preserve all - info about a file, including its resource fork. If this is not possible you - get this error message. Append "!" to the command name to write anyway (and - lose the info). - *E424* > Too many different highlighting attributes in use --- 557,562 ---- *************** *** 711,721 **** This happens when an Ex command with mandatory argument(s) was executed, but no argument has been specified. ! *E474* *E475* > Invalid argument Invalid argument: {arg} ! An Ex command has been executed, but an invalid argument has been specified. *E488* > Trailing characters --- 703,715 ---- This happens when an Ex command with mandatory argument(s) was executed, but no argument has been specified. ! *E474* *E475* *E983* > Invalid argument Invalid argument: {arg} + Duplicate argument: {arg} ! An Ex command or function has been executed, but an invalid argument has been ! specified. *E488* > Trailing characters *************** *** 836,845 **** G down all the way, until the hit-enter prompt ! or k or one line back (*) ! u up a page (half a screen) (*) ! b or back a screen (*) ! g back to the start (*) q, or CTRL-C stop the listing : stop the listing and enter a --- 830,839 ---- G down all the way, until the hit-enter prompt ! or k or one line back ! u up a page (half a screen) ! b or back a screen ! g back to the start q, or CTRL-C stop the listing : stop the listing and enter a *************** *** 848,860 **** the clipboard ("* and "+ registers) {menu-entry} what the menu is defined to in Cmdline-mode. ! (**) next page Any other key causes the meaning of the keys to be displayed. ! (*) backwards scrolling is {not in Vi}. Only scrolls back to where messages ! started to scroll. ! (**) Clicking the left mouse button only works: - For the GUI: in the last line of the screen. - When 'r' is included in 'mouse' (but then selecting text won't work). --- 842,852 ---- the clipboard ("* and "+ registers) {menu-entry} what the menu is defined to in Cmdline-mode. ! next page (*) Any other key causes the meaning of the keys to be displayed. ! (*) Clicking the left mouse button only works: - For the GUI: in the last line of the screen. - When 'r' is included in 'mouse' (but then selecting text won't work). *************** *** 866,869 **** This is especially useful if you accidentally typed at the hit-enter prompt. ! vim:tw=78:ts=8:ft=help:norl: --- 858,861 ---- This is especially useful if you accidentally typed at the hit-enter prompt. ! vim:tw=78:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/mlang.txt 2018-10-06 15:02:53.797052261 +0200 --- runtime/doc/mlang.txt 2019-05-05 17:33:25.429335471 +0200 *************** *** 1,4 **** ! *mlang.txt* For Vim version 8.1. Last change: 2018 May 06 VIM REFERENCE MANUAL by Bram Moolenaar --- 1,4 ---- ! *mlang.txt* For Vim version 8.1. Last change: 2019 May 05 VIM REFERENCE MANUAL by Bram Moolenaar *************** *** 17,23 **** Also see |help-translated| for multi-language help. - {Vi does not have any of these features} {not available when compiled without the |+multi_lang| feature} ============================================================================== --- 17,22 ---- *** ../vim-8.1.1279/runtime/doc/motion.txt 2018-05-17 13:41:41.000000000 +0200 --- runtime/doc/motion.txt 2019-05-05 17:33:35.205281824 +0200 *************** *** 1,4 **** ! *motion.txt* For Vim version 8.1. Last change: 2017 Oct 15 VIM REFERENCE MANUAL by Bram Moolenaar --- 1,4 ---- ! *motion.txt* For Vim version 8.1. Last change: 2019 May 05 VIM REFERENCE MANUAL by Bram Moolenaar *************** *** 113,119 **** endif Note that when using ":" any motion becomes characterwise exclusive. ! FORCING A MOTION TO BE LINEWISE, CHARACTERWISE OR BLOCKWISE When a motion is not of the type you would like to use, you can force another --- 113,119 ---- endif Note that when using ":" any motion becomes characterwise exclusive. ! *forced-motion* FORCING A MOTION TO BE LINEWISE, CHARACTERWISE OR BLOCKWISE When a motion is not of the type you would like to use, you can force another *************** *** 185,191 **** TEXT column (if possible). Most other commands stay in the same SCREEN column. works like "1|", which differs from "0" when the line starts with a ! . {not in Vi} *^* ^ To the first non-blank character of the line. --- 185,191 ---- TEXT column (if possible). Most other commands stay in the same SCREEN column. works like "1|", which differs from "0" when the line starts with a ! . *^* ^ To the first non-blank character of the line. *************** *** 202,208 **** *g_* g_ To the last non-blank character of the line and ! [count - 1] lines downward |inclusive|. {not in Vi} *g0* *g* g0 or g When lines wrap ('wrap' on): To the first character of --- 202,208 ---- *g_* g_ To the last non-blank character of the line and ! [count - 1] lines downward |inclusive|. *g0* *g* g0 or g When lines wrap ('wrap' on): To the first character of *************** *** 211,217 **** When lines don't wrap ('wrap' off): To the leftmost character of the current line that is on the screen. Differs from "0" when the first character of the line ! is not on the screen. {not in Vi} *g^* g^ When lines wrap ('wrap' on): To the first non-blank --- 211,217 ---- When lines don't wrap ('wrap' off): To the leftmost character of the current line that is on the screen. Differs from "0" when the first character of the line ! is not on the screen. *g^* g^ When lines wrap ('wrap' on): To the first non-blank *************** *** 220,231 **** When lines don't wrap ('wrap' off): To the leftmost non-blank character of the current line that is on the screen. Differs from "^" when the first non-blank ! character of the line is not on the screen. {not in ! Vi} *gm* gm Like "g0", but half a screenwidth to the right (or as ! much as possible). {not in Vi} *g$* *g* g$ or g When lines wrap ('wrap' on): To the last character of --- 220,230 ---- When lines don't wrap ('wrap' off): To the leftmost non-blank character of the current line that is on the screen. Differs from "^" when the first non-blank ! character of the line is not on the screen. *gm* gm Like "g0", but half a screenwidth to the right (or as ! much as possible). *g$* *g* g$ or g When lines wrap ('wrap' on): To the last character of *************** *** 240,246 **** instead of going to the end of the line. When 'virtualedit' is enabled moves to the end of the screen line. - {not in Vi} *bar* | To screen column [count] in the current line. --- 239,244 ---- *************** *** 296,307 **** gk or *gk* *g* g [count] display lines upward. |exclusive| motion. Differs from 'k' when lines wrap, and when used with ! an operator, because it's not linewise. {not in Vi} gj or *gj* *g* g [count] display lines downward. |exclusive| motion. Differs from 'j' when lines wrap, and when used with ! an operator, because it's not linewise. {not in Vi} *-* - [count] lines upward, on the first non-blank --- 294,305 ---- gk or *gk* *g* g [count] display lines upward. |exclusive| motion. Differs from 'k' when lines wrap, and when used with ! an operator, because it's not linewise. gj or *gj* *g* g [count] display lines downward. |exclusive| motion. Differs from 'j' when lines wrap, and when used with ! an operator, because it's not linewise. *-* - [count] lines upward, on the first non-blank *************** *** 320,330 **** G Goto line [count], default last line, on the first non-blank character |linewise|. If 'startofline' not set, keep the same column. ! G is a one of |jump-motions|. ** Goto line [count], default last line, on the last ! character |inclusive|. {not in Vi} or *gg* ** gg Goto line [count], default first line, on the first --- 318,328 ---- G Goto line [count], default last line, on the first non-blank character |linewise|. If 'startofline' not set, keep the same column. ! G is one of the |jump-motions|. ** Goto line [count], default last line, on the last ! character |inclusive|. or *gg* ** gg Goto line [count], default first line, on the first *************** *** 342,348 **** non-blank in the line |linewise|. To compute the new line number this formula is used: ({count} * number-of-lines + 99) / 100 ! See also 'startofline' option. {not in Vi} :[range]go[to] [count] *:go* *:goto* *go* [count]go Go to [count] byte in the buffer. Default [count] is --- 340,346 ---- non-blank in the line |linewise|. To compute the new line number this formula is used: ({count} * number-of-lines + 99) / 100 ! See also 'startofline' option. :[range]go[to] [count] *:go* *:goto* *go* [count]go Go to [count] byte in the buffer. Default [count] is *************** *** 352,358 **** 'fileformat' setting. Also see the |line2byte()| function, and the 'o' option in 'statusline'. - {not in Vi} {not available when compiled without the |+byte_offset| feature} --- 350,355 ---- *************** *** 516,522 **** without white space, or just the white space. Thus the "inner" commands always select less text than the "a" commands. - These commands are {not in Vi}. These commands are not available when the |+textobjects| feature has been disabled at compile time. Also see `gn` and `gN`, operating on the last search pattern. --- 513,518 ---- *************** *** 780,786 **** *'A* *'0* *`A* *`0* '{A-Z0-9} `{A-Z0-9} To the mark {A-Z0-9} in the file where it was set (not ! a motion command when in another file). {not in Vi} *g'* *g'a* *g`* *g`a* g'{mark} g`{mark} --- 776,782 ---- *'A* *'0* *`A* *`0* '{A-Z0-9} `{A-Z0-9} To the mark {A-Z0-9} in the file where it was set (not ! a motion command when in another file). *g'* *g'a* *g`* *g`a* g'{mark} g`{mark} *************** *** 790,807 **** < jumps to the last known position in a file. See $VIMRUNTIME/vimrc_example.vim. Also see |:keepjumps|. - {not in Vi} *:marks* :marks List all the current marks (not a motion command). The |'(|, |')|, |'{| and |'}| marks are not listed. The first column has number zero. ! {not in Vi} *E283* :marks {arg} List the marks that are mentioned in {arg} (not a motion command). For example: > :marks aB ! < to list marks 'a' and 'B'. {not in Vi} *:delm* *:delmarks* :delm[arks] {marks} Delete the specified marks. Marks that can be deleted --- 786,802 ---- < jumps to the last known position in a file. See $VIMRUNTIME/vimrc_example.vim. Also see |:keepjumps|. *:marks* :marks List all the current marks (not a motion command). The |'(|, |')|, |'{| and |'}| marks are not listed. The first column has number zero. ! *E283* :marks {arg} List the marks that are mentioned in {arg} (not a motion command). For example: > :marks aB ! < to list marks 'a' and 'B'. *:delm* *:delmarks* :delm[arks] {marks} Delete the specified marks. Marks that can be deleted *************** *** 815,825 **** :delmarks p-z deletes marks in the range p to z :delmarks ^.[] deletes marks ^ . [ ] :delmarks \" deletes mark " - < {not in Vi} :delm[arks]! Delete all marks for the current buffer, but not marks A-Z or 0-9. - {not in Vi} A mark is not visible in any way. It is just a position in the file that is remembered. Do not confuse marks with named registers, they are totally --- 810,818 ---- *************** *** 854,864 **** *'[* *`[* '[ `[ To the first character of the previously changed ! or yanked text. {not in Vi} *']* *`]* '] `] To the last character of the previously changed or ! yanked text. {not in Vi} After executing an operator the Cursor is put at the beginning of the text that was operated upon. After a put command ("p" or "P") the cursor is --- 847,857 ---- *'[* *`[* '[ `[ To the first character of the previously changed ! or yanked text. *']* *`]* '] `] To the last character of the previously changed or ! yanked text. After executing an operator the Cursor is put at the beginning of the text that was operated upon. After a put command ("p" or "P") the cursor is *************** *** 876,882 **** '< `< To the first line or character of the last selected Visual area in the current buffer. For block mode it may also be the last character in the first line (to ! be able to define the block). {not in Vi}. *'>* *`>* '> `> To the last line or character of the last selected --- 869,875 ---- '< `< To the first line or character of the last selected Visual area in the current buffer. For block mode it may also be the last character in the first line (to ! be able to define the block). *'>* *`>* '> `> To the last line or character of the last selected *************** *** 884,890 **** may also be the first character of the last line (to be able to define the block). Note that 'selection' applies, the position may be just after the Visual ! area. {not in Vi}. *''* *``* '' `` To the position before the latest jump, or where the --- 877,883 ---- may also be the first character of the last line (to be able to define the block). Note that 'selection' applies, the position may be just after the Visual ! area. *''* *``* '' `` To the position before the latest jump, or where the *************** *** 900,912 **** Only one position is remembered per buffer, not one for each window. As long as the buffer is visible in a window the position won't be changed. - {not in Vi}. *'^* *`^* '^ `^ To the position where the cursor was the last time when Insert mode was stopped. This is used by the |gi| command. Not set when the |:keepjumps| command ! modifier was used. {not in Vi} *'.* *`.* '. `. To the position where the last change was made. The --- 893,904 ---- Only one position is remembered per buffer, not one for each window. As long as the buffer is visible in a window the position won't be changed. *'^* *`^* '^ `^ To the position where the cursor was the last time when Insert mode was stopped. This is used by the |gi| command. Not set when the |:keepjumps| command ! modifier was used. *'.* *`.* '. `. To the position where the last change was made. The *************** *** 916,945 **** command changed. For example when inserting a word, the position will be on the last character. To jump to older changes use |g;|. - {not in Vi} *'(* *`(* '( `( To the start of the current sentence, like the |(| ! command. {not in Vi} *')* *`)* ') `) To the end of the current sentence, like the |)| ! command. {not in Vi} *'{* *`{* '{ `{ To the start of the current paragraph, like the |{| ! command. {not in Vi} *'}* *`}* '} `} To the end of the current paragraph, like the |}| ! command. {not in Vi} These commands are not marks themselves, but jump to a mark: *]'* ]' [count] times to next line with a lowercase mark below the cursor, on the first non-blank character in the ! line. {not in Vi} *]`* ]` [count] times to lowercase mark after the cursor. {not --- 908,936 ---- command changed. For example when inserting a word, the position will be on the last character. To jump to older changes use |g;|. *'(* *`(* '( `( To the start of the current sentence, like the |(| ! command. *')* *`)* ') `) To the end of the current sentence, like the |)| ! command. *'{* *`{* '{ `{ To the start of the current paragraph, like the |{| ! command. *'}* *`}* '} `} To the end of the current paragraph, like the |}| ! command. These commands are not marks themselves, but jump to a mark: *]'* ]' [count] times to next line with a lowercase mark below the cursor, on the first non-blank character in the ! line. *]`* ]` [count] times to lowercase mark after the cursor. {not *************** *** 948,958 **** *['* [' [count] times to previous line with a lowercase mark before the cursor, on the first non-blank character in ! the line. {not in Vi} *[`* [` [count] times to lowercase mark before the cursor. - {not in Vi} :loc[kmarks] {command} *:loc* *:lockmarks* --- 939,948 ---- *['* [' [count] times to previous line with a lowercase mark before the cursor, on the first non-blank character in ! the line. *[`* [` [count] times to lowercase mark before the cursor. :loc[kmarks] {command} *:loc* *:lockmarks* *************** *** 1019,1051 **** ============================================================================== 8. Jumps *jump-motions* ! A "jump" is one of the following commands: "'", "`", "G", "/", "?", "n", ! "N", "%", "(", ")", "[[", "]]", "{", "}", ":s", ":tag", "L", "M", "H" and ! the commands that start editing a new file. If you make the cursor "jump" ! with one of these commands, the position of the cursor before the jump is ! remembered. You can return to that position with the "''" and "``" command, ! unless the line containing that position was changed or deleted. *CTRL-O* CTRL-O Go to [count] Older cursor position in jump list (not a motion command). - {not in Vi} {not available without the |+jumplist| feature} or *CTRL-I* ** CTRL-I Go to [count] newer cursor position in jump list (not a motion command). - {not in Vi} {not available without the |+jumplist| feature} *:ju* *:jumps* :ju[mps] Print the jump list (not a motion command). - {not in Vi} {not available without the |+jumplist| feature} *:cle* *:clearjumps* :cle[arjumps] Clear the jump list of the current window. - {not in Vi} {not available without the |+jumplist| feature} *jumplist* --- 1009,1038 ---- ============================================================================== 8. Jumps *jump-motions* ! A "jump" is a command that normally moves the cursor several lines away. If ! you make the cursor "jump" the position of the cursor before the jump is ! remembered. You can return to that position with the "''" and "``" commands, ! unless the line containing that position was changed or deleted. The ! following commands are "jump" commands: "'", "`", "G", "/", "?", "n", "N", ! "%", "(", ")", "[[", "]]", "{", "}", ":s", ":tag", "L", "M", "H" and the ! commands that start editing a new file. *CTRL-O* CTRL-O Go to [count] Older cursor position in jump list (not a motion command). {not available without the |+jumplist| feature} or *CTRL-I* ** CTRL-I Go to [count] newer cursor position in jump list (not a motion command). {not available without the |+jumplist| feature} *:ju* *:jumps* :ju[mps] Print the jump list (not a motion command). {not available without the |+jumplist| feature} *:cle* *:clearjumps* :cle[arjumps] Clear the jump list of the current window. {not available without the |+jumplist| feature} *jumplist* *************** *** 1130,1143 **** positions go to the oldest change. If there is no older change an error message is given. (not a motion command) - {not in Vi} {not available without the |+jumplist| feature} *g,* *E663* g, Go to [count] newer cursor position in change list. Just like |g;| but in the opposite direction. (not a motion command) - {not in Vi} {not available without the |+jumplist| feature} When using a count you jump as far back or forward as possible. Thus you can --- 1117,1128 ---- *************** *** 1163,1169 **** *:changes* :changes Print the change list. A ">" character indicates the current position. Just after a change it is below the ! newest entry, indicating that "g;" takes you to the newest entry position. The first column indicates the count needed to take you to this position. Example: --- 1148,1154 ---- *:changes* :changes Print the change list. A ">" character indicates the current position. Just after a change it is below the ! newest entry, indicating that `g;` takes you to the newest entry position. The first column indicates the count needed to take you to this position. Example: *************** *** 1173,1180 **** 1 14 54 the latest changed line > ! The "3g;" command takes you to line 9. Then the ! output of ":changes is: change line col text ~ > 0 9 8 bla bla bla --- 1158,1165 ---- 1 14 54 the latest changed line > ! The `3g;` command takes you to line 9. Then the ! output of `:changes` is: change line col text ~ > 0 9 8 bla bla bla *************** *** 1228,1246 **** *[(* [( go to [count] previous unmatched '('. ! |exclusive| motion. {not in Vi} *[{* [{ go to [count] previous unmatched '{'. ! |exclusive| motion. {not in Vi} *])* ]) go to [count] next unmatched ')'. ! |exclusive| motion. {not in Vi} *]}* ]} go to [count] next unmatched '}'. ! |exclusive| motion. {not in Vi} The above four commands can be used to go to the start or end of the current code block. It is like doing "%" on the '(', ')', '{' or '}' at the other --- 1213,1231 ---- *[(* [( go to [count] previous unmatched '('. ! |exclusive| motion. *[{* [{ go to [count] previous unmatched '{'. ! |exclusive| motion. *])* ]) go to [count] next unmatched ')'. ! |exclusive| motion. *]}* ]} go to [count] next unmatched '}'. ! |exclusive| motion. The above four commands can be used to go to the start or end of the current code block. It is like doing "%" on the '(', ')', '{' or '}' at the other *************** *** 1253,1277 **** similar structured language). When not before the start of a method, jump to the start or end of the class. When no '{' is found after the cursor, this is ! an error. |exclusive| motion. {not in Vi} *]M* ]M Go to [count] next end of a method (for Java or similar structured language). When not before the end of a method, jump to the start or end of the class. When no '}' is found after the cursor, this is an ! error. |exclusive| motion. {not in Vi} *[m* [m Go to [count] previous start of a method (for Java or similar structured language). When not after the start of a method, jump to the start or end of the class. When no '{' is found before the cursor this is ! an error. |exclusive| motion. {not in Vi} *[M* [M Go to [count] previous end of a method (for Java or similar structured language). When not after the end of a method, jump to the start or end of the class. When no '}' is found before the cursor this is ! an error. |exclusive| motion. {not in Vi} The above two commands assume that the file contains a class with methods. The class definition is surrounded in '{' and '}'. Each method in the class --- 1238,1262 ---- similar structured language). When not before the start of a method, jump to the start or end of the class. When no '{' is found after the cursor, this is ! an error. |exclusive| motion. *]M* ]M Go to [count] next end of a method (for Java or similar structured language). When not before the end of a method, jump to the start or end of the class. When no '}' is found after the cursor, this is an ! error. |exclusive| motion. *[m* [m Go to [count] previous start of a method (for Java or similar structured language). When not after the start of a method, jump to the start or end of the class. When no '{' is found before the cursor this is ! an error. |exclusive| motion. *[M* [M Go to [count] previous end of a method (for Java or similar structured language). When not after the end of a method, jump to the start or end of the class. When no '}' is found before the cursor this is ! an error. |exclusive| motion. The above two commands assume that the file contains a class with methods. The class definition is surrounded in '{' and '}'. Each method in the class *************** *** 1294,1304 **** *[#* [# go to [count] previous unmatched "#if" or "#else". ! |exclusive| motion. {not in Vi} *]#* ]# go to [count] next unmatched "#else" or "#endif". ! |exclusive| motion. {not in Vi} These two commands work in C programs that contain #if/#else/#endif constructs. It brings you to the start or end of the #if/#else/#endif where --- 1279,1289 ---- *[#* [# go to [count] previous unmatched "#if" or "#else". ! |exclusive| motion. *]#* ]# go to [count] next unmatched "#else" or "#endif". ! |exclusive| motion. These two commands work in C programs that contain #if/#else/#endif constructs. It brings you to the start or end of the #if/#else/#endif where *************** *** 1306,1316 **** *[star* *[/* [* or [/ go to [count] previous start of a C comment "/*". ! |exclusive| motion. {not in Vi} *]star* *]/* ]* or ]/ go to [count] next end of a C comment "*/". ! |exclusive| motion. {not in Vi} *H* --- 1291,1301 ---- *[star* *[/* [* or [/ go to [count] previous start of a C comment "/*". ! |exclusive| motion. *]star* *]/* ]* or ]/ go to [count] next end of a C comment "*/". ! |exclusive| motion. *H* *************** *** 1338,1343 **** Moves to the position on the screen where the mouse click is |exclusive|. See also ||. If the position is in a status line, that window is made the ! active window and the cursor is not moved. {not in Vi} ! vim:tw=78:ts=8:ft=help:norl: --- 1323,1328 ---- Moves to the position on the screen where the mouse click is |exclusive|. See also ||. If the position is in a status line, that window is made the ! active window and the cursor is not moved. ! vim:tw=78:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/netbeans.txt 2019-01-17 15:43:21.749878443 +0100 --- runtime/doc/netbeans.txt 2019-05-05 17:43:35.817942573 +0200 *************** *** 1,4 **** ! *netbeans.txt* For Vim version 8.1. Last change: 2019 Jan 17 VIM REFERENCE MANUAL by Gordon Prieur et al. --- 1,4 ---- ! *netbeans.txt* For Vim version 8.1. Last change: 2019 May 05 VIM REFERENCE MANUAL by Gordon Prieur et al. *************** *** 24,30 **** 10.4. Obtaining the External Editor Module |obtaining-exted| 10.5. Setting up NetBeans to run with Vim |netbeans-setup| - {Vi does not have any of these features} {only available when compiled with the |+netbeans_intg| feature} ============================================================================== --- 24,29 ---- *************** *** 1017,1020 **** Editor will only open MIME types specified in this property. ! vim:tw=78:ts=8:ft=help:norl: --- 1016,1019 ---- Editor will only open MIME types specified in this property. ! vim:tw=78:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/options.txt 2019-05-04 21:08:17.115814262 +0200 --- runtime/doc/options.txt 2019-05-05 17:45:04.085447135 +0200 *************** *** 1,4 **** ! *options.txt* For Vim version 8.1. Last change: 2018 May 15 VIM REFERENCE MANUAL by Bram Moolenaar --- 1,4 ---- ! *options.txt* For Vim version 8.1. Last change: 2019 May 05 VIM REFERENCE MANUAL by Bram Moolenaar *************** *** 6163,6171 **** set to half the number of lines in the window when the window size changes. If you give a count to the CTRL-U or CTRL-D command it will be used as the new value for 'scroll'. Reset to half the window ! height with ":set scroll=0". {Vi is a bit different: 'scroll' gives ! the number of screen lines instead of file lines, makes a difference ! when lines wrap} *'scrollbind'* *'scb'* *'noscrollbind'* *'noscb'* 'scrollbind' 'scb' boolean (default off) --- 6163,6169 ---- set to half the number of lines in the window when the window size changes. If you give a count to the CTRL-U or CTRL-D command it will be used as the new value for 'scroll'. Reset to half the window ! height with ":set scroll=0". *'scrollbind'* *'scb'* *'noscrollbind'* *'noscb'* 'scrollbind' 'scb' boolean (default off) *************** *** 7787,7793 **** *'timeoutlen'* *'tm'* 'timeoutlen' 'tm' number (default 1000) global ! {not in all versions of Vi} *'ttimeoutlen'* *'ttm'* 'ttimeoutlen' 'ttm' number (default -1, set to 100 in |defaults.vim|) global --- 7785,7791 ---- *'timeoutlen'* *'tm'* 'timeoutlen' 'tm' number (default 1000) global ! *'ttimeoutlen'* *'ttm'* 'ttimeoutlen' 'ttm' number (default -1, set to 100 in |defaults.vim|) global *************** *** 7990,7998 **** work. See below for how Vim detects this automatically. *netterm-mouse* ! netterm NetTerm mouse handling. The mouse generates "}r,c", where "r,c" are two decimal numbers ! for the row and column. *dec-mouse* dec DEC terminal mouse handling. The mouse generates a rather complex sequence, starting with "[". --- 7988,7997 ---- work. See below for how Vim detects this automatically. *netterm-mouse* ! netterm NetTerm mouse handling. A left mouse click generates "}r,c", where "r,c" are two decimal numbers ! for the row and column. No other mouse events are ! supported. *dec-mouse* dec DEC terminal mouse handling. The mouse generates a rather complex sequence, starting with "[". *************** *** 8653,8659 **** in a much smarter way, taking care of wrapping lines. When resizing the Vim window, the value is smaller than 1 or more than or equal to 'lines' it will be set to 'lines' minus 1. - {Vi also uses the option to specify the number of displayed lines} *'winheight'* *'wh'* *E591* 'winheight' 'wh' number (default 1) --- 8652,8657 ---- *** ../vim-8.1.1279/runtime/doc/os_390.txt 2018-05-17 13:41:41.000000000 +0200 --- runtime/doc/os_390.txt 2018-10-05 19:55:43.013424481 +0200 *************** *** 83,92 **** ctags out there, that does it right, but we can't be sure. So this seems to be a permanent restriction. ! - The cscope interface (|cscope|) doesn't work for the version of cscope ! that we use on our mainframe. We have a copy of version 15.0b12, and it ! causes Vim to hang when using the "cscope add" command. I'm guessing that ! the binary format of the cscope database isn't quite what Vim is expecting. I've tried to port the current version of cscope (15.3) to z/OS, without much success. If anyone is interested in trying, drop me a line if you make any progress. --- 83,92 ---- ctags out there, that does it right, but we can't be sure. So this seems to be a permanent restriction. ! - The cscope interface (|cscope|) doesn't work for the version of cscope that ! we use on our mainframe. We have a copy of version 15.0b12, and it causes ! Vim to hang when using the "cscope add" command. I'm guessing that the ! binary format of the cscope database isn't quite what Vim is expecting. I've tried to port the current version of cscope (15.3) to z/OS, without much success. If anyone is interested in trying, drop me a line if you make any progress. *************** *** 131,134 **** ------------------------------------------------------------------------------ ! vim:tw=78:fo=tcq2:ts=8:ft=help:norl: --- 131,134 ---- ------------------------------------------------------------------------------ ! vim:tw=78:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/os_amiga.txt 2018-05-17 13:41:41.000000000 +0200 --- runtime/doc/os_amiga.txt 2018-07-29 14:23:36.367157551 +0200 *************** *** 144,147 **** ;End VIM ! vim:tw=78:ts=8:ft=help:norl: --- 144,147 ---- ;End VIM ! vim:tw=78:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/os_beos.txt 2018-05-17 13:41:41.000000000 +0200 --- runtime/doc/os_beos.txt 2018-07-29 14:23:36.367157551 +0200 *************** *** 144,150 **** :version The normal value is /boot/home/config/share/vim. If you don't like it you can ! set the Vim environment variable to override this, or set 'helpfile' in your .vimrc: > :if version >= 500 --- 144,150 ---- :version The normal value is /boot/home/config/share/vim. If you don't like it you can ! set the VIM environment variable to override this, or set 'helpfile' in your .vimrc: > :if version >= 500 *************** *** 317,320 **** http://polder.ubc.kun.nl/~rhialto/be ! vim:tw=78:ts=8:ft=help:norl: --- 317,320 ---- http://polder.ubc.kun.nl/~rhialto/be ! vim:tw=78:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/os_dos.txt 2018-05-17 13:41:41.000000000 +0200 --- runtime/doc/os_dos.txt 2018-07-29 14:23:36.367157551 +0200 *************** *** 295,298 **** option. If it is present, Vim sets the 'shellcmdflag' and 'shellquote' or 'shellxquote' options will be set as described above. ! vim:tw=78:ts=8:ft=help:norl: --- 295,298 ---- option. If it is present, Vim sets the 'shellcmdflag' and 'shellquote' or 'shellxquote' options will be set as described above. ! vim:tw=78:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/os_mac.txt 2018-05-17 13:41:41.000000000 +0200 --- runtime/doc/os_mac.txt 2019-04-21 16:53:20.542893861 +0200 *************** *** 1,4 **** ! *os_mac.txt* For Vim version 8.1. Last change: 2018 Jan 21 VIM REFERENCE MANUAL by Bram Moolenaar et al. --- 1,4 ---- ! *os_mac.txt* For Vim version 8.1. Last change: 2019 Apr 21 VIM REFERENCE MANUAL by Bram Moolenaar et al. *************** *** 179,182 **** from hanging at runtime. ! vim:tw=78:ts=8:ft=help:norl: --- 179,182 ---- from hanging at runtime. ! vim:tw=78:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/os_mint.txt 2018-05-17 13:41:41.000000000 +0200 --- runtime/doc/os_mint.txt 2018-07-29 14:23:36.367157551 +0200 *************** *** 36,39 **** Jens M. Felderhoff, e-mail: ! vim:tw=78:ts=8:ft=help:norl: --- 36,39 ---- Jens M. Felderhoff, e-mail: ! vim:tw=78:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/os_msdos.txt 2018-05-17 13:41:41.000000000 +0200 --- runtime/doc/os_msdos.txt 2018-07-29 14:23:36.367157551 +0200 *************** *** 12,15 **** work on older systems. ! vim:tw=78:ts=8:ft=help:norl: --- 12,15 ---- work on older systems. ! vim:tw=78:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/os_os2.txt 2018-05-17 13:41:41.000000000 +0200 --- runtime/doc/os_os2.txt 2018-07-29 14:23:36.367157551 +0200 *************** *** 10,13 **** The OS/2 support was removed in patch 7.4.1008. ! vim:tw=78:ts=8:ft=help:norl: --- 10,13 ---- The OS/2 support was removed in patch 7.4.1008. ! vim:tw=78:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/os_qnx.txt 2018-05-17 13:41:41.000000000 +0200 --- runtime/doc/os_qnx.txt 2018-08-08 23:07:19.236325204 +0200 *************** *** 135,138 **** - Replace usage of fork() with spawn() when launching external programs. ! vim:tw=78:sw=4:ts=8:ts=8:ft=help:norl: --- 135,138 ---- - Replace usage of fork() with spawn() when launching external programs. ! vim:tw=78:sw=4:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/os_risc.txt 2018-05-17 13:41:41.000000000 +0200 --- runtime/doc/os_risc.txt 2018-07-29 14:23:36.367157551 +0200 *************** *** 9,12 **** If you would like to use Vim on RISC OS get the files from before that patch. ! vim:tw=78:ts=8:ft=help:norl: --- 9,12 ---- If you would like to use Vim on RISC OS get the files from before that patch. ! vim:tw=78:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/os_unix.txt 2018-05-17 13:41:41.000000000 +0200 --- runtime/doc/os_unix.txt 2018-07-29 14:23:36.367157551 +0200 *************** *** 57,60 **** The file "tools/vim132" is a shell script that can be used to put Vim in 132 column mode on a vt100 and lookalikes. ! vim:tw=78:ts=8:ft=help:norl: --- 57,60 ---- The file "tools/vim132" is a shell script that can be used to put Vim in 132 column mode on a vt100 and lookalikes. ! vim:tw=78:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/os_vms.txt 2019-01-18 22:58:56.427995669 +0100 --- runtime/doc/os_vms.txt 2019-01-29 20:29:32.141523385 +0100 *************** *** 1,4 **** ! *os_vms.txt* For Vim version 8.1. Last change: 2019 Jan 18 VIM REFERENCE MANUAL --- 1,4 ---- ! *os_vms.txt* For Vim version 8.1. Last change: 2019 Jan 29 VIM REFERENCE MANUAL *************** *** 104,111 **** You may want to use GUI with GTK icons, then you have to download and install GTK for OpenVMS or at least runtime shareable images - LIBGTK from polarhome.com ! Post 7.2 Vim uses GTK2+ while the last GTK on OpenVMS is 1.2.10, thefore ! the GTK build is no longer available. For more advanced questions, please send your problem to Vim on VMS mailing list --- 104,111 ---- You may want to use GUI with GTK icons, then you have to download and install GTK for OpenVMS or at least runtime shareable images - LIBGTK from polarhome.com ! Post 7.2 Vim uses GTK2+ while the last GTK on OpenVMS is 1.2.10, therefore ! the GTK build is no longer available. For more advanced questions, please send your problem to Vim on VMS mailing list *************** *** 772,780 **** Version 8.0 - solve the 100% cpu usage issue while waiting for a keystroke - correct the VMS warnings and errors around handling the INFINITY (used in json.c) ! - minor VMS port related changes ! - correct the make_vms.mms file for 8.0 ! - fix [.TESTDIR]make_vms.mms for 8.0 Version 7.4 - Undo: VMS can not handle more than one dot in the filenames use "dir/name" -> "dir/_un_name" --- 772,780 ---- Version 8.0 - solve the 100% cpu usage issue while waiting for a keystroke - correct the VMS warnings and errors around handling the INFINITY (used in json.c) ! - minor VMS port related changes ! - correct the make_vms.mms file for 8.0 ! - fix [.TESTDIR]make_vms.mms for 8.0 Version 7.4 - Undo: VMS can not handle more than one dot in the filenames use "dir/name" -> "dir/_un_name" *** ../vim-8.1.1279/runtime/doc/os_win32.txt 2018-05-17 13:41:41.000000000 +0200 --- runtime/doc/os_win32.txt 2018-10-05 19:56:09.269238586 +0200 *************** *** 169,175 **** ============================================================================== 6. Running under Windows 3.1 *win32-win3.1* ! *win32s* *windows-3.1* *gui-w32s* There was a special version of gvim that runs under Windows 3.1 and 3.11. Support was removed in patch 7.4.1363. --- 169,175 ---- ============================================================================== 6. Running under Windows 3.1 *win32-win3.1* ! *win32s* *windows-3.1* *gui-w32s* *win16* There was a special version of gvim that runs under Windows 3.1 and 3.11. Support was removed in patch 7.4.1363. *************** *** 303,306 **** 'runtimepath'. For example ~/vimfiles/bitmaps/vim.ico. ! vim:tw=78:fo=tcq2:ts=8:ft=help:norl: --- 303,306 ---- 'runtimepath'. For example ~/vimfiles/bitmaps/vim.ico. ! vim:tw=78:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/pattern.txt 2019-05-04 21:08:17.119814244 +0200 --- runtime/doc/pattern.txt 2019-05-05 17:45:17.925369384 +0200 *************** *** 1,4 **** ! *pattern.txt* For Vim version 8.1. Last change: 2018 Mar 13 VIM REFERENCE MANUAL by Bram Moolenaar --- 1,4 ---- ! *pattern.txt* For Vim version 8.1. Last change: 2019 May 05 VIM REFERENCE MANUAL by Bram Moolenaar *************** *** 78,101 **** 4. the first non-blank word after the cursor, in the current line Only whole keywords are searched for, like with the ! command "/\". |exclusive| {not in Vi} 'ignorecase' is used, 'smartcase' is not. *#* # Same as "*", but search backward. The pound sign (character 163) also works. If the "#" key works as backspace, try using "stty erase " before starting ! Vim ( is CTRL-H or a real backspace). {not in Vi} *gstar* g* Like "*", but don't put "\<" and "\>" around the word. This makes the search also find matches that are not a ! whole word. {not in Vi} *g#* g# Like "#", but don't put "\<" and "\>" around the word. This makes the search also find matches that are not a ! whole word. {not in Vi} *gd* gd Goto local Declaration. When the cursor is on a local --- 78,101 ---- 4. the first non-blank word after the cursor, in the current line Only whole keywords are searched for, like with the ! command "/\". |exclusive| 'ignorecase' is used, 'smartcase' is not. *#* # Same as "*", but search backward. The pound sign (character 163) also works. If the "#" key works as backspace, try using "stty erase " before starting ! Vim ( is CTRL-H or a real backspace). *gstar* g* Like "*", but don't put "\<" and "\>" around the word. This makes the search also find matches that are not a ! whole word. *g#* g# Like "#", but don't put "\<" and "\>" around the word. This makes the search also find matches that are not a ! whole word. *gd* gd Goto local Declaration. When the cursor is on a local *************** *** 113,134 **** searched use the commands listed in |include-search|. After this command |n| searches forward for the next match (not backward). - {not in Vi} *gD* gD Goto global Declaration. When the cursor is on a global variable that is defined in the file, this command will jump to its declaration. This works just like "gd", except that the search for the keyword ! always starts in line 1. {not in Vi} *1gd* 1gd Like "gd", but ignore matches inside a {} block that ! ends before the cursor position. {not in Vi} *1gD* 1gD Like "gD", but ignore matches inside a {} block that ! ends before the cursor position. {not in Vi} *CTRL-C* CTRL-C Interrupt current (search) command. Use CTRL-Break on --- 113,133 ---- searched use the commands listed in |include-search|. After this command |n| searches forward for the next match (not backward). *gD* gD Goto global Declaration. When the cursor is on a global variable that is defined in the file, this command will jump to its declaration. This works just like "gd", except that the search for the keyword ! always starts in line 1. *1gd* 1gd Like "gd", but ignore matches inside a {} block that ! ends before the cursor position. *1gD* 1gD Like "gD", but ignore matches inside a {} block that ! ends before the cursor position. *CTRL-C* CTRL-C Interrupt current (search) command. Use CTRL-Break on *************** *** 171,177 **** *search-offset* *{offset}* These commands search for the specified pattern. With "/" and "?" an additional offset may be given. There are two types of offsets: line offsets ! and character offsets. {the character offsets are not in Vi} The offset gives the cursor position relative to the found match: [num] [num] lines downwards, in column 1 --- 170,176 ---- *search-offset* *{offset}* These commands search for the specified pattern. With "/" and "?" an additional offset may be given. There are two types of offsets: line offsets ! and character offsets. The offset gives the cursor position relative to the found match: [num] [num] lines downwards, in column 1 *************** *** 409,419 **** ignoring the actual value of the 'magic' option. Use of "\M" makes the pattern after it be interpreted as if 'nomagic' is used. */\v* */\V* ! Use of "\v" means that in the pattern after it all ASCII characters except ! '0'-'9', 'a'-'z', 'A'-'Z' and '_' have a special meaning. "very magic" ! Use of "\V" means that in the pattern after it only the backslash and the ! terminating character (/ or ?) has a special meaning. "very nomagic" Examples: after: \v \m \M \V matches ~ --- 408,418 ---- ignoring the actual value of the 'magic' option. Use of "\M" makes the pattern after it be interpreted as if 'nomagic' is used. */\v* */\V* ! Use of "\v" means that after it, all ASCII characters except '0'-'9', 'a'-'z', ! 'A'-'Z' and '_' have special meaning: "very magic" ! Use of "\V" means that after it, only a backslash and terminating character ! (usually / or ?) have special meaning: "very nomagic" Examples: after: \v \m \M \V matches ~ *************** *** 447,476 **** multi ~ 'magic' 'nomagic' matches of the preceding atom ~ |/star| * \* 0 or more as many as possible ! |/\+| \+ \+ 1 or more as many as possible (*) ! |/\=| \= \= 0 or 1 as many as possible (*) ! |/\?| \? \? 0 or 1 as many as possible (*) ! ! |/\{| \{n,m} \{n,m} n to m as many as possible (*) ! \{n} \{n} n exactly (*) ! \{n,} \{n,} at least n as many as possible (*) ! \{,m} \{,m} 0 to m as many as possible (*) ! \{} \{} 0 or more as many as possible (same as *) (*) ! ! |/\{-| \{-n,m} \{-n,m} n to m as few as possible (*) ! \{-n} \{-n} n exactly (*) ! \{-n,} \{-n,} at least n as few as possible (*) ! \{-,m} \{-,m} 0 to m as few as possible (*) ! \{-} \{-} 0 or more as few as possible (*) *E59* ! |/\@>| \@> \@> 1, like matching a whole pattern (*) ! |/\@=| \@= \@= nothing, requires a match |/zero-width| (*) ! |/\@!| \@! \@! nothing, requires NO match |/zero-width| (*) ! |/\@<=| \@<= \@<= nothing, requires a match behind |/zero-width| (*) ! |/\@| \@> \@> 1, like matching a whole pattern ! |/\@=| \@= \@= nothing, requires a match |/zero-width| ! |/\@!| \@! \@! nothing, requires NO match |/zero-width| ! |/\@<=| \@<= \@<= nothing, requires a match behind |/zero-width| ! |/\@ |/\n| \n \n end-of-line |/~| ~ \~ last given substitute string ! |/\1| \1 \1 same string as matched by first \(\) {not in Vi} |/\2| \2 \2 Like "\1", but uses second \(\) ... |/\9| \9 \9 Like "\1", but uses ninth \(\) --- 535,541 ---- |/\b| \b \b |/\n| \n \n end-of-line |/~| ~ \~ last given substitute string ! |/\1| \1 \1 same string as matched by first \(\) |/\2| \2 \2 Like "\1", but uses second \(\) ... |/\9| \9 \9 Like "\1", but uses ninth \(\) *************** *** 616,635 **** character at a time. */\+* ! \+ Matches 1 or more of the preceding atom, as many as possible. {not in ! Vi} Example matches ~ ^.\+$ any non-empty line \s\+ white space of at least one character */\=* ! \= Matches 0 or 1 of the preceding atom, as many as possible. {not in Vi} Example matches ~ foo\= "fo" and "foo" */\?* \? Just like \=. Cannot be used when searching backwards with the "?" ! command. {not in Vi} */\{* *E60* *E554* *E870* \{n,m} Matches n to m of the preceding atom, as many as possible --- 613,631 ---- character at a time. */\+* ! \+ Matches 1 or more of the preceding atom, as many as possible. Example matches ~ ^.\+$ any non-empty line \s\+ white space of at least one character */\=* ! \= Matches 0 or 1 of the preceding atom, as many as possible. Example matches ~ foo\= "fo" and "foo" */\?* \? Just like \=. Cannot be used when searching backwards with the "?" ! command. */\{* *E60* *E554* *E870* \{n,m} Matches n to m of the preceding atom, as many as possible *************** *** 643,649 **** \{-n,} matches at least n of the preceding atom, as few as possible \{-,m} matches 0 to m of the preceding atom, as few as possible \{-} matches 0 or more of the preceding atom, as few as possible - {Vi does not have any of these} n and m are positive decimal numbers or zero *non-greedy* --- 639,644 ---- *************** *** 666,672 **** The } may optionally be preceded with a backslash: \{n,m\}. */\@=* ! \@= Matches the preceding atom with zero width. {not in Vi} Like "(?=pattern)" in Perl. Example matches ~ foo\(bar\)\@= "foo" in "foobar" --- 661,667 ---- The } may optionally be preceded with a backslash: \{n,m\}. */\@=* ! \@= Matches the preceding atom with zero width. Like "(?=pattern)" in Perl. Example matches ~ foo\(bar\)\@= "foo" in "foobar" *************** *** 686,692 **** */\@!* \@! Matches with zero width if the preceding atom does NOT match at the ! current position. |/zero-width| {not in Vi} Like "(?!pattern)" in Perl. Example matches ~ foo\(bar\)\@! any "foo" not followed by "bar" --- 681,687 ---- */\@!* \@! Matches with zero width if the preceding atom does NOT match at the ! current position. |/zero-width| Like "(?!pattern)" in Perl. Example matches ~ foo\(bar\)\@! any "foo" not followed by "bar" *************** *** 716,722 **** */\@<=* \@<= Matches with zero width if the preceding atom matches just before what ! follows. |/zero-width| {not in Vi} Like "(?<=pattern)" in Perl, but Vim allows non-fixed-width patterns. Example matches ~ \(an\_s\+\)\@<=file "file" after "an" and white space or an --- 711,717 ---- */\@<=* \@<= Matches with zero width if the preceding atom matches just before what ! follows. |/zero-width| Like "(?<=pattern)" in Perl, but Vim allows non-fixed-width patterns. Example matches ~ \(an\_s\+\)\@<=file "file" after "an" and white space or an *************** *** 760,766 **** \@* ! \@> Matches the preceding atom like matching a whole pattern. {not in Vi} Like "(?>pattern)" in Perl. Example matches ~ \(a*\)\@>a nothing (the "a*" takes all the "a"'s, there can't be --- 771,777 ---- slow. */\@>* ! \@> Matches the preceding atom like matching a whole pattern. Like "(?>pattern)" in Perl. Example matches ~ \(a*\)\@>a nothing (the "a*" takes all the "a"'s, there can't be *************** *** 855,861 **** /\(.\{-}\zsFab\)\{3} < Finds the third occurrence of "Fab". This cannot be followed by a multi. *E888* ! {not in Vi} {not available when compiled without the |+syntax| feature} */\ze* \ze Matches at any position, and sets the end of the match there: The previous char is the last char of the whole match. |/zero-width| --- 850,856 ---- /\(.\{-}\zsFab\)\{3} < Finds the third occurrence of "Fab". This cannot be followed by a multi. *E888* ! {not available when compiled without the |+syntax| feature} */\ze* \ze Matches at any position, and sets the end of the match there: The previous char is the last char of the whole match. |/zero-width| *************** *** 864,880 **** Example: "end\ze\(if\|for\)" matches the "end" in "endif" and "endfor". This cannot be followed by a multi. |E888| ! {not in Vi} {not available when compiled without the |+syntax| feature} */\%^* *start-of-file* \%^ Matches start of the file. When matching with a string, matches the ! start of the string. {not in Vi} For example, to find the first "VIM" in a file: > /\%^\_.\{-}\zsVIM < */\%$* *end-of-file* \%$ Matches end of the file. When matching with a string, matches the ! end of the string. {not in Vi} Note that this does NOT find the last "VIM" in a file: > /VIM\_.\{-}\%$ < It will find the next VIM, because the part after it will always --- 859,875 ---- Example: "end\ze\(if\|for\)" matches the "end" in "endif" and "endfor". This cannot be followed by a multi. |E888| ! {not available when compiled without the |+syntax| feature} */\%^* *start-of-file* \%^ Matches start of the file. When matching with a string, matches the ! start of the string. For example, to find the first "VIM" in a file: > /\%^\_.\{-}\zsVIM < */\%$* *end-of-file* \%$ Matches end of the file. When matching with a string, matches the ! end of the string. Note that this does NOT find the last "VIM" in a file: > /VIM\_.\{-}\%$ < It will find the next VIM, because the part after it will always *************** *** 898,904 **** */\%#* *cursor-position* \%# Matches with the cursor position. Only works when matching in a ! buffer displayed in a window. {not in Vi} WARNING: When the cursor is moved after the pattern was used, the result becomes invalid. Vim doesn't automatically update the matches. This is especially relevant for syntax highlighting and 'hlsearch'. --- 893,899 ---- */\%#* *cursor-position* \%# Matches with the cursor position. Only works when matching in a ! buffer displayed in a window. WARNING: When the cursor is moved after the pattern was used, the result becomes invalid. Vim doesn't automatically update the matches. This is especially relevant for syntax highlighting and 'hlsearch'. *************** *** 919,925 **** < Note that two dots are required to include mark 'e in the match. That is because "\%<'e" matches at the character before the 'e mark, and since it's a |/zero-width| match it doesn't include that character. - {not in Vi} WARNING: When the mark is moved after the pattern was used, the result becomes invalid. Vim doesn't automatically update the matches. Similar to moving the cursor for "\%#" |/\%#|. --- 914,919 ---- *************** *** 929,935 **** \%<23l Matches above a specific line (lower line number). \%>23l Matches below a specific line (higher line number). These three can be used to match specific lines in a buffer. The "23" ! can be any line number. The first line is 1. {not in Vi} WARNING: When inserting or deleting lines Vim does not automatically update the matches. This means Syntax highlighting quickly becomes wrong. --- 923,929 ---- \%<23l Matches above a specific line (lower line number). \%>23l Matches below a specific line (higher line number). These three can be used to match specific lines in a buffer. The "23" ! can be any line number. The first line is 1. WARNING: When inserting or deleting lines Vim does not automatically update the matches. This means Syntax highlighting quickly becomes wrong. *************** *** 945,951 **** These three can be used to match specific columns in a buffer or string. The "23" can be any column number. The first column is 1. Actually, the column is the byte number (thus it's not exactly right ! for multi-byte characters). {not in Vi} WARNING: When inserting or deleting text Vim does not automatically update the matches. This means Syntax highlighting quickly becomes wrong. --- 939,945 ---- These three can be used to match specific columns in a buffer or string. The "23" can be any column number. The first column is 1. Actually, the column is the byte number (thus it's not exactly right ! for multi-byte characters). WARNING: When inserting or deleting text Vim does not automatically update the matches. This means Syntax highlighting quickly becomes wrong. *************** *** 967,973 **** The "23" can be any column number. The first column is 1. Note that some virtual column positions will never match, because they are halfway through a tab or other character that occupies more than ! one screen character. {not in Vi} WARNING: When inserting or deleting text Vim does not automatically update highlighted matches. This means Syntax highlighting quickly becomes wrong. --- 961,967 ---- The "23" can be any column number. The first column is 1. Note that some virtual column positions will never match, because they are halfway through a tab or other character that occupies more than ! one screen character. WARNING: When inserting or deleting text Vim does not automatically update highlighted matches. This means Syntax highlighting quickly becomes wrong. *************** *** 990,996 **** where ".*" matches zero characters. < ! Character classes: {not in Vi} \i identifier character (see 'isident' option) */\i* \I like "\i", but excluding digits */\I* \k keyword character (see 'iskeyword' option) */\k* --- 984,990 ---- where ".*" matches zero characters. < ! Character classes: \i identifier character (see 'isident' option) */\i* \I like "\i", but excluding digits */\I* \k keyword character (see 'iskeyword' option) */\k* *************** *** 1050,1056 **** *E51* *E54* *E55* *E872* *E873* \1 Matches the same string that was matched by */\1* *E65* ! the first sub-expression in \( and \). {not in Vi} Example: "\([a-z]\).\1" matches "ata", "ehe", "tot", etc. \2 Like "\1", but uses second sub-expression, */\2* ... */\3* --- 1044,1050 ---- *E51* *E54* *E55* *E872* *E873* \1 Matches the same string that was matched by */\1* *E65* ! the first sub-expression in \( and \). Example: "\([a-z]\).\1" matches "ata", "ehe", "tot", etc. \2 Like "\1", but uses second sub-expression, */\2* ... */\3* *************** *** 1062,1068 **** \%(\) A pattern enclosed by escaped parentheses. */\%(\)* */\%(* *E53* Just like \(\), but without counting it as a sub-expression. This allows using more groups and it's a little bit faster. - {not in Vi} x A single character, with no special meaning, matches itself --- 1056,1061 ---- *************** *** 1146,1152 **** The "Func" column shows what library function is used. The implementation depends on the system. Otherwise: (1) Uses islower() for ASCII and Vim builtin rules for other ! characters when built with the |+multi_byte| feature. (2) Uses Vim builtin rules (3) As with (1) but using isupper() */[[=* *[==]* --- 1139,1145 ---- The "Func" column shows what library function is used. The implementation depends on the system. Otherwise: (1) Uses islower() for ASCII and Vim builtin rules for other ! characters. (2) Uses Vim builtin rules (3) As with (1) but using isupper() */[[=* *[==]* *************** *** 1163,1169 **** backslash before it: "[xyz\]]", "[\^xyz]", "[xy\-z]" and "[xyz\\]". (Note: POSIX does not support the use of a backslash this way). For ']' you can also make it the first character (following a possible ! "^"): "[]xyz]" or "[^]xyz]" {not in Vi}. For '-' you can also make it the first or last character: "[-xyz]", "[^-xyz]" or "[xyz-]". For '\' you can also let it be followed by any character that's not in "^]-\bdertnoUux". "[\xyz]" matches '\', --- 1156,1162 ---- backslash before it: "[xyz\]]", "[\^xyz]", "[xy\-z]" and "[xyz\\]". (Note: POSIX does not support the use of a backslash this way). For ']' you can also make it the first character (following a possible ! "^"): "[]xyz]" or "[^]xyz]". For '-' you can also make it the first or last character: "[-xyz]", "[^-xyz]" or "[xyz-]". For '\' you can also let it be followed by any character that's not in "^]-\bdertnoUux". "[\xyz]" matches '\', *************** *** 1172,1178 **** - Omitting the trailing ] is not considered an error. "[]" works like "[]]", it matches the ']' character. - The following translations are accepted when the 'l' flag is not ! included in 'cpoptions' {not in Vi}: \e \t \r (NOT end-of-line!) --- 1165,1171 ---- - Omitting the trailing ] is not considered an error. "[]" works like "[]]", it matches the ']' character. - The following translations are accepted when the 'l' flag is not ! included in 'cpoptions': \e \t \r (NOT end-of-line!) *************** *** 1222,1228 **** \%u20AC Matches the character specified with up to four hexadecimal characters. \%U1234abcd Matches the character specified with up to eight hexadecimal ! characters. ============================================================================== 7. Ignoring case in a pattern */ignorecase* --- 1215,1221 ---- \%u20AC Matches the character specified with up to four hexadecimal characters. \%U1234abcd Matches the character specified with up to eight hexadecimal ! characters, up to 0x7fffffff ============================================================================== 7. Ignoring case in a pattern */ignorecase* *************** *** 1253,1259 **** "CTRL-V 000". This is probably just what you expect. Internally the character is replaced with a in the search pattern. What is unusual is that typing CTRL-V CTRL-J also inserts a , thus also searches for a ! in the file. {Vi cannot handle characters in the file at all} *CR-used-for-NL* When 'fileformat' is "mac", characters in the file are stored as --- 1246,1252 ---- "CTRL-V 000". This is probably just what you expect. Internally the character is replaced with a in the search pattern. What is unusual is that typing CTRL-V CTRL-J also inserts a , thus also searches for a ! in the file. *CR-used-for-NL* When 'fileformat' is "mac", characters in the file are stored as *************** *** 1431,1434 **** ":2match" for another plugin. ! vim:tw=78:ts=8:ft=help:norl: --- 1424,1427 ---- ":2match" for another plugin. ! vim:tw=78:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/pi_getscript.txt 2018-05-17 13:41:49.000000000 +0200 --- runtime/doc/pi_getscript.txt 2018-07-29 14:23:36.367157551 +0200 *************** *** 479,482 **** and they became numbers. Fixes comparison. ============================================================================== ! vim:tw=78:ts=8:ft=help:fdm=marker --- 479,482 ---- and they became numbers. Fixes comparison. ============================================================================== ! vim:tw=78:ts=8:noet:ft=help:fdm=marker *** ../vim-8.1.1279/runtime/doc/pi_gzip.txt 2018-05-17 13:41:55.000000000 +0200 --- runtime/doc/pi_gzip.txt 2019-05-05 17:45:27.805313884 +0200 *************** *** 1,4 **** ! *pi_gzip.txt* For Vim version 8.1. Last change: 2016 Nov 06 VIM REFERENCE MANUAL by Bram Moolenaar --- 1,4 ---- ! *pi_gzip.txt* For Vim version 8.1. Last change: 2019 May 05 VIM REFERENCE MANUAL by Bram Moolenaar *************** *** 13,20 **** You can avoid loading this plugin by setting the "loaded_gzip" variable: > :let loaded_gzip = 1 - {Vi does not have any of this} - ============================================================================== 1. Autocommands *gzip-autocmd* --- 13,18 ---- *************** *** 40,43 **** decompression. You have to rename the file if you want this. ============================================================================== ! vim:tw=78:ts=8:ft=help:norl: --- 38,41 ---- decompression. You have to rename the file if you want this. ============================================================================== ! vim:tw=78:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/pi_logipat.txt 2016-12-12 23:11:48.000000000 +0100 --- runtime/doc/pi_logipat.txt 2018-07-29 14:23:36.367157551 +0200 *************** *** 118,121 **** ============================================================================== ! vim:tw=78:ts=8:ft=help --- 118,121 ---- ============================================================================== ! vim:tw=78:ts=8:noet:ft=help *** ../vim-8.1.1279/runtime/doc/pi_netrw.txt 2018-05-17 13:42:02.000000000 +0200 --- runtime/doc/pi_netrw.txt 2019-05-05 17:45:35.061273108 +0200 *************** *** 1,4 **** ! *pi_netrw.txt* For Vim version 8.1. Last change: 2017 Nov 03 ------------------------------------------------ NETRW REFERENCE MANUAL by Charles E. Campbell --- 1,4 ---- ! *pi_netrw.txt* For Vim version 8.1. Last change: 2019 May 05 ------------------------------------------------ NETRW REFERENCE MANUAL by Charles E. Campbell *************** *** 114,121 **** 13. Todo..................................................|netrw-todo| 14. Credits...............................................|netrw-credits| - {Vi does not have any of this} - ============================================================================== 2. Starting With Netrw *netrw-start* {{{1 --- 114,119 ---- *************** *** 3504,3510 **** - Click "Add..." - Set External Editor (adjust path as needed, include the quotes and !.! at the end): ! "c:\Program Files\Vim\vim70\gvim.exe" !.! - Check that the filetype in the box below is {asterisk}.{asterisk} (all files), or whatever types you want (cec: change {asterisk} to * ; I had to --- 3502,3508 ---- - Click "Add..." - Set External Editor (adjust path as needed, include the quotes and !.! at the end): ! "c:\Program Files\Vim\vim81\gvim.exe" !.! - Check that the filetype in the box below is {asterisk}.{asterisk} (all files), or whatever types you want (cec: change {asterisk} to * ; I had to *************** *** 3754,3761 **** The script is typically installed on systems as something like: > ! /usr/local/share/vim/vim7x/plugin/netrwPlugin.vim ! /usr/local/share/vim/vim7x/autoload/netrw.vim (see output of :echo &rtp) < which is loaded automatically at startup (assuming :set nocp). If you --- 3752,3759 ---- The script is typically installed on systems as something like: > ! /usr/local/share/vim/vim8x/plugin/netrwPlugin.vim ! /usr/local/share/vim/vim8x/autoload/netrw.vim (see output of :echo &rtp) < which is loaded automatically at startup (assuming :set nocp). If you *************** *** 4267,4270 **** ============================================================================== Modelines: {{{1 ! vim:tw=78:ts=8:ft=help:norl:fdm=marker --- 4265,4268 ---- ============================================================================== Modelines: {{{1 ! vim:tw=78:ts=8:noet:ft=help:norl:fdm=marker *** ../vim-8.1.1279/runtime/doc/pi_paren.txt 2018-05-17 13:42:02.000000000 +0200 --- runtime/doc/pi_paren.txt 2018-07-29 14:23:36.371157528 +0200 *************** *** 57,60 **** different mechanism. ============================================================================== ! vim:tw=78:ts=8:ft=help:norl: --- 57,60 ---- different mechanism. ============================================================================== ! vim:tw=78:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/pi_spec.txt 2018-05-17 13:42:02.000000000 +0200 --- runtime/doc/pi_spec.txt 2018-07-29 14:23:36.371157528 +0200 *************** *** 108,111 **** Good luck!! ! vim:tw=78:ts=8:ft=help:norl: --- 108,111 ---- Good luck!! ! vim:tw=78:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/pi_tar.txt 2018-05-17 13:42:02.000000000 +0200 --- runtime/doc/pi_tar.txt 2018-07-29 14:23:36.371157528 +0200 *************** *** 148,151 **** v1 (original) * Michael Toren (see http://michael.toren.net/code/) ============================================================================== ! vim:tw=78:ts=8:ft=help --- 148,151 ---- v1 (original) * Michael Toren (see http://michael.toren.net/code/) ============================================================================== ! vim:tw=78:ts=8:noet:ft=help *** ../vim-8.1.1279/runtime/doc/pi_vimball.txt 2018-05-17 13:42:02.000000000 +0200 --- runtime/doc/pi_vimball.txt 2018-07-29 14:23:36.371157528 +0200 *************** *** 273,276 **** ============================================================================== ! vim:tw=78:ts=8:ft=help:fdm=marker --- 273,276 ---- ============================================================================== ! vim:tw=78:ts=8:noet:ft=help:fdm=marker *** ../vim-8.1.1279/runtime/doc/pi_zip.txt 2018-05-17 13:42:02.000000000 +0200 --- runtime/doc/pi_zip.txt 2018-07-29 14:23:36.371157528 +0200 *************** *** 149,152 **** v1 Sep 15, 2005 * Initial release, had browsing, reading, and writing ============================================================================== ! vim:tw=78:ts=8:ft=help:fdm=marker --- 149,152 ---- v1 Sep 15, 2005 * Initial release, had browsing, reading, and writing ============================================================================== ! vim:tw=78:ts=8:noet:ft=help:fdm=marker *** ../vim-8.1.1279/runtime/doc/print.txt 2018-05-17 13:42:02.000000000 +0200 --- runtime/doc/print.txt 2019-05-05 17:45:42.337232214 +0200 *************** *** 1,4 **** ! *print.txt* For Vim version 8.1. Last change: 2010 Jul 20 VIM REFERENCE MANUAL by Bram Moolenaar --- 1,4 ---- ! *print.txt* For Vim version 8.1. Last change: 2019 May 05 VIM REFERENCE MANUAL by Bram Moolenaar *************** *** 15,21 **** 7. PostScript Utilities |postscript-print-util| 8. Formfeed Characters |printing-formfeed| - {Vi has None of this} {only available when compiled with the |+printer| feature} ============================================================================== --- 15,20 ---- *************** *** 46,51 **** --- 45,52 ---- 'printexpr' through |v:cmdarg|. Otherwise [arguments] is ignored. 'printoptions' can be used to specify paper size, duplex, etc. + Note: If you want PDF, there are tools such as + "ps2pdf" that can convert the PostScript to PDF. :[range]ha[rdcopy][!] >{filename} As above, but write the resulting PostScript in file *************** *** 109,118 **** replaced with '-' signs. If 'printencoding' is empty or Vim cannot find the file then it will use ! 'encoding' (if Vim is compiled with |+multi_byte| and it is set an 8-bit ! encoding) to find the print character encoding file. If Vim is unable to find ! a character encoding file then it will use the "latin1" print character ! encoding file. When 'encoding' is set to a multi-byte encoding, Vim will try to convert characters to the printing encoding for printing (if 'printencoding' is empty --- 110,118 ---- replaced with '-' signs. If 'printencoding' is empty or Vim cannot find the file then it will use ! 'encoding' (if it is set an 8-bit encoding) to find the print character ! encoding file. If Vim is unable to find a character encoding file then it ! will use the "latin1" print character encoding file. When 'encoding' is set to a multi-byte encoding, Vim will try to convert characters to the printing encoding for printing (if 'printencoding' is empty *************** *** 253,261 **** Japanese JIS_C_1978 x x JIS_X_1983 x x JIS_X_1990 x x x ! MSWINDOWS x ! KANJITALK6 x ! KANJITALK7 x euc-kr cp949 ucs-2 utf-8 ~ Korean KS_X_1992 x --- 253,261 ---- Japanese JIS_C_1978 x x JIS_X_1983 x x JIS_X_1990 x x x ! MSWINDOWS x ! KANJITALK6 x ! KANJITALK7 x euc-kr cp949 ucs-2 utf-8 ~ Korean KS_X_1992 x *************** *** 752,755 **** accidental blank pages. ============================================================================== ! vim:tw=78:ts=8:ft=help:norl: --- 752,755 ---- accidental blank pages. ============================================================================== ! vim:tw=78:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/quickfix.txt 2019-05-05 15:02:26.176319819 +0200 --- runtime/doc/quickfix.txt 2019-05-05 17:45:50.533186142 +0200 *************** *** 1,4 **** ! *quickfix.txt* For Vim version 8.1. Last change: 2018 May 01 VIM REFERENCE MANUAL by Bram Moolenaar --- 1,4 ---- ! *quickfix.txt* For Vim version 8.1. Last change: 2019 May 05 VIM REFERENCE MANUAL by Bram Moolenaar *************** *** 16,23 **** 8. The directory stack |quickfix-directory-stack| 9. Specific error file formats |errorformats| - {Vi does not have any of these commands} - The quickfix commands are not available when the |+quickfix| feature was disabled at compile time. --- 16,21 ---- *************** *** 502,508 **** autocommand event is disabled by adding it to 'eventignore'. This considerably speeds up editing each buffer. - {not in Vi} Also see |:bufdo|, |:tabdo|, |:argdo|, |:windo|, |:ldo|, |:cfdo| and |:lfdo|. --- 500,505 ---- *************** *** 515,521 **** :{cmd} etc. < Otherwise it works the same as `:cdo`. - {not in Vi} *:ldo* :ld[o][!] {cmd} Execute {cmd} in each valid entry in the location list --- 512,517 ---- *************** *** 528,534 **** etc. < Only valid entries in the location list are used. Otherwise it works the same as `:cdo`. - {not in Vi} *:lfdo* :lfdo[!] {cmd} Execute {cmd} in each file in the location list for --- 524,529 ---- *************** *** 540,546 **** :{cmd} etc. < Otherwise it works the same as `:ldo`. - {not in Vi} ============================================================================= 2. The error window *quickfix-window* --- 535,540 ---- *************** *** 1906,1909 **** ! vim:tw=78:ts=8:ft=help:norl: --- 1900,1903 ---- ! vim:tw=78:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/quickref.txt 2019-02-16 15:09:21.225946157 +0100 --- runtime/doc/quickref.txt 2019-04-28 19:50:54.104620388 +0200 *************** *** 1,4 **** ! *quickref.txt* For Vim version 8.1. Last change: 2018 Apr 18 VIM REFERENCE MANUAL by Bram Moolenaar --- 1,4 ---- ! *quickref.txt* For Vim version 8.1. Last change: 2019 Apr 28 VIM REFERENCE MANUAL by Bram Moolenaar *************** *** 600,605 **** --- 600,606 ---- Short explanation of each option: *option-list* 'aleph' 'al' ASCII code of the letter Aleph (Hebrew) 'allowrevins' 'ari' allow CTRL-_ in Insert and Command-line mode + 'altkeymap' 'akm' obsolete option for Farsi 'ambiwidth' 'ambw' what to do with Unicode chars of ambiguous width 'antialias' 'anti' Mac OS X: use smooth, antialiased fonts 'autochdir' 'acd' change directory to the file in the current window *************** *** 699,704 **** --- 700,706 ---- 'filetype' 'ft' type of file, used for autocommands 'fillchars' 'fcs' characters to use for displaying special items 'fixendofline' 'fixeol' make sure last line in file has + 'fkmap' 'fk' obsolete option for Farsi 'foldclose' 'fcl' close a fold when the cursor leaves it 'foldcolumn' 'fdc' width of the column used to indicate folds 'foldenable' 'fen' set to display all folds open *************** *** 767,772 **** --- 769,775 ---- 'keywordprg' 'kp' program to use for the "K" command 'langmap' 'lmap' alphabetic characters for other language mode 'langmenu' 'lm' language to be used for the menus + 'langnoremap' 'lnr' do not apply 'langmap' to mapped characters 'langremap' 'lrm' do apply 'langmap' to mapped characters 'laststatus' 'ls' tells when last window has status lines 'lazyredraw' 'lz' don't redraw while executing macros *************** *** 779,786 **** 'listchars' 'lcs' characters for displaying in list mode 'loadplugins' 'lpl' load plugin scripts when starting up 'luadll' name of the Lua dynamic library - 'mzschemedll' name of the MzScheme dynamic library - 'mzschemegcdll' name of the MzScheme dynamic library for GC 'macatsui' Mac GUI: use ATSUI text drawing 'magic' changes special characters in search patterns 'makeef' 'mef' name of the errorfile for ":make" --- 782,787 ---- *************** *** 808,813 **** --- 809,816 ---- 'mouseshape' 'mouses' shape of the mouse pointer in different modes 'mousetime' 'mouset' max time between mouse double-click 'mzquantum' 'mzq' the interval between polls for MzScheme threads + 'mzschemedll' name of the MzScheme dynamic library + 'mzschemegcdll' name of the MzScheme dynamic library for GC 'nrformats' 'nf' number formats recognized for CTRL-A command 'number' 'nu' print the line number in front of each line 'numberwidth' 'nuw' number of columns used for the line number *************** *** 916,921 **** --- 919,925 ---- 'tabstop' 'ts' number of spaces that in file uses 'tagbsearch' 'tbs' use binary searching in tags files 'tagcase' 'tc' how to handle case when searching in tags files + 'tagfunc' 'tfu' function to get list of tag matches 'taglength' 'tl' number of significant characters for a tag 'tagrelative' 'tr' file names in tag file are relative 'tags' 'tag' list of file names used by the tag command *************** *** 1446,1449 **** |zN| zN fold normal set 'foldenable' |zi| zi invert 'foldenable' ! vim:tw=78:ts=8:ft=help:norl: --- 1450,1453 ---- |zN| zN fold normal set 'foldenable' |zi| zi invert 'foldenable' ! vim:tw=78:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/quotes.txt 2018-05-17 13:42:02.000000000 +0200 --- runtime/doc/quotes.txt 2018-07-29 14:23:36.371157528 +0200 *************** *** 272,275 **** |____/ |_| \___/|_| |_| (_|_) (Tony Nugent, Australia) ` ! vim:tw=78:ts=8:ft=help:norl: --- 272,275 ---- |____/ |_| \___/|_| |_| (_|_) (Tony Nugent, Australia) ` ! vim:tw=78:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/recover.txt 2018-05-17 13:42:02.000000000 +0200 --- runtime/doc/recover.txt 2018-09-16 18:44:22.402360198 +0200 *************** *** 28,33 **** --- 28,36 ---- :sw[apname] *:sw* *:swapname* + Or you can use the |swapname()| function, which also allows for seeing the + swap file name of other buffers. + The name of the swap file is normally the same as the file you are editing, with the extension ".swp". - On Unix, a '.' is prepended to swap file names in the same directory as the *************** *** 234,237 **** file. Thus if you write the text file, you need to use that new key. ! vim:tw=78:ts=8:ft=help:norl: --- 237,240 ---- file. Thus if you write the text file, you need to use that new key. ! vim:tw=78:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/remote.txt 2018-05-17 13:42:02.000000000 +0200 --- runtime/doc/remote.txt 2019-05-05 17:49:07.004107711 +0200 *************** *** 1,4 **** ! *remote.txt* For Vim version 8.1. Last change: 2017 Nov 12 VIM REFERENCE MANUAL by Bram Moolenaar --- 1,4 ---- ! *remote.txt* For Vim version 8.1. Last change: 2019 May 05 VIM REFERENCE MANUAL by Bram Moolenaar *************** *** 10,17 **** 2. X11 specific items |x11-clientserver| 3. MS-Windows specific items |w32-clientserver| - {Vi does not have any of these commands} - ============================================================================== 1. Common functionality *clientserver* --- 10,15 ---- *************** *** 63,69 **** --servername {name} Become the server {name}. When used together with one of the --remote commands: connect to server {name} instead of the default (see ! below). *--remote-send* --remote-send {keys} Send {keys} to server and exit. The {keys} are not mapped. Special key names are --- 61,67 ---- --servername {name} Become the server {name}. When used together with one of the --remote commands: connect to server {name} instead of the default (see ! below). The name used will be uppercase. *--remote-send* --remote-send {keys} Send {keys} to server and exit. The {keys} are not mapped. Special key names are *************** *** 204,207 **** start /w gvim --remote-wait file.txt < ! vim:tw=78:sw=4:ts=8:ft=help:norl: --- 202,205 ---- start /w gvim --remote-wait file.txt < ! vim:tw=78:sw=4:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/repeat.txt 2019-04-04 18:15:05.762857109 +0200 --- runtime/doc/repeat.txt 2019-05-05 17:49:30.727980452 +0200 *************** *** 1,4 **** ! *repeat.txt* For Vim version 8.1. Last change: 2018 Mar 04 VIM REFERENCE MANUAL by Bram Moolenaar --- 1,4 ---- ! *repeat.txt* For Vim version 8.1. Last change: 2019 May 05 VIM REFERENCE MANUAL by Bram Moolenaar *************** *** 163,174 **** *:@:* :[addr]@: Repeat last command-line. First set cursor at line ! [addr] (default is current line). {not in Vi} :[addr]@ *:@@* :[addr]@@ Repeat the previous :@{0-9a-z"}. First set cursor at ! line [addr] (default is current line). {Vi: only in ! some versions} ============================================================================== 4. Using Vim scripts *using-scripts* --- 163,173 ---- *:@:* :[addr]@: Repeat last command-line. First set cursor at line ! [addr] (default is current line). :[addr]@ *:@@* :[addr]@@ Repeat the previous :@{0-9a-z"}. First set cursor at ! line [addr] (default is current line). ============================================================================== 4. Using Vim scripts *using-scripts* *************** *** 187,193 **** |:bufdo|, in a loop or when another command follows the display won't be updated while executing the commands. - {not in Vi} *:ru* *:runtime* :ru[ntime][!] [where] {file} .. --- 186,191 ---- *************** *** 230,236 **** when no file could be found. When 'verbose' is two or higher, there is a message about each searched file. - {not in Vi} *:pa* *:packadd* *E919* :pa[ckadd][!] {name} Search for an optional plugin directory in 'packpath' --- 228,233 ---- *************** *** 323,334 **** set encoding=utf-8 scriptencoding utf-8 < - {not in Vi} :scriptv[ersion] {version} *:scriptv* *:scriptversion* *E999* *E984* ! Specify the version of Vim for the lines that follow. ! Does not apply to sourced scripts. If {version} is higher than what the current Vim version supports E999 will be given. You either need --- 320,331 ---- set encoding=utf-8 scriptencoding utf-8 < :scriptv[ersion] {version} *:scriptv* *:scriptversion* *E999* *E984* ! Specify the version of Vim for the lines that follow ! in the same file. Only applies at the toplevel of ! sourced scripts, not inside functions. If {version} is higher than what the current Vim version supports E999 will be given. You either need *************** *** 340,350 **** :scr[iptnames] List all sourced script names, in the order they were first sourced. The number is used for the script ID ||. ! {not in Vi} {not available when compiled without the ! |+eval| feature} :scr[iptnames][!] {scriptId} *:script* ! Edit script {scriptId}. Suggested name is ":script". *:fini* *:finish* *E168* :fini[sh] Stop sourcing a script. Can only be used in a Vim --- 337,350 ---- :scr[iptnames] List all sourced script names, in the order they were first sourced. The number is used for the script ID ||. ! {not available when compiled without the |+eval| ! feature} :scr[iptnames][!] {scriptId} *:script* ! Edit script {scriptId}. Although ":scriptnames name" ! works, using ":script name" is recommended. ! When the current buffer can't be |abandon|ed and the ! ! is not present, the command fails. *:fini* *:finish* *E168* :fini[sh] Stop sourcing a script. Can only be used in a Vim *************** *** 354,360 **** following the ":finally" up to the matching |:endtry| are executed first. This process applies to all nested ":try"s in the script. The outermost ":endtry" ! then stops sourcing the script. {not in Vi} All commands and command sequences can be repeated by putting them in a named register and then executing it. There are two ways to get the commands in the --- 354,360 ---- following the ":finally" up to the matching |:endtry| are executed first. This process applies to all nested ":try"s in the script. The outermost ":endtry" ! then stops sourcing the script. All commands and command sequences can be repeated by putting them in a named register and then executing it. There are two ways to get the commands in the *************** *** 479,486 **** :set cpo-=C < *line-continuation-comment* ! To add a comment in between the lines start with '\" '. Notice the space ! after the double quote. Example: > let array = [ "\ first entry comment \ 'first', --- 479,486 ---- :set cpo-=C < *line-continuation-comment* ! To add a comment in between the lines start with '"\ '. Notice the space ! after the backslash. Example: > let array = [ "\ first entry comment \ 'first', *************** *** 694,700 **** NOTE: The debugging mode is far from perfect. Debugging will have side effects on how Vim works. You cannot use it to debug everything. For example, the display is messed up by the debugging messages. - {Vi does not have a debug mode} An alternative to debug mode is setting the 'verbose' option. With a bigger number it will give more verbose messages about what Vim is doing. --- 694,699 ---- *************** *** 928,934 **** Profiling means that Vim measures the time that is spent on executing functions and/or scripts. The |+profile| feature is required for this. It is only included when Vim was compiled with "huge" features. - {Vi does not have profiling} You can also use the |reltime()| function to measure time. This only requires the |+reltime| feature, which is present more often. --- 927,932 ---- *** ../vim-8.1.1279/runtime/doc/rileft.txt 2018-05-17 13:42:02.000000000 +0200 --- runtime/doc/rileft.txt 2019-05-05 17:49:47.735889047 +0200 *************** *** 1,4 **** ! *rileft.txt* For Vim version 8.1. Last change: 2006 Apr 24 VIM REFERENCE MANUAL by Avner Lottem --- 1,4 ---- ! *rileft.txt* For Vim version 8.1. Last change: 2019 May 05 VIM REFERENCE MANUAL by Avner Lottem *************** *** 12,19 **** E-mail: alottem@iil.intel.com Phone: +972-4-8307322 - {Vi does not have any of these commands} - *E26* {only available when compiled with the |+rightleft| feature} --- 12,17 ---- *************** *** 121,124 **** o There is no full bidirectionality (bidi) support. ! vim:tw=78:ts=8:ft=help:norl: --- 119,122 ---- o There is no full bidirectionality (bidi) support. ! vim:tw=78:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/russian.txt 2018-05-17 13:42:02.000000000 +0200 --- runtime/doc/russian.txt 2019-02-17 17:50:03.378330597 +0100 *************** *** 55,62 **** user interface items translations to work. After downloading an archive from RuVim project, unpack it into your ! $VIMRUNTIME directory. We recommend using UTF-8 archive, if your version of ! Vim is compiled with |+multi_byte| feature enabled. In order to use the Russian documentation, make sure you have set the 'helplang' option to "ru". --- 55,61 ---- user interface items translations to work. After downloading an archive from RuVim project, unpack it into your ! $VIMRUNTIME directory. We recommend using UTF-8 archive. In order to use the Russian documentation, make sure you have set the 'helplang' option to "ru". *************** *** 71,74 **** releases of gettext. =============================================================================== ! vim:tw=78:ts=8:ft=help:norl: --- 70,73 ---- releases of gettext. =============================================================================== ! vim:tw=78:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/scroll.txt 2018-05-17 13:42:02.000000000 +0200 --- runtime/doc/scroll.txt 2019-05-05 17:29:31.966604778 +0200 *************** *** 1,4 **** ! *scroll.txt* For Vim version 8.1. Last change: 2018 Apr 26 VIM REFERENCE MANUAL by Bram Moolenaar --- 1,4 ---- ! *scroll.txt* For Vim version 8.1. Last change: 2019 May 05 VIM REFERENCE MANUAL by Bram Moolenaar *************** *** 45,53 **** difference). When the cursor is on the last line of the buffer nothing happens and a beep is produced. See also 'startofline' option. - {difference from vi: Vim scrolls 'scroll' screen - lines, instead of file lines; makes a difference when - lines wrap} or ** ** or ** *CTRL-F* --- 45,50 ---- *************** *** 120,126 **** *zt* zt Like "z", but leave the cursor in the same ! column. {not in Vi} *zN* z{height} Redraw, make window {height} lines tall. This is --- 117,123 ---- *zt* zt Like "z", but leave the cursor in the same ! column. *zN* z{height} Redraw, make window {height} lines tall. This is *************** *** 136,142 **** *zz* zz Like "z.", but leave the cursor in the same column. Careful: If caps-lock is on, this command becomes ! "ZZ": write buffer and exit! {not in Vi} *z-* z- Redraw, line [count] at bottom of window (default --- 133,139 ---- *zz* zz Like "z.", but leave the cursor in the same column. Careful: If caps-lock is on, this command becomes ! "ZZ": write buffer and exit! *z-* z- Redraw, line [count] at bottom of window (default *************** *** 145,151 **** *zb* zb Like "z-", but leave the cursor in the same column. - {not in Vi} ============================================================================== 4. Scrolling horizontally *scroll-horizontal* --- 142,147 ---- *************** *** 158,183 **** z or *zl* *z* zl Move the view on the text [count] characters to the right, thus scroll the text [count] characters to the ! left. This only works when 'wrap' is off. {not in ! Vi} z or *zh* *z* zh Move the view on the text [count] characters to the left, thus scroll the text [count] characters to the ! right. This only works when 'wrap' is off. {not in ! Vi} *zL* zL Move the view on the text half a screenwidth to the right, thus scroll the text half a screenwidth to the ! left. This only works when 'wrap' is off. {not in ! Vi} *zH* zH Move the view on the text half a screenwidth to the left, thus scroll the text half a screenwidth to the ! right. This only works when 'wrap' is off. {not in ! Vi} For the following two commands the cursor is not moved in the text, only the text scrolls on the screen. --- 154,175 ---- z or *zl* *z* zl Move the view on the text [count] characters to the right, thus scroll the text [count] characters to the ! left. This only works when 'wrap' is off. z or *zh* *z* zh Move the view on the text [count] characters to the left, thus scroll the text [count] characters to the ! right. This only works when 'wrap' is off. *zL* zL Move the view on the text half a screenwidth to the right, thus scroll the text half a screenwidth to the ! left. This only works when 'wrap' is off. *zH* zH Move the view on the text half a screenwidth to the left, thus scroll the text half a screenwidth to the ! right. This only works when 'wrap' is off. For the following two commands the cursor is not moved in the text, only the text scrolls on the screen. *************** *** 185,196 **** *zs* zs Scroll the text horizontally to position the cursor at the start (left side) of the screen. This only ! works when 'wrap' is off. {not in Vi} *ze* ze Scroll the text horizontally to position the cursor at the end (right side) of the screen. This only ! works when 'wrap' is off. {not in Vi} ============================================================================== 5. Scrolling synchronously *scroll-binding* --- 177,188 ---- *zs* zs Scroll the text horizontally to position the cursor at the start (left side) of the screen. This only ! works when 'wrap' is off. *ze* ze Scroll the text horizontally to position the cursor at the end (right side) of the screen. This only ! works when 'wrap' is off. ============================================================================== 5. Scrolling synchronously *scroll-binding* *************** *** 332,335 **** :map [65~ :map! [65~ < ! vim:tw=78:ts=8:ft=help:norl: --- 324,327 ---- :map [65~ :map! [65~ < ! vim:tw=78:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/sign.txt 2019-01-11 13:42:31.680331155 +0100 --- runtime/doc/sign.txt 2019-05-05 17:50:01.187816635 +0200 *************** *** 1,4 **** ! *sign.txt* For Vim version 8.1. Last change: 2016 Aug 17 VIM REFERENCE MANUAL by Gordon Prieur --- 1,4 ---- ! *sign.txt* For Vim version 8.1. Last change: 2019 May 05 VIM REFERENCE MANUAL by Gordon Prieur *************** *** 10,16 **** 1. Introduction |sign-intro| 2. Commands |sign-commands| - {Vi does not have any of these features} {only available when compiled with the |+signs| feature} ============================================================================== --- 10,15 ---- *************** *** 31,37 **** Signs and highlights are not useful just for debuggers. Sun's Visual WorkShop uses signs and highlights to mark build errors and SourceBrowser hits. Additionally, the debugger supports 8 to 10 different signs and ! highlight colors. |workshop| Same for Netbeans |netbeans|. There are two steps in using signs: --- 30,36 ---- Signs and highlights are not useful just for debuggers. Sun's Visual WorkShop uses signs and highlights to mark build errors and SourceBrowser hits. Additionally, the debugger supports 8 to 10 different signs and ! highlight colors, see |NetBeans|. There are two steps in using signs: *************** *** 43,48 **** --- 42,48 ---- displayed. A defined sign can be placed several times in different lines and files. + *sign-column* When signs are defined for a file, Vim will automatically add a column of two characters to display them in. When the last sign is unplaced the column disappears again. This behavior can be changed with the 'signcolumn' option. *************** *** 55,61 **** *sign-identifier* Each placed sign is identified by a number called the sign identifier. This identifier is used to jump to the sign or to remove the sign. The identifier ! is assigned when placing the sign using the |sign-place| command or the |sign_place()| function. Each sign identifier should be a unique number. If multiple placed signs use the same identifier, then jumping to or removing a sign becomes unpredictable. To avoid overlapping identifiers, sign groups can --- 55,61 ---- *sign-identifier* Each placed sign is identified by a number called the sign identifier. This identifier is used to jump to the sign or to remove the sign. The identifier ! is assigned when placing the sign using the |:sign-place| command or the |sign_place()| function. Each sign identifier should be a unique number. If multiple placed signs use the same identifier, then jumping to or removing a sign becomes unpredictable. To avoid overlapping identifiers, sign groups can *************** *** 76,81 **** --- 76,85 ---- independent of the sign group. The default priority for a sign is 10. The priority is assigned at the time of placing a sign. + When the line on which the sign is placed is deleted, the sign is moved to the + next line (or the last line of the buffer, if there is no next line). When + the delete is undone the sign does not move back. + ============================================================================== 2. Commands *sign-commands* *:sig* *:sign* *** ../vim-8.1.1279/runtime/doc/spell.txt 2018-05-17 13:42:02.000000000 +0200 --- runtime/doc/spell.txt 2019-05-05 17:50:25.543685303 +0200 *************** *** 1,4 **** ! *spell.txt* For Vim version 8.1. Last change: 2018 Mar 29 VIM REFERENCE MANUAL by Bram Moolenaar --- 1,4 ---- ! *spell.txt* For Vim version 8.1. Last change: 2019 May 05 VIM REFERENCE MANUAL by Bram Moolenaar *************** *** 11,20 **** 3. Generating a spell file |spell-mkspell| 4. Spell file format |spell-file-format| ! {Vi does not have any of these commands} ! ! Spell checking is not available when the |+syntax| feature has been disabled ! at compile time. Note: There also is a vimspell plugin. If you have it you can do ":help vimspell" to find about it. But you will probably want to get rid of the --- 11,17 ---- 3. Generating a spell file |spell-mkspell| 4. Spell file format |spell-file-format| ! {not available when the |+syntax| feature has been disabled at compile time} Note: There also is a vimspell plugin. If you have it you can do ":help vimspell" to find about it. But you will probably want to get rid of the *************** *** 312,336 **** spell file is used. For example, with these values: ! 'runtimepath' is "~/.vim,/usr/share/vim70,~/.vim/after" 'encoding' is "iso-8859-2" 'spelllang' is "pl" Vim will look for: 1. ~/.vim/spell/pl.iso-8859-2.spl ! 2. /usr/share/vim70/spell/pl.iso-8859-2.spl 3. ~/.vim/spell/pl.iso-8859-2.add.spl ! 4. /usr/share/vim70/spell/pl.iso-8859-2.add.spl 5. ~/.vim/after/spell/pl.iso-8859-2.add.spl This assumes 1. is not found and 2. is found. If 'encoding' is "latin1" Vim will look for: 1. ~/.vim/spell/pl.latin1.spl ! 2. /usr/share/vim70/spell/pl.latin1.spl 3. ~/.vim/after/spell/pl.latin1.spl 4. ~/.vim/spell/pl.ascii.spl ! 5. /usr/share/vim70/spell/pl.ascii.spl 6. ~/.vim/after/spell/pl.ascii.spl This assumes none of them are found (Polish doesn't make sense when leaving --- 309,333 ---- spell file is used. For example, with these values: ! 'runtimepath' is "~/.vim,/usr/share/vim81,~/.vim/after" 'encoding' is "iso-8859-2" 'spelllang' is "pl" Vim will look for: 1. ~/.vim/spell/pl.iso-8859-2.spl ! 2. /usr/share/vim81/spell/pl.iso-8859-2.spl 3. ~/.vim/spell/pl.iso-8859-2.add.spl ! 4. /usr/share/vim81/spell/pl.iso-8859-2.add.spl 5. ~/.vim/after/spell/pl.iso-8859-2.add.spl This assumes 1. is not found and 2. is found. If 'encoding' is "latin1" Vim will look for: 1. ~/.vim/spell/pl.latin1.spl ! 2. /usr/share/vim81/spell/pl.latin1.spl 3. ~/.vim/after/spell/pl.latin1.spl 4. ~/.vim/spell/pl.ascii.spl ! 5. /usr/share/vim81/spell/pl.ascii.spl 6. ~/.vim/after/spell/pl.ascii.spl This assumes none of them are found (Polish doesn't make sense when leaving *************** *** 577,583 **** vimdiff xx_YY.orig.dic xx_YY.new.dic 3. Take over the changes you like in xx_YY.dic. You may also need to change xx_YY.aff. ! 4. Rename xx_YY.new.dic to xx_YY.orig.dic and xx_YY.new.aff to xx_YY.new.aff. SPELL FILE VERSIONS *E770* *E771* *E772* --- 574,580 ---- vimdiff xx_YY.orig.dic xx_YY.new.dic 3. Take over the changes you like in xx_YY.dic. You may also need to change xx_YY.aff. ! 4. Rename xx_YY.new.dic to xx_YY.orig.dic and xx_YY.new.aff to xx_YY.orig.aff. SPELL FILE VERSIONS *E770* *E771* *E772* *************** *** 1582,1587 **** --- 1579,1588 ---- Forbid three identical characters when compounding. Not supported. + CHECKSHARPS (Hunspell)) *spell-CHECKSHARPS* + SS letter pair in uppercased (German) words may be upper case + sharp s (ß). Not supported. + COMPLEXPREFIXES (Hunspell) *spell-COMPLEXPREFIXES* Enables using two prefixes. Not supported. *************** *** 1595,1606 **** Use COMPOUNDRULE instead. |spell-COMPOUNDRULE| COMPOUNDBEGIN (Hunspell) *spell-COMPOUNDBEGIN* Use COMPOUNDRULE instead. |spell-COMPOUNDRULE| ! COMPOUNDEND (Hunspell) *spell-COMPOUNDEND* Use COMPOUNDRULE instead. |spell-COMPOUNDRULE| COMPOUNDMIDDLE (Hunspell) *spell-COMPOUNDMIDDLE* Use COMPOUNDRULE instead. |spell-COMPOUNDRULE| COMPOUNDRULES (Hunspell) *spell-COMPOUNDRULES* --- 1596,1616 ---- Use COMPOUNDRULE instead. |spell-COMPOUNDRULE| COMPOUNDBEGIN (Hunspell) *spell-COMPOUNDBEGIN* + Words signed with COMPOUNDBEGIN may be first elements in + compound words. Use COMPOUNDRULE instead. |spell-COMPOUNDRULE| ! COMPOUNDLAST (Hunspell) *spell-COMPOUNDLAST* ! Words signed with COMPOUNDLAST may be last elements in ! compound words. Use COMPOUNDRULE instead. |spell-COMPOUNDRULE| + COMPOUNDEND (Hunspell) *spell-COMPOUNDEND* + Probably the same as COMPOUNDLAST + COMPOUNDMIDDLE (Hunspell) *spell-COMPOUNDMIDDLE* + Words signed with COMPOUNDMIDDLE may be middle elements in + compound words. Use COMPOUNDRULE instead. |spell-COMPOUNDRULE| COMPOUNDRULES (Hunspell) *spell-COMPOUNDRULES* *************** *** 1646,1649 **** is no need to separate words before checking them (using a trie instead of a hashtable). ! vim:tw=78:sw=4:ts=8:ft=help:norl: --- 1656,1659 ---- is no need to separate words before checking them (using a trie instead of a hashtable). ! vim:tw=78:sw=4:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/sponsor.txt 2018-05-17 13:42:03.000000000 +0200 --- runtime/doc/sponsor.txt 2018-07-29 14:23:36.371157528 +0200 *************** *** 213,216 **** ! vim:tw=78:ts=8:ft=help:norl: --- 213,216 ---- ! vim:tw=78:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/starting.txt 2019-02-16 15:09:21.225946157 +0100 --- runtime/doc/starting.txt 2019-05-05 17:56:44.137617228 +0200 *************** *** 1,4 **** ! *starting.txt* For Vim version 8.1. Last change: 2018 May 05 VIM REFERENCE MANUAL by Bram Moolenaar --- 1,4 ---- ! *starting.txt* For Vim version 8.1. Last change: 2019 May 05 VIM REFERENCE MANUAL by Bram Moolenaar *************** *** 84,90 **** and the first error is displayed. See |quickfix|. If [errorfile] is not given, the 'errorfile' option is used for the file name. See 'errorfile' for the default value. - {not in Vi} (nothing) Without one of the four items above, Vim will start editing a new buffer. It's empty and doesn't have a file name. --- 84,89 ---- *************** *** 129,145 **** --help *-h* *--help* *-?* -? ! -h Give usage (help) message and exit. {not in Vi} See |info-message| about capturing the text. *--version* --version Print version information and exit. Same output as for ! |:version| command. {not in Vi} See |info-message| about capturing the text. *--noplugin* --noplugin Skip loading plugins. Resets the 'loadplugins' option. ! {not in Vi} Note that the |-u| argument may also disable loading plugins: argument load: vimrc files plugins defaults.vim ~ (nothing) yes yes yes --- 128,144 ---- --help *-h* *--help* *-?* -? ! -h Give usage (help) message and exit. See |info-message| about capturing the text. *--version* --version Print version information and exit. Same output as for ! |:version| command. See |info-message| about capturing the text. *--noplugin* --noplugin Skip loading plugins. Resets the 'loadplugins' option. ! Note that the |-u| argument may also disable loading plugins: argument load: vimrc files plugins defaults.vim ~ (nothing) yes yes yes *************** *** 190,202 **** Note: You can use up to 10 "+" or "-c" arguments in a Vim command. They are executed in the order given. A "-S" argument counts as a "-c" argument as well. - {Vi only allows one command} --cmd {command} *--cmd* {command} will be executed before processing any vimrc file. Otherwise it acts like -c {command}. You can use up to 10 of these commands, independently from "-c" commands. - {not in Vi} *-S* -S {file} The {file} will be sourced after the first file has been read. --- 189,199 ---- *************** *** 205,211 **** < It can be mixed with "-c" arguments and repeated like "-c". The limit of 10 "-c" arguments applies here as well. {file} cannot start with a "-". ! {not in Vi} -S Works like "-S Session.vim". Only when used as the last argument or when another "-" option follows. --- 202,210 ---- < It can be mixed with "-c" arguments and repeated like "-c". The limit of 10 "-c" arguments applies here as well. {file} cannot start with a "-". ! ! Do not use this for running a script to do some work and exit ! Vim, you won't see error messages. Use |-u| instead. -S Works like "-S Session.vim". Only when used as the last argument or when another "-" option follows. *************** *** 217,224 **** |crash-recovery|. *-L* ! -L Same as -r. {only in some versions of Vi: "List recoverable ! edit sessions"} *-R* -R Readonly mode. The 'readonly' option will be set for all the --- 216,222 ---- |crash-recovery|. *-L* ! -L Same as -r. *-R* -R Readonly mode. The 'readonly' option will be set for all the *************** *** 238,244 **** -m Modifications not allowed to be written. The 'write' option will be reset, so that writing files is disabled. However, the 'write' option can be set to enable writing again. - {not in Vi} *-M* -M Modifications not allowed. The 'modifiable' option will be --- 236,241 ---- *************** *** 246,252 **** will be reset, so that writing files is disabled. However, the 'modifiable' and 'write' options can be set to enable changes and writing. - {not in Vi} *-Z* *restricted-mode* *E145* *E981* -Z Restricted mode. All commands that make use of an external --- 243,248 ---- *************** *** 260,270 **** the Safe module. Note that the user may still find a loophole to execute a shell command, it has only been made difficult. - {not in Vi} *-g* -g Start Vim in GUI mode. See |gui|. For the opposite see |-v|. - {not in Vi} *-v* -v Start Ex in Vi mode. Only makes a difference when the --- 256,264 ---- *************** *** 278,284 **** *-E* -E Start Vim in improved Ex mode |gQ|. Only makes a difference when the executable is not called "exim". - {not in Vi} *-s-ex* -s Silent or batch mode. Only when Vim was started as "ex" or --- 272,277 ---- *************** *** 302,307 **** --- 295,303 ---- "-u" argument). Example: > vim -e -s < thefilter thefile + < For the opposite, to see errors from the script, execute the + file with the |-u| flag: > + vim -u thefilter thefile < *-b* -b Binary mode. File I/O will only recognize to separate *************** *** 309,315 **** option is set to 0. 'modeline' is reset. The 'binary' option is set. This is done after reading the vimrc/exrc files but before reading any file in the arglist. See also ! |edit-binary|. {not in Vi} *-l* -l Lisp mode. Sets the 'lisp' and 'showmatch' options on. --- 305,311 ---- option is set to 0. 'modeline' is reset. The 'binary' option is set. This is done after reading the vimrc/exrc files but before reading any file in the arglist. See also ! |edit-binary|. *-l* -l Lisp mode. Sets the 'lisp' and 'showmatch' options on. *************** *** 318,324 **** -A Arabic mode. Sets the 'arabic' option on. (Only when compiled with the |+arabic| features (which include |+rightleft|), otherwise Vim gives an error message ! and exits.) {not in Vi} *-F* -F This was used for Farsi mode, which has been removed. --- 314,320 ---- -A Arabic mode. Sets the 'arabic' option on. (Only when compiled with the |+arabic| features (which include |+rightleft|), otherwise Vim gives an error message ! and exits.) *-F* -F This was used for Farsi mode, which has been removed. *************** *** 327,339 **** *-H* -H Hebrew mode. Sets the 'hkmap' and 'rightleft' options on. (Only when compiled with the |+rightleft| feature, otherwise ! Vim gives an error message and exits.) {not in Vi} *-V* *verbose* -V[N] Verbose. Sets the 'verbose' option to [N] (default: 10). Messages will be given for each file that is ":source"d and for reading or writing a viminfo file. Can be used to find ! out what is happening upon startup and exit. {not in Vi} Example: > vim -V8 foobar --- 323,335 ---- *-H* -H Hebrew mode. Sets the 'hkmap' and 'rightleft' options on. (Only when compiled with the |+rightleft| feature, otherwise ! Vim gives an error message and exits.) *-V* *verbose* -V[N] Verbose. Sets the 'verbose' option to [N] (default: 10). Messages will be given for each file that is ":source"d and for reading or writing a viminfo file. Can be used to find ! out what is happening upon startup and exit. Example: > vim -V8 foobar *************** *** 348,354 **** -D Debugging. Go to debugging mode when executing the first command from a script. |debug-mode| {not available when compiled without the |+eval| feature} - {not in Vi} *-C* -C Compatible mode. Sets the 'compatible' option. You can use --- 344,349 ---- *************** *** 360,372 **** < Several plugins won't work with 'compatible' set. You may want to set it after startup this way: > vim "+set cp" filename ! < Also see |compatible-default|. {not in Vi} *-N* -N Not compatible mode. Resets the 'compatible' option. You can use this to get 'nocompatible', when there is no .vimrc file or when using "-u NONE". ! Also see |compatible-default|. {not in Vi} *-y* *easy* -y Easy mode. Implied for |evim| and |eview|. Starts with --- 355,367 ---- < Several plugins won't work with 'compatible' set. You may want to set it after startup this way: > vim "+set cp" filename ! < Also see |compatible-default|. *-N* -N Not compatible mode. Resets the 'compatible' option. You can use this to get 'nocompatible', when there is no .vimrc file or when using "-u NONE". ! Also see |compatible-default|. *-y* *easy* -y Easy mode. Implied for |evim| and |eview|. Starts with *************** *** 374,380 **** This sources the script $VIMRUNTIME/evim.vim. Mappings are set up to work like most click-and-type editors, see |evim-keys|. The GUI is started when available. - {not in Vi} *-n* -n No swap file will be used. Recovery after a crash will be --- 369,374 ---- *************** *** 394,400 **** 'updatecount' to very big numbers, and type ":preserve" when you want to save your work. This way you keep the possibility for crash recovery. - {not in Vi} *-o* -o[N] Open N windows, split horizontally. If [N] is not given, --- 388,393 ---- *************** *** 402,414 **** there is not enough room, only the first few files get a window. If there are more windows than arguments, the last few windows will be editing an empty file. - {not in Vi} *-O* -O[N] Open N windows, split vertically. Otherwise it's like -o. If both the -o and the -O option are given, the last one on the command line determines how the windows will be split. - {not in Vi} *-p* -p[N] Open N tab pages. If [N] is not given, one tab page is opened --- 395,405 ---- *************** *** 416,435 **** 'tabpagemax' pages (default 10). If there are more tab pages than arguments, the last few tab pages will be editing an empty file. Also see |tabpage|. - {not in Vi} *-T* -T {terminal} Set the terminal type to "terminal". This influences the codes that Vim will send to your terminal. This is normally not needed, because Vim will be able to find out what type ! of terminal you are using. (See |terminal-info|.) {not in Vi} *--not-a-term* --not-a-term Tells Vim that the user knows that the input and/or output is not connected to a terminal. This will avoid the warning and the two second delay that would happen. Also avoids the "Reading from stdin..." message. ! {not in Vi} *--ttyfail* --ttyfail When the stdin or stdout is not a terminal (tty) then exit --- 407,425 ---- 'tabpagemax' pages (default 10). If there are more tab pages than arguments, the last few tab pages will be editing an empty file. Also see |tabpage|. *-T* -T {terminal} Set the terminal type to "terminal". This influences the codes that Vim will send to your terminal. This is normally not needed, because Vim will be able to find out what type ! of terminal you are using. (See |terminal-info|.) *--not-a-term* --not-a-term Tells Vim that the user knows that the input and/or output is not connected to a terminal. This will avoid the warning and the two second delay that would happen. Also avoids the "Reading from stdin..." message. ! Also avoids the "N files to edit" message. *--ttyfail* --ttyfail When the stdin or stdout is not a terminal (tty) then exit *************** *** 437,444 **** *-d* -d Start in diff mode, like |vimdiff|. ! {not in Vi} {not available when compiled without the |+diff| ! feature} -d {device} Only on the Amiga and when not compiled with the |+diff| feature. Works like "-dev". --- 427,433 ---- *-d* -d Start in diff mode, like |vimdiff|. ! {not available when compiled without the |+diff| feature} -d {device} Only on the Amiga and when not compiled with the |+diff| feature. Works like "-dev". *************** *** 448,454 **** Normally you would use this to set the window position and size: "-d con:x/y/width/height", e.g., "-d con:30/10/600/150". But you can also use it to start ! editing on another device, e.g., AUX:. {not in Vi} *-f* -f GUI: Do not disconnect from the program that started Vim. 'f' stands for "foreground". If omitted, the GUI forks a new --- 437,443 ---- Normally you would use this to set the window position and size: "-d con:x/y/width/height", e.g., "-d con:30/10/600/150". But you can also use it to start ! editing on another device, e.g., AUX:. *-f* -f GUI: Do not disconnect from the program that started Vim. 'f' stands for "foreground". If omitted, the GUI forks a new *************** *** 467,473 **** MS-Windows: This option is not supported. However, when running Vim with an installed vim.bat or gvim.bat file it works. - {not in Vi} *--nofork* --- 456,461 ---- *************** *** 492,504 **** When {vimrc} is equal to "DEFAULTS" (all uppercase), this has the same effect as "NONE", but the |defaults.vim| script is ! loaded, which will also set 'nocompatible'. Using the "-u" argument with another argument than DEFAULTS has the side effect that the 'compatible' option will be on by default. This can have unexpected effects. See |'compatible'|. - {not in Vi} *-U* *E230* -U {gvimrc} The file {gvimrc} is read for initializations when the GUI --- 480,492 ---- When {vimrc} is equal to "DEFAULTS" (all uppercase), this has the same effect as "NONE", but the |defaults.vim| script is ! loaded, which will also set 'nocompatible'. Also see ! |--clean|. Using the "-u" argument with another argument than DEFAULTS has the side effect that the 'compatible' option will be on by default. This can have unexpected effects. See |'compatible'|. *-U* *E230* -U {gvimrc} The file {gvimrc} is read for initializations when the GUI *************** *** 506,529 **** is equal to "NONE", no file is read for GUI initializations at all. |gui-init| Exception: Reading the system-wide menu file is always done. - {not in Vi} *-i* -i {viminfo} The file "viminfo" is used instead of the default viminfo file. If the name "NONE" is used (all uppercase), no viminfo file is read or written, even if 'viminfo' is set or when ":rv" or ":wv" are used. See also |viminfo-file|. - {not in Vi} *--clean* ! --clean Equal to "-u DEFAULTS -U NONE -i NONE": - initializations from files and environment variables is skipped - the |defaults.vim| script is loaded, which implies 'nocompatible': use Vim defaults - no |gvimrc| script is loaded - no viminfo file is read or written ! - the home directory is excluded from 'runtimepath' *-x* -x Use encryption to read/write files. Will prompt for a key, which is then stored in the 'key' option. All writes will --- 494,517 ---- is equal to "NONE", no file is read for GUI initializations at all. |gui-init| Exception: Reading the system-wide menu file is always done. *-i* -i {viminfo} The file "viminfo" is used instead of the default viminfo file. If the name "NONE" is used (all uppercase), no viminfo file is read or written, even if 'viminfo' is set or when ":rv" or ":wv" are used. See also |viminfo-file|. *--clean* ! --clean Similar to "-u DEFAULTS -U NONE -i NONE": - initializations from files and environment variables is skipped + - 'runtimepath' and 'packpath' are set to exclude home + directory entries (does not happen with -u DEFAULTS). - the |defaults.vim| script is loaded, which implies 'nocompatible': use Vim defaults - no |gvimrc| script is loaded - no viminfo file is read or written ! *-x* -x Use encryption to read/write files. Will prompt for a key, which is then stored in the 'key' option. All writes will *************** *** 548,554 **** When the connection is desired later anyway (e.g., for client-server messages), call the |serverlist()| function. This does not enable the XSMP handler though. - {not in Vi} *-s* -s {scriptin} The script file "scriptin" is read. The characters in the --- 536,541 ---- *************** *** 557,563 **** of the file is reached before the editor exits, further characters are read from the keyboard. Only works when not started in Ex mode, see |-s-ex|. See also |complex-repeat|. - {not in Vi} *-w_nr* -w {number} --- 544,549 ---- *************** *** 570,631 **** ":source!". When the "scriptout" file already exists, new characters are appended. See also |complex-repeat|. {scriptout} cannot start with a digit. - {not in Vi} *-W* -W {scriptout} Like -w, but do not append, overwrite an existing file. - {not in Vi} --remote [+{cmd}] {file} ... Open the {file} in another Vim that functions as a server. Any non-file arguments must come before this. ! See |--remote|. {not in Vi} --remote-silent [+{cmd}] {file} ... Like --remote, but don't complain if there is no server. ! See |--remote-silent|. {not in Vi} --remote-wait [+{cmd}] {file} ... Like --remote, but wait for the server to finish editing the file(s). ! See |--remote-wait|. {not in Vi} --remote-wait-silent [+{cmd}] {file} ... Like --remote-wait, but don't complain if there is no server. ! See |--remote-wait-silent|. {not in Vi} --servername {name} Specify the name of the Vim server to send to or to become. ! See |--servername|. {not in Vi} --remote-send {keys} Send {keys} to a Vim server and exit. ! See |--remote-send|. {not in Vi} --remote-expr {expr} Evaluate {expr} in another Vim that functions as a server. The result is printed on stdout. ! See |--remote-expr|. {not in Vi} --serverlist Output a list of Vim server names and exit. See ! |--serverlist|. {not in Vi} --socketid {id} *--socketid* GTK+ GUI Vim only. Make gvim try to use GtkPlug mechanism, so that it runs inside another window. See |gui-gtk-socketid| ! for details. {not in Vi} --windowid {id} *--windowid* Win32 GUI Vim only. Make gvim try to use the window {id} as a parent, so that it runs inside that window. See ! |gui-w32-windowid| for details. {not in Vi} --echo-wid *--echo-wid* GTK+ GUI Vim only. Make gvim echo the Window ID on stdout, which can be used to run gvim in a kpart widget. The format of the output is: > WID: 12345\n - < {not in Vi} --role {role} *--role* GTK+ 2 GUI only. Set the role of the main window to {role}. --- 556,614 ---- ":source!". When the "scriptout" file already exists, new characters are appended. See also |complex-repeat|. {scriptout} cannot start with a digit. *-W* -W {scriptout} Like -w, but do not append, overwrite an existing file. --remote [+{cmd}] {file} ... Open the {file} in another Vim that functions as a server. Any non-file arguments must come before this. ! See |--remote|. --remote-silent [+{cmd}] {file} ... Like --remote, but don't complain if there is no server. ! See |--remote-silent|. --remote-wait [+{cmd}] {file} ... Like --remote, but wait for the server to finish editing the file(s). ! See |--remote-wait|. --remote-wait-silent [+{cmd}] {file} ... Like --remote-wait, but don't complain if there is no server. ! See |--remote-wait-silent|. --servername {name} Specify the name of the Vim server to send to or to become. ! See |--servername|. --remote-send {keys} Send {keys} to a Vim server and exit. ! See |--remote-send|. --remote-expr {expr} Evaluate {expr} in another Vim that functions as a server. The result is printed on stdout. ! See |--remote-expr|. --serverlist Output a list of Vim server names and exit. See ! |--serverlist|. --socketid {id} *--socketid* GTK+ GUI Vim only. Make gvim try to use GtkPlug mechanism, so that it runs inside another window. See |gui-gtk-socketid| ! for details. --windowid {id} *--windowid* Win32 GUI Vim only. Make gvim try to use the window {id} as a parent, so that it runs inside that window. See ! |gui-w32-windowid| for details. --echo-wid *--echo-wid* GTK+ GUI Vim only. Make gvim echo the Window ID on stdout, which can be used to run gvim in a kpart widget. The format of the output is: > WID: 12345\n --role {role} *--role* GTK+ 2 GUI only. Set the role of the main window to {role}. *************** *** 633,639 **** identify a window, in order to restore window placement and such. The --role argument is passed automatically when restoring the session on login. See |gui-gnome-session| - {not in Vi} -P {parent-title} *-P* *MDI* *E671* *E672* Win32 only: Specify the title of the parent application. When --- 616,621 ---- *************** *** 1264,1279 **** *:mk* *:mkexrc* :mk[exrc] [file] Write current key mappings and changed options to [file] (default ".exrc" in the current directory), ! unless it already exists. {not in Vi} :mk[exrc]! [file] Always write current key mappings and changed options to [file] (default ".exrc" in the current ! directory). {not in Vi} *:mkv* *:mkvimrc* :mkv[imrc][!] [file] Like ":mkexrc", but the default is ".vimrc" in the current directory. The ":version" command is also ! written to the file. {not in Vi} These commands will write ":map" and ":set" commands to a file, in such a way that when these commands are executed, the current key mappings and options --- 1246,1261 ---- *:mk* *:mkexrc* :mk[exrc] [file] Write current key mappings and changed options to [file] (default ".exrc" in the current directory), ! unless it already exists. :mk[exrc]! [file] Always write current key mappings and changed options to [file] (default ".exrc" in the current ! directory). *:mkv* *:mkvimrc* :mkv[imrc][!] [file] Like ":mkexrc", but the default is ".vimrc" in the current directory. The ":version" command is also ! written to the file. These commands will write ":map" and ":set" commands to a file, in such a way that when these commands are executed, the current key mappings and options *************** *** 1339,1346 **** |-S| argument: > vim -S Session.vim < ! All this is {not in Vi} and {not available when compiled without the ! |+mksession| feature}. *:mks* *:mksession* :mks[ession][!] [file] Write a Vim script that restores the current editing --- 1321,1327 ---- |-S| argument: > vim -S Session.vim < ! All this is {not available when compiled without the |+mksession| feature}. *:mks* *:mksession* :mks[ession][!] [file] Write a Vim script that restores the current editing *************** *** 1599,1604 **** --- 1580,1587 ---- - The "-i" Vim argument can be used to set another file name, |-i|. When the file name given is "NONE" (all uppercase), no viminfo file is ever read or written. Also not for the commands below! + - The 'viminfofile' option can be used like the "-i" argument. In fact, the + value form the "-i" argument is stored in the 'viminfofile' option. - For the commands below, another file name can be given, overriding the default and the name given with 'viminfo' or "-i" (unless it's NONE). *************** *** 1653,1659 **** :rv[iminfo][!] [file] Read from viminfo file [file] (default: see above). If [!] is given, then any information that is already set (registers, marks, |v:oldfiles|, etc.) ! will be overwritten {not in Vi} *:wv* *:wviminfo* *E137* *E138* *E574* *E886* *E929* :wv[iminfo][!] [file] Write to viminfo file [file] (default: see above). --- 1636,1642 ---- :rv[iminfo][!] [file] Read from viminfo file [file] (default: see above). If [!] is given, then any information that is already set (registers, marks, |v:oldfiles|, etc.) ! will be overwritten *:wv* *:wviminfo* *E137* *E138* *E574* *E886* *E929* :wv[iminfo][!] [file] Write to viminfo file [file] (default: see above). *************** *** 1666,1672 **** check that no old temp files were left behind (e.g. ~/.viminf*) and that you can write in the directory of the .viminfo file. - {not in Vi} *:ol* *:oldfiles* :ol[dfiles] List the files that have marks stored in the viminfo --- 1649,1654 ---- *************** *** 1676,1683 **** The output can be filtered with |:filter|, e.g.: > filter /\.vim/ oldfiles < The filtering happens on the file name. ! {not in Vi, only when compiled with the |+eval| ! feature} :bro[wse] ol[dfiles][!] List file names as with |:oldfiles|, and then prompt --- 1658,1664 ---- The output can be filtered with |:filter|, e.g.: > filter /\.vim/ oldfiles < The filtering happens on the file name. ! {only when compiled with the |+eval| feature} :bro[wse] ol[dfiles][!] List file names as with |:oldfiles|, and then prompt *************** *** 1688,1691 **** Use ! to abandon a modified buffer. |abandon| {not when compiled with tiny or small features} ! vim:tw=78:ts=8:ft=help:norl: --- 1669,1672 ---- Use ! to abandon a modified buffer. |abandon| {not when compiled with tiny or small features} ! vim:tw=78:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/syntax.txt 2018-05-17 13:42:03.000000000 +0200 --- runtime/doc/syntax.txt 2019-03-29 20:27:11.231682590 +0100 *************** *** 1,4 **** ! *syntax.txt* For Vim version 8.1. Last change: 2018 Apr 30 VIM REFERENCE MANUAL by Bram Moolenaar --- 1,4 ---- ! *syntax.txt* For Vim version 8.1. Last change: 2019 Mar 29 VIM REFERENCE MANUAL by Bram Moolenaar *************** *** 23,43 **** 1. Quick start |:syn-qstart| 2. Syntax files |:syn-files| 3. Syntax loading procedure |syntax-loading| ! 4. Syntax file remarks |:syn-file-remarks| ! 5. Defining a syntax |:syn-define| ! 6. :syntax arguments |:syn-arguments| ! 7. Syntax patterns |:syn-pattern| ! 8. Syntax clusters |:syn-cluster| ! 9. Including syntax files |:syn-include| ! 10. Synchronizing |:syn-sync| ! 11. Listing syntax items |:syntax| ! 12. Highlight command |:highlight| ! 13. Linking groups |:highlight-link| ! 14. Cleaning up |:syn-clear| ! 15. Highlighting tags |tag-highlight| ! 16. Window-local syntax |:ownsyntax| ! 17. Color xterms |xterm-color| ! 18. When syntax is slow |:syntime| {Vi does not have any of these commands} --- 23,44 ---- 1. Quick start |:syn-qstart| 2. Syntax files |:syn-files| 3. Syntax loading procedure |syntax-loading| ! 4. Converting to HTML |2html.vim| ! 5. Syntax file remarks |:syn-file-remarks| ! 6. Defining a syntax |:syn-define| ! 7. :syntax arguments |:syn-arguments| ! 8. Syntax patterns |:syn-pattern| ! 9. Syntax clusters |:syn-cluster| ! 10. Including syntax files |:syn-include| ! 11. Synchronizing |:syn-sync| ! 12. Listing syntax items |:syntax| ! 13. Highlight command |:highlight| ! 14. Linking groups |:highlight-link| ! 15. Cleaning up |:syn-clear| ! 16. Highlighting tags |tag-highlight| ! 17. Window-local syntax |:ownsyntax| ! 18. Color xterms |xterm-color| ! 19. When syntax is slow |:syntime| {Vi does not have any of these commands} *************** *** 368,387 **** syntax. ============================================================================== ! 4. Syntax file remarks *:syn-file-remarks* ! *b:current_syntax-variable* ! Vim stores the name of the syntax that has been loaded in the ! "b:current_syntax" variable. You can use this if you want to load other ! settings, depending on which syntax is active. Example: > ! :au BufReadPost * if b:current_syntax == "csh" ! :au BufReadPost * do-some-things ! :au BufReadPost * endif ! ! ! 2HTML *2html.vim* *convert-to-HTML* ! ! This is not a syntax file itself, but a script that converts the current window into HTML. Vim opens a new window in which it builds the HTML file. After you save the resulting file, you can view it with any browser. The --- 369,377 ---- syntax. ============================================================================== ! 4. Conversion to HTML *2html.vim* *convert-to-HTML* ! 2html is not a syntax file itself, but a script that converts the current window into HTML. Vim opens a new window in which it builds the HTML file. After you save the resulting file, you can view it with any browser. The *************** *** 671,682 **** :let g:html_no_pre = 1 < *g:html_expand_tabs* ! Default: 1 if 'tabstop' is 8, 'expandtab' is 0, and no fold column or line ! numbers occur in the generated HTML; ! 0 otherwise. ! When 0, characters in the buffer text are replaced with an appropriate number of space characters, or   references if |g:html_no_pre| is 1. ! When 1, if |g:html_no_pre| is 0 or unset, characters in the buffer text are included as-is in the generated HTML. This is useful for when you want to allow copy and paste from a browser without losing the actual whitespace in the source document. Note that this can easily break text alignment and --- 661,672 ---- :let g:html_no_pre = 1 < *g:html_expand_tabs* ! Default: 0 if 'tabstop' is 8, 'expandtab' is 0, 'vartabstop' is not in use, ! and no fold column or line numbers occur in the generated HTML; ! 1 otherwise. ! When 1, characters in the buffer text are replaced with an appropriate number of space characters, or   references if |g:html_no_pre| is 1. ! When 0, if |g:html_no_pre| is 0 or unset, characters in the buffer text are included as-is in the generated HTML. This is useful for when you want to allow copy and paste from a browser without losing the actual whitespace in the source document. Note that this can easily break text alignment and *************** *** 773,778 **** --- 763,780 ---- > :let g:html_use_xhtml = 1 < + ============================================================================== + 5. Syntax file remarks *:syn-file-remarks* + + *b:current_syntax-variable* + Vim stores the name of the syntax that has been loaded in the + "b:current_syntax" variable. You can use this if you want to load other + settings, depending on which syntax is active. Example: > + :au BufReadPost * if b:current_syntax == "csh" + :au BufReadPost * do-some-things + :au BufReadPost * endif + + ABEL *abel.vim* *ft-abel-syntax* *************** *** 939,944 **** --- 941,949 ---- To disable them use ":unlet". Example: > :unlet c_comment_strings + An alternative is to switch to the C++ highlighting: > + :set filetype=cpp + Variable Highlight ~ *c_gnu* GNU gcc specific items *c_comment_strings* strings and numbers inside a comment *************** *** 1265,1271 **** doxygen_end_punctuation '[.]' Set to regexp match for the ending punctuation of brief ! There are also some hilight groups worth mentioning as they can be useful in configuration. Highlight Effect ~ --- 1270,1276 ---- doxygen_end_punctuation '[.]' Set to regexp match for the ending punctuation of brief ! There are also some highlight groups worth mentioning as they can be useful in configuration. Highlight Effect ~ *************** *** 1957,1963 **** the parentheses and backquoted parentheses. Because of the quantity of colorization levels, unlike non-rainbow highlighting, the rainbow mode specifies its highlighting using ctermfg and guifg, thereby bypassing the ! usual colorscheme control using standard highlighting groups. The actual highlighting used depends on the dark/bright setting (see |'bg'|). --- 1962,1968 ---- the parentheses and backquoted parentheses. Because of the quantity of colorization levels, unlike non-rainbow highlighting, the rainbow mode specifies its highlighting using ctermfg and guifg, thereby bypassing the ! usual color scheme control using standard highlighting groups. The actual highlighting used depends on the dark/bright setting (see |'bg'|). *************** *** 1977,1983 **** LPC *lpc.vim* *ft-lpc-syntax* ! LPC stands for a simple, memory-efficient language: Lars Pensj| C. The file name of LPC is usually *.c. Recognizing these files as LPC would bother users writing only C programs. If you want to use LPC syntax in Vim, you should set a variable in your .vimrc file: > --- 1982,1988 ---- LPC *lpc.vim* *ft-lpc-syntax* ! LPC stands for a simple, memory-efficient language: Lars Pensjö C. The file name of LPC is usually *.c. Recognizing these files as LPC would bother users writing only C programs. If you want to use LPC syntax in Vim, you should set a variable in your .vimrc file: > *************** *** 2641,2646 **** --- 2646,2693 ---- commands than are actually available to you by the game. + R *r.vim* *ft-r-syntax* + + The parsing of R code for syntax highlight starts 40 lines backwards, but you + can set a different value in your |vimrc|. Example: > + let r_syntax_minlines = 60 + + You can also turn off syntax highlighting of ROxygen: > + let r_syntax_hl_roxygen = 0 + + enable folding of code delimited by parentheses, square brackets and curly + braces: > + let r_syntax_folding = 1 + + and highlight as functions all keywords followed by an opening parenthesis: > + let r_syntax_fun_pattern = 1 + + + R MARKDOWN *rmd.vim* *ft-rmd-syntax* + + To disable syntax highlight of YAML header, add to your |vimrc|: > + let rmd_syn_hl_yaml = 0 + + To disable syntax highlighting of citation keys: > + let rmd_syn_hl_citations = 0 + + To highlight R code in knitr chunk headers: > + let rmd_syn_hl_chunk = 1 + + By default, chunks of R code will be highlighted following the rules of R + language. If you want proper syntax highlighting of chunks of other languages, + you should add them to either `markdown_fenced_languages` or + `rmd_fenced_languages`. For example to properly highlight both R and Python, + you may add this to your |vimrc|: > + let rmd_fenced_languages = ['r', 'python'] + + + R RESTRUCTURED TEXT *rrst.vim* *ft-rrst-syntax* + + To highlight R code in knitr chunk headers, add to your |vimrc|: > + let rrst_syn_hl_chunk = 1 + + READLINE *readline.vim* *ft-readline-syntax* The readline library is primarily used by the BASH shell, which adds quite a *************** *** 2655,2663 **** RESTRUCTURED TEXT *rst.vim* *ft-rst-syntax* ! You may set what syntax definitions should be used for code blocks via > let rst_syntax_code_list = ['vim', 'lisp', ...] ! < REXX *rexx.vim* *ft-rexx-syntax* --- 2702,2730 ---- RESTRUCTURED TEXT *rst.vim* *ft-rst-syntax* ! Syntax highlighting is enabled for code blocks within the document for a ! select number of file types. See $VIMRUNTIME/syntax/rst.vim for the default ! syntax list. ! ! To set a user-defined list of code block syntax highlighting: > let rst_syntax_code_list = ['vim', 'lisp', ...] ! ! To assign multiple code block types to a single syntax, define ! `rst_syntax_code_list` as a mapping: > ! let rst_syntax_code_list = { ! \ 'cpp' = ['cpp', 'c++'], ! \ 'bash' = ['bash', 'sh'], ! ... ! } ! ! To use color highlighting for emphasis text: > ! let rst_use_emphasis_colors = 1 ! ! To enable folding of sections: > ! let rst_fold_enabled = 1 ! ! Note that folding can cause performance issues on some platforms. ! REXX *rexx.vim* *ft-rexx-syntax* *************** *** 2876,2892 **** shells such as bash, dash, posix, and the Korn shells. Vim attempts to determine which shell type is in use by specifying that ! various filenames are of specific types: > ksh : .kshrc* *.ksh bash: .bashrc* bashrc bash.bashrc .bash_profile* *.bash < ! If none of these cases pertain, then the first line of the file is examined ! (ex. looking for /bin/sh /bin/ksh /bin/bash). If the first line specifies a ! shelltype, then that shelltype is used. However some files (ex. .profile) are ! known to be shell files but the type is not apparent. Furthermore, on many ! systems sh is symbolically linked to "bash" (Linux, Windows+cygwin) or "ksh" ! (Posix). One may specify a global default by instantiating one of the following variables in your <.vimrc>: --- 2943,2959 ---- shells such as bash, dash, posix, and the Korn shells. Vim attempts to determine which shell type is in use by specifying that ! various filenames are of specific types, e.g.: > ksh : .kshrc* *.ksh bash: .bashrc* bashrc bash.bashrc .bash_profile* *.bash < ! See $VIMRUNTIME/filetype.vim for the full list of patterns. If none of these ! cases pertain, then the first line of the file is examined (ex. looking for ! /bin/sh /bin/ksh /bin/bash). If the first line specifies a shelltype, then ! that shelltype is used. However some files (ex. .profile) are known to be ! shell files but the type is not apparent. Furthermore, on many systems sh is ! symbolically linked to "bash" (Linux, Windows+cygwin) or "ksh" (Posix). One may specify a global default by instantiating one of the following variables in your <.vimrc>: *************** *** 3169,3174 **** --- 3236,3247 ---- 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? ~ *************** *** 3433,3439 **** :let g:zsh_fold_enable = 1 ============================================================================== ! 5. Defining a syntax *:syn-define* *E410* Vim understands three types of syntax items: --- 3506,3512 ---- :let g:zsh_fold_enable = 1 ============================================================================== ! 6. Defining a syntax *:syn-define* *E410* Vim understands three types of syntax items: *************** *** 3792,3798 **** The maximum number of syntax groups is 19999. ============================================================================== ! 6. :syntax arguments *:syn-arguments* The :syntax commands that define syntax items take a number of arguments. The common ones are explained here. The arguments may be given in any order --- 3865,3871 ---- The maximum number of syntax groups is 19999. ============================================================================== ! 7. :syntax arguments *:syn-arguments* The :syntax commands that define syntax items take a number of arguments. The common ones are explained here. The arguments may be given in any order *************** *** 4113,4119 **** Show either "syntax conceal on" or "syntax conceal off" (translated). ============================================================================== ! 7. Syntax patterns *:syn-pattern* *E401* *E402* In the syntax commands, a pattern must be surrounded by two identical characters. This is like it works for the ":s" command. The most common to --- 4186,4192 ---- Show either "syntax conceal on" or "syntax conceal off" (translated). ============================================================================== ! 8. Syntax patterns *:syn-pattern* *E401* *E402* In the syntax commands, a pattern must be surrounded by two identical characters. This is like it works for the ":s" command. The most common to *************** *** 4291,4297 **** cannot be referred to. ============================================================================== ! 8. Syntax clusters *:syn-cluster* *E400* :sy[ntax] cluster {cluster-name} [contains={group-name}..] [add={group-name}..] --- 4364,4370 ---- cannot be referred to. ============================================================================== ! 9. Syntax clusters *:syn-cluster* *E400* :sy[ntax] cluster {cluster-name} [contains={group-name}..] [add={group-name}..] *************** *** 4337,4343 **** The maximum number of clusters is 9767. ============================================================================== ! 9. Including syntax files *:syn-include* *E397* It is often useful for one language's syntax file to include a syntax file for a related language. Depending on the exact relationship, this can be done in --- 4410,4416 ---- The maximum number of clusters is 9767. ============================================================================== ! 10. Including syntax files *:syn-include* *E397* It is often useful for one language's syntax file to include a syntax file for a related language. Depending on the exact relationship, this can be done in *************** *** 4378,4384 **** The maximum number of includes is 999. ============================================================================== ! 10. Synchronizing *:syn-sync* *E403* *E404* Vim wants to be able to start redrawing in any position in the document. To make this possible it needs to know the syntax state at the position where --- 4451,4457 ---- The maximum number of includes is 999. ============================================================================== ! 11. Synchronizing *:syn-sync* *E403* *E404* Vim wants to be able to start redrawing in any position in the document. To make this possible it needs to know the syntax state at the position where *************** *** 4570,4576 **** :syntax sync clear {sync-group-name} .. ============================================================================== ! 11. Listing syntax items *:syntax* *:sy* *:syn* *:syn-list* This command lists all the syntax items: > --- 4643,4649 ---- :syntax sync clear {sync-group-name} .. ============================================================================== ! 12. Listing syntax items *:syntax* *:sy* *:syn* *:syn-list* This command lists all the syntax items: > *************** *** 4590,4596 **** is mostly used, because it looks better. ============================================================================== ! 12. Highlight command *:highlight* *:hi* *E28* *E411* *E415* There are three types of highlight groups: - The ones used for specific languages. For these the name starts with the --- 4663,4669 ---- is mostly used, because it looks better. ============================================================================== ! 13. Highlight command *:highlight* *:hi* *E28* *E411* *E415* There are three types of highlight groups: - The ones used for specific languages. For these the name starts with the *************** *** 4621,4629 **** Doesn't work recursively, thus you can't use ":colorscheme" in a color scheme script. ! To customize a colorscheme use another name, e.g. "~/.vim/colors/mine.vim", and use `:runtime` to load ! the original colorscheme: > runtime colors/evening.vim hi Statement ctermfg=Blue guifg=Blue --- 4694,4702 ---- Doesn't work recursively, thus you can't use ":colorscheme" in a color scheme script. ! To customize a color scheme use another name, e.g. "~/.vim/colors/mine.vim", and use `:runtime` to load ! the original color scheme: > runtime colors/evening.vim hi Statement ctermfg=Blue guifg=Blue *************** *** 4631,4637 **** |ColorSchemePre| autocommand event is triggered. After the color scheme has been loaded the |ColorScheme| autocommand event is triggered. ! For info about writing a colorscheme file: > :edit $VIMRUNTIME/colors/README.txt :hi[ghlight] List all the current highlight groups that have --- 4704,4710 ---- |ColorSchemePre| autocommand event is triggered. After the color scheme has been loaded the |ColorScheme| autocommand event is triggered. ! For info about writing a color scheme file: > :edit $VIMRUNTIME/colors/README.txt :hi[ghlight] List all the current highlight groups that have *************** *** 4828,4834 **** explicitly. This causes the highlight groups that depend on 'background' to change! This means you should set the colors for Normal first, before setting other colors. ! When a colorscheme is being used, changing 'background' causes it to be reloaded, which may reset all colors (including Normal). First delete the "g:colors_name" variable when you don't want this. --- 4901,4907 ---- explicitly. This causes the highlight groups that depend on 'background' to change! This means you should set the colors for Normal first, before setting other colors. ! When a color scheme is being used, changing 'background' causes it to be reloaded, which may reset all colors (including Normal). First delete the "g:colors_name" variable when you don't want this. *************** *** 5083,5089 **** set. ============================================================================== ! 13. Linking groups *:hi-link* *:highlight-link* *E412* *E413* When you want to use the same highlighting for several syntax groups, you can do this more easily by linking the groups into one common highlight --- 5156,5162 ---- set. ============================================================================== ! 14. Linking groups *:hi-link* *:highlight-link* *E412* *E413* When you want to use the same highlighting for several syntax groups, you can do this more easily by linking the groups into one common highlight *************** *** 5121,5127 **** overruled when the syntax file is loaded. ============================================================================== ! 14. Cleaning up *:syn-clear* *E391* If you want to clear the syntax stuff for the current buffer, you can use this command: > --- 5194,5200 ---- overruled when the syntax file is loaded. ============================================================================== ! 15. Cleaning up *:syn-clear* *E391* If you want to clear the syntax stuff for the current buffer, you can use this command: > *************** *** 5212,5218 **** them. ============================================================================== ! 15. Highlighting tags *tag-highlight* If you want to highlight all the tags in your file, you can use the following mappings. --- 5285,5291 ---- them. ============================================================================== ! 16. Highlighting tags *tag-highlight* If you want to highlight all the tags in your file, you can use the following mappings. *************** *** 5247,5253 **** autocmd BufRead,BufNewFile *.[ch] endif ============================================================================== ! 16. Window-local syntax *:ownsyntax* Normally all windows on a buffer share the same syntax settings. It is possible, however, to set a particular window on a file to have its own --- 5320,5326 ---- autocmd BufRead,BufNewFile *.[ch] endif ============================================================================== ! 17. Window-local syntax *:ownsyntax* Normally all windows on a buffer share the same syntax settings. It is possible, however, to set a particular window on a file to have its own *************** *** 5277,5283 **** When splitting the window, the new window will use the original syntax. ============================================================================== ! 17. Color xterms *xterm-color* *color-xterm* Most color xterms have only eight colors. If you don't get colors with the default setup, it should work with these lines in your .vimrc: > --- 5350,5356 ---- When splitting the window, the new window will use the original syntax. ============================================================================== ! 18. Color xterms *xterm-color* *color-xterm* Most color xterms have only eight colors. If you don't get colors with the default setup, it should work with these lines in your .vimrc: > *************** *** 5421,5427 **** ============================================================================== ! 18. When syntax is slow *:syntime* This is aimed at authors of a syntax file. --- 5494,5500 ---- ============================================================================== ! 19. When syntax is slow *:syntime* This is aimed at authors of a syntax file. *************** *** 5478,5481 **** "<\@1<=span" Matches the same, but only tries one byte before "span". ! vim:tw=78:sw=4:ts=8:ft=help:norl: --- 5551,5554 ---- "<\@1<=span" Matches the same, but only tries one byte before "span". ! vim:tw=78:sw=4:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/tabpage.txt 2018-05-17 13:42:03.000000000 +0200 --- runtime/doc/tabpage.txt 2019-05-05 17:50:51.295546075 +0200 *************** *** 1,4 **** ! *tabpage.txt* For Vim version 8.1. Last change: 2018 Mar 29 VIM REFERENCE MANUAL by Bram Moolenaar --- 1,4 ---- ! *tabpage.txt* For Vim version 8.1. Last change: 2019 May 05 VIM REFERENCE MANUAL by Bram Moolenaar *************** *** 16,22 **** 4. Setting 'tabline' |setting-tabline| 5. Setting 'guitablabel' |setting-guitablabel| - {Vi does not have any of these commands} {not able to use multiple tab pages when the |+windows| feature was disabled at compile time} --- 16,21 ---- *************** *** 213,219 **** :tabN[ext] {count} {count} {count}gT Go {count} tab pages back. Wraps around from the first one ! to the last one. :tabr[ewind] *:tabfir* *:tabfirst* *:tabr* *:tabrewind* :tabfir[st] Go to the first tab page. --- 212,219 ---- :tabN[ext] {count} {count} {count}gT Go {count} tab pages back. Wraps around from the first one ! to the last one. Note that the use of {count} is different ! from |:tabnext|, where it is used as the tab page number. :tabr[ewind] *:tabfir* *:tabfirst* *:tabr* *:tabrewind* :tabfir[st] Go to the first tab page. *************** *** 240,247 **** :tabm[ove] [N] *:tabm* *:tabmove* :[N]tabm[ove] Move the current tab page to after tab page N. Use zero to ! make the current tab page the first one. Without N the tab ! page is made the last one. > :.tabmove " do nothing :-tabmove " move the tab page to the left :+tabmove " move the tab page to the right --- 240,249 ---- :tabm[ove] [N] *:tabm* *:tabmove* :[N]tabm[ove] Move the current tab page to after tab page N. Use zero to ! make the current tab page the first one. N is counted before ! the move, thus if the second tab is the current one, ! `:tabmove 1` and `:tabmove 2` have no effect. ! Without N the tab page is made the last one. > :.tabmove " do nothing :-tabmove " move the tab page to the left :+tabmove " move the tab page to the right *************** *** 286,292 **** current tab page. {cmd} can contain '|' to concatenate several commands. {cmd} must not open or close tab pages or reorder them. - {not in Vi} Also see |:windo|, |:argdo|, |:bufdo|, |:cdo|, |:ldo|, |:cfdo| and |:lfdo| --- 288,293 ---- *************** *** 471,474 **** tab page local variable. |t:var| ! vim:tw=78:ts=8:ft=help:norl: --- 472,475 ---- tab page local variable. |t:var| ! vim:tw=78:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/tagsrch.txt 2019-04-28 18:04:56.054492198 +0200 --- runtime/doc/tagsrch.txt 2019-05-05 17:53:15.690761399 +0200 *************** *** 1,4 **** ! *tagsrch.txt* For Vim version 8.1. Last change: 2018 May 04 VIM REFERENCE MANUAL by Bram Moolenaar --- 1,4 ---- ! *tagsrch.txt* For Vim version 8.1. Last change: 2019 May 05 VIM REFERENCE MANUAL by Bram Moolenaar *************** *** 60,66 **** *v_CTRL-]* {Visual}CTRL-] Same as ":tag {name}", where {name} is the text that ! is highlighted. {not in Vi} *telnet-CTRL-]* CTRL-] is the default telnet escape key. When you type CTRL-] to jump to a --- 60,66 ---- *v_CTRL-]* {Visual}CTRL-] Same as ":tag {name}", where {name} is the text that ! is highlighted. *telnet-CTRL-]* CTRL-] is the default telnet escape key. When you type CTRL-] to jump to a *************** *** 112,129 **** g *g* ** *CTRL-T* CTRL-T Jump to [count] older entry in the tag stack ! (default 1). {not in Vi} *:po* *:pop* *E555* *E556* :[count]po[p][!] Jump to [count] older entry in tag stack (default 1). ! See |tag-!| for [!]. {not in Vi} :[count]ta[g][!] Jump to [count] newer entry in tag stack (default 1). ! See |tag-!| for [!]. {not in Vi} *:tags* :tags Show the contents of the tag stack. The active ! entry is marked with a '>'. {not in Vi} The output of ":tags" looks like this: --- 112,129 ---- g *g* ** *CTRL-T* CTRL-T Jump to [count] older entry in the tag stack ! (default 1). *:po* *:pop* *E555* *E556* :[count]po[p][!] Jump to [count] older entry in tag stack (default 1). ! See |tag-!| for [!]. :[count]ta[g][!] Jump to [count] newer entry in tag stack (default 1). ! See |tag-!| for [!]. *:tags* :tags Show the contents of the tag stack. The active ! entry is marked with a '>'. The output of ":tags" looks like this: *************** *** 204,210 **** the current position in the list (if there is one). [name] can be a regexp pattern, see |tag-regexp|. See |tag-priority| for the priorities used in the ! listing. {not in Vi} Example output: > --- 204,210 ---- the current position in the list (if there is one). [name] can be a regexp pattern, see |tag-regexp|. See |tag-priority| for the priorities used in the ! listing. Example output: > *************** *** 231,284 **** *:sts* *:stselect* :sts[elect][!] [name] Does ":tselect[!] [name]" and splits the window for ! the selected tag. {not in Vi} *g]* g] Like CTRL-], but use ":tselect" instead of ":tag". - {not in Vi} *v_g]* {Visual}g] Same as "g]", but use the highlighted text as the ! identifier. {not in Vi} *:tj* *:tjump* :tj[ump][!] [name] Like ":tselect", but jump to the tag directly when ! there is only one match. {not in Vi} *:stj* *:stjump* :stj[ump][!] [name] Does ":tjump[!] [name]" and splits the window for the ! selected tag. {not in Vi} *g_CTRL-]* g CTRL-] Like CTRL-], but use ":tjump" instead of ":tag". - {not in Vi} *v_g_CTRL-]* {Visual}g CTRL-] Same as "g CTRL-]", but use the highlighted text as ! the identifier. {not in Vi} *:tn* *:tnext* :[count]tn[ext][!] Jump to [count] next matching tag (default 1). See ! |tag-!| for [!]. {not in Vi} *:tp* *:tprevious* :[count]tp[revious][!] Jump to [count] previous matching tag (default 1). ! See |tag-!| for [!]. {not in Vi} *:tN* *:tNext* ! :[count]tN[ext][!] Same as ":tprevious". {not in Vi} *:tr* *:trewind* :[count]tr[ewind][!] Jump to first matching tag. If [count] is given, jump ! to [count]th matching tag. See |tag-!| for [!]. {not ! in Vi} *:tf* *:tfirst* ! :[count]tf[irst][!] Same as ":trewind". {not in Vi} *:tl* *:tlast* ! :tl[ast][!] Jump to last matching tag. See |tag-!| for [!]. {not ! in Vi} *:lt* *:ltag* :lt[ag][!] [name] Jump to tag [name] and add the matching tags to a new --- 231,280 ---- *:sts* *:stselect* :sts[elect][!] [name] Does ":tselect[!] [name]" and splits the window for ! the selected tag. *g]* g] Like CTRL-], but use ":tselect" instead of ":tag". *v_g]* {Visual}g] Same as "g]", but use the highlighted text as the ! identifier. *:tj* *:tjump* :tj[ump][!] [name] Like ":tselect", but jump to the tag directly when ! there is only one match. *:stj* *:stjump* :stj[ump][!] [name] Does ":tjump[!] [name]" and splits the window for the ! selected tag. *g_CTRL-]* g CTRL-] Like CTRL-], but use ":tjump" instead of ":tag". *v_g_CTRL-]* {Visual}g CTRL-] Same as "g CTRL-]", but use the highlighted text as ! the identifier. *:tn* *:tnext* :[count]tn[ext][!] Jump to [count] next matching tag (default 1). See ! |tag-!| for [!]. *:tp* *:tprevious* :[count]tp[revious][!] Jump to [count] previous matching tag (default 1). ! See |tag-!| for [!]. *:tN* *:tNext* ! :[count]tN[ext][!] Same as ":tprevious". *:tr* *:trewind* :[count]tr[ewind][!] Jump to first matching tag. If [count] is given, jump ! to [count]th matching tag. See |tag-!| for [!]. *:tf* *:tfirst* ! :[count]tf[irst][!] Same as ":trewind". *:tl* *:tlast* ! :tl[ast][!] Jump to last matching tag. See |tag-!| for [!]. *:lt* *:ltag* :lt[ag][!] [name] Jump to tag [name] and add the matching tags to a new *************** *** 290,296 **** characters (very nomagic). The location list showing the matching tags is independent of the tag stack. See |tag-!| for [!]. - {not in Vi} When there is no other message, Vim shows which matching tag has been jumped to, and the number of matching tags: > --- 286,291 ---- *************** *** 317,350 **** *:pts* *:ptselect* :pts[elect][!] [name] Does ":tselect[!] [name]" and shows the new tag in a "Preview" window. See |:ptag| for more info. - {not in Vi} *:ptj* *:ptjump* :ptj[ump][!] [name] Does ":tjump[!] [name]" and shows the new tag in a "Preview" window. See |:ptag| for more info. - {not in Vi} *:ptn* *:ptnext* :[count]ptn[ext][!] ":tnext" in the preview window. See |:ptag|. - {not in Vi} *:ptp* *:ptprevious* :[count]ptp[revious][!] ":tprevious" in the preview window. See |:ptag|. - {not in Vi} *:ptN* *:ptNext* ! :[count]ptN[ext][!] Same as ":ptprevious". {not in Vi} *:ptr* *:ptrewind* :[count]ptr[ewind][!] ":trewind" in the preview window. See |:ptag|. - {not in Vi} *:ptf* *:ptfirst* ! :[count]ptf[irst][!] Same as ":ptrewind". {not in Vi} *:ptl* *:ptlast* :ptl[ast][!] ":tlast" in the preview window. See |:ptag|. - {not in Vi} ============================================================================== 4. Tags details *tag-details* --- 312,339 ---- *:pts* *:ptselect* :pts[elect][!] [name] Does ":tselect[!] [name]" and shows the new tag in a "Preview" window. See |:ptag| for more info. *:ptj* *:ptjump* :ptj[ump][!] [name] Does ":tjump[!] [name]" and shows the new tag in a "Preview" window. See |:ptag| for more info. *:ptn* *:ptnext* :[count]ptn[ext][!] ":tnext" in the preview window. See |:ptag|. *:ptp* *:ptprevious* :[count]ptp[revious][!] ":tprevious" in the preview window. See |:ptag|. *:ptN* *:ptNext* ! :[count]ptN[ext][!] Same as ":ptprevious". *:ptr* *:ptrewind* :[count]ptr[ewind][!] ":trewind" in the preview window. See |:ptag|. *:ptf* *:ptfirst* ! :[count]ptf[irst][!] Same as ":ptrewind". *:ptl* *:ptlast* :ptl[ast][!] ":tlast" in the preview window. See |:ptag|. ============================================================================== 4. Tags details *tag-details* *************** *** 630,639 **** "?"), some special handling is done: - Searching starts on line 1 of the file. The direction of the search is forward for "/", backward for "?". ! Note that 'wrapscan' does not matter, the whole file is always searched. (Vi ! does use 'wrapscan', which caused tags sometimes not be found.) {Vi starts ! searching in line 2 of another file. It does not find a tag in line 1 of ! another file when 'wrapscan' is not set} - If the search fails, another try is done ignoring case. If that fails too, a search is done for: "^tagname[ \t]*(" --- 619,625 ---- "?"), some special handling is done: - Searching starts on line 1 of the file. The direction of the search is forward for "/", backward for "?". ! Note that 'wrapscan' does not matter, the whole file is always searched. - If the search fails, another try is done ignoring case. If that fails too, a search is done for: "^tagname[ \t]*(" *************** *** 644,650 **** "^[#a-zA-Z_].*\ + + if &term =~ "screen" + let &t_BE = "\e[?2004h" + let &t_BD = "\e[?2004l" + exec "set t_PS=\e[200~" + exec "set t_PE=\e[201~" + endif + < *cs7-problem* Note: If the terminal settings are changed after running Vim, you might have an illegal combination of settings. This has been reported on Solaris 2.5 *************** *** 324,334 **** t_EI end insert or replace mode (block cursor shape) *t_EI* *'t_EI'* |termcap-cursor-shape| t_RV request terminal version string (for xterm) *t_RV* *'t_RV'* ! |xterm-8bit| |v:termresponse| |'ttymouse'| |xterm-codes| t_u7 request cursor position (for xterm) *t_u7* *'t_u7'* see |'ambiwidth'| t_RF request terminal foreground color *t_RF* *'t_RF'* t_RB request terminal background color *t_RB* *'t_RB'* t_8f set foreground color (R, G, B) *t_8f* *'t_8f'* |xterm-true-color| t_8b set background color (R, G, B) *t_8b* *'t_8b'* --- 334,348 ---- t_EI end insert or replace mode (block cursor shape) *t_EI* *'t_EI'* |termcap-cursor-shape| t_RV request terminal version string (for xterm) *t_RV* *'t_RV'* ! The response is stored in |v:termresponse| ! |xterm-8bit| |'ttymouse'| |xterm-codes| t_u7 request cursor position (for xterm) *t_u7* *'t_u7'* see |'ambiwidth'| + The response is stored in |v:termu7resp| t_RF request terminal foreground color *t_RF* *'t_RF'* + The response is stored in |v:termrfgresp| t_RB request terminal background color *t_RB* *'t_RB'* + The response is stored in |v:termrbgresp| t_8f set foreground color (R, G, B) *t_8f* *'t_8f'* |xterm-true-color| t_8b set background color (R, G, B) *t_8b* *'t_8b'* *************** *** 341,347 **** --- 355,363 ---- t_EC set cursor color end *t_EC* *'t_EC'* t_SH set cursor shape *t_SH* *'t_SH'* t_RC request terminal cursor blinking *t_RC* *'t_RC'* + The response is stored in |v:termblinkresp| t_RS request terminal cursor style *t_RS* *'t_RS'* + The response is stored in |v:termstyleresp| t_ST save window title to stack *t_ST* *'t_ST'* t_RT restore window title from stack *t_RT* *'t_RT'* t_Si save icon text to stack *t_Si* *'t_Si'* *************** *** 523,529 **** Note about colors: The 't_Co' option tells Vim the number of colors available. When it is non-zero, the 't_AB' and 't_AF' options are used to set the color. If one of these is not available, 't_Sb' and 't_Sf' are used. 't_me' is used ! to reset to the default colors. *termcap-cursor-shape* *termcap-cursor-color* When Vim enters Insert mode the 't_SI' escape sequence is sent. When Vim --- 539,545 ---- Note about colors: The 't_Co' option tells Vim the number of colors available. When it is non-zero, the 't_AB' and 't_AF' options are used to set the color. If one of these is not available, 't_Sb' and 't_Sf' are used. 't_me' is used ! to reset to the default colors. Also see 'termguicolors'. *termcap-cursor-shape* *termcap-cursor-color* When Vim enters Insert mode the 't_SI' escape sequence is sent. When Vim *************** *** 971,974 **** :noremap! :noremap! < ! vim:tw=78:ts=8:ft=help:norl: --- 987,990 ---- :noremap! :noremap! < ! vim:tw=78:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/textprop.txt 2019-05-05 15:47:37.821923550 +0200 --- runtime/doc/textprop.txt 2019-05-05 17:34:42.564911374 +0200 *************** *** 1,4 **** ! *textprop.txt* For Vim version 8.1. Last change: 2018 Dec 30 VIM REFERENCE MANUAL by Bram Moolenaar --- 1,4 ---- ! *textprop.txt* For Vim version 8.1. Last change: 2019 May 05 VIM REFERENCE MANUAL by Bram Moolenaar *************** *** 20,26 **** 3. When text changes |text-prop-changes| - {Vi does not have text properties} {not able to use text properties when the |+textprop| feature was disabled at compile time} --- 20,25 ---- *** ../vim-8.1.1279/runtime/doc/tips.txt 2018-05-17 13:42:03.000000000 +0200 --- runtime/doc/tips.txt 2018-07-29 14:23:36.371157528 +0200 *************** *** 408,421 **** ============================================================================== Executing shell commands in a window *shell-window* ! There have been questions for the possibility to execute a shell in a window ! inside Vim. The answer: you can't! Including this would add a lot of code to ! Vim, which is a good reason not to do this. After all, Vim is an editor, it ! is not supposed to do non-editing tasks. However, to get something like this, ! you might try splitting your terminal screen or display window with the "splitvt" program. You can probably find it on some ftp server. The person that knows more about this is Sam Lantinga . ! An alternative is the "window" command, found on BSD Unix systems, which supports multiple overlapped windows. Or the "screen" program, found at www.uni-erlangen.de, which supports a stack of windows. --- 408,420 ---- ============================================================================== Executing shell commands in a window *shell-window* ! See |terminal|. ! ! Another solution is splitting your terminal screen or display window with the "splitvt" program. You can probably find it on some ftp server. The person that knows more about this is Sam Lantinga . ! ! Another alternative is the "window" command, found on BSD Unix systems, which supports multiple overlapped windows. Or the "screen" program, found at www.uni-erlangen.de, which supports a stack of windows. *************** *** 531,534 **** autocmd InsertEnter * match none < ! vim:tw=78:ts=8:ft=help:norl: --- 530,533 ---- autocmd InsertEnter * match none < ! vim:tw=78:ts=8:noet:ft=help:norl: *** ../vim-8.1.1279/runtime/doc/todo.txt 2018-06-03 14:42:17.836505122 +0200 --- runtime/doc/todo.txt 2019-05-05 17:22:02.360947099 +0200 *************** *** 1,4 **** ! *todo.txt* For Vim version 8.1. Last change: 2018 May 17 VIM REFERENCE MANUAL by Bram Moolenaar --- 1,4 ---- ! *todo.txt* For Vim version 8.1. Last change: 2019 May 05 VIM REFERENCE MANUAL by Bram Moolenaar *************** *** 34,66 **** The #1234 numbers refer to an issue or pull request on github. To see it in a browser use: https://github.com/vim/vim/issues/1234 ! *known-bugs* -------------------- Known bugs and current work ----------------------- Prompt buffer: - Add a command line history. - delay next prompt until plugin gives OK? ! end? Terminal emulator window: - With a vertical split only one window is updated. (Linwei, 2018 Jun 2, #2977) ! - When typing : at the more prompt, instead of entering a new Vim command, the ! : is inserted in the terminal window. Should skip terminal_loop here. ! () ! - How to access selection in Terminal running a shell? (damnskippy, 2018 May ! 27, #29620 When terminal doesn't use the mouse, use modeless selection. ! - Win32: Termdebug doesn't work, because gdb does not support mi2 on a tty. ! This plugin: https://github.com/cpiger/NeoDebug runs gdb as a job, ! redirecting input and output. ! Open new console for for program with: "set new-console on" - Win32: Redirecting input does not work, half of Test_terminal_redir_file() is disabled. - Win32: Redirecting output works but includes escape sequences. - Win32: Make terminal used for :!cmd in the GUI work better. Allow for redirection. - - Terminal API: Add more functionality? (Ozaki Kiichi 2018 May 13, #2907) - When the job only outputs lines, we could handle resizing the terminal better: store lines separated by line breaks, instead of screen lines, then when the window is resized redraw those lines. --- 34,100 ---- The #1234 numbers refer to an issue or pull request on github. To see it in a browser use: https://github.com/vim/vim/issues/1234 ! (replace 1234 with the issue/pull number) *known-bugs* -------------------- Known bugs and current work ----------------------- + 'incsearch' with :s: (#3321) + - Get E20 when using command history to get "'<,'>s/a/b" and no Visual area + was set. (#3837) + - :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) + - :s@pat/tern@ doesn't include "/" in the pattern. (Takahiro Yoshihara, #3637) + pass delim to do_search() ? + - Also support range: :/foo/,/bar/delete + - Also support for user command, e.g. Cfilter + - :%s/foo should take the first match below the cursor line, unless there + isn't one? + Then :%s?foo should take the first match above the cursor line. + Prompt buffer: - Add a command line history. - delay next prompt until plugin gives OK? ! - add prompt_addtext({buf}, {expr}) none add text to a prompt buffer ! ! Terminal debugger: ! - Make prompt-buffer variant work better. ! - Add option to not open the program window. It's not used when attaching to ! an already running program. (M. Kelly) ! - When only gdb window exists, on "quit" edit another buffer. ! - Use a sign group ! - Termdebug does not work when Vim was build with mzscheme: gdb hangs just ! after "run". Everything else works, including communication channel. Not ! initializing mzscheme avoid the problem, thus it's not some #ifdef. ! - Add support for lldb? #3565 ! - Could we do something similar for debugging Vim scripts? At least see the ! script while stepping through it. Simple version would use an extra window. ! More complete solution would actually run Vim in a Terminal and control it ! with another Vim instance. Terminal emulator window: + - When the job in the terminal doesn't use mouse events, let the scroll wheel + scroll the scrollback, like a terminal does at the shell prompt. #2490 + And use modeless selection. #2962 + - When Vim runs in the terminal and changes the title, the statusline needs to + be redrawn. + - GUI: When using ":set go+=!" a system() call causes the hit-enter prompt. + (#3327) + - Terminal API: Add more functionality? (Ozaki Kiichi 2018 May 13, #2907) + - GUI: hang until key typed. (#3530) + - Allow for specifying the directory, with ++cwd={dir}. - With a vertical split only one window is updated. (Linwei, 2018 Jun 2, #2977) ! - Add a way to make ":term cmd" run "cmd" in a shell, instead of executing it ! directly. Perhaps ":term ++shell cmd". (#3340) ! - When pasting should call vterm_keyboard_start_paste(), e.g. when using ! K_MIDDLEMOUSE, calling insert_reg(). ! - Users expect parsing the :term argument like a shell does, also support ! single quotes. E.g. with: :term grep 'alice says "hello"' (#1999) - Win32: Redirecting input does not work, half of Test_terminal_redir_file() is disabled. - Win32: Redirecting output works but includes escape sequences. - Win32: Make terminal used for :!cmd in the GUI work better. Allow for redirection. - When the job only outputs lines, we could handle resizing the terminal better: store lines separated by line breaks, instead of screen lines, then when the window is resized redraw those lines. *************** *** 69,79 **** http://bazaar.launchpad.net/~leonerd/pangoterm/trunk/view/head:/main.c#L134 - When 'encoding' is not utf-8, or the job is using another encoding, setup conversions. - - Termdebug does not work when Vim was build with mzscheme: gdb hangs just - after "run". Everything else works, including communication channel. Not - initializing mzscheme avoid the problem, thus it's not some #ifdef. ! Patch to fix that ++bad no longer works. (Christian Brabandt, on #2947) Does not build with MinGW out of the box: - _stat64 is not defined, need to use "struct stat" in vim.h --- 103,121 ---- http://bazaar.launchpad.net/~leonerd/pangoterm/trunk/view/head:/main.c#L134 - When 'encoding' is not utf-8, or the job is using another encoding, setup conversions. ! Support for popup widows: ! - Use text properties to define highlighting. ! - Proposal on issue #4063 ! ! Notifications for text changes, could be used for LSP. ! - New event, similar to TextChanged, but guaranteed to provide sequential ! information of all text changes. ! Possibly build on undo info (but undo itself is also a change). ! How to deal with ":%s/this/that" ? ! ! Adding "10" to 'spellsuggest' causes spell suggestions to become very slow. ! (#4087) Does not build with MinGW out of the box: - _stat64 is not defined, need to use "struct stat" in vim.h *************** *** 82,121 **** Crash when mixing matchadd and substitute()? (Max Christian Pohle, 2018 May 13, #2910) Can't reproduce? ! On Win32 when not in the console and t_Co >= 256, allow using 'tgc'. ! (Nobuhiro Takasaki, #2833) Also check t_Co. ! Patch to fix arguments of :edit. (Dominique Pelle, 2018 May 28 #2966) ! Ptch to update html syntax. (Jorge Maldonado Ventura, #2974) ! Patch to fix that restoring window doesn't work when 'winheight' is large. ! (Darrell Nash, 2018 May 30, #2971) Doesn't work? Issue #2970 ! Patch to add completion to :unlet for environment vars. (Jason Franklin, 2018 ! May 30) Last update. ! Errors found with random data: ! heap-buffer-overflow in alist_add (#2472) More warnings from static analysis: https://lgtm.com/projects/g/vim/vim/alerts/?mode=list ! Patch to make "is" and "as" work bettter. (Jason Franklin, 2018 May 19) ! Patch to add tests for user and language completion. (Dominique Pelle, 2018 ! Jun 2, #2978) ! Using ":file" in quickfix window during an autocommand doesn't work. ! (Jason Franklin, 2018 May 23) Allow for using it when there is no argument. ! Pull request #2967: Allow white space in sign text. (Ben Jackson) ! Patch for xterm and vt320 builtin termcap. (Kouichi Iwamoto, 2018 May 31, ! #2973) ! Patch to add more testing for :cd command. (Dominique Pelle, 2018 May 30, ! #2972) Script generated by :mksession does not work well if there are windows with modified buffers --- 124,406 ---- Crash when mixing matchadd and substitute()? (Max Christian Pohle, 2018 May 13, #2910) Can't reproduce? ! Errors found with random data: ! heap-buffer-overflow in alist_add (#2472) ! Improve fallback for menu translations, to avoid having to create lots of ! files that source the actual file. E.g. menu_da_de -> menu_da ! Include part of #3242? ! When a terminal exit_cb closes the window, a following typed key is lost, if ! it's in a mapping. (2018 Oct 6, #2302, #3522) ! Completion mixes results from the current buffer with tags and other files. ! Happens when typing CTRL-N while still search for results. E.g., type "b_" in ! terminal.c and then CTRL-N twice. ! Should do current file first and not split it up when more results are found. ! (Also #1890) ! Internal diff doesn't handle binary file like external diff does. (Mike ! Williams, 2018 Oct 30) ! Problem with :tlmenu: Detach item added with all modes? Issue #3563. ! ! The quoting of the [command] argument of :terminal is not clearly documented. ! Give a few examples. (#4288) ! ! Bug: script written with "-W scriptout" contains Key codes, while the script ! read with "-s scriptin" expects escape codes. Probably "scriptout" needs to ! be adjusted. (Daniel Steinberg, 2019 Feb 24, #4041) ! ! Bug: "vipgw" does not put cursor back where it belongs. (Jason Franklin, 2019 ! Mar 5) ! ! When using a timer callback vgetc_busy is reset, allowing for using input(). ! But in a channel callback this does not happen. We need to do something ! similar to check_due_timer(). Also see #3809. ! ! C syntax: {} inside () causes following {} to be highlighted as error. ! (Michalis Giannakidis, 2006 Jun 1) ! ! Support setting the character displayed below the last line? Neovim uses ! "eob:X" in 'fillchars'. ! ! Check: __attribute__((format(printf, on semsg() and siemsg(). Where was this ! added? ! ! Add test for urxvt mouse codes. Also test that mouse coordinates can be ! negative. (see #4326) ! ! 'cmdheight' has a tab-local value, but it cannot be obtained with ! `:echo gettabwinvar(2, 1, '&cmdheight')` returns the value for the _current_ ! tab page. (Ingo Karkat, #4324) ! :call settabwinvar(1, 1, '&cmdheight', 2) also doesn't work well. ! ! Add a chdir() function, which will set the window-local, tab-local or global ! directory, first one that is currently used. Returns the current directory, ! so that this works: ! let save_dir = chdir('somewhere') ! ... ! call chdir(save_dir) ! ! This modeline throws unexpected errors: (#4165) ! vim: syn=nosyntax ! ! ":doau SomeEvent" gives "No matching autocommands". This message doesn't give ! a hint about how to fix it. (#4300) ! ! Make balloon_show() work outside of 'balloonexpr'? Users expect it to work: ! #2948. (related to #1512?) ! On Win32 it stops showing, because showState is already ShS_SHOWING. ! balloon_show() does not work properly in the terminal. (Ben Jackson, 2017 Dec ! 20, #2481) ! Also see #2352, want better control over balloon, perhaps set the position. ! Should also be possible to add highlighting, like in the status line? ! balloonexpr() on MS-Windows GUI doesn't handle accented chars? (nivaemail, ! 2018 Sep 14) ! Another request: #3811. More warnings from static analysis: https://lgtm.com/projects/g/vim/vim/alerts/?mode=list ! Still a E315 error when using terminal. (Masato Nishihata, #3959) ! ! Use dict_iterate_start() / dict_iterate_next() instead of relying on the ! internals of the dict structure. ! ! Running test_gui and test_gui_init with Motif sometimes kills the window ! manager. Problem with Motif? Now test_gui crashes in submenu_change(). ! Athena is OK. ! Motif: Build on Ubuntu can't enter any text in dialog text fields. ! ! nvo-mode mapping works on Windows, not on Linux. (#3678) ! ! Missing tests for: ! - add_termcap_entry() ! ! When using exclusive selection and vi" that fails, cursor moves to the left. ! Cursor should not move. (#4024) ! ! Incsearch test fails when locale is "C". (Dominique Pelle, #3986) ! Also run all tests with C locale? ! ! "vat" doesn't work well on XML when the closing > is on another line. ! #3927 ! ! Pasting foo} causes Vim to behave weird. (John Little, 2018 Jun 17) ! Related to bracketed paste. I cannot reproduce it. ! ! When 'confirm' is set a "silent q" doesn't show the prompt. It should in this ! case. (Nate Peterson, 2019 Jan 31, #3892) ! For "silent! q" it should not prompt and just fail. ! ! Add , which expands to the currently triggered autocommand event name. ! (Daniel Hahler, #4232) Or add it to v:event (easier to use but slightly more ! expensive). ! ! Some xterm responses are not properly handled: (Markus Gömmel, 2019 Apr 1) ! DCS 0 $ r Pt ST should be ignored. ! DCS 0 + r/Pt/ ST already ignored? ! ! Using CTRL-L to add a character to the search string that contains \v, ! punctuation is repeated. (Smylers, 2018 Nov 17, #3621) ! ! ml_get error: (Israel Chauca Fuentes, 2018 Oct 17, #3550). ! ! Using single wide base character with double wide composing character gives ! drawing errors. Fill up the base character? (Dominique, #4328) ! ! 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) ! ! When 'sidescrolloff' is set, using "zl" to go to the end of the line, suddenly ! scrolls back. Should allow for this scrolling, like 'scrolloff' does when ! using CTRL-E. (Yee Cheng Chin, #3721) ! ! 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) ! ! Add function to make use of internal diff, working on two lists and returning ! unified diff (list of lines). ! When splitting a window with few text lines, the relative cursor position is ! kept, which means part of the text isn't displayed. Better show all the text ! when possible. (Dylan Lloyd, #3973) ! Make ":interactive !cmd" stop termcap mode, also when used in an autocommand. ! (#3692) ! Patch to add environ(), gets a dict with all environment vars, and getenv(), ! useful for environment vars that are not made of keyword chars. ! (Yasuhiro Matsumoto, #2875) ! Add buffer argument to undotree(). (#4001) ! Patch to restore X11 connection. (#844) ! ! Patch to add optional arguments with default values. ! (Andy Massimino, #3952) Needs to be reviewed. ! ! Patch to add more info to OptionSet. Should mention what triggered the change ! ":set", ":setlocal", ":setglobal", "modeline"; and the old global value. ! #4118. Proposed implementation: 2019 Mar 27. ! Updated 2019 Apr 9: ASAN fails. ! ! Problem with Visual yank when 'linebreak' and 'showbreak' are set. ! Patch with tests, but it's not clear how it is supposed to work. (tommm, 2018 ! Nov 17) Asked about this, Dec 22. Christian will have a look. ! ! Patch for larger icons in installer. (#978) Still not good. ! ! Patch to add commands to jump to quickfix entry above/below the cursor. ! (Yegappan Lakshmanan, #4316) Also do :cbefore and :cafter. ! ! Patch to fix that using "5gj" starting inside a closed fold does not work on ! screen lines but on text lines. (Julius Hulsmann, #4095) Lacks a test. ! ! Patch to implement 'diffref' option. (#3535) ! Easier to use a 'diffmaster' option, is the extra complexity needed? ! Not ready to include. ! ! Memory leaks in test_channel? (or is it because of fork()) ! Using uninitialized value in test_crypt. ! Memory leak in test_terminal: ! ==23530== by 0x2640D7: alloc (misc2.c:874) ! ==23530== by 0x2646D6: vim_strsave (misc2.c:1315) ! ==23530== by 0x25841D: FullName_save (misc1.c:5443) ! ==23530== by 0x17CB4F: fix_fname (buffer.c:4794) ! ==23530== by 0x17CB9A: fname_expand (buffer.c:4838) ! ==23530== by 0x1759AB: buflist_new (buffer.c:1889) ! ==23530== by 0x35C923: term_start (terminal.c:421) ! ==23530== by 0x2AFF30: mch_call_shell_terminal (os_unix.c:4377) ! ==23530== by 0x2B16BE: mch_call_shell (os_unix.c:5383) ! Memory leak in test_alot with pyeval() (allocating partial) ! ! gethostbyname() is old, use getaddrinfo() if available. (#3227) ! ! matchaddpos() gets slow with many matches. Proposal by Rick Howe, 2018 Jul ! 19. ! ! Patch to specify color for cterm=underline and cterm=undercurl, like "guisp". ! Does #2405 do this? ! ! Patch to add an interrupt() function: sets got_int. Useful in an autocommand ! such as BufWritePre that checks the file name or contents. ! ! More patches to check: ! - #4098 improve Travis config ! ! Should make 'listchars' global-local. Local to window or to buffer? ! Probably window. ! Add something like 'fillchars' local to window, but allow for specifying a ! highlight name. Esp. for the statusline. ! ! Sourceforge Vim pages still have content, redirect from empty page. ! Check for PHP errors. (Wayne Davison, 2018 Oct 26) ! ! Patch to support ":tag ". (emmrk, 2018 May 7, #2871) ! Use something like ":tag {kind}/{tagname}". ! Not ready to include. ! ! :pedit resets the 'buflisted' option unexpectedly. (Wang Shidong, 2018 Oct 12, ! #3536) ! ! home_replace() uses $HOME instead of "homedir". (Cesar Martins, 2018 Aug 9) ! ! When the status line uses term_gettitle(), it does not get updated when the ! terminal title changes. (Josh Triplett, 2018 Sep 9, #3418) ! How would we know that the status line needs to be updated? ! ! Adjust windows installer explanation of behavior. (scootergrisen, #3310) ! ! Set g:actual_curbuf when evaluating 'statusline', not just with an expression. ! (Daniel Hahler, 2018 Aug 8, #3299) ! ! Update for xim-input-style help (Tony Mechelynck, 2019 Jan 10). ! Feedback from someone who uses this? ! ! ml_get error. (Dominique Pelle, 2018 Sep 14, #3434) ! ! Patch to use forward slash for completion even when 'shellslash' is set. ! Adds 'completepathslash'. (Yasuhiro Matsumoto, 2018 Nov 15, #3612) ! ! Only output t_Cs when t_Ce is also set. do not use Cs and Ce termcap entries. (Daniel Hahler, 2018 Sep 25) ! Add t_cS and t_cR for cursor color select and reset. Use Cs and Cr terminfo ! values. ! ! Further xdiff changes: ! - More options, e.g. different kind of whitespace diff. ! - when editing text, update the surrounding diff blocks. ! - omit diff.exe from distribution ! - Can we make this show differences within a line? ! - add option to use external diff above a certain size. ! ! Difference between two regexp engines: #3373 ! ! Patch to properly break CJK lines: #3875 ! Requires more tests. dbcs_ functions are not implemented. ! ! Patch to add ch_listen() (Yasuhiro Matsumoto, 2018 Nov 26, #3639) ! What is the practical use for this? ! ! When the last line wraps, selecting with the mouse below that line only ! includes the first screen line. (2018 Aug 23, #3368) ! ! Refactored HTML indent file. (Michael Lee, #1821) ! Ask to write a test first. ! ! Patch to add getregpoint() and setreg() with an option to set "". ! (Andy Massimino, 2018 Aug 24, #3370) ! Better name? ! ! MS-Windows: .lnk file not resolved properly when 'encoding' is set. ! (lkintact, 2018 Sep 22, #3473) ! ! Merge checking for 'cursorline' and 'concealcursor', see neovim #9492. ! ! Win32 key codes are messy. Mike Williams tried to fix that, but now old ! mappings no longer work. Create a new terminal for the better solution? Script generated by :mksession does not work well if there are windows with modified buffers *************** *** 124,149 **** skip "badd fname" if "fname" is already in the buffer list remove remark about unloading buffers from documentation - Patch to make :help work for tags with a ?. (Hirohito Higashi, 2018 May 28) - Compiler warnings (geeknik, 2017 Oct 26): - signed integer overflow in do_sub() (#2249) - signed integer overflow in get_address() (#2248) - signed integer overflow in getdecchrs() (#2254) - undefined left shift in get_string_tv() (#2250) ! Patch for more quickfix refactoring. (Yegappan Lakshmanan, #2950) Tests failing for "make testgui" with GTK: - Test_setbufvar_options() - Test_exit_callback_interval() ! Make balloon_show() work outside of 'balloonexpr'? Users expect it to work: ! #2948. (related to #1512?) ! On Win32 it stops showing, because showState is already ShS_SHOWING. ! balloon_show() does not work properly in the terminal. (Ben Jackson, 2017 Dec ! 20, #2481) ! Also see #2352, want better control over balloon, perhaps set the position. Try out background make plugin: https://github.com/AndrewVos/vim-make-background --- 409,449 ---- skip "badd fname" if "fname" is already in the buffer list remove remark about unloading buffers from documentation Compiler warnings (geeknik, 2017 Oct 26): - signed integer overflow in do_sub() (#2249) - signed integer overflow in get_address() (#2248) - signed integer overflow in getdecchrs() (#2254) - undefined left shift in get_string_tv() (#2250) ! Win32 console: and typed in Insert mode don't result in normal ! characters. (#3246) ! ! 'foldtext' is evaluated too often. (Daniel Hahler, #2773) ! ! Add Native language protocol server (LSP) support. (Yegappan Lakshmanan, 2018 ! Oct 28) ! ! ml_get error when using a Python script. (Yggdroot, 2017 Jun 1, #1737) ! Lemonboy can reproduce (2017 Jun 5) ! Also reproduced by Benjamin Doherty, 2018 Oct 4. ! Simpler way: Ken Takata, Oct 6. ! ! Add more testing of the GTK GUI. ! - gtk_test_widget_click() can be used to simulate a click in a widget. Tests failing for "make testgui" with GTK: - Test_setbufvar_options() - Test_exit_callback_interval() ! Patch to be able to use hex numbers with :digraph. (Lcd, 2015 Sep 6) ! Update Sep 7. Update by Christian Brabandt, 2015 Sep 8, 2016 Feb 1. ! Patch to be able to disable default digraphs (incomplete) (Eric Pruitt, 2018 ! Nov 22). ! ! Patch to list user digraphs. (Christian Brabandt, 2012 Apr 14) ! ! Patch to add digraph() function. (Christian Brabandt, 2013 Aug 22, update Aug ! 24) Try out background make plugin: https://github.com/AndrewVos/vim-make-background *************** *** 151,157 **** https://github.com/yegappan/asyncmake Add a ModeChanged autocommand that has an argument indicating the old and new ! mode. Also used for switching Terminal mode. Add an option with file patterns, to be used when unloading a buffer: If there is a match, remove entries for the buffer from marks, jumplist, etc. To be --- 451,457 ---- https://github.com/yegappan/asyncmake Add a ModeChanged autocommand that has an argument indicating the old and new ! mode, as what's returned from mode(). Also used for switching Terminal mode. Add an option with file patterns, to be used when unloading a buffer: If there is a match, remove entries for the buffer from marks, jumplist, etc. To be *************** *** 159,201 **** Cursor in wrong position when line wraps. (#2540) ! Patch for Lua support. (Kazunobu Kuriyama, 2018 May 26) Add an option similar to 'lazyredraw' to skip redrawing while executing a script or function. MS-Windows: write may fail if another program is reading the file. If 'readonly' is not set but the file appears to be readonly later, try again (wait a little while). CreateFile() returns ERROR_SHARING_VIOLATION (Linwei, 2018 May 5) Should add a test for every command line argument. Check coverage for what is missing: --nofork, -A , -b, -h, etc. ! Patch for variable tabstops. On github (Christian Brabandt, 2014 May 15) ! Update 2018 March 12, #2711 ! ! Improve the installer for MS-Windows. There are a few alternatives: ! - Add silent install option. (Shane Lee, #751) ! - Installer from Cream (Steve Hall). ! - Modern UI 2.0 for the Nsis installer. (Guopeng Wen) ! https://github.com/gpwen/vim-installer-mui2 ! - make it possible to do a silent install, see ! http://nsis.sourceforge.net/Docs/Chapter4.html#4.12 ! Version from Guopeng Wen does this. ! - MSI installer: https://github.com/petrkle/vim-msi/ ! - The one on Issue 279. ! Problem: they all work slightly different (e.g. don't install vimrun.exe). ! How to test that it works well for all Vim users? Alternative manpager.vim. (Enno, 2018 Jan 5, #2529) ! Patch to use NGETTEXT() in many more places. (Sergey Alyoshin, 2018 May 25) ! Updated ptach May 27. ! Does setting 'cursorline' cause syntax highlighting to slow down? Perhaps is ! mess up the cache? (Mike Lee Williams, 2018 Jan 27, #2539) ! Also: 'foldtext' is evaluated too often. (Daniel Hahler, #2773) When using :packadd files under "later" are not used, which is inconsistent with packages under "start". (xtal8, #1994) --- 459,508 ---- Cursor in wrong position when line wraps. (#2540) ! Patch to parse ":line" in tags file and use it for search. (Daniel Hahler, ! #2546) Fixes #1057. Missing a test. ! ! Setting 'columns' in a BufEnter autocommand causes a second tab width to ! behave strangely, as if there is a gap and a vertical window separator. ! (Michael Soyka, 2018 Sep 23, #3477) ! ! Make {skip} argument of searchpair() consistent with other places where we ! pass an expression to evaluate. Allow passing zero for "never skip". Add an option similar to 'lazyredraw' to skip redrawing while executing a script or function. + Universal solution to detect if t_RS is working, using cursor position. + Koichi Iwamoto, #2126 + + When using a menu item while the "more" prompt is displayed doesn't work well. + E.g. after using help->version. Have a key that ends the "more" prompt and + does nothing otherwise? + MS-Windows: write may fail if another program is reading the file. If 'readonly' is not set but the file appears to be readonly later, try again (wait a little while). CreateFile() returns ERROR_SHARING_VIOLATION (Linwei, 2018 May 5) + Using --remote to open a file in which a # appears does not work on + MS-Windows. Perhaps in \# the \ is seen as a path separator. (Axel Bender, + 2017 Feb 9) Can we expand wildcards first and send the path literally to the + receiving Vim? Or make an exception for #, it's not useful remotely. + Should add a test for every command line argument. Check coverage for what is missing: --nofork, -A , -b, -h, etc. ! ":au * * command" should not be allowed, only use * for event when listing or ! deleting autocmds, not when adding them. Alternative manpager.vim. (Enno, 2018 Jan 5, #2529) ! Delete all the specific stuff for the Borland compiler? (#3374) ! Patch in #3377 (Thomas Dziedzic) ! With 'foldmethod' "indent" and appending an empty line, what follows isn't ! included in the existing fold. Deleting the empty line and undo fixes it. ! (Oleg Koshovetc, 2018 Jul 15, #3214) When using :packadd files under "later" are not used, which is inconsistent with packages under "start". (xtal8, #1994) *************** *** 222,237 **** Add the debug command line history to viminfo. - 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 inbetween, which may cause - a deadlock if the reading side is waiting for the write to finish. (Nate - Bosch, 2018 Jan 13, #2548) - - Patch to include a cfilter plugin to filter quickfix/location lists. - (Yegappan Lakshmanan, 2018 May 12) - 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. --- 529,534 ---- *************** *** 250,256 **** Using 'wildignore' also applies to literally entered file name. Also with :drop (remote commands). ! Patch to support ":tag