diff runtime/doc/vi_diff.txt @ 16553:0e473e9e70c2 v8.1.1280

patch 8.1.1280: remarks about functionality not in Vi clutters the help commit https://github.com/vim/vim/commit/25c9c680ec4dfbb51f4ef21c3460a48d3c67ffc8 Author: Bram Moolenaar <Bram@vim.org> Date: Sun May 5 18:13:34 2019 +0200 patch 8.1.1280: remarks about functionality not in Vi clutters the help 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.
author Bram Moolenaar <Bram@vim.org>
date Sun, 05 May 2019 18:15:06 +0200
parents 32a543152dc0
children 1eaf34420bb3
line wrap: on
line diff
--- a/runtime/doc/vi_diff.txt
+++ b/runtime/doc/vi_diff.txt
@@ -1,4 +1,4 @@
-*vi_diff.txt*   For Vim version 8.1.  Last change: 2019 Apr 28
+*vi_diff.txt*   For Vim version 8.1.  Last change: 2019 May 05
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -6,9 +6,8 @@
 
 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.
+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,6 +179,10 @@ Multiple windows and buffers.				|window
 	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,6 +197,11 @@ Syntax highlighting.					|:syntax|
 	|'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,6 +270,8 @@ Visual mode.						|Visual-mode|
 		~	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,6 +532,10 @@ With the CTRL-] command, the cursor may 
 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,23 +809,231 @@ the 'compatible' option is set and 'cpop
 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 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: ~
 
-TODO
-
-`:set`		but not `:set inv{option}`, `:set option&`, `:set all&`,
-		`:set option+=value`,
-		`:set option^=value`
-		`:set option-=value`
-		`:set option<`
+`: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: ~
 
-TODO
+|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
+|<BS>|		same as "h"
+|CTRL-H|	same as "h"
+|<NL>|		same as "j"
+|CTRL-J|	same as "j"
+|CTRL-L|	redraw screen
+|<CR>|		cursor to the first CHAR N lines lower
+|CTRL-M|	same as <CR>
+|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
+|<Space>|	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 <CR>
+|,|		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<CR>|		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'
+|<Del>|		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
+<BS>		delete character before the cursor
+CTRL-H		same as <BS>
+<Tab>		insert a <Tab> character
+CTRL-I		same as <Tab>
+<NL>		same as <CR>
+CTRL-J		same as <CR>
+<CR>		begin new line
+CTRL-M		same as <CR>
+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
+<Esc>		end insert mode (unless 'insertmode' set)
+CTRL-[		same as <Esc>
+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
+<Del>		delete character under the cursor
 
 
 The following options are supported by Vi: ~
@@ -849,11 +1071,14 @@ The following options are supported by V
 '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,7 +1193,8 @@ Only Vim is able to accept options in be
 -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		Vim: Same as "-r" {only in some versions of Vi: "List
+		recoverable edit sessions"}.
 
 -l		Nvi, Vi, Vim: Set 'lisp' and 'showmatch' options.