diff --git a/runtime/autoload/phpcomplete.vim b/runtime/autoload/phpcomplete.vim
index 2ff94ce..88c3e25 100644
--- a/runtime/autoload/phpcomplete.vim
+++ b/runtime/autoload/phpcomplete.vim
@@ -2,6 +2,8 @@
 " Language:	PHP
 " Maintainer:	Dávid Szabó ( complex857 AT gmail DOT com )
 " Previous Maintainer:	Mikolaj Machowski ( mikmach AT wp DOT pl )
+" URL: https://github.com/shawncplus/phpcomplete.vim
+" Last Change:  2014 May 08
 "
 "	OPTIONS:
 "
@@ -16,7 +18,7 @@
 "			The completion list generated this way is only filtered by the completion base
 "			and generally not much more accurate then simple keyword completion.
 "
-"		let	g:phpcomplete_search_tags_for_variables = 1/0 [default 0]
+"		let g:phpcomplete_search_tags_for_variables = 1/0 [default 0]
 "			Enables use of tags when the plugin tries to find variables.
 "			When enabled the plugin will search for the variables in the tag files with kind 'v',
 "			lines like $some_var = new Foo; but these usually yield highly inaccurate results and
@@ -138,7 +140,7 @@
 		unlet! b:compl_context
 		" chop of the "base" from the end of the current instruction
 		if a:base != ""
-			let context = substitute(context, '\s*\$\?\([a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\)*$', '', '')
+			let context = substitute(context, '\s*[$a-zA-Z_0-9\x7f-\xff]*$', '', '')
 		end
 	end
 
@@ -1553,12 +1555,14 @@
 			" do in-file lookup of $var = new Class
 			if line =~# '^\s*'.object.'\s*=\s*new\s\+'.class_name_pattern && !object_is_array
 				let classname_candidate = matchstr(line, object.'\c\s*=\s*new\s*\zs'.class_name_pattern.'\ze')
+				let [classname_candidate, class_candidate_namespace] = phpcomplete#ExpandClassName(classname_candidate, a:current_namespace, a:imports)
 				break
 			endif
 
 			" in-file lookup for Class::getInstance()
 			if line =~# '^\s*'.object.'\s*=&\?\s*'.class_name_pattern.'\s*::\s*getInstance' && !object_is_array
 				let classname_candidate = matchstr(line, object.'\s*=&\?\s*\zs'.class_name_pattern.'\ze\s*::\s*getInstance')
+				let [classname_candidate, class_candidate_namespace] = phpcomplete#ExpandClassName(classname_candidate, a:current_namespace, a:imports)
 				break
 			endif
 
@@ -1822,8 +1826,6 @@
 	if no_namespace_candidate != ''
 		return no_namespace_candidate
 	endif
-endif
-
 endfunction
 " }}}
 
diff --git a/runtime/doc/autocmd.txt b/runtime/doc/autocmd.txt
index ecb5b96..2a8bece 100644
--- a/runtime/doc/autocmd.txt
+++ b/runtime/doc/autocmd.txt
@@ -1,4 +1,4 @@
-*autocmd.txt*   For Vim version 7.4.  Last change: 2014 Jan 23
+*autocmd.txt*   For Vim version 7.4.  Last change: 2014 May 02
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -569,7 +569,8 @@
 FileChangedShell		When Vim notices that the modification time of
 				a file has changed since editing started.
 				Also when the file attributes of the file
-				change. |timestamp|
+				change or when the size of the file changes.
+				|timestamp|
 				Mostly triggered after executing a shell
 				command, but also with a |:checktime| command
 				or when Gvim regains input focus.
diff --git a/runtime/doc/editing.txt b/runtime/doc/editing.txt
index cc3dcfa..9b465e8 100644
--- a/runtime/doc/editing.txt
+++ b/runtime/doc/editing.txt
@@ -1,4 +1,4 @@
-*editing.txt*   For Vim version 7.4.  Last change: 2013 Nov 25
+*editing.txt*   For Vim version 7.4.  Last change: 2014 May 02
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1469,14 +1469,15 @@
 ==============================================================================
 10. Timestamps					*timestamp* *timestamps*
 
-Vim remembers the modification timestamp of a file when you begin editing it.
-This is used to avoid that you have two different versions of the same file
-(without you knowing this).
+Vim remembers the modification timestamp, mode and size of a file when you
+begin editing it.  This is used to avoid that you have two different versions
+of the same file (without you knowing this).
 
-After a shell command is run (|:!cmd| |suspend| |:read!| |K|) timestamps are
-compared for all buffers in a window.   Vim will run any associated
-|FileChangedShell| autocommands or display a warning for any files that have
-changed.  In the GUI this happens when Vim regains input focus.
+After a shell command is run (|:!cmd| |suspend| |:read!| |K|) timestamps,
+file modes and file sizes are compared for all buffers in a window.   Vim will
+run any associated |FileChangedShell| autocommands or display a warning for
+any files that have changed.  In the GUI this happens when Vim regains input
+focus.
 
 							*E321* *E462*
 If you want to automatically reload a file when it has been changed outside of
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 3957508..965c5b8 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*	For Vim version 7.4.  Last change: 2014 Apr 29
+*eval.txt*	For Vim version 7.4.  Last change: 2014 May 07
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
diff --git a/runtime/doc/map.txt b/runtime/doc/map.txt
index d771979..4eb36b8 100644
--- a/runtime/doc/map.txt
+++ b/runtime/doc/map.txt
@@ -1,4 +1,4 @@
-*map.txt*       For Vim version 7.4.  Last change: 2013 Aug 22
+*map.txt*       For Vim version 7.4.  Last change: 2014 May 10
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -306,9 +306,21 @@
 to type a count with a zero.
 
 						*map-overview* *map-modes*
-Overview of which map command works in which mode:
+Overview of which map command works in which mode.  More details below.
+     COMMANDS                    MODES ~
+:map   :noremap  :unmap     Normal, Visual, Select, Operator-pending
+:nmap  :nnoremap :nunmap    Normal
+:vmap  :vnoremap :vunmap    Visual and Select
+:smap  :snoremap :sunmap    Select
+:xmap  :xnoremap :xunmap    Visual
+:omap  :onoremap :ounmap    Operator-pending
+:map!  :noremap! :unmap!    Insert and Command-line
+:imap  :inoremap :iunmap    Insert
+:lmap  :lnoremap :lunmap    Insert, Command-line, Lang-Arg
+:cmap  :cnoremap :cunmap    Command-line
 
-    commands:				      modes: ~
+
+    COMMANDS				      MODES ~
 				       Normal  Visual+Select  Operator-pending ~
 :map   :noremap   :unmap   :mapclear	 yes	    yes		   yes
 :nmap  :nnoremap  :nunmap  :nmapclear	 yes	     -		    -
@@ -324,7 +336,7 @@
 better to explicitly use :xmap and :smap for printable characters.  Or use
 :sunmap after defining the mapping.
 
-    commands:				      modes: ~
+    COMMANDS				      MODES ~
 					  Visual    Select ~
 :vmap  :vnoremap  :vunmap  :vmapclear	    yes      yes
 :xmap  :xnoremap  :xunmap  :xmapclear	    yes       -
@@ -333,7 +345,7 @@
 			*mapmode-ic* *mapmode-i* *mapmode-c* *mapmode-l*
 Some commands work both in Insert mode and Command-line mode, some not:
 
-    commands:				      modes: ~
+    COMMANDS				      MODES ~
 					  Insert  Command-line	Lang-Arg ~
 :map!  :noremap!  :unmap!  :mapclear!	    yes	       yes	   -
 :imap  :inoremap  :iunmap  :imapclear	    yes		-	   -
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 8b2ee6d..7c772df 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt*	For Vim version 7.4.  Last change: 2014 Apr 29
+*options.txt*	For Vim version 7.4.  Last change: 2014 May 13
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -4492,6 +4492,8 @@
 	be able to execute Normal mode commands.
 	This is the opposite of the 'keymap' option, where characters are
 	mapped in Insert mode.
+	This option cannot be set from a |modeline| or in the |sandbox|, for
+	security reasons.
 
 	Example (for Greek, in UTF-8):				*greek*  >
 	    :set langmap=ΑA,ΒB,ΨC,ΔD,ΕE,ΦF,ΓG,ΗH,ΙI,ΞJ,ΚK,ΛL,ΜM,ΝN,ΟO,ΠP,QQ,ΡR,ΣS,ΤT,ΘU,ΩV,WW,ΧX,ΥY,ΖZ,αa,βb,ψc,δd,εe,φf,γg,ηh,ιi,ξj,κk,λl,μm,νn,οo,πp,qq,ρr,σs,τt,θu,ωv,ςw,χx,υy,ζz
@@ -7508,8 +7510,8 @@
 				"s"  = button state
 				"c"  = column plus 33
 				"r"  = row plus 33
-			This only works up to 223 columns!  See "dec" for a
-			solution.
+			This only works up to 223 columns!  See "dec",
+			"urxvt", and "sgr" for solutions.
 	   xterm2	Works like "xterm", but with the xterm reporting the
 			mouse position while the mouse is dragged.  This works
 			much faster and more precise.  Your xterm must at
@@ -7531,29 +7533,35 @@
 	   pterm	QNX pterm mouse handling.
 							*urxvt-mouse*
 	   urxvt	Mouse handling for the urxvt (rxvt-unicode) terminal.
+			The mouse works only if the terminal supports this
+			encoding style, but it does not have 223 columns limit
+			unlike "xterm" or "xterm2".
 							*sgr-mouse*
 	   sgr		Mouse handling for the terminal that emits SGR-styled
-			mouse reporting. Works with xterm version 277 or
-			later.
+			mouse reporting.  The mouse works even in columns
+			beyond 223.  This option is backward compatible with
+			"xterm2" because it can also decode "xterm2" style
+			mouse codes.
 
 	The mouse handling must be enabled at compile time |+mouse_xterm|
-	|+mouse_dec| |+mouse_netterm|.
+	|+mouse_dec| |+mouse_netterm| |+mouse_jsbterm| |+mouse_urxvt|
+	|+mouse_sgr|.
 	Only "xterm"(2) is really recognized.  NetTerm mouse codes are always
 	recognized, if enabled at compile time.  DEC terminal mouse codes
 	are recognized if enabled at compile time, and 'ttymouse' is not
-	"xterm" (because the xterm and dec mouse codes conflict).
+	"xterm", "xterm2", "urxvt" or "sgr" (because dec mouse codes conflict
+	with them).
 	This option is automatically set to "xterm", when the 'term' option is
-	set to a name that starts with "xterm", and 'ttymouse' is not "xterm"
-	or "xterm2" already.  The main use of this option is to set it to
-	"xterm", when the terminal name doesn't start with "xterm", but it can
-	handle xterm mouse codes.
-	The "sgr" value will be set if the xterm version is 277 or later.
+	set to a name that starts with "xterm", "mlterm", or "screen", and
+	'ttymouse' is not set already.
+	Additionally, if vim is compiled with the |+termresponse| feature and
+	|t_RV| is set to the escape sequence to request the xterm version
+	number, more intelligent detection process runs.
 	The "xterm2" value will be set if the xterm version is reported to be
-	95 or higher.  This only works when compiled with the |+termresponse|
-	feature and if |t_RV| is set to the escape sequence to request the
-	xterm version number.  Otherwise "xterm2" must be set explicitly.
-	If you do not want 'ttymouse' to be set to "xterm2" automatically, set
-	t_RV to an empty string: >
+	from 95 to 276.  The "sgr" value will be set if the xterm version is
+	277 or highter.
+	If you do not want 'ttymouse' to be set to "xterm2" or "sgr"
+	automatically, set t_RV to an empty string: >
 		:set t_RV=
 <
 						*'ttyscroll'* *'tsl'*
diff --git a/runtime/doc/pattern.txt b/runtime/doc/pattern.txt
index 8bc621c..8930092 100644
--- a/runtime/doc/pattern.txt
+++ b/runtime/doc/pattern.txt
@@ -1,4 +1,4 @@
-*pattern.txt*   For Vim version 7.4.  Last change: 2014 Feb 08
+*pattern.txt*   For Vim version 7.4.  Last change: 2014 May 13
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/sign.txt b/runtime/doc/sign.txt
index 79c1011..6c92073 100644
--- a/runtime/doc/sign.txt
+++ b/runtime/doc/sign.txt
@@ -1,4 +1,4 @@
-*sign.txt*      For Vim version 7.4.  Last change: 2013 Nov 17
+*sign.txt*      For Vim version 7.4.  Last change: 2014 May 07
 
 
 		  VIM REFERENCE MANUAL    by Gordon Prieur
@@ -137,6 +137,7 @@
 :sign place {id} line={lnum} name={name} buffer={nr}
 		Same, but use buffer {nr}.
 
+							*E885*
 :sign place {id} name={name} file={fname}
 		Change the placed sign {id} in file {fname} to use the defined
 		sign {name}.  See remark above about {fname} |:sign-fname|.
diff --git a/runtime/doc/term.txt b/runtime/doc/term.txt
index eb5d7fb..d2dd547 100644
--- a/runtime/doc/term.txt
+++ b/runtime/doc/term.txt
@@ -1,4 +1,4 @@
-*term.txt*      For Vim version 7.4.  Last change: 2013 Mar 13
+*term.txt*      For Vim version 7.4.  Last change: 2014 May 13
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -666,8 +666,8 @@
 
 							*xterm-copy-paste*
 NOTE: In some (older) xterms, it's not possible to move the cursor past column
-95.  This is an xterm problem, not Vim's.  Get a newer xterm |color-xterm|.
-Now the limit is 223 columns.
+95 or 223.  This is an xterm problem, not Vim's.  Get a newer xterm
+|color-xterm|.  Also see |'ttymouse'|.
 
 Copy/paste in xterm with (current mode NOT included in 'mouse'):
 1. Press left mouse button on first letter of text, move mouse pointer to last
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 0587c0f..ce06f26 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 7.4.  Last change: 2014 Apr 30
+*todo.txt*      For Vim version 7.4.  Last change: 2014 May 13
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -35,24 +35,17 @@
 -------------------- Known bugs and current work -----------------------
 
 Regexp problems:
-- NFA regexp doesn't count tab matches correctly. (Urtica Dioica / gaultheria
-  Shallon, 2013 Nov 18)
-- After patch 7.4.100 there is still a difference between NFA and old engine.
-  25 a's with pattern \v^(aa+)\1+$  (Urtica Dioica, 2013 Nov 21) Also: 9 a's
-  with pattern  \v^(a{-2,})\1+$ (Nov 23)
-- NFA engine combining character mismatch. (glts, 2013 Aug 27)
-  Remark from Dominique, Aug 27
+- Bug with pattern: '\vblock (\d+)\.\n.*\d+%(\1)@<!\.$'
+  (Lech Lorens, 2014 Feb 3)
 - Issue 164: freeze on regexp search.
-- NFA problem with non-greedy match and branches. (Ingo Karkat, 2013 Nov 29)
 - Ignorecase not handled properly for multi-byte characters. (Axel Bender,
   2013 Dec 11)
 - Using \@> and \?. (Brett Stahlman, 2013 Dec 21) Remark from Marcin Szamotulski
   Remark from Brett 2014 Jan 6 and 7.
-- Bug with back references. (Lech Lorens, 2014 Feb 3)
 - Bug when using \>. (Ramel, 2014 Feb 2) (Aaron Bohannon, 2014 Feb 13)
-
-Update for documentation of 'ttymouse' option. (Hayaki Saito, 2014 Apr 30)
-Typo: s/support/supports/
+- NFA regexp doesn't handle \%<v correctly. (Ingo Karkat, 2014 May 12)
+- Does not work with NFA regexp engine:
+  \%u, \%x, \%o, \%d followed by a composing character
 
 Problem that a previous silent ":throw" causes a following try/catch not to
 work. (ZyX, 2013 Sep 28)
@@ -60,9 +53,6 @@
 ":cd C:\Windows\System32\drivers\etc*" does not work, even though the
 directory exists. (Sergio Gallelli, 2013 Dec 29)
 
-Patch to fix positioning in tabs. (Nobuhiro Takasaki, 2014 Apr 25)
-New way to reproduce it: 2014 Apr 29
-
 Problem using ":try" inside ":execute". (ZyX, 2013 Sep 15)
 
 Python: ":py raw_input('prompt')" doesn't work. (Manu Hack)
@@ -72,11 +62,6 @@
 
 Syntax highlighting slow (hangs) in SASS file. (Niek Bosch, 2013 Aug 21)
 
-Inconsistant error messages when comparing dict and when comparing list.
-(ZyX, 2014 Apr 19)
-
-Add #ifdef around struct members not used by GTK. (Cade Forester, 2014 Apr 10)
-
 Adding "~" to 'cdpath' doesn't work for completion?  (Davido, 2013 Aug 19)
 
 Syntax file for gnuplot.  Existing one is very old. (Andrew Rasmussen, 2014
@@ -84,8 +69,6 @@
 
 Add digraph for Rouble: =P.  What's the Unicode?
 
-Include .hgignore in the distribution, so that patches for it work.
-
 Issue 174: Detect Mason files.
 
 No error for missing endwhile. (ZyX, 2014 Mar 20)
@@ -94,9 +77,6 @@
 
 PHP syntax is extremely slow. (Anhad Jai Singh, 2014 Jan 19)
 
-After setting 'spellfile' the screen is not redrawn. (issue 221)
-Patch from Christian Brabandt on the issu.
-
 Spell files use a latin single quote. Unicode also has another single quote:
 0x2019.  (Ron Aaron, 2014 Apr 4)
 New OpenOffice spell files support this with ICONV.  But they are not
@@ -106,6 +86,9 @@
 Also fixes wrong result from executable().
 Update from Ken Takata, 2014 Jan 10. Newer 2014 Apr 3.
 
+Win32: use 64 bit stat() if possible. (Ken Takata, 2014 May 12)
+Needs more tests.
+
 Can we make ":unlet $VAR" use unsetenv() to delete the env var?
 What for systems that don't have unsetenv()?
 
@@ -161,6 +144,16 @@
 Setting the spell file in a session only reads the local additions, not the
 normal spell file. (Enno Nagel, 2014 Mar 29)
 
+-   Patch for 'breakindent' option: repeat indent for wrapped line. (Vaclav
+    Smilauer, 2004 Sep 13, fix Oct 31, update 2007 May 30)
+    Version for latest MacVim: Tobia Conforto, 2009 Nov 23
+    More recent version: https://retracile.net/wiki/VimBreakIndent
+    Posted to vim-dev by Taylor Hedberg, 2011 Nov 25
+    Update by Taylor Hedberg, 2013 May 30.
+    Updated for Vim 7.4 by Ken Takata, 2013 Oct 5.
+    Update by Christian Brabandt, 2014 May 9.  Remarks by Ken Takata.
+    Update by Christian 2014 May 12
+
 When typing the first character of a command, e.g. "f", then using a menu, the
 menu item doesn't work.  Clear typeahead when using a menu?
 
@@ -470,10 +463,6 @@
 Help for 'b:undo_indent'. (Thilo Six, 2012 May 28)
 Also question if examples are correct.
 
-It should be possible to make globpath() return a list instead of a string,
-like with glob(). (Greg Novack, 2012 Nov 2)
-Patch by Adnan Zafar, 2013 Jul 15.
-
 The input map for CTRL-O in mswin.vim causes problems after CTRL-X CTRL-O.
 Suggestion for another map. (Philip Mat, 2012 Jun 18)
 But use "gi" instead of "a".  Or use CTRL-\ CTRL-O.
@@ -511,14 +500,6 @@
 Patch for has('unnamedplus') docs. (Tony Mechelynck, 2011 Sep 27)
 And one for gui_x11.txt.
 
--   Patch for 'breakindent' option: repeat indent for wrapped line. (Vaclav
-    Smilauer, 2004 Sep 13, fix Oct 31, update 2007 May 30)
-    Version for latest MacVim: Tobia Conforto, 2009 Nov 23
-    More recent version: https://retracile.net/wiki/VimBreakIndent
-    Posted to vim-dev by Taylor Hedberg, 2011 Nov 25
-    Update by Taylor Hedberg, 2013 May 30.
-    Updated for Vim 7.4 by Ken Takata, 2013 Oct 5.
-
 ":cd" doesn't work when current directory path contains "**".
 finddir() has the same problem.  (Yukihiro Nakadaira, 2012 Jan 10)
 Requires a rewrite of the file_file_in_path code.
@@ -757,9 +738,6 @@
 Patch to add FoldedLineNr highlighting: different highlighting for the line
 number of a closed fold. (eXerigumo Clanjor, 2013 Jul 15)
 
-Does not work with NFA regexp engine:
-- \%u, \%x, \%o, \%d followed by a composing character
-
 Regexp engine performance:
 - Profiling:
 	./vim -u NONE -s ~/vim/test/ruby.vim
@@ -1078,6 +1056,11 @@
 Using ~ works OK on 'a' with composing char, but not on 0x0418  with composing
 char 0x0301. (Tony Mechelynck, 2009 Mar 4)
 
+Searching for composing char works, but not when inside []. (ZyX, Benjamin R.
+Haskell, 2010 Aug 24)
+
+This does not work yet: "a\(%C\)" (get composing characters into a submatch).
+
 A function on a dictionary is not profiled. (ZyX, 2010 Dec 25)
 
 Inconsistent: starting with $LANG set to es_ES.utf-8 gives Spanish
@@ -1306,9 +1289,6 @@
 result in no matches.  Convert chars to lower case? (Erik Wognsen, 2009 Apr
 16)
 
-Searching for composing char works, but not when inside []. (ZyX, Benjamin R.
-Haskell, 2010 Aug 24)
-
 Fail to edit file after failed register access.  Error flag remains set?
 (Lech Lorens, 2010 Aug 30)
 
@@ -3137,12 +3117,8 @@
 8   toupper() function doesn't handle byte count changes.
 7   Searching and composing characters:
     When searching, should order of composing characters be ignored?
-    Add special item to match with a composing character, zero-width, so that
-    one can replace a base character and keep the composing characters.
     Add a special item to match with a composing character, so that composing
     characters can be manipulated.
-    Add a modifier to ignore composing characters, only compare base
-    characters.  Useful for Hebrew (Ron Aaron)
 8   Should implement 'delcombine' for command line editing.
 8   Detect overlong UTF-8 sequences and handle them like illegal bytes.
 8   ":s/x/\u\1/" doesn't work, making uppercase isn't done for multi-byte
diff --git a/runtime/doc/various.txt b/runtime/doc/various.txt
index 2f33ac1..40ffcb2 100644
--- a/runtime/doc/various.txt
+++ b/runtime/doc/various.txt
@@ -1,4 +1,4 @@
-*various.txt*   For Vim version 7.4.  Last change: 2014 Apr 01
+*various.txt*   For Vim version 7.4.  Last change: 2014 May 02
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -266,8 +266,8 @@
 			(to use aliases) set 'shellcmdflag' to "-ic".
 			For Win32 also see |:!start|.
 
-			After the command has been executed, the timestamp of
-			the current file is checked |timestamp|.
+			After the command has been executed, the timestamp and
+			size of the current file is checked |timestamp|.
 
 			Vim redraws the screen after the command is finished,
 			because it may have printed any text.  This requires a
diff --git a/runtime/macros/less.vim b/runtime/macros/less.vim
index 6ae5ebc..9042e84 100644
--- a/runtime/macros/less.vim
+++ b/runtime/macros/less.vim
@@ -1,6 +1,6 @@
 " Vim script to work like "less"
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2012 May 18
+" Last Change:	2014 May 13
 
 " Avoid loading this file twice, allow the user to define his own script.
 if exists("loaded_less")
@@ -87,6 +87,9 @@
 map <C-V> <Space>
 map f <Space>
 map <C-F> <Space>
+map <PageDown> <Space>
+map <kPageDown> <Space>
+map <S-Down> <Space>
 map z <Space>
 map <Esc><Space> <Space>
 fun! s:NextPage()
@@ -116,10 +119,14 @@
 map <C-E> <CR>
 map j <CR>
 map <C-J> <CR>
+map <Down> <CR>
 
 " Scroll one page backward
 noremap <script> b <C-B><SID>L
 map <C-B> b
+map <PageUp> b
+map <kPageUp> b
+map <S-Up> b
 map w b
 map <Esc>v b
 
@@ -133,6 +140,7 @@
 map <C-Y> k
 map <C-P> k
 map <C-K> k
+map <Up> k
 
 " Redraw
 noremap <script> r <C-L><SID>L
@@ -143,11 +151,15 @@
 noremap <script> g gg<SID>L
 map < g
 map <Esc>< g
+map <Home> g
+map <kHome> g
 
 " End of file
 noremap <script> G G<SID>L
 map > G
 map <Esc>> G
+map <End> G
+map <kEnd> G
 
 " Go to percentage
 noremap <script> % %<SID>L
@@ -184,6 +196,7 @@
 endfun
 
 call s:Forward()
+cunmap <CR>
 
 " Quitting
 noremap q :q<CR>
@@ -240,6 +253,18 @@
   unmap v
   unmap /
   unmap ?
+  unmap <Up>
+  unmap <Down>
+  unmap <PageDown>
+  unmap <kPageDown>
+  unmap <PageUp>
+  unmap <kPageUp>
+  unmap <S-Down>
+  unmap <S-Up>
+  unmap <Home>
+  unmap <kHome>
+  unmap <End>
+  unmap <kEnd>
 endfun
 
 " vim: sw=2
