changeset 9887:b4da19b7539f

commit https://github.com/vim/vim/commit/dc1f1645cb495fa6bfbe216d7359f23539a0e25d Author: Bram Moolenaar <Bram@vim.org> Date: Tue Aug 16 18:33:43 2016 +0200 Updated runtime files.
author Christian Brabandt <cb@256bit.org>
date Tue, 16 Aug 2016 19:30:09 +0200
parents b432c5a43bf2
children de8de17a43d7
files runtime/doc/eval.txt runtime/doc/index.txt runtime/doc/options.txt runtime/doc/syntax.txt runtime/doc/tags runtime/doc/todo.txt runtime/doc/version8.txt runtime/doc/vi_diff.txt runtime/indent/yaml.vim
diffstat 9 files changed, 1158 insertions(+), 102 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*	For Vim version 7.4.  Last change: 2016 Aug 14
+*eval.txt*	For Vim version 7.4.  Last change: 2016 Aug 16
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -29,6 +29,7 @@ 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}
 
@@ -1233,7 +1234,7 @@ The arguments are optional.  Example: >
 							*closure*
 Lambda expressions can access outer scope variables and arguments.  This is
 often called a closure.  Example where "i" a and "a:arg" are used in a lambda
-while they exists in the function scope.  They remain valid even after the
+while they exist in the function scope.  They remain valid even after the
 function returns: >
 	:function Foo(arg)
 	:  let i = 3
@@ -2032,7 +2033,7 @@ cos({expr})			Float	cosine of {expr}
 cosh({expr})			Float	hyperbolic cosine of {expr}
 count({list}, {expr} [, {ic} [, {start}]])
 				Number	count how many {expr} are in {list}
-cscope_connection([{num} , {dbpath} [, {prepend}]])
+cscope_connection([{num}, {dbpath} [, {prepend}]])
 				Number	checks existence of cscope connection
 cursor({lnum}, {col} [, {off}])
 				Number	move cursor to {lnum}, {col}, {off}
@@ -4492,7 +4493,7 @@ getreg([{regname} [, 1 [, {list}]]])			*
 		The result is a String, which is the contents of register
 		{regname}.  Example: >
 			:let cliptext = getreg('*')
-<		When {regname} was not set the result is a empty string.
+<		When {regname} was not set the result is an empty string.
 
 		getreg('=') returns the last evaluated value of the expression
 		register.  (For use in maps.)
@@ -4529,8 +4530,8 @@ gettabinfo([{arg}])					*gettabinfo()*
 
 		Each List item is a Dictionary with the following entries:
 			nr		tab page number.
+			variables	dictionary of tabpage local variables.
 			windows		List of window IDs in the tag page.
-			variables	dictionary of tabpage local variables.
 
 gettabvar({tabnr}, {varname} [, {def}])				*gettabvar()*
 		Get the value of a tab-local variable {varname} in tab page
@@ -4587,9 +4588,11 @@ getwininfo([{winid}])					*getwininfo()*
 			bufnum		number of buffer in the window
 			height		window height
 			loclist		1 if showing a location list
+					{only with the +quickfix feature}
 			nr		window number
 			options		dictionary of window local options
 			quickfix	1 if quickfix or location list window
+					{only with the +quickfix feature}
 			tpnr		tab page number
 			variables	dictionary of window local variables
 			width		window width
@@ -7520,7 +7523,7 @@ systemlist({expr} [, {input}])				*syste
 tabpagebuflist([{arg}])					*tabpagebuflist()*
 		The result is a |List|, where each item is the number of the
 		buffer associated with each window in the current tab page.
-		{arg} specifies the number of tab page to be used.  When
+		{arg} specifies the number of the tab page to be used. When
 		omitted the current tab page is used.
 		When {arg} is invalid the number zero is returned.
 		To get a list of all buffers in all tabs use this: >
@@ -7703,9 +7706,9 @@ timer_info([{id}])
 
 timer_pause({timer}, {paused})				*timer_pause()*
 		Pause or unpause a timer.  A paused timer does not invoke its
-		callback, while the time it would is not changed.  Unpausing a
-		timer may cause the callback to be invoked almost immediately
-		if enough time has passed.
+		callback when its time expires.  Unpausing a timer may cause
+		the callback to be invoked almost immediately if enough time
+		has passed.
 
 		Pausing a timer is useful to avoid the callback to be called
 		for a short time.
@@ -7716,7 +7719,7 @@ timer_pause({timer}, {paused})				*timer
 
 		{only available when compiled with the |+timers| feature}
 
-							*timer_start()*
+						*timer_start()* *timer* *timers*
 timer_start({time}, {callback} [, {options}])
 		Create a timer and return the timer ID.
 
@@ -10480,5 +10483,26 @@ This is not allowed when the textlock is
 	- closing a window or quitting Vim
 	- etc.
 
+==============================================================================
+13. Testing							*testing*
+
+Vim can be tested after building it, usually with "make test".
+The tests are located in the directory "src/testdir".
+
+There are several types of tests added over time:
+	test33.in		oldest, don't add any more
+	test_something.in	old style tests
+	test_something.vim	new style tests
+
+						*new-style-testing*
+New tests should be added as new style tests.  These use functions such as
+|assert_equal()| to keep the test commands and the expected result in one
+place.
+						*old-style-testing*
+In some cases an old style test needs to be used.  E.g. when testing Vim
+without the |+eval| feature.
+
+Find more information in the file src/testdir/README.txt.
+
 
  vim:tw=78:ts=8:ft=help:norl:
--- a/runtime/doc/index.txt
+++ b/runtime/doc/index.txt
@@ -1,4 +1,4 @@
-*index.txt*     For Vim version 7.4.  Last change: 2016 Jul 16
+*index.txt*     For Vim version 7.4.  Last change: 2016 Aug 16
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1207,7 +1207,7 @@ tag	      command	      action ~
 |:display|	:di[splay]	display registers
 |:djump|	:dj[ump]	jump to #define
 |:dl|		:dl		short for |:delete| with the 'l' flag
-|:dl|		:del[ete]l	short for |:delete| with the 'l' flag
+|:del|		:del[ete]l	short for |:delete| with the 'l' flag
 |:dlist|	:dli[st]	list #defines
 |:doautocmd|	:do[autocmd]	apply autocommands to current buffer
 |:doautoall|	:doautoa[ll]	apply autocommands for all loaded buffers
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -3646,7 +3646,7 @@ A jump table for the options with a shor
 		qXX - quality XX.  Valid quality names are: PROOF, DRAFT,
 		      ANTIALIASED, NONANTIALIASED, CLEARTYPE, DEFAULT.
 		      Normally you would use "qDEFAULT".
-		      Some quality values isn't supported in legacy OSs.
+		      Some quality values are not supported in legacy OSs.
 
 	  Use a ':' to separate the options.
 	- A '_' can be used in the place of a space, so you don't need to use
@@ -4403,7 +4403,7 @@ A jump table for the options with a shor
 	if you want to use Vim as a modeless editor.  Used for |evim|.
 	These Insert mode commands will be useful:
 	- Use the cursor keys to move around.
-	- Use CTRL-O to execute one Normal mode command |i_CTRL-O|).  When
+	- Use CTRL-O to execute one Normal mode command |i_CTRL-O|.  When
 	  this is a mapping, it is executed as if 'insertmode' was off.
 	  Normal mode remains active until the mapping is finished.
 	- Use CTRL-L to execute a number of Normal mode commands, then use
@@ -4751,7 +4751,7 @@ A jump table for the options with a shor
 	use this command to get the tallest window possible: >
 		:set lines=999
 <	Minimum value is 2, maximum value is 1000.
-	If you get less lines than expected, check the 'guiheadroom' option.
+	If you get fewer lines than expected, check the 'guiheadroom' option.
 	When you set this option and Vim is unable to change the physical
 	number of lines of the display, the display may be messed up.
 
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -1,4 +1,4 @@
-*syntax.txt*	For Vim version 7.4.  Last change: 2016 Aug 10
+*syntax.txt*	For Vim version 7.4.  Last change: 2016 Aug 16
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -3764,7 +3764,7 @@ Whether or not it is actually concealed 
 'conceallevel' option.  The 'concealcursor' option is used to decide whether
 concealable items in the current line are displayed unconcealed to be able to
 edit the line.
-Another way to conceal text with with |matchadd()|.
+Another way to conceal text is with |matchadd()|.
 
 concealends						*:syn-concealends*
 
@@ -4870,7 +4870,7 @@ DiffChange	diff mode: Changed line |diff
 DiffDelete	diff mode: Deleted line |diff.txt|
 							*hl-DiffText*
 DiffText	diff mode: Changed text within a changed line |diff.txt|
-							*hl-EndofBuffer*
+							*hl-EndOfBuffer*
 EndOfBuffer	filler lines (~) after the last line in the buffer.
 		By default, this is highlighted like |hl-NonText|.
 							*hl-ErrorMsg*
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -6638,6 +6638,7 @@ hl-DiffChange	syntax.txt	/*hl-DiffChange
 hl-DiffDelete	syntax.txt	/*hl-DiffDelete*
 hl-DiffText	syntax.txt	/*hl-DiffText*
 hl-Directory	syntax.txt	/*hl-Directory*
+hl-EndOfBuffer	syntax.txt	/*hl-EndOfBuffer*
 hl-ErrorMsg	syntax.txt	/*hl-ErrorMsg*
 hl-FoldColumn	syntax.txt	/*hl-FoldColumn*
 hl-Folded	syntax.txt	/*hl-Folded*
@@ -7591,6 +7592,7 @@ new-search-path	version6.txt	/*new-searc
 new-searchpat	version6.txt	/*new-searchpat*
 new-session-files	version5.txt	/*new-session-files*
 new-spell	version7.txt	/*new-spell*
+new-style-testing	eval.txt	/*new-style-testing*
 new-tab-pages	version7.txt	/*new-tab-pages*
 new-undo-branches	version7.txt	/*new-undo-branches*
 new-unlisted-buffers	version6.txt	/*new-unlisted-buffers*
@@ -7634,6 +7636,7 @@ ocaml.vim	syntax.txt	/*ocaml.vim*
 octal	eval.txt	/*octal*
 octal-nrformats	options.txt	/*octal-nrformats*
 octal-number	eval.txt	/*octal-number*
+old-style-testing	eval.txt	/*old-style-testing*
 oldfiles-variable	eval.txt	/*oldfiles-variable*
 ole-activation	if_ole.txt	/*ole-activation*
 ole-eval	if_ole.txt	/*ole-eval*
@@ -8678,6 +8681,7 @@ test_null_list()	eval.txt	/*test_null_li
 test_null_partial()	eval.txt	/*test_null_partial()*
 test_null_string()	eval.txt	/*test_null_string()*
 test_settime()	eval.txt	/*test_settime()*
+testing	eval.txt	/*testing*
 testing-variable	eval.txt	/*testing-variable*
 tex-cchar	syntax.txt	/*tex-cchar*
 tex-cole	syntax.txt	/*tex-cole*
@@ -8708,12 +8712,14 @@ throw-from-catch	eval.txt	/*throw-from-c
 throw-variables	eval.txt	/*throw-variables*
 throwpoint-variable	eval.txt	/*throwpoint-variable*
 time-functions	usr_41.txt	/*time-functions*
+timer	eval.txt	/*timer*
 timer-functions	usr_41.txt	/*timer-functions*
 timer_info()	eval.txt	/*timer_info()*
 timer_pause()	eval.txt	/*timer_pause()*
 timer_start()	eval.txt	/*timer_start()*
 timer_stop()	eval.txt	/*timer_stop()*
 timer_stopall()	eval.txt	/*timer_stopall()*
+timers	eval.txt	/*timers*
 timestamp	editing.txt	/*timestamp*
 timestamps	editing.txt	/*timestamps*
 tips	tips.txt	/*tips*
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 7.4.  Last change: 2016 Aug 12
+*todo.txt*      For Vim version 7.4.  Last change: 2016 Aug 16
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -105,9 +105,6 @@ What if there is an invalid character?
 Should json_encode()/json_decode() restrict recursiveness?
 Or avoid recursiveness.
 
-Patch to test popupmenu.  Fails, possibly due to a bug.
-(Christian Brabandt, 2016 Jul 23)
-
 Once .exe with updated installer is available: Add remark to download page
 about /S and /D options (Ken Takata, 2016 Apr 13)
 Or point to nightly builds: https://github.com/vim/vim-win32-installer/releases
@@ -136,60 +133,19 @@ Problem with whitespace in errorformat. 
 
 Undo problem: "g-" doesn't go back, gets stuck. (Björn Linse, 2016 Jul 18)
 
-Also return quickfix vs location list in getwininfo().
-
-Patch to detect st terminal supporting xterm mouse. (Manuel Schiller, 2016 Aug
-2, #963)
-
-Patch to fix that " mark is not stored in viminfo when closing a window in
-another tab. (Hirohito Higashi, 2016 Aug 11, #974)
-
 Syntax highlighting for messages with RFC3339 timestamp (#946)
 Did maintainer reply?
 
-Patch to add filtering of the quickfix list. (Yegappan Lakshmanan, 2016 Mar
-13, last version)  Update June 26, #830.
-Instead use a Vim script implementation, invoked from a Vim command.
-
 ml_get errors when reloading file. (Chris Desjardins, 2016 Apr 19)
 Also with latest version.
 
-Still problems with 'emoji'.  See issue #721.  Patch 7.4.1697 half-fixes it.
-Avoid PLAN_WRITE in windgoto() ?
-Should already never use utf-8 chars to position the cursor.
-
 Cannot delete a file with square brackets with delete(). (#696)
 
-Patch to add the EndOfBuffer highlight group, used instead of NonText for "~"
-lines. (Marco Hinz, 2014 Nov 2)
-Update from James McCoy, 2016 Aug 3.
-
-No autocommand for when changing directory.  Patch from allen haim, 2016 Jun
-27, #888
-Justin M Keyes: use "global" or "window" for the pattern.  Can add "tab"
-later.  What if entering a window where ":lcd" was used?
-
 Completion for input() does not expand environment variables. (chdiza, 2016
 Jul 25, #948)
 
-Patch to improve GTK shaping. (Manuel Schiller, 2016 Aug 7)
-
-Patch to make matchaddpos() not highlight the character after the line.
-(Hirohito Higashi, 2016 Aug 7)
-
 'hlsearch' interferes with a Conceal match. (Rom Grk, 2016 Aug 9)
 
-Patch to have text objects defined by arbitrary single characters. (Daniel
-Thau, 2013 Nov 20, 2014 Jan 29, 2014 Jan 31)
-Ben Fritz: problem with 'selection' set to "exclusive".
-Updated to current Vim, not quite right yet. (Ben Fritz, 2014 Mar 27)
-Updated to current Vim (James McCoy, 2016 Jul 30, #958)
-Still a bit of work left.  Check if "vimx" works.
-Added tests, Aug 3.
-
-Patch to add CTRL-N / CTRL-P while searching. (Christian Brabandt, 2016 Aug
-3)  Problem: two matches in one line and using CTRL-P does not move back.
-
 's$^$\=capture("s/^//gn")' locks Vim in sandbox mode (#950)
 Patch by Christian Brabandt, 2016 Jul 27.
 
@@ -330,6 +286,16 @@ Should use /usr/local/share/applications
 Or use $XDG_DATA_DIRS.
 Also need to run update-desktop-database (Kuriyama Kazunobu, 2015 Nov 4)
 
+Patch to test popupmenu.  Fails, possibly due to a bug.
+(Christian Brabandt, 2016 Jul 23)
+
+Patch to have text objects defined by arbitrary single characters. (Daniel
+Thau, 2013 Nov 20, 2014 Jan 29, 2014 Jan 31)
+Added tests (James McCoy, 2016 Aug 3).  Still needs more work.
+
+Patch to add CTRL-N / CTRL-P while searching. (Christian Brabandt, 2016 Aug
+3)  Problem: two matches in one line and using CTRL-P does not move back.
+
 Access to uninitialized memory in match_backref() regexp_nda.c:4882
 (Dominique Pelle, 2015 Nov 6)
 
@@ -653,8 +619,7 @@ xterm should be able to pass focus chang
 buffers that changed.  Perhaps in misc.c, function selectwindow().
 Xterm 224 supports it!
 Patch to make FocusGained and FocusLost work in modern terminals. (Hayaki
-Saito, 2013 Apr 24)  Has a problem (email 2015 Jan 7).
-Update 2015 Jan 10.
+Saito, 2013 Apr 24) Update 2016 Aug 12.
 Also see issue #609.
 We could add the enable/disable sequences to t_ti/t_te or t_ks/t_ke.
 
--- a/runtime/doc/version8.txt
+++ b/runtime/doc/version8.txt
@@ -1,24 +1,25 @@
-*version8.txt*  For Vim version 8.0.  Last change: 2016 Aug 07
+*version8.txt*  For Vim version 8.0.  Last change: 2016 Aug 16
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
 
-NOTE: THIS FILE IS STILL BEING WORKED ON
+
+NOTE: VIM 8 WAS NOT RELEASED YET, this is work in progress
+
 
 				*vim8* *vim-8* *version-8.0* *version8.0*
-Welcome to Vim 8!  A large number of bugs have been fixed and several
+Welcome to Vim 8!  A large number of bugs have been fixed and several nice
 features have been added.  This file mentions all the new items and changes to
-existing features since Vim 7.4. Bug fixes, the patches for Vim 7.4, can be
-found below |vim-7.4|.  Use this command to see the version you are using: >
+existing features since Vim 7.4. The patches up to Vim 7.4 can be found here:
+|vim-7.4|.
+
+Use this command to see the full version and features information of the Vim
+program you are using: >
 	:version
 
-See |vi_diff.txt| for an overview of differences between Vi and Vim 7.0.
-See |version4.txt|, |version5.txt|, |version6.txt| and |version7.txt| for
-differences between other versions.
-
 NEW FEATURES				|new-8|
-
-Vim script enhancements			|new-vim-script-8|
+	Vim script enhancements		|new-vim-script-8|
+	Various new items		|new-items-8|
 
 INCOMPATIBLE CHANGES			|incompatible-8|
 
@@ -29,6 +30,10 @@ COMPILE TIME CHANGES			|compile-changes-
 PATCHES					|patches-8|
 
 
+See |vi_diff.txt| for an overview of differences between Vi and Vim 8.0.
+See |version4.txt|, |version5.txt|, |version6.txt| and |version7.txt| for
+differences between other versions.
+
 ==============================================================================
 NEW FEATURES						*new-8*
 
@@ -128,9 +133,9 @@ The 'breakindent' option has been added 
 changing the amount of indent.
 
 
-Windows: Direct-X support ~
-
-This adds the 'renderoptions' option to allow for switching on Direct-X
+Windows: DirectX support ~
+
+This adds the 'renderoptions' option to allow for switching on DirectX
 (DirectWrite) support on MS-Windows.
 
 
@@ -154,15 +159,33 @@ Many functions and commands have been ad
 On some systems the numbers used in Vim script are now 64 bit.  This can be
 checked with the |+num64| feature.
 
+Many items were added so support |new-style-testing|.
+
 
 Various new items					*new-items-8*
 -----------------
 
 Normal mode commands: ~
 
+|g+|		g+		go to newer text state N times
+|g,|		g,		go to N newer position in change list
+|g-|		g-		go to older text state N times
+|g;|		g;		go to N older position in change list
+|g_|		g_		cursor to the last CHAR N - 1 lines lower
+
+
+Visual mode commands: ~
+
+|v_CTRL-A|	CTRL-A		add N to number in highlighted text
+|v_CTRL-X|	CTRL-X		subtract N from number in highlighted text
+|v_g_CTRL-A|	g CTRL-A	add N to number in highlighted text
+|v_g_CTRL-X|	g CTRL-X	subtract N from number in highlighted text
+
 
 Insert mode commands: ~
 
+|i_CTRL-G_U|	CTRL-G U	don't break undo with next cursor movement
+
 
 Options: ~
 
@@ -177,12 +200,14 @@ Options: ~
 'perldll'		name of the Perl dynamic library
 'pythondll'		name of the Python 2 dynamic library
 'pythonthreedll'	name of the Python 3 dynamic library
+'signcolumn'		when to display the sign column
 'renderoptions'		options for text rendering on Windows
 'rubydll'		name of the Ruby dynamic library
 'tagcase'		how to handle case when searching in tags files
 'tcldll'		name of the Tcl dynamic library
 'termguicolors'		use GUI colors for the terminal
 
+
 Ex commands: ~
 
 |:cbottom|		scroll to the bottom of the quickfix window
@@ -191,7 +216,6 @@ Ex commands: ~
 |:chistory|		display quickfix list stack
 |:clearjumps|		clear the jump list
 |:helpclose|		close one help window
-|:keeppatterns|		following command keeps search pattern history
 |:lbottom|		scroll to the bottom of the location window
 |:ldo|			execute command in valid location list entries
 |:lfdo|			execute command in each file in location list
@@ -201,10 +225,10 @@ Ex commands: ~
 |:packloadall|		load all packages under 'packpath'
 |:smile|		make the user happy
 
+
 Ex command modifiers: ~
 
-
-Ex command arguments: ~
+|:keeppatterns|		following command keeps search pattern history
 
 
 New and extended functions: ~
@@ -238,10 +262,14 @@ New and extended functions: ~
 |ch_status()|		get status of a channel
 |execute()|		execute an Ex command and get the output
 |exepath()|		full path of an executable program
+|funcref()|		return a reference to function {name}
+|getbufinfo()|		get a list with buffer information
 |getcharsearch()|	return character search information
 |getcmdwintype()|	return the current command-line window type
 |getcompletion()|	return a list of command-line completion matches
 |getcurpos()|		get position of the cursor
+|gettabinfo()|		get a list with tab page information
+|getwininfo()|		get a list with window information
 |glob2regpat()|		convert a glob pattern into a search pattern
 |isnan()|		check for not a number
 |job_getchannel()|	get the channel used by a job
@@ -291,29 +319,96 @@ New and extended functions: ~
 New Vim variables: ~
 
 |v:vim_did_enter|	Set when VimEnter autocommands are triggered
+|v:beval_winid|		Window ID of the window where the mouse pointer is
+|v:completed_item|	complete items for the most recently completed word
+|v:errors|		errors found by assert functions
+|v:false|		a Number with value zero
+|v:hlsearch|		indicates whether search highlighting is on
+|v:mouse_winid|		Window ID for a mouse click obtained with |getchar()|
+|v:none|		an empty String, used for JSON
+|v:null|		an empty String, used for JSON
+|v:option_new|    	new value of the option, used by |OptionSet|
+|v:option_old|    	old value of the option, used by |OptionSet|
+|v:option_type|   	scope of the set command, used by |OptionSet|
+|v:progpath|		the command with which Vim was invoked
+|v:t_bool|		value of Boolean type
+|v:t_channel|		value of Channel type
+|v:t_dict|		value of Dictionary type
+|v:t_float|		value of Float type
+|v:t_func|		value of Funcref type
+|v:t_job|		value of Job type
+|v:t_list|		value of List type
+|v:t_none|		value of None type
+|v:t_number|		value of Number type
+|v:t_string|		value of String type
+|v:testing|		must be set before using `test_garbagecollect_now()`
+|v:true|		a Number with value one
+|v:vim_did_enter|	zero until most of startup is done
 
 
 New autocommand events: ~
 
+|CmdUndefined|		a user command is used but it isn't defined
+|OptionSet|		after setting any option
+|TabClosed|		after closing a tab page
+|TabNew|		after creating a new tab page
+|TextChangedI|		after a change was made to the text in Insert mode
+|TextChanged|		after a change was made to the text in Normal mode
+|WinNew|		after creating a new window
 
 
 New highlight groups: ~
 
+EndOfBuffer		filler lines (~) after the last line in the buffer.
+			|hl-EndOfBuffer|
+
 
 New items in search patterns: ~
 
+|/\%C|	\%C		match any composing characters
+
 
 New Syntax/Indent/FTplugin files: ~
 
+AVR Assembler (Avra) syntax
+Arduino syntax
+Bazel syntax and indent and ftplugin
+Dockerfile syntax and ftplugin
+Eiffel ftplugin
+Euphoria 3 and 4 syntax
+Go syntax and indent and ftplugin
+Godoc syntax
+Groovy ftplugin
+HGcommit ftplugin
+Hog indent and ftplugin
+Innovation Data Processing upstream.pt syntax
+J syntax and indent and ftplugin
+Jproperties ftplugin
+Json syntax and indent and ftplugin
+Kivy syntax
+Less syntax and indent
+Mix syntax
+Motorola S-Record syntax
+R ftplugin
+ReStructuredText syntax and indent and ftplugin
+Registry ftplugin
+Rhelp indent and ftplugin
+Rmd (markdown with R code chunks) syntax and indent
+Rmd ftplugin
+Rnoweb ftplugin
+Rnoweb indent
+SystemVerilog syntax and indent and ftplugin
+Systemd syntax and indent and ftplugin
+Teraterm (TTL) syntax and indent
+Text ftplugin
+Vroom syntax and indent and ftplugin
+
 
 New Keymaps: ~
 
-
-New message translations: ~
-
-
-Others: ~
-
+Armenian eastern and western
+Russian jcukenwintype
+Vietnamese telex and vni
 
 ==============================================================================
 INCOMPATIBLE CHANGES				*incompatible-8*
@@ -334,16 +429,19 @@ either create a .vimrc file that does "s
 Support removed ~
 
 The support for MS-DOS has been removed.  It hasn't been working for a while
-and removing it cleans up the code quite a bit.
+(Vim doesn't fit in memory) and removing it cleans up the code quite a bit.
 
 The support for Windows 16 bit (Windows 95 and older) has been removed.
 
+The support for OS/2 has been removed.  It probably hasn't been working for a
+while since nobody uses it.
+
 The SNiFF+ support has been removed.
 
 
 Minor incompatibilities: ~
 
-For filetype detection: ...
+Probably...
 
 ==============================================================================
 IMPROVEMENTS						*improvements-8*
@@ -356,8 +454,13 @@ usage.  See 'cryptmethod'.
 ==============================================================================
 COMPILE TIME CHANGES					*compile-changes-8*
 
-Dropped the support for MS-DOS.  It was too big to fit in memory.
-
+The Vim repository was moved from Google code to github, since Google code
+was shut down.  It can now be found at https://github.com/vim/vim.
+
+Functions now use ANSI-C declarations.  At least a C-89 compatible compiler is
+required.
+
+The +visual feature is now always included.
 
 ==============================================================================
 PATCHES						*patches-8* *bug-fixes-8*
@@ -2694,7 +2797,7 @@ Patch 7.4.393
 Problem:    Text drawing on newer MS-Windows systems is suboptimal.  Some
 	    multi-byte characters are not displayed, even though the same font
 	    in Notepad can display them. (Srinath Avadhanula)
-Solution:   Add the 'renderoptions' option to enable Direct-X drawing. (Taro
+Solution:   Add the 'renderoptions' option to enable DirectX drawing. (Taro
 	    Muraoka)
 Files:	    runtime/doc/eval.txt, runtime/doc/options.txt,
 	    runtime/doc/various.txt, src/Make_cyg.mak, src/Make_ming.mak,
@@ -8167,7 +8270,7 @@ Files:      src/regexp.c, src/regexp_nfa
 
 Patch 7.4.1306
 Problem:    Job control doesn't work well on MS-Windows.
-Solution:   Various fixes. (Ken Takata, Ozaki Kiichi , Yukihiro Nakadaira,
+Solution:   Various fixes. (Ken Takata, Ozaki Kiichi, Yukihiro Nakadaira,
             Yasuhiro Matsumoto)
 Files:      src/Make_mvc.mak, src/eval.c, src/os_unix.c, src/os_win32.c,
             src/proto/os_unix.pro, src/proto/os_win32.pro, src/structs.h
@@ -12641,6 +12744,604 @@ Files:      src/fileio.c, src/window.c, 
             src/testdir/test_autocmd.vim, runtime/doc/autocmd.txt
 
 Patch 7.4.2078
+Problem:    Running checks in po directory fails.
+Solution:   Add colors used in syntax.c to the builtin color table.
+Files:      src/term.c
+
+Patch 7.4.2079
+Problem:    Netbeans test fails on non-Unix systems.
+Solution:   Only do the permission check on Unix systems.
+Files:      src/testdir/test_netbeans.vim
+
+Patch 7.4.2080
+Problem:    When using PERROR() on some systems assert_fails() does not see
+            the error.
+Solution:   Make PERROR() always report the error.
+Files:      src/vim.h, src/message.c, src/proto/message.pro
+
+Patch 7.4.2081
+Problem:    Line numbers in the error list are not always adjusted.
+Solution:   Set b_has_qf_entry properly. (Yegappan Lakshmanan)
+Files:      src/quickfix.c, src/structs.h, src/testdir/test_quickfix.vim
+
+Patch 7.4.2082
+Problem:    Not much test coverage for digraphs.
+Solution:   Add a new style digraph test. (Christian Brabandt)
+Files:      src/Makefile, src/testdir/test_alot.vim,
+            src/testdir/test_digraph.vim
+
+Patch 7.4.2083
+Problem:    Coverity complains about not restoring a value.
+Solution:   Restore the value, although it's not really needed.  Change return
+            to jump to cleanup, might leak memory.
+Files:      src/userfunc.c
+
+Patch 7.4.2084
+Problem:    New digraph test makes testing hang.
+Solution:   Don't set "nocp".
+Files:      src/testdir/test_digraph.vim
+
+Patch 7.4.2085
+Problem:    Digraph tests fails on some systems.
+Solution:   Run it separately and set 'encoding' early.
+Files:      src/testdir/Make_all.mak, src/testdir/test_alot.vim,
+            src/testdir/test_digraph.vim
+
+Patch 7.4.2086
+Problem:    Using the system default encoding makes tests unpredictable.
+Solution:   Always use utf-8 or latin1 in the new style tests.  Remove setting
+            encoding and scriptencoding where it is not needed.
+Files:      src/testdir/runtest.vim, src/testdir/test_channel.vim,
+            src/testdir/test_digraph.vim, src/testdir/test_expand_dllpath.vim,
+            src/testdir/test_expr_utf8.vim, src/testdir/test_json.vim,
+            src/testdir/test_matchadd_conceal_utf8.vim,
+            src/testdir/test_regexp_utf8.vim, src/testdir/test_visual.vim,
+            src/testdir/test_alot_utf8.vim,
+
+Patch 7.4.2087
+Problem:    Digraph code test coverage is still low.
+Solution:   Add more tests. (Christian Brabandt)
+Files:      src/testdir/test_digraph.vim
+
+Patch 7.4.2088 (after 7.4.2087)
+Problem:    Keymap test fails with normal features.
+Solution:   Bail out if the keymap feature is not supported.
+Files:      src/testdir/test_digraph.vim
+
+Patch 7.4.2089
+Problem:    Color handling of X11 GUIs is too complicated.
+Solution:   Simplify the code.  Use RGBA where appropriate. (Kazunobu
+            Kuriyama)
+Files:      src/gui.h, src/gui_beval.c, src/gui_gtk_x11.c, src/netbeans.c
+
+Patch 7.4.2090
+Problem:    Using submatch() in a lambda passed to substitute() is verbose.
+Solution:   Use a static list and pass it as an optional argument to the
+            function.  Fix memory leak.
+Files:      src/structs.h, src/list.c, src/userfunc.c, src/channel.c,
+            src/eval.c, src/evalfunc.c, src/ex_cmds2.c, src/regexp.c,
+            src/proto/list.pro, src/proto/userfunc.pro,
+            src/testdir/test_expr.vim, runtime/doc/eval.txt
+
+Patch 7.4.2091
+Problem:    Coverity reports a resource leak when out of memory.
+Solution:   Close the file before returning.
+Files:      src/term.c
+
+Patch 7.4.2092
+Problem:    GTK 3 build fails with older GTK version.
+Solution:   Check the pango version. (Kazunobu Kuriyama)
+Files:      src/gui_beval.c
+
+Patch 7.4.2093
+Problem:    Netbeans test fails once in a while.  Leaving log file behind.
+Solution:   Add it to the list of flaky tests.  Disable logfile.
+Files:      src/testdir/runtest.vim, src/testdir/test_channel.vim
+
+Patch 7.4.2094
+Problem:    The color allocation in X11 is overly complicated.
+Solution:   Remove find_closest_color(), XAllocColor() already does this.
+            (Kazunobu Kuriyama)
+Files:      src/gui_x11.c
+
+Patch 7.4.2095
+Problem:    Man test fails when run with the GUI.
+Solution:   Adjust for different behavior of GUI.  Add assert_inrange().
+Files:      src/eval.c, src/evalfunc.c, src/proto/eval.pro,
+            src/testdir/test_assert.vim, src/testdir/test_man.vim,
+            runtime/doc/eval.txt
+
+Patch 7.4.2096
+Problem:    Lambda functions show up with completion.
+Solution:   Don't show lambda functions. (Ken Takata)
+Files:      src/userfunc.c, src/testdir/test_cmdline.vim
+
+Patch 7.4.2097
+Problem:    Warning from 64 bit compiler.
+Solution:   use size_t instead of int. (Mike Williams)
+Files:      src/message.c
+
+Patch 7.4.2098
+Problem:    Text object tests are old style.
+Solution:   Turn them into new style tests. (James McCoy, closes #941)
+Files:      src/testdir/Make_all.mak, src/testdir/test_textobjects.in,
+            src/testdir/test_textobjects.ok, src/testdir/test_textobjects.vim,
+            src/Makefile
+
+Patch 7.4.2099
+Problem:    When a keymap is active only "(lang)" is displayed. (Ilya
+            Dogolazky)
+Solution:   Show the keymap name. (Dmitri Vereshchagin, closes #933)
+Files:      src/buffer.c, src/proto/screen.pro, src/screen.c
+
+Patch 7.4.2100
+Problem:    "cgn" and "dgn" do not work correctly with a single character
+            match and the replacement includes the searched pattern. (John
+            Beckett)
+Solution:   If the match is found in the wrong column try in the next column.
+            Turn the test into new style. (Christian Brabandt)
+Files:      src/search.c, src/testdir/Make_all.mak, src/Makefile,
+            src/testdir/test53.in, src/testdir/test53.ok,
+            src/testdir/test_gn.vim
+
+Patch 7.4.2101
+Problem:    Looping over windows, buffers and tab pages is inconsistent.
+Solution:   Use FOR_ALL_ macros everywhere. (Yegappan Lakshmanan)
+Files:      src/buffer.c, src/diff.c, src/edit.c, src/eval.c, src/evalfunc.c,
+            src/ex_cmds.c, src/ex_cmds2.c, src/ex_docmd.c, src/fileio.c,
+            src/globals.h, src/gui.c, src/gui_mac.c, src/if_lua.c,
+            src/if_mzsch.c, src/if_perl.xs, src/if_ruby.c, src/if_tcl.c,
+            src/main.c, src/mark.c, src/memfile.c, src/memline.c, src/misc1.c,
+            src/move.c, src/netbeans.c, src/normal.c, src/option.c,
+            src/quickfix.c, src/screen.c, src/spell.c, src/term.c,
+            src/window.c, src/workshop.c
+
+Patch 7.4.2102 (after 7.4.2101)
+Problem:    Tiny build with GUI fails.
+Solution:   Revert one FOR_ALL_ change.
+Files:      src/gui.c
+
+Patch 7.4.2103
+Problem:    Can't have "augroup END" right after ":au!".
+Solution:   Check for the bar character before the command argument.
+Files:      src/fileio.c, src/testdir/test_autocmd.vim,
+            runtime/doc/autocmd.txt
+
+Patch 7.4.2104
+Problem:    Code duplication when unreferencing a function.
+Solution:   De-duplicate.
+Files:      src/userfunc.c
+
+Patch 7.4.2105
+Problem:    Configure reports default features to be "normal" while it is
+            "huge".
+Solution:   Change the default text.  Build with newer autoconf.
+Files:      src/configure.in, src/auto/configure
+
+Patch 7.4.2106
+Problem:    Clang warns about missing field in initializer.
+Solution:   Define COMMA and use it.  (Kazunobu Kuriyama)
+Files:      src/ex_cmds.c, src/globals.h, src/vim.h
+
+Patch 7.4.2107 (after 7.4.2106)
+Problem:    Misplaced equal sign.
+Solution:   Remove it.
+Files:      src/globals.h
+
+Patch 7.4.2108
+Problem:    Netbeans test is flaky.
+Solution:   Wait for the cursor to be positioned.
+Files:      src/testdir/test_netbeans.vim
+
+Patch 7.4.2109
+Problem:    Setting 'display' to "lastline" is a drastic change, while
+            omitting it results in lots of "@" lines.
+Solution:   Add "truncate" to show "@@@" for a truncated line.
+Files:      src/option.h, src/screen.c, runtime/doc/options.txt
+
+Patch 7.4.2110
+Problem:    When there is an CmdUndefined autocmd then the error for a missing
+            command is E464 instead of E492. (Manuel Ortega)
+Solution:   Don't let the pointer be NULL.
+Files:      src/ex_docmd.c, src/testdir/test_usercommands.vim
+
+Patch 7.4.2111
+Problem:    Defaults are very conservative.
+Solution:   Move settings from vimrc_example.vim to defaults.vim.  Load
+            defaults.vim if no .vimrc was found.
+Files:      src/main.c, src/version.c, src/os_amiga.h, src/os_dos.h,
+            src/os_mac.h, src/os_unix.h, src/feature.h, src/Makefile,
+            runtime/vimrc_example.vim, runtime/defaults.vim,
+            runtime/evim.vim, Filelist, runtime/doc/starting.txt
+
+Patch 7.4.2112
+Problem:    getcompletion(.., 'dir') returns a match with trailing "*" when
+            there are no matches. (Chdiza)
+Solution:   Return an empty list when there are no matches.  Add a trailing
+            slash to directories. (Yegappan Lakshmanan)  Add tests for no
+            matches. (closes #947)
+Files:      src/evalfunc.c, src/testdir/test_cmdline.vim
+
+Patch 7.4.2113
+Problem:    Test for undo is flaky.
+Solution:   Turn it into a new style test.  Use test_settime() to avoid
+            flakyness.
+Files:      src/Makefile, src/undo.c, src/testdir/test61.in,
+            src/testdir/test61.ok, src/testdir/test_undo.vim,
+            src/testdir/test_undolevels.vim, src/testdir/Make_all.mak,
+            src/testdir/test_alot.vim
+
+Patch 7.4.2114
+Problem:    Tiny build fails.
+Solution:   Always include vim_time().
+Files:      src/ex_cmds.c
+
+Patch 7.4.2115
+Problem:    Loading defaults.vim with -C argument.
+Solution:   Don't load the defaults script with -C argument.  Test sourcing
+            the defaults script.  Set 'display' to "truncate".
+Files:      src/main.c, src/Makefile, runtime/defaults.vim,
+            src/testdir/test_startup.vim, src/testdir/Make_all.mak
+
+Patch 7.4.2116
+Problem:    The default vimrc for Windows is very conservative.
+Solution:   Use the defaults.vim in the Windows installer.
+Files:      src/dosinst.c
+
+Patch 7.4.2117
+Problem:    Deleting an augroup that still has autocmds does not give a
+            warning.  The next defined augroup takes its place.
+Solution:   Give a warning and prevent the index being used for another group
+            name.
+Files:      src/fileio.c, src/testdir/test_autocmd.vim
+
+Patch 7.4.2118
+Problem:    Mac: can't build with tiny features.
+Solution:   Don't define FEAT_CLIPBOARD unconditionally. (Kazunobu Kuriyama)
+Files:      src/vim.h
+
+Patch 7.4.2119
+Problem:    Closures are not supported.
+Solution:   Capture variables in lambdas from the outer scope. (Yasuhiro
+            Matsumoto, Ken Takata)
+Files:      runtime/doc/eval.txt, src/eval.c, src/ex_cmds2.c, src/globals.h,
+            src/proto/eval.pro, src/proto/userfunc.pro,
+            src/testdir/test_lambda.vim, src/userfunc.c
+
+Patch 7.4.2120
+Problem:    User defined functions can't be a closure.
+Solution:   Add the "closure" argument. Allow using :unlet on a bound
+            variable. (Yasuhiro Matsumoto, Ken Takata)
+Files:      runtime/doc/eval.txt, src/testdir/test_lambda.vim, src/userfunc.c,
+            src/eval.c src/proto/userfunc.pro
+
+Patch 7.4.2121
+Problem:    No easy way to check if lambda and closure are supported.
+Solution:   Add the +lambda feature.
+Files:      src/evalfunc.c, src/version.c, src/testdir/test_lambda.vim
+
+Patch 7.4.2122 (after 7.4.2118)
+Problem:    Mac: don't get +clipboard in huge build.
+Solution:   Move #define down below including feature.h
+Files:      src/vim.h
+
+Patch 7.4.2123
+Problem:    No new style test for diff mode.
+Solution:   Add a test.  Check that folds are in sync.
+Files:      src/Makefile, src/testdir/test_diffmode.vim,
+            src/testdir/Make_all.mak, src/testdir/test47.in,
+            src/testdir/test47.ok
+
+Patch 7.4.2124
+Problem:    diffmode test leaves files behind, breaking another test.
+Solution:   Delete the files.
+Files:      src/testdir/test_diffmode.vim
+
+Patch 7.4.2125
+Problem:    Compiler warning for loss of data.
+Solution:   Add a type cast. (Christian Brabandt)
+Files:      src/message.c
+
+Patch 7.4.2126
+Problem:    No tests for :diffget and :diffput
+Solution:   Add tests.
+Files:      src/testdir/test_diffmode.vim
+
+Patch 7.4.2127
+Problem:    The short form of ":noswapfile" is ":noswap" instead of ":nos".
+            (Kent Sibilev)
+Solution:   Only require three characters.  Add a test for the short forms.
+Files:      src/ex_docmd.c, src/testdir/test_usercommands.vim
+
+Patch 7.4.2128
+Problem:    Memory leak when saving for undo fails.
+Solution:   Free allocated memory. (Hirohito Higashi)
+Files:      src/ex_cmds.c
+
+Patch 7.4.2129
+Problem:    Memory leak when using timer_start(). (Dominique Pelle)
+Solution:   Don't copy the callback when using a partial.
+Files:      src/evalfunc.c
+
+Patch 7.4.2130
+Problem:    Pending timers cause false memory leak reports.
+Solution:   Free all timers on exit.
+Files:      src/ex_cmds2.c, src/proto/ex_cmds2.pro, src/misc2.c
+
+Patch 7.4.2131
+Problem:    More memory leaks when using partial, e.g. for "exit-cb".
+Solution:   Don't copy the callback when using a partial.
+Files:      src/channel.c
+
+Patch 7.4.2132
+Problem:    test_partial has memory leaks reported.
+Solution:   Add a note about why this happens.
+Files:      src/testdir/test_partial.vim
+
+Patch 7.4.2133 (after 7.4.2128)
+Problem:    Can't build with tiny features.
+Solution:   Add #ifdef.
+Files:      src/ex_cmds.c
+
+Patch 7.4.2134
+Problem:    No error for using function() badly.
+Solution:   Check for passing wrong function name. (Ken Takata)
+Files:      src/eval.c, src/evalfunc.c, src/proto/userfunc.pro,
+            src/testdir/test_expr.vim, src/userfunc.c, src/vim.h
+
+Patch 7.4.2135
+Problem:    Various tiny issues.
+Solution:   Update comments, white space, etc.
+Files:      src/diff.c, src/digraph.c, src/testdir/test80.in,
+            src/testdir/test_channel.vim, src/testdir/Makefile,
+            runtime/menu.vim, src/INSTALLpc.txt, src/xpm/README.txt
+
+Patch 7.4.2136
+Problem:    Closure function fails.
+Solution:   Don't reset uf_scoped when it points to another funccal.
+Files:      src/userfunc.c, src/testdir/test_lambda.vim
+
+Patch 7.4.2137
+Problem:    Using function() with a name will find another function when it is
+            redefined.
+Solution:   Add funcref().  Refer to lambda using a partial.  Fix several
+            reference counting issues.
+Files:      src/vim.h, src/structs.h, src/userfunc.c, src/eval.c,
+            src/evalfunc.c, src/channel.c, src/proto/eval.pro,
+            src/proto/userfunc.pro, src/if_mzsch.c, src/regexp.c, src/misc2.c,
+            src/if_py_both.h, src/testdir/test_expr.vim, runtime/doc/eval.txt
+
+Patch 7.4.2138
+Problem:    Test 86 and 87 fail.
+Solution:   Call func_ref() also for regular functions.
+Files:      src/if_py_both.h
+
+Patch 7.4.2139
+Problem:    :delfunction causes illegal memory access.
+Solution:   Correct logic when deciding to free a function.
+Files:      src/userfunc.c, src/testdir/test_lambda.vim
+
+Patch 7.4.2140
+Problem:    Tiny build fails.
+Solution:   Add dummy typedefs.
+Files:      src/structs.h
+
+Patch 7.4.2141
+Problem:    Coverity reports bogus NULL check.
+Solution:   When checking for a variable in the funccal scope don't pass the
+            varname.
+Files:      src/userfunc.c, src/proto/userfunc.pro, src/eval.c
+
+Patch 7.4.2142
+Problem:    Leaking memory when redefining a function.
+Solution:   Don't increment the function reference count when it's found by
+            name. Don't remove the wrong function from the hashtab.  More
+            reference counting fixes.
+Files:      src/structs.h, src/userfunc.c
+
+Patch 7.4.2143
+Problem:    A funccal is garbage collected while it can still be used.
+Solution:   Set copyID in all referenced functions.  Do not list lambda
+            functions with ":function".
+Files:      src/userfunc.c, src/proto/userfunc.pro, src/eval.c,
+            src/testdir/test_lambda.vim
+
+Patch 7.4.2144
+Problem:    On MS-Windows quickfix does not handle a line with 1023 bytes
+            ending in CR-LF properly.
+Solution:   Don't consider CR a line break. (Ken Takata)
+Files:      src/quickfix.c
+
+Patch 7.4.2145
+Problem:    Win32: Using CreateThread/ExitThread is not safe.
+Solution:   Use _beginthreadex and return from the thread. (Ken Takata)
+Files:      src/os_win32.c
+
+Patch 7.4.2146
+Problem:    Not enough testing for popup menu.  CTRL-E does not always work
+            properly.
+Solution:   Add more tests.  When using CTRL-E check if the popup menu is
+            visible. (Christian Brabandt)
+Files:      src/edit.c, src/testdir/test_popup.vim
+
+Patch 7.4.2147 (after 7.4.2146)
+Problem:    test_alot fails.
+Solution:   Close window.
+Files:      src/testdir/test_popup.vim
+
+Patch 7.4.2148
+Problem:    Not much testing for cscope.
+Solution:   Add a test that uses the cscope program. (Christian Brabandt)
+Files:      src/testdir/test_cscope.vim
+
+Patch 7.4.2149
+Problem:    If a test leaves a window open a following test may fail.
+Solution:   Always close extra windows after running a test.
+Files:      src/testdir/runtest.vim, src/testdir/test_popup.vim
+
+Patch 7.4.2150
+Problem:    Warning with MinGW 64. (John Marriott)
+Solution:   Change return type. (Ken Takata)
+Files:      src/os_win32.c
+
+Patch 7.4.2151
+Problem:    Quickfix test fails on MS-Windows.
+Solution:   Close the help window. (Christian Brabandt)
+Files:      src/testdir/test_quickfix.vim
+
+Patch 7.4.2152
+Problem:    No proper translation of messages with a count.
+Solution:   Use ngettext(). (Sergey Alyoshin)
+Files:      src/evalfunc.c, src/fold.c, src/os_win32.c, src/screen.c, src/vim.h
+
+Patch 7.4.2153
+Problem:    GUI test isn't testing much.
+Solution:   Turn into a new style test.  Execute a shell command.
+Files:      src/testdir/test_gui.vim, src/testdir/test16.in,
+            src/testdir/test16.ok, src/testdir/Make_all.mak, src/Makefile,
+            src/testdir/Make_vms.mms
+
+Patch 7.4.2154
+Problem:    Test_communicate() fails sometimes.
+Solution:   Add it to the flaky tests.
+Files:      src/testdir/runtest.vim
+
+Patch 7.4.2155
+Problem:    Quotes make GUI test fail on MS-Windows.
+Solution:   Remove quotes, strip white space.
+Files:      src/testdir/test_gui.vim
+
+Patch 7.4.2156
+Problem:    Compiler warning.
+Solution:   Add type cast. (Ken Takata, Mike Williams)
+Files:      src/os_win32.c
+
+Patch 7.4.2157
+Problem:    Test_job_start_fails() is expected to report memory leaks, making
+            it hard to see other leaks in test_partial.
+Solution:   Move Test_job_start_fails() to a separate test file.
+Files:      src/testdir/test_partial.vim, src/testdir/test_job_fails.vim,
+            src/Makefile, src/testdir/Make_all.mak
+
+Patch 7.4.2158
+Problem:    Result of getcompletion('', 'cscope') depends on previous
+            completion. (Christian Brabandt)
+Solution:   Call set_context_in_cscope_cmd().
+Files:      src/evalfunc.c, src/testdir/test_cmdline.vim
+
+Patch 7.4.2159
+Problem:    Insufficient testing for cscope.
+Solution:   Add more tests. (Dominique Pelle)
+Files:      src/testdir/test_cscope.vim
+
+Patch 7.4.2160
+Problem:    setmatches() mixes up values. (Nikolai Pavlov)
+Solution:   Save the string instead of reusing a shared buffer.
+Files:      src/dict.c, src/evalfunc.c, src/testdir/test_expr.vim,
+
+Patch 7.4.2161 (after 7.4.2160)
+Problem:    Expression test fails without conceal feature.
+Solution:   Only check "conceal" with the conceal feature.
+Files:      src/testdir/test_expr.vim
+
+Patch 7.4.2162
+Problem:    Result of getcompletion('', 'sign') depends on previous
+            completion.
+Solution:   Call set_context_in_sign_cmd(). (Dominique Pelle)
+Files:      src/evalfunc.c, src/testdir/test_cmdline.vim
+
+Patch 7.4.2063
+Problem:    eval.c is still too big.
+Solution:   Split off internal functions to evalfunc.c.
+Files:      src/eval.c, src/evalfunc.c, src/list.c, src/proto.h,
+            src/globals.h, src/vim.h, src/proto/eval.pro,
+            src/proto/evalfunc.pro, src/proto/list.pro, src/Makefile, Filelist,
+            src/Make_bc5.mak, src/Make_cyg_ming.mak, src/Make_dice.mak,
+            src/Make_ivc.mak, src/Make_manx.mak, src/Make_morph.mak,
+            src/Make_mvc.mak, src/Make_sas.mak
+
+Patch 7.4.2064
+Problem:    Coverity warns for possible buffer overflow.
+Solution:   Use vim_strcat() instead of strcat().
+Files:      src/quickfix.c
+
+Patch 7.4.2065
+Problem:    Compiler warns for uninitialzed variable. (John Marriott)
+Solution:   Set lnum to the right value.
+Files:      src/evalfunc.c
+
+Patch 7.4.2066
+Problem:    getcompletion() not well tested.
+Solution:   Add more testing.
+Files:      src/testdir/test_cmdline.vim
+
+Patch 7.4.2067
+Problem:    Compiler warning for char/char_u conversion. (Tony Mechelynck)
+            Inefficient code.
+Solution:   Use more lines to fill with spaces. (Nikolai Pavlov) Add type cast.
+Files:      src/quickfix.c
+
+Patch 7.4.2068
+Problem:    Not all arguments of trunc_string() are tested.  Memory access
+            error when running the message tests.
+Solution:   Add another test case. (Yegappan Lakshmanan)  Make it easy to run
+            unittests with valgrind.  Fix the access error.
+Files:      src/message.c, src/message_test.c, src/Makefile
+
+Patch 7.4.2069
+Problem:    spell.c is too big.
+Solution:   Split it in spell file handling and spell checking.
+Files:      src/spell.c, src/spellfile.c, src/spell.h, src/Makefile,
+            src/proto/spell.pro, src/proto/spellfile.pro, src/proto.h
+            Filelist, src/Make_bc5.mak, src/Make_cyg_ming.mak,
+            src/Make_dice.mak, src/Make_ivc.mak, src/Make_manx.mak,
+            src/Make_morph.mak, src/Make_mvc.mak, src/Make_sas.mak
+
+Patch 7.4.2070 (after 7.4.2069)
+Problem:    Missing change to include file.
+Solution:   Include the spell header file.
+Files:      src/vim.h
+
+Patch 7.4.2071
+Problem:    The return value of type() is difficult to use.
+Solution:   Define v:t_ constants. (Ken Takata)
+Files:      runtime/doc/eval.txt, src/eval.c, src/evalfunc.c,
+            src/testdir/test_channel.vim, src/testdir/test_viml.vim, src/vim.h
+
+Patch 7.4.2072
+Problem:    substitute() does not support a Funcref argument.
+Solution:   Support a Funcref like it supports  a string starting with "\=".
+Files:      src/evalfunc.c, src/regexp.c, src/eval.c, src/proto/eval.pro,
+            src/proto/regexp.pro, src/testdir/test_expr.vim
+
+Patch 7.4.2073
+Problem:    rgb.txt is read for every color name.
+Solution:   Load rgb.txt once. (Christian Brabandt)  Add a test.
+Files:      runtime/rgb.txt, src/term.c, src/testdir/test_syn_attr.vim
+
+Patch 7.4.2074
+Problem:    One more place using a dummy variable.
+Solution:   Use offsetof(). (Ken Takata)
+Files:      src/userfunc.c
+
+Patch 7.4.2075
+Problem:    No autocommand event to initialize a window or tab page.
+Solution:   Add WinNew and TabNew events. (partly by Felipe Morales)
+Files:      src/fileio.c, src/window.c, src/vim.h,
+            src/testdir/test_autocmd.vim, runtime/doc/autocmd.txt
+
+Patch 7.4.2076
+Problem:    Syntax error when dict has '>' key.
+Solution:   Check for endchar. (Ken Takata)
+Files:      src/userfunc.c, src/testdir/test_lambda.vim
+
+Patch 7.4.2077
+Problem:    Cannot update 'tabline' when a tab was closed.
+Solution:   Add the TabClosed autocmd event. (partly by Felipe Morales)
+Files:      src/fileio.c, src/window.c, src/vim.h,
+            src/testdir/test_autocmd.vim, runtime/doc/autocmd.txt
+
+Patch 7.4.2078
 Problem:    Running checks in po diretory fails.
 Solution:   Add colors used in syntax.c to the builtiin color table.
 Files:      src/term.c
@@ -13147,6 +13848,329 @@ Problem:    Result of getcompletion('', 
 Solution:   Call set_context_in_sign_cmd(). (Dominique Pelle)
 Files:      src/evalfunc.c, src/testdir/test_cmdline.vim
 
-[MORE COMING!]
+Patch 7.4.2163
+Problem:    match() and related functions tested with old style test.
+Solution:   Convert to new style test. (Hirohito Higashi)
+Files:      src/Makefile, src/testdir/Make_all.mak, src/testdir/test63.in,
+            src/testdir/test63.ok, src/testdir/test_alot.vim,
+            src/testdir/test_match.vim, src/testdir/test_matchstrpos.vim
+
+Patch 7.4.2164
+Problem:    It is not possible to use plugins in an "after" directory to tune
+            the behavior of a package.
+Solution:   First load plugins from non-after directories, then packages and
+            finally plugins in after directories.
+            Reset 'loadplugins' before executing --cmd arguments.
+Files:      src/main.c, src/vim.h, src/ex_cmds2.c, src/testdir/Makefile,
+            src/testdir/shared.vim, src/testdir/test_startup.vim,
+            src/testdir/setup.vim, runtime/doc/starting.txt
+
+Patch 7.4.2165 (after 7.4.2164)
+Problem:    Startup test fails on MS-Windows.
+Solution:   Don't check output if RunVim() returns zero.
+Files:      src/testdir/test_startup.vim
+
+Patch 7.4.2166 (after 7.4.2164)
+Problem:    Small build can't run startup test.
+Solution:   Skip the test.
+Files:      src/testdir/test_startup.vim
+
+Patch 7.4.2167 (after 7.4.2164)
+Problem:    Small build can't run tests.
+Solution:   Don't try setting 'packpath'.
+Files:      src/testdir/setup.vim
+
+Patch 7.4.2168
+Problem:    Not running the startup test on MS-Windows.
+Solution:   Write vimcmd.
+Files:      src/testdir/Make_ming.mak, src/testdir/Make_dos.mak
+
+Patch 7.4.2169 (after 7.4.2168)
+Problem:    Startup test gets stuck on MS-Windows.
+Solution:   Use double quotes.
+Files:      src/testdir/shared.vim, src/testdir/test_startup.vim
+
+Patch 7.4.2170
+Problem:    Cannot get information about timers.
+Solution:   Add timer_info().
+Files:      src/evalfunc.c, src/ex_cmds2.c, src/proto/ex_cmds2.pro,
+            runtime/doc/eval.txt
+
+Patch 7.4.2171 (after 7.4.2170)
+Problem:    MS-Windows build fails.
+Solution:   Add QueryPerformanceCounter().
+Files:      src/ex_cmds2.c
+
+Patch 7.4.2172
+Problem:    No test for "vim --help".
+Solution:   Add a test.
+Files:      src/testdir/test_startup.vim, src/testdir/shared.vim
+
+Patch 7.4.2173 (after 7.4.2172)
+Problem:    Can't test help on MS-Windows.
+Solution:   Skip the test.
+Files:      src/testdir/test_startup.vim
+
+Patch 7.4.2174
+Problem:    Adding duplicate flags to 'whichwrap' leaves commas behind.
+Solution:   Also remove the commas. (Naruhiko Nishino)
+Files:      src/Makefile, src/option.c, src/testdir/Make_all.mak,
+            src/testdir/test_alot.vim, src/testdir/test_options.in,
+            src/testdir/test_options.ok, src/testdir/test_options.vim
+
+Patch 7.4.2175
+Problem:    Insufficient testing of cscope.
+Solution:   Add more tests. (Dominique Pelle)
+Files:      src/testdir/test_cscope.vim
+
+Patch 7.4.2176
+Problem:    #ifdefs in main() are complicated.
+Solution:   Always define vim_main2().  Move params to the file level.
+            (suggested by Ken Takata)
+Files:      src/main.c, src/structs.h, src/vim.h, src/if_mzsch.c,
+            src/proto/if_mzsch.pro
+
+Patch 7.4.2177
+Problem:    No testing for -C and -N command line flags, file arguments,
+            startuptime.
+Solution:   Add tests.
+Files:      src/testdir/test_startup.vim, src/testdir/shared.vim
+
+Patch 7.4.2178
+Problem:    No test for reading from stdin.
+Solution:   Add a test.
+Files:      src/testdir/test_startup.vim, src/testdir/shared.vim
+
+Patch 7.4.2179 (after 7.4.2178)
+Problem:    Reading from stdin test fails on MS-Windows.
+Solution:   Strip the extra space.
+Files:      src/testdir/test_startup.vim
+
+Patch 7.4.2180
+Problem:    There is no easy way to stop all timers.  There is no way to
+            temporary pause a timer.
+Solution:   Add timer_stopall() and timer_pause().
+Files:      src/evalfunc.c, src/ex_cmds2.c, src/proto/ex_cmds2.pro,
+            src/structs.h, src/testdir/test_timers.vim,
+            src/testdir/shared.vim, runtime/doc/eval.txt
+
+Patch 7.4.2181
+Problem:    Compiler warning for unused variable.
+Solution:   Remove it. (Dominique Pelle)
+Files:      src/ex_cmds2.c
+
+Patch 7.4.2182
+Problem:    Color Grey40 used in startup but not in the short list.
+Solution:   Add Grey40 to the builtin colors.
+Files:      src/term.c
+
+Patch 7.4.2183
+Problem:    Sign tests are old style.
+Solution:   Turn them into new style tests. (Dominique Pelle)
+Files:      src/Makefile, src/testdir/Make_all.mak, src/testdir/test_signs.in,
+            src/testdir/test_signs.ok, src/testdir/test_signs.vim,
+
+Patch 7.4.2184
+Problem:    Tests that use RunVim() do not actually perform the test.
+Solution:   Use "return" instead of "call". (Ken Takata)
+Files:      src/testdir/shared.vim
+
+Patch 7.4.2185
+Problem:    Test glob2regpat does not test much.
+Solution:   Add a few more test cases. (Dominique Pelle)
+Files:      src/testdir/test_glob2regpat.vim
+
+Patch 7.4.2186
+Problem:    Timers test is flaky.
+Solution:   Relax the sleep time check.
+Files:      src/testdir/test_timers.vim
+
+Patch 7.4.2187 (after 7.4.2185)
+Problem:    glob2regpat test fails on Windows.
+Solution:   Remove the checks that use backslashes.
+Files:      src/testdir/test_glob2regpat.vim
+
+Patch 7.4.2188 (after 7.4.2146)
+Problem:    Completion does not work properly with some plugins.
+Solution:   Revert the part related to typing CTRL-E. (closes #972)
+Files:      src/edit.c, src/testdir/test_popup.vim
+
+Patch 7.4.2189
+Problem:    Cannot detect encoding in a fifo.
+Solution:   Extend the stdin way of detecting encoding to fifo.  Add a test
+            for detecting encoding on stdin and fifo. (Ken Takata)
+Files:      src/buffer.c, src/fileio.c, src/Makefile,
+            src/testdir/Make_all.mak, src/testdir/test_startup_utf8.vim,
+            src/vim.h
+
+Patch 7.4.2190
+Problem:    When startup test fails it's not easy to find out why.
+            GUI test fails with Gnome.
+Solution:   Add the help entry matches to a list an assert that.
+            Set $HOME for Gnome to create .gnome2 directory.
+Files:      src/testdir/test_startup.vim, src/testdir/test_gui.vim
+
+Patch 7.4.2191
+Problem:    No automatic prototype for vim_main2().
+Solution:   Move the #endif. (Ken Takata)
+Files:      src/main.c, src/vim.h, src/proto/main.pro
+
+Patch 7.4.2192
+Problem:    Generating prototypes with Cygwin doesn't work well.
+Solution:   Change #ifdefs. (Ken Takata)
+Files:      src/gui.h, src/gui_w32.c, src/ops.c, src/proto/fileio.pro,
+            src/proto/message.pro, src/proto/normal.pro, src/proto/ops.pro,
+            src/vim.h
+
+Patch 7.4.2193
+Problem:    With Gnome when the GUI can't start test_startup hangs.
+Solution:   Call gui_mch_early_init_check(). (Hirohito Higashi)
+Files:      src/gui.c, src/gui_gtk_x11.c, src/proto/gui_gtk_x11.pro
+
+Patch 7.4.2194
+Problem:    Sign tests don't cover enough.
+Solution:   Add more test cases. (Dominique Pelle)
+Files:      src/testdir/test_signs.vim
+
+Patch 7.4.2195
+Problem:    MS-Windows: The vimrun program does not support Unicode.
+Solution:   Use GetCommandLineW().  Cleanup old #ifdefs. (Ken Takata)
+Files:      src/vimrun.c
+
+Patch 7.4.2196
+Problem:    glob2regpat test doesn't test everything on MS-Windows.
+Solution:   Add patterns with backslash handling.
+Files:      src/testdir/test_glob2regpat.vim
+
+Patch 7.4.2197
+Problem:    All functions are freed on exit, which may hide leaks.
+Solution:   Only free named functions, not reference counted ones.
+Files:      src/userfunc.c
+
+Patch 7.4.2198
+Problem:    Test alot sometimes fails under valgrind. (Dominique Pelle)
+Solution:   Avoid passing a callback with the wrong number of arguments.
+Files:      src/testdir/test_partial.vim
+
+Patch 7.4.2199
+Problem:    In the GUI the cursor is hidden when redrawing any window,
+            causing flicker.
+Solution:   Only undraw the cursor when updating the window it's in.
+Files:      src/screen.c, src/gui.c, src/proto/gui.pro, src/gui_gtk_x11.c
+
+Patch 7.4.2200
+Problem:    Cannot get all information about a quickfix list.
+Solution:   Add an optional argument to get/set loc/qf list(). (Yegappan
+            Lakshmanan)
+Files:      runtime/doc/eval.txt, src/evalfunc.c, src/proto/quickfix.pro,
+            src/quickfix.c, src/tag.c, src/testdir/test_quickfix.vim
+
+Patch 7.4.2201
+Problem:    The sign column disappears when the last sign is deleted.
+Solution:   Add the 'signcolumn' option. (Christian Brabandt)
+Files:      runtime/doc/options.txt, runtime/optwin.vim, src/edit.c,
+            src/move.c, src/option.c, src/option.h, src/proto/option.pro,
+            src/screen.c, src/structs.h, src/testdir/test_options.vim
+
+Patch 7.4.2202
+Problem:    Build fails with small features.
+Solution:   Correct option initialization.
+Files:      src/option.c
+
+Patch 7.4.2203
+Problem:    Test fails with normal features.
+Solution:   Check is signs are supported.
+Files:      src/testdir/test_options.vim
+
+Patch 7.4.2204
+Problem:    It is not easy to get information about buffers, windows and
+            tabpages.
+Solution:   Add getbufinfo(), getwininfo() and gettabinfo(). (Yegappan
+            Lakshmanan)
+Files:      runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/dict.c,
+            src/evalfunc.c, src/option.c, src/proto/dict.pro,
+            src/proto/option.pro, src/proto/window.pro,
+            src/testdir/Make_all.mak, src/testdir/test_bufwintabinfo.vim,
+            src/window.c, src/Makefile
+
+Patch 7.4.2205
+Problem:    'wildignore' always applies to getcompletion().
+Solution:   Add an option to use 'wildignore' or not. (Yegappan Lakshmanan)
+Files:      runtime/doc/eval.txt, src/evalfunc.c, src/testdir/test_cmdline.vim
+
+Patch 7.4.2206
+Problem:    Warning for unused function.
+Solution:   Put the function inside #ifdef. (John Marriott)
+Files:      src/evalfunc.c
+
+Patch 7.4.2207
+Problem:    The +xpm feature is not sorted properly in :version output.
+Solution:   Move it up. (Tony Mechelynck)
+Files:      src/version.c
+
+Patch 7.4.2208
+Problem:    Test for mappings is old style.
+Solution:   Convert the test to new style.
+Files:      src/testdir/test_mapping.vim, src/testdir/test_mapping.in,
+            src/testdir/test_mapping.ok, src/Makefile,
+            src/testdir/test_alot.vim, src/testdir/Make_all.mak
+
+Patch 7.4.2209
+Problem:    Cannot map <M-">. (Stephen Riehm)
+Solution:   Solve the memory access problem in another way. (Dominique Pelle)
+            Allow for using <M-\"> in a string.
+Files:      src/eval.c, src/gui_mac.c, src/misc2.c, src/option.c,
+            src/proto/misc2.pro, src/syntax.c, src/term.c,
+            src/testdir/test_mapping.vim
+
+Patch 7.4.2210
+Problem:    On OSX configure mixes up a Python framework and the Unix layout.
+Solution:   Make configure check properly. (Tim D. Smith, closes #980)
+Files:      src/configure.in, src/auto/configure
+
+Patch 7.4.2211
+Problem:    Mouse support is not automatically enabled with simple term.
+Solution:   Recognize "st" and other names. (Manuel Schiller, closes #963)
+Files:      src/os_unix.c
+
+Patch 7.4.2212
+Problem:    Mark " is not set when closing a window in another tab. (Guraga)
+Solution:   Check all tabs for the window to be valid. (based on patch by
+            Hirohito Higashi, closes #974)
+Files:      src/window.c, src/proto/window.pro, src/buffer.c,
+            src/testdir/test_viminfo.vim
+
+Patch 7.4.2213
+Problem:    Cannot highlight the "~" lines at the end of a window differently.
+Solution:   Add the EndOfBuffer highlighting. (Marco Hinz, James McCoy)
+Files:      runtime/doc/options.txt, runtime/doc/syntax.txt, src/option.c,
+            src/screen.c, src/syntax.c, src/vim.h
+
+Patch 7.4.2214
+Problem:    A font that uses ligatures messes up the screen display.
+Solution:   Put spaces between characters when building the glyph table.
+            (based on a patch from Manuel Schiller)
+Files:      src/gui_gtk_x11.c
+
+Patch 7.4.2215
+Problem:    It's not easy to find out if a window is a quickfix or location
+            list window.
+Solution:   Add "loclist" and "quickfix" entries to the dict returnec by
+            getwininfo(). (Yegappan Lakshmanan)
+Files:      runtime/doc/eval.txt, src/evalfunc.c,
+            src/testdir/test_bufwintabinfo.vim
+
+Patch 7.4.2216 (after 7.4.2215)
+Problem:    Test fails without the +sign feature.
+Solution:   Only check for signcolumn with the +sign feature.
+Files:      src/testdir/test_bufwintabinfo.vim
+
+Patch 7.4.2217
+Problem:    When using matchaddpos() a character after the end of the line can
+            be highlighted.
+Solution:   Only highlight existing characters. (Hirohito Higashi)
+Files:      src/screen.c, src/structs.h, src/testdir/test_match.vim
+
+[STILL MORE COMING!]
 
  vim:tw=78:ts=8:ft=help:norl:
--- a/runtime/doc/vi_diff.txt
+++ b/runtime/doc/vi_diff.txt
@@ -1,4 +1,4 @@
-*vi_diff.txt*   For Vim version 7.4.  Last change: 2016 Feb 12
+*vi_diff.txt*   For Vim version 7.4.  Last change: 2016 Aug 16
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -147,7 +147,7 @@ Support for different systems.
 	resource usage, esp. on MS-DOS.  For some outdated systems you need to
 	use an older Vim version.
 
-Multi level undo.					|undo|
+Multi level persistent undo.					|undo|
 	'u' goes backward in time, 'CTRL-R' goes forward again.  Set option
 	'undolevels' to the number of changes to be remembered (default 1000).
 	Set 'undolevels' to 0 for a Vi-compatible one level undo.  Set it to
@@ -158,6 +158,9 @@ Multi level undo.					|undo|
 	create a branch in the undo tree.  This means you can go back to any
 	state of the text, there is no risk of a change causing text to be
 	lost forever. |undo-tree|
+	The undo information is stored in a file when the 'undofile' option is
+	set.  This means you can exit Vim, start Vim on a previously edited
+	file and undo changes that were made before exiting Vim.
 
 Graphical User Interface (GUI).				|gui|
 	Included support for GUI: menu's, mouse, scrollbars, etc.  You can
@@ -212,6 +215,15 @@ Plugins.						|add-plugin|
 	right directory.  That's an easy way to start using Vim scripts
 	written by others.  Plugins can be for all kind of files, or
 	specifically for a filetype.
+	Packages make this even easier. |packages|
+
+Asynchronous communication and timers.			|channel| |job| |timer|
+	Vim can exchange messages with other processes in the background.
+	This makes it possible to have servers do work and send back the
+	results to Vim. |channel|
+	Vim can start a job, communicate with it and stop it. |job|
+	Timers can fire once or repeatedly and invoke a function to do any
+	work. |timer|
 
 Repeat a series of commands.				|q|
 	"q{c}" starts recording typed characters into named register {c}.
--- a/runtime/indent/yaml.vim
+++ b/runtime/indent/yaml.vim
@@ -37,7 +37,7 @@ function s:FindPrevLessIndentedLine(lnum
     let curindent = a:0 ? a:1 : indent(a:lnum)
     while           prevlnum
                 \&&  indent(prevlnum) >=  curindent
-                \&& getline(prevlnum) !~# '^\s*#'
+                \&& getline(prevlnum) =~# '^\s*#'
         let prevlnum = prevnonblank(prevlnum-1)
     endwhile
     return prevlnum
@@ -51,11 +51,33 @@ function s:FindPrevLEIndentedLineMatchin
     return plilnum
 endfunction
 
-let s:mapkeyregex='\v^\s*%(\''%([^'']|'''')*\'''.
-                \        '|\"%([^"\\]|\\.)*\"'.
-                \        '|%(%(\:\ )@!.)*)\:%(\ |$)'
+let s:mapkeyregex='\v^\s*\#@!\S@=%(\''%([^'']|\''\'')*\'''.
+                \                 '|\"%([^"\\]|\\.)*\"'.
+                \                 '|%(%(\:\ )@!.)*)\:%(\ |$)'
 let s:liststartregex='\v^\s*%(\-%(\ |$))'
 
+let s:c_ns_anchor_char = '\v%([\n\r\uFEFF \t,[\]{}]@!\p)'
+let s:c_ns_anchor_name = s:c_ns_anchor_char.'+'
+let s:c_ns_anchor_property =  '\v\&'.s:c_ns_anchor_name
+
+let s:ns_word_char = '\v[[:alnum:]_\-]'
+let s:ns_tag_char  = '\v%(%\x\x|'.s:ns_word_char.'|[#/;?:@&=+$.~*''()])'
+let s:c_named_tag_handle     = '\v\!'.s:ns_word_char.'+\!'
+let s:c_secondary_tag_handle = '\v\!\!'
+let s:c_primary_tag_handle   = '\v\!'
+let s:c_tag_handle = '\v%('.s:c_named_tag_handle.
+            \            '|'.s:c_secondary_tag_handle.
+            \            '|'.s:c_primary_tag_handle.')'
+let s:c_ns_shorthand_tag = '\v'.s:c_tag_handle . s:ns_tag_char.'+'
+let s:c_non_specific_tag = '\v\!'
+let s:ns_uri_char  = '\v%(%\x\x|'.s:ns_word_char.'\v|[#/;?:@&=+$,.!~*''()[\]])'
+let s:c_verbatim_tag = '\v\!\<'.s:ns_uri_char.'+\>'
+let s:c_ns_tag_property = '\v'.s:c_verbatim_tag.
+            \               '\v|'.s:c_ns_shorthand_tag.
+            \               '\v|'.s:c_non_specific_tag
+
+let s:block_scalar_header = '\v[|>]%([+-]?[1-9]|[1-9]?[+-])?'
+
 function GetYAMLIndent(lnum)
     if a:lnum == 1 || !prevnonblank(a:lnum-1)
         return 0
@@ -127,7 +149,10 @@ function GetYAMLIndent(lnum)
         " - List with
         "   multiline scalar
         return previndent+2
-    elseif prevline =~# s:mapkeyregex
+    elseif prevline =~# s:mapkeyregex . '\v\s*%(%('.s:c_ns_tag_property.
+                \                              '\v|'.s:c_ns_anchor_property.
+                \                              '\v|'.s:block_scalar_header.
+                \                             '\v)%(\s+|\s*%(\#.*)?$))*'
         " Mapping with: value
         "     that is multiline scalar
         return previndent+s:shiftwidth()