aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--runtime/doc/api.txt2
-rw-r--r--runtime/doc/arabic.txt2
-rw-r--r--runtime/doc/autocmd.txt7
-rw-r--r--runtime/doc/change.txt2
-rw-r--r--runtime/doc/cmdline.txt2
-rw-r--r--runtime/doc/debug.txt2
-rw-r--r--runtime/doc/deprecated.txt2
-rw-r--r--runtime/doc/diff.txt2
-rw-r--r--runtime/doc/digraph.txt2
-rw-r--r--runtime/doc/editing.txt2
-rw-r--r--runtime/doc/eval.txt10
-rw-r--r--runtime/doc/farsi.txt2
-rw-r--r--runtime/doc/filetype.txt2
-rw-r--r--runtime/doc/fold.txt2
-rw-r--r--runtime/doc/ft_ada.txt2
-rw-r--r--runtime/doc/ft_sql.txt2
-rw-r--r--runtime/doc/gui.txt2
-rw-r--r--runtime/doc/hebrew.txt2
-rw-r--r--runtime/doc/help.txt2
-rw-r--r--runtime/doc/helphelp.txt2
-rw-r--r--runtime/doc/howto.txt2
-rw-r--r--runtime/doc/if_cscop.txt2
-rw-r--r--runtime/doc/if_pyth.txt2
-rw-r--r--runtime/doc/indent.txt2
-rw-r--r--runtime/doc/index.txt2
-rw-r--r--runtime/doc/insert.txt2
-rw-r--r--runtime/doc/intro.txt2
-rw-r--r--runtime/doc/job_control.txt2
-rw-r--r--runtime/doc/map.txt10
-rw-r--r--runtime/doc/mbyte.txt2
-rw-r--r--runtime/doc/message.txt2
-rw-r--r--runtime/doc/mlang.txt2
-rw-r--r--runtime/doc/motion.txt2
-rw-r--r--runtime/doc/nvim_terminal_emulator.txt2
-rw-r--r--runtime/doc/options.txt2
-rw-r--r--runtime/doc/os_win32.txt2
-rw-r--r--runtime/doc/pattern.txt2
-rw-r--r--runtime/doc/pi_gzip.txt2
-rw-r--r--runtime/doc/pi_msgpack.txt2
-rw-r--r--runtime/doc/pi_netrw.txt2
-rw-r--r--runtime/doc/pi_paren.txt2
-rw-r--r--runtime/doc/pi_spec.txt2
-rw-r--r--runtime/doc/pi_tar.txt2
-rw-r--r--runtime/doc/pi_zip.txt2
-rw-r--r--runtime/doc/print.txt2
-rw-r--r--runtime/doc/provider.txt2
-rw-r--r--runtime/doc/quickfix.txt2
-rw-r--r--runtime/doc/quickref.txt2
-rw-r--r--runtime/doc/recover.txt2
-rw-r--r--runtime/doc/remote.txt2
-rw-r--r--runtime/doc/remote_plugin.txt2
-rw-r--r--runtime/doc/repeat.txt2
-rw-r--r--runtime/doc/rileft.txt2
-rw-r--r--runtime/doc/russian.txt2
-rw-r--r--runtime/doc/scroll.txt2
-rw-r--r--runtime/doc/sign.txt2
-rw-r--r--runtime/doc/sponsor.txt2
-rw-r--r--runtime/doc/starting.txt11
-rw-r--r--runtime/doc/syntax.txt2
-rw-r--r--runtime/doc/tabpage.txt2
-rw-r--r--runtime/doc/tagsrch.txt2
-rw-r--r--runtime/doc/term.txt2
-rw-r--r--runtime/doc/tips.txt2
-rw-r--r--runtime/doc/uganda.txt2
-rw-r--r--runtime/doc/undo.txt2
-rw-r--r--runtime/doc/usr_01.txt2
-rw-r--r--runtime/doc/usr_02.txt2
-rw-r--r--runtime/doc/usr_03.txt2
-rw-r--r--runtime/doc/usr_04.txt2
-rw-r--r--runtime/doc/usr_05.txt2
-rw-r--r--runtime/doc/usr_06.txt2
-rw-r--r--runtime/doc/usr_07.txt2
-rw-r--r--runtime/doc/usr_08.txt2
-rw-r--r--runtime/doc/usr_09.txt2
-rw-r--r--runtime/doc/usr_10.txt2
-rw-r--r--runtime/doc/usr_11.txt2
-rw-r--r--runtime/doc/usr_12.txt2
-rw-r--r--runtime/doc/usr_20.txt2
-rw-r--r--runtime/doc/usr_21.txt2
-rw-r--r--runtime/doc/usr_22.txt2
-rw-r--r--runtime/doc/usr_23.txt2
-rw-r--r--runtime/doc/usr_24.txt2
-rw-r--r--runtime/doc/usr_25.txt2
-rw-r--r--runtime/doc/usr_26.txt2
-rw-r--r--runtime/doc/usr_27.txt2
-rw-r--r--runtime/doc/usr_28.txt2
-rw-r--r--runtime/doc/usr_29.txt2
-rw-r--r--runtime/doc/usr_30.txt2
-rw-r--r--runtime/doc/usr_31.txt2
-rw-r--r--runtime/doc/usr_32.txt2
-rw-r--r--runtime/doc/usr_40.txt2
-rw-r--r--runtime/doc/usr_41.txt2
-rw-r--r--runtime/doc/usr_42.txt2
-rw-r--r--runtime/doc/usr_43.txt2
-rw-r--r--runtime/doc/usr_44.txt2
-rw-r--r--runtime/doc/usr_45.txt2
-rw-r--r--runtime/doc/usr_toc.txt2
-rw-r--r--runtime/doc/various.txt3
-rw-r--r--runtime/doc/vi_diff.txt2
-rw-r--r--runtime/doc/vim_diff.txt2
-rw-r--r--runtime/doc/visual.txt2
-rw-r--r--runtime/doc/windows.txt4
-rw-r--r--runtime/syntax/php.vim44
-rw-r--r--runtime/syntax/sh.vim59
-rw-r--r--runtime/syntax/tex.vim34
-rw-r--r--runtime/syntax/vim.vim4
-rwxr-xr-xscripts/vim-patch.sh7
-rw-r--r--src/nvim/eval.c2
-rw-r--r--src/nvim/ex_cmds2.c16
-rw-r--r--src/nvim/main.c13
-rw-r--r--src/nvim/move.c1
-rw-r--r--src/nvim/testdir/setup.vim3
-rw-r--r--src/nvim/testdir/shared.vim214
-rw-r--r--src/nvim/testdir/test_normal.vim1
-rw-r--r--src/nvim/testdir/test_startup.vim200
-rw-r--r--src/nvim/version.c14
-rw-r--r--src/nvim/vim.h2
118 files changed, 656 insertions, 196 deletions
diff --git a/.gitignore b/.gitignore
index 3fb3d62517..68c0e9d17c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,7 +4,6 @@
/.deps/
/tmp/
-*.rej
*.orig
*.mo
.*.sw?
diff --git a/runtime/doc/api.txt b/runtime/doc/api.txt
index 122ab37e72..2bcc996d8b 100644
--- a/runtime/doc/api.txt
+++ b/runtime/doc/api.txt
@@ -1,4 +1,4 @@
-*api.txt* {Nvim}
+*api.txt* Nvim
NVIM REFERENCE MANUAL by Thiago de Arruda
diff --git a/runtime/doc/arabic.txt b/runtime/doc/arabic.txt
index 6f17b38a7a..3f30d7b5bc 100644
--- a/runtime/doc/arabic.txt
+++ b/runtime/doc/arabic.txt
@@ -1,4 +1,4 @@
-*arabic.txt* For Vim version 7.4. Last change: 2010 Nov 13
+*arabic.txt* Nvim
VIM REFERENCE MANUAL by Nadim Shaikli
diff --git a/runtime/doc/autocmd.txt b/runtime/doc/autocmd.txt
index 180127cd52..e7c7b0d71a 100644
--- a/runtime/doc/autocmd.txt
+++ b/runtime/doc/autocmd.txt
@@ -1,4 +1,4 @@
-*autocmd.txt* For Vim version 7.4. Last change: 2016 Jun 09
+*autocmd.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1184,10 +1184,11 @@ name!
different from existing {event} names, as this
most likely will not do what you intended.
- *:augroup-delete* *E367*
+ *:augroup-delete* *E367* *W19*
:aug[roup]! {name} Delete the autocmd group {name}. Don't use
this if there is still an autocommand using
- this group! This is not checked.
+ this group! You will get a warning if doing
+ it anyway.
To enter autocommands for a specific group, use this method:
1. Select the group with ":augroup {name}".
diff --git a/runtime/doc/change.txt b/runtime/doc/change.txt
index 31a46f53bb..c8576d83e8 100644
--- a/runtime/doc/change.txt
+++ b/runtime/doc/change.txt
@@ -1,4 +1,4 @@
-*change.txt* For Vim version 7.4. Last change: 2016 Apr 12
+*change.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
diff --git a/runtime/doc/cmdline.txt b/runtime/doc/cmdline.txt
index a123ea711b..7277e1d22e 100644
--- a/runtime/doc/cmdline.txt
+++ b/runtime/doc/cmdline.txt
@@ -1,4 +1,4 @@
-*cmdline.txt* For Vim version 7.4. Last change: 2015 Dec 17
+*cmdline.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
diff --git a/runtime/doc/debug.txt b/runtime/doc/debug.txt
index f03116ffed..c5414e91ca 100644
--- a/runtime/doc/debug.txt
+++ b/runtime/doc/debug.txt
@@ -1,4 +1,4 @@
-*debug.txt* For Vim version 7.4. Last change: 2012 Feb 11
+*debug.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
diff --git a/runtime/doc/deprecated.txt b/runtime/doc/deprecated.txt
index ef00143709..822019340a 100644
--- a/runtime/doc/deprecated.txt
+++ b/runtime/doc/deprecated.txt
@@ -1,4 +1,4 @@
-*deprecated.txt* {Nvim}
+*deprecated.txt* Nvim
NVIM REFERENCE MANUAL
diff --git a/runtime/doc/diff.txt b/runtime/doc/diff.txt
index 6b45f8552f..12f4563518 100644
--- a/runtime/doc/diff.txt
+++ b/runtime/doc/diff.txt
@@ -1,4 +1,4 @@
-*diff.txt* For Vim version 7.4. Last change: 2016 Aug 24
+*diff.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
diff --git a/runtime/doc/digraph.txt b/runtime/doc/digraph.txt
index 84024fd1b3..20fbe60602 100644
--- a/runtime/doc/digraph.txt
+++ b/runtime/doc/digraph.txt
@@ -1,4 +1,4 @@
-*digraph.txt* For Vim version 7.4. Last change: 2014 Jun 19
+*digraph.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
diff --git a/runtime/doc/editing.txt b/runtime/doc/editing.txt
index 5bfffac1f1..57458b7b81 100644
--- a/runtime/doc/editing.txt
+++ b/runtime/doc/editing.txt
@@ -1,4 +1,4 @@
-*editing.txt* For Vim version 7.4. Last change: 2016 Aug 06
+*editing.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 5340830947..341e65d381 100644
--- 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 27
+*eval.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -247,7 +247,7 @@ it. To change a list in-place see |list-modification| below.
Sublist ~
-
+ *sublist*
A part of the List can be obtained by specifying the first and last index,
separated by a colon in square brackets: >
:let shortlist = mylist[2:-1] " get List [3, "four"]
@@ -975,10 +975,10 @@ Examples: >
:let s = line(".")[4:] " from the fifth byte to the end
:let s = s[:-3] " remove last two bytes
<
- *sublist* *slice*
+ *slice*
If expr8 is a |List| this results in a new |List| with the items indicated by
the indexes expr1a and expr1b. This works like with a String, as explained
-just above, except that indexes out of range cause an error. Examples: >
+just above. Also see |sublist| below. Examples: >
:let l = mylist[:3] " first four items
:let l = mylist[4:4] " List with one item
:let l = mylist[:] " shallow copy of a List
@@ -8221,7 +8221,7 @@ See |:verbose-cmd| for more information.
: let x += 1
: return x
: endfunction
- : return function('Bar')
+ : return funcref('Bar')
:endfunction
:let F = Foo()
diff --git a/runtime/doc/farsi.txt b/runtime/doc/farsi.txt
index b85c0a357c..a824c469b0 100644
--- a/runtime/doc/farsi.txt
+++ b/runtime/doc/farsi.txt
@@ -1,4 +1,4 @@
-*farsi.txt* For Vim version 7.4. Last change: 2010 Aug 07
+*farsi.txt* Nvim
VIM REFERENCE MANUAL by Mortaza Ghassab Shiran
diff --git a/runtime/doc/filetype.txt b/runtime/doc/filetype.txt
index d15815191e..4c7360c88e 100644
--- a/runtime/doc/filetype.txt
+++ b/runtime/doc/filetype.txt
@@ -1,4 +1,4 @@
-*filetype.txt* For Vim version 7.4. Last change: 2016 Jun 20
+*filetype.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
diff --git a/runtime/doc/fold.txt b/runtime/doc/fold.txt
index 680e3270f2..4826a65d7b 100644
--- a/runtime/doc/fold.txt
+++ b/runtime/doc/fold.txt
@@ -1,4 +1,4 @@
-*fold.txt* For Vim version 7.4. Last change: 2016 Jan 02
+*fold.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
diff --git a/runtime/doc/ft_ada.txt b/runtime/doc/ft_ada.txt
index 1e81acff67..94d97b481a 100644
--- a/runtime/doc/ft_ada.txt
+++ b/runtime/doc/ft_ada.txt
@@ -1,4 +1,4 @@
-*ft_ada.txt* For Vim version 7.4. Last change: 2010 Jul 20
+*ft_ada.txt* Nvim
ADA FILE TYPE PLUG-INS REFERENCE MANUAL~
diff --git a/runtime/doc/ft_sql.txt b/runtime/doc/ft_sql.txt
index 75c55269ef..29268f5753 100644
--- a/runtime/doc/ft_sql.txt
+++ b/runtime/doc/ft_sql.txt
@@ -1,4 +1,4 @@
-*ft_sql.txt* For Vim version 7.4. Last change: 2013 May 15
+*ft_sql.txt* Nvim
by David Fishburn
diff --git a/runtime/doc/gui.txt b/runtime/doc/gui.txt
index 1e8bb408d9..12b86e5d73 100644
--- a/runtime/doc/gui.txt
+++ b/runtime/doc/gui.txt
@@ -1,4 +1,4 @@
-*gui.txt* For Vim version 7.4. Last change: 2014 Mar 08
+*gui.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
diff --git a/runtime/doc/hebrew.txt b/runtime/doc/hebrew.txt
index 7bc8f02e7f..642d80adc7 100644
--- a/runtime/doc/hebrew.txt
+++ b/runtime/doc/hebrew.txt
@@ -1,4 +1,4 @@
-*hebrew.txt* For Vim version 7.4. Last change: 2007 Jun 14
+*hebrew.txt* Nvim
VIM REFERENCE MANUAL by Ron Aaron (and Avner Lottem)
diff --git a/runtime/doc/help.txt b/runtime/doc/help.txt
index b33fb50c06..f71f46bad3 100644
--- a/runtime/doc/help.txt
+++ b/runtime/doc/help.txt
@@ -1,4 +1,4 @@
-*help.txt* For Vim version 7.4. Last change: 2016 Mar 31
+*help.txt* Nvim
VIM - main help file
k
diff --git a/runtime/doc/helphelp.txt b/runtime/doc/helphelp.txt
index ad1611133a..6741efabd8 100644
--- a/runtime/doc/helphelp.txt
+++ b/runtime/doc/helphelp.txt
@@ -1,4 +1,4 @@
-*helphelp.txt* For Vim version 7.4. Last change: 2016 Apr 01
+*helphelp.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
diff --git a/runtime/doc/howto.txt b/runtime/doc/howto.txt
index 03ae3dbd8d..33c8552463 100644
--- a/runtime/doc/howto.txt
+++ b/runtime/doc/howto.txt
@@ -1,4 +1,4 @@
-*howto.txt* For Vim version 7.4. Last change: 2006 Apr 02
+*howto.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
diff --git a/runtime/doc/if_cscop.txt b/runtime/doc/if_cscop.txt
index 7482f5eebb..3ce1575c99 100644
--- a/runtime/doc/if_cscop.txt
+++ b/runtime/doc/if_cscop.txt
@@ -1,4 +1,4 @@
-*if_cscop.txt* For Vim version 7.4. Last change: 2011 Jun 12
+*if_cscop.txt* Nvim
VIM REFERENCE MANUAL by Andy Kahn
diff --git a/runtime/doc/if_pyth.txt b/runtime/doc/if_pyth.txt
index b6fe234de4..f2a7d91bb7 100644
--- a/runtime/doc/if_pyth.txt
+++ b/runtime/doc/if_pyth.txt
@@ -1,4 +1,4 @@
-*if_pyth.txt* For Vim version 7.4. Last change: 2014 Jul 23
+*if_pyth.txt* Nvim
VIM REFERENCE MANUAL by Paul Moore
diff --git a/runtime/doc/indent.txt b/runtime/doc/indent.txt
index 496ccbc703..4f4b39f559 100644
--- a/runtime/doc/indent.txt
+++ b/runtime/doc/indent.txt
@@ -1,4 +1,4 @@
-*indent.txt* For Vim version 7.4. Last change: 2014 Dec 06
+*indent.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
diff --git a/runtime/doc/index.txt b/runtime/doc/index.txt
index cedf0266d6..bab15bcbb6 100644
--- 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* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
diff --git a/runtime/doc/insert.txt b/runtime/doc/insert.txt
index 2d3eaafe63..8b8c05c070 100644
--- a/runtime/doc/insert.txt
+++ b/runtime/doc/insert.txt
@@ -1,4 +1,4 @@
-*insert.txt* For Vim version 7.4. Last change: 2016 Jan 31
+*insert.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
diff --git a/runtime/doc/intro.txt b/runtime/doc/intro.txt
index 786097dd74..a5f9106bb0 100644
--- a/runtime/doc/intro.txt
+++ b/runtime/doc/intro.txt
@@ -1,4 +1,4 @@
-*intro.txt* For Vim version 7.4. Last change: 2015 Jan 20
+*intro.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
diff --git a/runtime/doc/job_control.txt b/runtime/doc/job_control.txt
index 1aa7ce06d6..40fd83b52c 100644
--- a/runtime/doc/job_control.txt
+++ b/runtime/doc/job_control.txt
@@ -1,4 +1,4 @@
-*job_control.txt* For Nvim. {Nvim}
+*job_control.txt* Nvim
NVIM REFERENCE MANUAL by Thiago de Arruda
diff --git a/runtime/doc/map.txt b/runtime/doc/map.txt
index 53b152dc06..db349eca71 100644
--- a/runtime/doc/map.txt
+++ b/runtime/doc/map.txt
@@ -1,4 +1,4 @@
-*map.txt* For Vim version 7.4. Last change: 2016 Jul 06
+*map.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1411,9 +1411,11 @@ The valid escape sequences are
<mods> The command modifiers, if specified. Otherwise, expands to
nothing. Supported modifiers are |:aboveleft|, |:belowright|,
|:botright|, |:browse|, |:confirm|, |:hide|, |:keepalt|,
- |:keepjumps|, |:keepmarks|, |:keeppatterns|, |:lockmarks|,
- |:noswapfile|, |:silent|, |:tab|, |:topleft|, |:verbose|, and
- |:vertical|.
+ |:keepjumps|, |:keepmarks|, |:keeppatterns|, |:leftabove|,
+ |:lockmarks|, |:noswapfile| |:rightbelow|, |:silent|, |:tab|,
+ |:topleft|, |:verbose|, and |:vertical|.
+ Note that these are not yet supported: |:noautocmd|,
+ |:sandbox| and |:unsilent|.
Examples: >
command! -nargs=+ -complete=file MyEdit
\ for f in expand(<q-args>, 0, 1) |
diff --git a/runtime/doc/mbyte.txt b/runtime/doc/mbyte.txt
index 355a1da423..708c05e241 100644
--- a/runtime/doc/mbyte.txt
+++ b/runtime/doc/mbyte.txt
@@ -1,4 +1,4 @@
-*mbyte.txt* For Vim version 7.4. Last change: 2016 Jul 21
+*mbyte.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar et al.
diff --git a/runtime/doc/message.txt b/runtime/doc/message.txt
index b3a4bf9d72..d0bdba41ab 100644
--- a/runtime/doc/message.txt
+++ b/runtime/doc/message.txt
@@ -1,4 +1,4 @@
-*message.txt* For Vim version 7.4. Last change: 2016 Jul 16
+*message.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
diff --git a/runtime/doc/mlang.txt b/runtime/doc/mlang.txt
index a2be3cfd49..187d8f029b 100644
--- a/runtime/doc/mlang.txt
+++ b/runtime/doc/mlang.txt
@@ -1,4 +1,4 @@
-*mlang.txt* For Vim version 7.4. Last change: 2016 Jan 16
+*mlang.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
diff --git a/runtime/doc/motion.txt b/runtime/doc/motion.txt
index be3170cf92..a89fabe107 100644
--- a/runtime/doc/motion.txt
+++ b/runtime/doc/motion.txt
@@ -1,4 +1,4 @@
-*motion.txt* For Vim version 7.4. Last change: 2016 Jul 12
+*motion.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
diff --git a/runtime/doc/nvim_terminal_emulator.txt b/runtime/doc/nvim_terminal_emulator.txt
index 0954dcb5a7..85325d3470 100644
--- a/runtime/doc/nvim_terminal_emulator.txt
+++ b/runtime/doc/nvim_terminal_emulator.txt
@@ -1,4 +1,4 @@
-*terminal_emulator.txt* {Nvim}
+*terminal_emulator.txt* Nvim
NVIM REFERENCE MANUAL by Thiago de Arruda
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 29de35805e..1cb14f7771 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt* For Vim version 7.4. Last change: 2016 Jul 12
+*options.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
diff --git a/runtime/doc/os_win32.txt b/runtime/doc/os_win32.txt
index 5dc276c9df..cd8ad3465a 100644
--- a/runtime/doc/os_win32.txt
+++ b/runtime/doc/os_win32.txt
@@ -1,4 +1,4 @@
-*os_win32.txt* For Vim version 7.4. Last change: 2016 Mar 05
+*os_win32.txt* Nvim
VIM REFERENCE MANUAL by George Reilly
diff --git a/runtime/doc/pattern.txt b/runtime/doc/pattern.txt
index f3f5bcbd66..1d0f42c222 100644
--- a/runtime/doc/pattern.txt
+++ b/runtime/doc/pattern.txt
@@ -1,4 +1,4 @@
-*pattern.txt* For Vim version 7.4. Last change: 2016 Jun 08
+*pattern.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
diff --git a/runtime/doc/pi_gzip.txt b/runtime/doc/pi_gzip.txt
index df0ba5e52e..5b7a903f9c 100644
--- a/runtime/doc/pi_gzip.txt
+++ b/runtime/doc/pi_gzip.txt
@@ -1,4 +1,4 @@
-*pi_gzip.txt* For Vim version 7.4. Last change: 2012 Jul 19
+*pi_gzip.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
diff --git a/runtime/doc/pi_msgpack.txt b/runtime/doc/pi_msgpack.txt
index d695ac42cb..e9f77e70b0 100644
--- a/runtime/doc/pi_msgpack.txt
+++ b/runtime/doc/pi_msgpack.txt
@@ -1,4 +1,4 @@
-*pi_msgpack.txt* For NeoVim version 0.1.
+*pi_msgpack.txt* Nvim
Author: Nikolay Pavlov <kp-pav@yandex.ru>
Copyright: (c) 2015 by Nikolay Pavlov
diff --git a/runtime/doc/pi_netrw.txt b/runtime/doc/pi_netrw.txt
index f740143c61..d0cfa70582 100644
--- a/runtime/doc/pi_netrw.txt
+++ b/runtime/doc/pi_netrw.txt
@@ -1,4 +1,4 @@
-*pi_netrw.txt* For Vim version 7.4. Last change: 2016 Apr 20
+*pi_netrw.txt* Nvim
------------------------------------------------
NETRW REFERENCE MANUAL by Charles E. Campbell
diff --git a/runtime/doc/pi_paren.txt b/runtime/doc/pi_paren.txt
index 534b3add29..4b425c6cbb 100644
--- a/runtime/doc/pi_paren.txt
+++ b/runtime/doc/pi_paren.txt
@@ -1,4 +1,4 @@
-*pi_paren.txt* For Vim version 7.4. Last change: 2013 May 08
+*pi_paren.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
diff --git a/runtime/doc/pi_spec.txt b/runtime/doc/pi_spec.txt
index 650d1d369b..f4949db2af 100644
--- a/runtime/doc/pi_spec.txt
+++ b/runtime/doc/pi_spec.txt
@@ -1,4 +1,4 @@
-*pi_spec.txt* For Vim version 7.4. Last change: 2006 Apr 24
+*pi_spec.txt* Nvim
by Gustavo Niemeyer ~
diff --git a/runtime/doc/pi_tar.txt b/runtime/doc/pi_tar.txt
index b2fab290b3..a189d006dd 100644
--- a/runtime/doc/pi_tar.txt
+++ b/runtime/doc/pi_tar.txt
@@ -1,4 +1,4 @@
-*pi_tar.txt* For Vim version 7.4. Last change: 2013 Apr 17
+*pi_tar.txt* Nvim
+====================+
| Tar File Interface |
diff --git a/runtime/doc/pi_zip.txt b/runtime/doc/pi_zip.txt
index 0a081f24d3..64f0be1a08 100644
--- a/runtime/doc/pi_zip.txt
+++ b/runtime/doc/pi_zip.txt
@@ -1,4 +1,4 @@
-*pi_zip.txt* For Vim version 7.4. Last change: 2013 Apr 17
+*pi_zip.txt* Nvim
+====================+
| Zip File Interface |
diff --git a/runtime/doc/print.txt b/runtime/doc/print.txt
index 7565d1e976..c5470d1469 100644
--- a/runtime/doc/print.txt
+++ b/runtime/doc/print.txt
@@ -1,4 +1,4 @@
-*print.txt* For Vim version 7.4. Last change: 2010 Jul 20
+*print.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
diff --git a/runtime/doc/provider.txt b/runtime/doc/provider.txt
index ac4d7361f4..eaa23de093 100644
--- a/runtime/doc/provider.txt
+++ b/runtime/doc/provider.txt
@@ -1,4 +1,4 @@
-*provider.txt* {Nvim}
+*provider.txt* Nvim
NVIM REFERENCE MANUAL by Thiago de Arruda
diff --git a/runtime/doc/quickfix.txt b/runtime/doc/quickfix.txt
index ec0b2cfef6..1bc5c31281 100644
--- a/runtime/doc/quickfix.txt
+++ b/runtime/doc/quickfix.txt
@@ -1,4 +1,4 @@
-*quickfix.txt* For Vim version 7.4. Last change: 2016 Jul 17
+*quickfix.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
diff --git a/runtime/doc/quickref.txt b/runtime/doc/quickref.txt
index 2e2bec7637..7de0bba118 100644
--- a/runtime/doc/quickref.txt
+++ b/runtime/doc/quickref.txt
@@ -1,4 +1,4 @@
-*quickref.txt* For Vim version 7.4. Last change: 2016 Aug 12
+*quickref.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
diff --git a/runtime/doc/recover.txt b/runtime/doc/recover.txt
index e09138b2f5..8eded487c0 100644
--- a/runtime/doc/recover.txt
+++ b/runtime/doc/recover.txt
@@ -1,4 +1,4 @@
-*recover.txt* For Vim version 7.4. Last change: 2014 Mar 27
+*recover.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
diff --git a/runtime/doc/remote.txt b/runtime/doc/remote.txt
index 933ab3a444..b99aa6a859 100644
--- a/runtime/doc/remote.txt
+++ b/runtime/doc/remote.txt
@@ -1,4 +1,4 @@
-*remote.txt* For Vim version 7.4. Last change: 2015 Mar 01
+*remote.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
diff --git a/runtime/doc/remote_plugin.txt b/runtime/doc/remote_plugin.txt
index dddc021d68..3c682e83f3 100644
--- a/runtime/doc/remote_plugin.txt
+++ b/runtime/doc/remote_plugin.txt
@@ -1,4 +1,4 @@
-*remote_plugin.txt* For Nvim. {Nvim}
+*remote_plugin.txt* Nvim
NVIM REFERENCE MANUAL by Thiago de Arruda
diff --git a/runtime/doc/repeat.txt b/runtime/doc/repeat.txt
index ef98556260..b34d081ba9 100644
--- a/runtime/doc/repeat.txt
+++ b/runtime/doc/repeat.txt
@@ -1,4 +1,4 @@
-*repeat.txt* For Vim version 7.4. Last change: 2016 Jul 21
+*repeat.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
diff --git a/runtime/doc/rileft.txt b/runtime/doc/rileft.txt
index e4e495bb18..ba9bb1eba7 100644
--- a/runtime/doc/rileft.txt
+++ b/runtime/doc/rileft.txt
@@ -1,4 +1,4 @@
-*rileft.txt* For Vim version 7.4. Last change: 2006 Apr 24
+*rileft.txt* Nvim
VIM REFERENCE MANUAL by Avner Lottem
diff --git a/runtime/doc/russian.txt b/runtime/doc/russian.txt
index 36f3d0b715..7dd267ad50 100644
--- a/runtime/doc/russian.txt
+++ b/runtime/doc/russian.txt
@@ -1,4 +1,4 @@
-*russian.txt* For Vim version 7.4. Last change: 2006 Apr 24
+*russian.txt* Nvim
VIM REFERENCE MANUAL by Vassily Ragosin
diff --git a/runtime/doc/scroll.txt b/runtime/doc/scroll.txt
index a9492fc169..fba5275f47 100644
--- a/runtime/doc/scroll.txt
+++ b/runtime/doc/scroll.txt
@@ -1,4 +1,4 @@
-*scroll.txt* For Vim version 7.4. Last change: 2006 Aug 27
+*scroll.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
diff --git a/runtime/doc/sign.txt b/runtime/doc/sign.txt
index fd1fe8dce3..e5a6b0be39 100644
--- a/runtime/doc/sign.txt
+++ b/runtime/doc/sign.txt
@@ -1,4 +1,4 @@
-*sign.txt* For Vim version 7.4. Last change: 2016 Aug 12
+*sign.txt* Nvim
VIM REFERENCE MANUAL by Gordon Prieur
diff --git a/runtime/doc/sponsor.txt b/runtime/doc/sponsor.txt
index a99d66d843..cfdf21abea 100644
--- a/runtime/doc/sponsor.txt
+++ b/runtime/doc/sponsor.txt
@@ -1,4 +1,4 @@
-*sponsor.txt* For Vim version 7.4. Last change: 2008 Jun 21
+*sponsor.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
diff --git a/runtime/doc/starting.txt b/runtime/doc/starting.txt
index 2c024d3c75..daf6ad9ca2 100644
--- a/runtime/doc/starting.txt
+++ b/runtime/doc/starting.txt
@@ -1,4 +1,4 @@
-*starting.txt* For Vim version 7.4. Last change: 2016 Jul 03
+*starting.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -457,6 +457,8 @@ accordingly. Vim proceeds in this order:
searched for the "plugin" sub-directory and all files ending in ".vim"
will be sourced (in alphabetical order per directory), also in
subdirectories.
+ However, directories in 'runtimepath' ending in "after" are skipped
+ here and only loaded after packages, see below.
Loading plugins won't be done when:
- The 'loadplugins' option was reset in a vimrc file.
- The |--noplugin| command line argument is used.
@@ -464,13 +466,18 @@ accordingly. Vim proceeds in this order:
- When Vim was compiled without the |+eval| feature.
Note that using "-c 'set noloadplugins'" doesn't work, because the
commands from the command line have not been executed yet. You can
- use "--cmd 'set noloadplugins'" |--cmd|.
+ use "--cmd 'set noloadplugins'" or "--cmd 'set loadplugins'" |--cmd|.
Packages are loaded. These are plugins, as above, but found in the
"start" directory of each entry in 'packpath'. Every plugin directory
found is added in 'runtimepath' and then the plugins are sourced. See
|packages|.
+ The plugins scripts are loaded, as above, but now only the directories
+ ending in "after" are used. Note that 'runtimepath' will have changed
+ if packages have been found, but that should not add a directory
+ ending in "after".
+
7. Set 'shellpipe' and 'shellredir'
The 'shellpipe' and 'shellredir' options are set according to the
value of the 'shell' option, unless they have been set before.
diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt
index e59f567826..b0b4cabd65 100644
--- 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* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
diff --git a/runtime/doc/tabpage.txt b/runtime/doc/tabpage.txt
index 4ab5b3c759..c299d43927 100644
--- a/runtime/doc/tabpage.txt
+++ b/runtime/doc/tabpage.txt
@@ -1,4 +1,4 @@
-*tabpage.txt* For Vim version 7.4. Last change: 2015 Apr 18
+*tabpage.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
diff --git a/runtime/doc/tagsrch.txt b/runtime/doc/tagsrch.txt
index 047abb42cc..2c090a66fa 100644
--- a/runtime/doc/tagsrch.txt
+++ b/runtime/doc/tagsrch.txt
@@ -1,4 +1,4 @@
-*tagsrch.txt* For Vim version 7.4. Last change: 2013 Oct 01
+*tagsrch.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
diff --git a/runtime/doc/term.txt b/runtime/doc/term.txt
index 137d3a06db..56f57a3819 100644
--- a/runtime/doc/term.txt
+++ b/runtime/doc/term.txt
@@ -1,4 +1,4 @@
-*term.txt* For Vim version 7.4. Last change: 2015 Nov 24
+*term.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
diff --git a/runtime/doc/tips.txt b/runtime/doc/tips.txt
index 9d2eb3deba..e8dfbaea0b 100644
--- a/runtime/doc/tips.txt
+++ b/runtime/doc/tips.txt
@@ -1,4 +1,4 @@
-*tips.txt* For Vim version 7.4. Last change: 2009 Nov 07
+*tips.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
diff --git a/runtime/doc/uganda.txt b/runtime/doc/uganda.txt
index c228c65542..cdd677cbd5 100644
--- a/runtime/doc/uganda.txt
+++ b/runtime/doc/uganda.txt
@@ -1,4 +1,4 @@
-*uganda.txt* For Vim version 7.4. Last change: 2013 Jul 06
+*uganda.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
diff --git a/runtime/doc/undo.txt b/runtime/doc/undo.txt
index c6c70ab6d2..e40be6b250 100644
--- a/runtime/doc/undo.txt
+++ b/runtime/doc/undo.txt
@@ -1,4 +1,4 @@
-*undo.txt* For Vim version 7.4. Last change: 2014 May 24
+*undo.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
diff --git a/runtime/doc/usr_01.txt b/runtime/doc/usr_01.txt
index 2fa15331df..f3a5728d72 100644
--- a/runtime/doc/usr_01.txt
+++ b/runtime/doc/usr_01.txt
@@ -1,4 +1,4 @@
-*usr_01.txt* For Vim version 7.4. Last change: 2010 Nov 03
+*usr_01.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
diff --git a/runtime/doc/usr_02.txt b/runtime/doc/usr_02.txt
index c10643940d..b32d84080c 100644
--- a/runtime/doc/usr_02.txt
+++ b/runtime/doc/usr_02.txt
@@ -1,4 +1,4 @@
-*usr_02.txt* For Vim version 7.4. Last change: 2016 Jan 16
+*usr_02.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
diff --git a/runtime/doc/usr_03.txt b/runtime/doc/usr_03.txt
index 943d7b528c..f2e523e784 100644
--- a/runtime/doc/usr_03.txt
+++ b/runtime/doc/usr_03.txt
@@ -1,4 +1,4 @@
-*usr_03.txt* For Vim version 7.4. Last change: 2016 Jan 05
+*usr_03.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
diff --git a/runtime/doc/usr_04.txt b/runtime/doc/usr_04.txt
index 59ba0b3e73..e02a50e494 100644
--- a/runtime/doc/usr_04.txt
+++ b/runtime/doc/usr_04.txt
@@ -1,4 +1,4 @@
-*usr_04.txt* For Vim version 7.4. Last change: 2014 Aug 29
+*usr_04.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
diff --git a/runtime/doc/usr_05.txt b/runtime/doc/usr_05.txt
index f920fd4591..9e7f06ab63 100644
--- a/runtime/doc/usr_05.txt
+++ b/runtime/doc/usr_05.txt
@@ -1,4 +1,4 @@
-*usr_05.txt* For Vim version 7.4. Last change: 2016 Mar 28
+*usr_05.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
diff --git a/runtime/doc/usr_06.txt b/runtime/doc/usr_06.txt
index b4b495ff9f..fb02fe2683 100644
--- a/runtime/doc/usr_06.txt
+++ b/runtime/doc/usr_06.txt
@@ -1,4 +1,4 @@
-*usr_06.txt* For Vim version 7.4. Last change: 2009 Oct 28
+*usr_06.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
diff --git a/runtime/doc/usr_07.txt b/runtime/doc/usr_07.txt
index 50e4781cd7..3fc600d977 100644
--- a/runtime/doc/usr_07.txt
+++ b/runtime/doc/usr_07.txt
@@ -1,4 +1,4 @@
-*usr_07.txt* For Vim version 7.4. Last change: 2006 Apr 24
+*usr_07.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
diff --git a/runtime/doc/usr_08.txt b/runtime/doc/usr_08.txt
index d1f3fbd49d..575921fc4f 100644
--- a/runtime/doc/usr_08.txt
+++ b/runtime/doc/usr_08.txt
@@ -1,4 +1,4 @@
-*usr_08.txt* For Vim version 7.4. Last change: 2014 Jul 06
+*usr_08.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
diff --git a/runtime/doc/usr_09.txt b/runtime/doc/usr_09.txt
index d68d734b8f..1ff3d93329 100644
--- a/runtime/doc/usr_09.txt
+++ b/runtime/doc/usr_09.txt
@@ -1,4 +1,4 @@
-*usr_09.txt* For Vim version 7.4. Last change: 2006 Apr 24
+*usr_09.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
diff --git a/runtime/doc/usr_10.txt b/runtime/doc/usr_10.txt
index bf7ba18222..044cb1582b 100644
--- a/runtime/doc/usr_10.txt
+++ b/runtime/doc/usr_10.txt
@@ -1,4 +1,4 @@
-*usr_10.txt* For Vim version 7.4. Last change: 2006 Nov 05
+*usr_10.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
diff --git a/runtime/doc/usr_11.txt b/runtime/doc/usr_11.txt
index 1a72c300d7..42009519df 100644
--- a/runtime/doc/usr_11.txt
+++ b/runtime/doc/usr_11.txt
@@ -1,4 +1,4 @@
-*usr_11.txt* For Vim version 7.4. Last change: 2010 Jul 20
+*usr_11.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
diff --git a/runtime/doc/usr_12.txt b/runtime/doc/usr_12.txt
index f64a230576..9078f4748a 100644
--- a/runtime/doc/usr_12.txt
+++ b/runtime/doc/usr_12.txt
@@ -1,4 +1,4 @@
-*usr_12.txt* For Vim version 7.4. Last change: 2007 May 11
+*usr_12.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
diff --git a/runtime/doc/usr_20.txt b/runtime/doc/usr_20.txt
index 5f0a660187..3b8eeae175 100644
--- a/runtime/doc/usr_20.txt
+++ b/runtime/doc/usr_20.txt
@@ -1,4 +1,4 @@
-*usr_20.txt* For Vim version 7.4. Last change: 2006 Apr 24
+*usr_20.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
diff --git a/runtime/doc/usr_21.txt b/runtime/doc/usr_21.txt
index f99c3263d0..cfb8c90027 100644
--- a/runtime/doc/usr_21.txt
+++ b/runtime/doc/usr_21.txt
@@ -1,4 +1,4 @@
-*usr_21.txt* For Vim version 7.4. Last change: 2012 Nov 02
+*usr_21.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
diff --git a/runtime/doc/usr_22.txt b/runtime/doc/usr_22.txt
index cff8e9db1e..8d11be11b2 100644
--- a/runtime/doc/usr_22.txt
+++ b/runtime/doc/usr_22.txt
@@ -1,4 +1,4 @@
-*usr_22.txt* For Vim version 7.4. Last change: 2012 Nov 15
+*usr_22.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
diff --git a/runtime/doc/usr_23.txt b/runtime/doc/usr_23.txt
index 4761203512..cb776d2b5c 100644
--- a/runtime/doc/usr_23.txt
+++ b/runtime/doc/usr_23.txt
@@ -1,4 +1,4 @@
-*usr_23.txt* For Vim version 7.4. Last change: 2006 Apr 24
+*usr_23.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
diff --git a/runtime/doc/usr_24.txt b/runtime/doc/usr_24.txt
index ba9d083fe0..b74ed879e0 100644
--- a/runtime/doc/usr_24.txt
+++ b/runtime/doc/usr_24.txt
@@ -1,4 +1,4 @@
-*usr_24.txt* For Vim version 7.4. Last change: 2006 Jul 23
+*usr_24.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
diff --git a/runtime/doc/usr_25.txt b/runtime/doc/usr_25.txt
index 24420353dd..ae3d3c4422 100644
--- a/runtime/doc/usr_25.txt
+++ b/runtime/doc/usr_25.txt
@@ -1,4 +1,4 @@
-*usr_25.txt* For Vim version 7.4. Last change: 2016 Mar 28
+*usr_25.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
diff --git a/runtime/doc/usr_26.txt b/runtime/doc/usr_26.txt
index e381a1df12..7b0b940da2 100644
--- a/runtime/doc/usr_26.txt
+++ b/runtime/doc/usr_26.txt
@@ -1,4 +1,4 @@
-*usr_26.txt* For Vim version 7.4. Last change: 2006 Apr 24
+*usr_26.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
diff --git a/runtime/doc/usr_27.txt b/runtime/doc/usr_27.txt
index d837610698..afea67bd0b 100644
--- a/runtime/doc/usr_27.txt
+++ b/runtime/doc/usr_27.txt
@@ -1,4 +1,4 @@
-*usr_27.txt* For Vim version 7.4. Last change: 2010 Mar 28
+*usr_27.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
diff --git a/runtime/doc/usr_28.txt b/runtime/doc/usr_28.txt
index d29b384437..24e995d9ab 100644
--- a/runtime/doc/usr_28.txt
+++ b/runtime/doc/usr_28.txt
@@ -1,4 +1,4 @@
-*usr_28.txt* For Vim version 7.4. Last change: 2008 Jun 14
+*usr_28.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
diff --git a/runtime/doc/usr_29.txt b/runtime/doc/usr_29.txt
index 9eb66ce83c..b0cb9d7e88 100644
--- a/runtime/doc/usr_29.txt
+++ b/runtime/doc/usr_29.txt
@@ -1,4 +1,4 @@
-*usr_29.txt* For Vim version 7.4. Last change: 2016 Feb 27
+*usr_29.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
diff --git a/runtime/doc/usr_30.txt b/runtime/doc/usr_30.txt
index dbac440ecc..786f2d1800 100644
--- a/runtime/doc/usr_30.txt
+++ b/runtime/doc/usr_30.txt
@@ -1,4 +1,4 @@
-*usr_30.txt* For Vim version 7.4. Last change: 2007 Nov 10
+*usr_30.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
diff --git a/runtime/doc/usr_31.txt b/runtime/doc/usr_31.txt
index 7bcf4d428a..2354e27b42 100644
--- a/runtime/doc/usr_31.txt
+++ b/runtime/doc/usr_31.txt
@@ -1,4 +1,4 @@
-*usr_31.txt* For Vim version 7.4. Last change: 2007 May 08
+*usr_31.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
diff --git a/runtime/doc/usr_32.txt b/runtime/doc/usr_32.txt
index fd58f2d517..fca802872d 100644
--- a/runtime/doc/usr_32.txt
+++ b/runtime/doc/usr_32.txt
@@ -1,4 +1,4 @@
-*usr_32.txt* For Vim version 7.4. Last change: 2010 Jul 20
+*usr_32.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
diff --git a/runtime/doc/usr_40.txt b/runtime/doc/usr_40.txt
index d3cc792c59..4092af703e 100644
--- a/runtime/doc/usr_40.txt
+++ b/runtime/doc/usr_40.txt
@@ -1,4 +1,4 @@
-*usr_40.txt* For Vim version 7.4. Last change: 2013 Aug 05
+*usr_40.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
diff --git a/runtime/doc/usr_41.txt b/runtime/doc/usr_41.txt
index 191b0871f4..77c238ae97 100644
--- a/runtime/doc/usr_41.txt
+++ b/runtime/doc/usr_41.txt
@@ -1,4 +1,4 @@
-*usr_41.txt* For Vim version 7.4. Last change: 2016 Aug 07
+*usr_41.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
diff --git a/runtime/doc/usr_42.txt b/runtime/doc/usr_42.txt
index c8eac5f062..ad04555f8c 100644
--- a/runtime/doc/usr_42.txt
+++ b/runtime/doc/usr_42.txt
@@ -1,4 +1,4 @@
-*usr_42.txt* For Vim version 7.4. Last change: 2008 May 05
+*usr_42.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
diff --git a/runtime/doc/usr_43.txt b/runtime/doc/usr_43.txt
index bab446af3c..765a525692 100644
--- a/runtime/doc/usr_43.txt
+++ b/runtime/doc/usr_43.txt
@@ -1,4 +1,4 @@
-*usr_43.txt* For Vim version 7.4. Last change: 2015 Oct 23
+*usr_43.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
diff --git a/runtime/doc/usr_44.txt b/runtime/doc/usr_44.txt
index a91f92ff4e..fcd6b71219 100644
--- a/runtime/doc/usr_44.txt
+++ b/runtime/doc/usr_44.txt
@@ -1,4 +1,4 @@
-*usr_44.txt* For Vim version 7.4. Last change: 2008 Dec 28
+*usr_44.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
diff --git a/runtime/doc/usr_45.txt b/runtime/doc/usr_45.txt
index 34b607cbd2..9bbbe82113 100644
--- a/runtime/doc/usr_45.txt
+++ b/runtime/doc/usr_45.txt
@@ -1,4 +1,4 @@
-*usr_45.txt* For Vim version 7.4. Last change: 2008 Nov 15
+*usr_45.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
diff --git a/runtime/doc/usr_toc.txt b/runtime/doc/usr_toc.txt
index e021b806e3..0dce3eac83 100644
--- a/runtime/doc/usr_toc.txt
+++ b/runtime/doc/usr_toc.txt
@@ -1,4 +1,4 @@
-*usr_toc.txt* For Vim version 7.4. Last change: 2016 Mar 25
+*usr_toc.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
diff --git a/runtime/doc/various.txt b/runtime/doc/various.txt
index 0ac294ec37..fd81064d5b 100644
--- a/runtime/doc/various.txt
+++ b/runtime/doc/various.txt
@@ -1,4 +1,4 @@
-*various.txt* For Vim version 7.4. Last change: 2016 Jul 09
+*various.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -331,6 +331,7 @@ N *+gettext* message translations |multi-lang|
N *+insert_expand* |insert_expand| Insert mode completion
N *+jumplist* |jumplist|
B *+keymap* |'keymap'|
+N *+lambda* |lambda| and |closure|
B *+langmap* |'langmap'|
N *+libcall* |libcall()|
N *+linebreak* |'linebreak'|, |'breakat'| and |'showbreak'|
diff --git a/runtime/doc/vi_diff.txt b/runtime/doc/vi_diff.txt
index 54ef8fecb2..1a108caeaf 100644
--- 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* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
diff --git a/runtime/doc/vim_diff.txt b/runtime/doc/vim_diff.txt
index d7d31b5853..11dde27868 100644
--- a/runtime/doc/vim_diff.txt
+++ b/runtime/doc/vim_diff.txt
@@ -1,4 +1,4 @@
-*vim_diff.txt* For Nvim. {Nvim}
+*vim_diff.txt* Nvim
NVIM REFERENCE MANUAL
diff --git a/runtime/doc/visual.txt b/runtime/doc/visual.txt
index 6810d50c11..9bad1a24a0 100644
--- a/runtime/doc/visual.txt
+++ b/runtime/doc/visual.txt
@@ -1,4 +1,4 @@
-*visual.txt* For Vim version 7.4. Last change: 2014 Mar 23
+*visual.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
diff --git a/runtime/doc/windows.txt b/runtime/doc/windows.txt
index 5b94626e36..4ed7b68194 100644
--- a/runtime/doc/windows.txt
+++ b/runtime/doc/windows.txt
@@ -1,4 +1,4 @@
-*windows.txt* For Vim version 7.4. Last change: 2016 Jun 10
+*windows.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -249,7 +249,7 @@ window will appear.
far left and occupies the full height of the Vim window.
Doesn't work for |:execute| and |:normal|.
- *:botright*
+ *:bo* *:botright*
:bo[tright] {cmd}
Execute {cmd}. If it contains a command that splits a window,
it will appear at the bottom and occupy the full width of the
diff --git a/runtime/syntax/php.vim b/runtime/syntax/php.vim
index fc257418d0..ae3f82d64a 100644
--- a/runtime/syntax/php.vim
+++ b/runtime/syntax/php.vim
@@ -1,7 +1,7 @@
" Vim syntax file
-" Language: php PHP 3/4/5
+" Language: php PHP 3/4/5/7
" Maintainer: Jason Woofenden <jason@jasonwoof.com>
-" Last Change: Apr 18, 2016
+" Last Change: Jul 27, 2016
" URL: https://jasonwoof.com/gitweb/?p=vim-syntax.git;a=blob;f=php.vim;hb=HEAD
" Former Maintainers: Peter Hodge <toomuchphp-vim@yahoo.com>
" Debian VIM Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
@@ -377,29 +377,29 @@ syn keyword phpTodo todo fixme xxx contained
" Comment
if exists("php_parent_error_open")
- syn region phpComment start="/\*" end="\*/" contained contains=phpTodo
+ syn region phpComment start="/\*" end="\*/" contained contains=phpTodo,@Spell
else
- syn region phpComment start="/\*" end="\*/" contained contains=phpTodo extend
+ syn region phpComment start="/\*" end="\*/" contained contains=phpTodo,@Spell extend
endif
if version >= 600
- syn match phpComment "#.\{-}\(?>\|$\)\@=" contained contains=phpTodo
- syn match phpComment "//.\{-}\(?>\|$\)\@=" contained contains=phpTodo
+ syn match phpComment "#.\{-}\(?>\|$\)\@=" contained contains=phpTodo,@Spell
+ syn match phpComment "//.\{-}\(?>\|$\)\@=" contained contains=phpTodo,@Spell
else
- syn match phpComment "#.\{-}$" contained contains=phpTodo
- syn match phpComment "#.\{-}?>"me=e-2 contained contains=phpTodo
- syn match phpComment "//.\{-}$" contained contains=phpTodo
- syn match phpComment "//.\{-}?>"me=e-2 contained contains=phpTodo
+ syn match phpComment "#.\{-}$" contained contains=phpTodo,@Spell
+ syn match phpComment "#.\{-}?>"me=e-2 contained contains=phpTodo,@Spell
+ syn match phpComment "//.\{-}$" contained contains=phpTodo,@Spell
+ syn match phpComment "//.\{-}?>"me=e-2 contained contains=phpTodo,@Spell
endif
" String
if exists("php_parent_error_open")
- syn region phpStringDouble matchgroup=phpStringDouble start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=@phpAddStrings,phpBackslashSequences,phpBackslashDoubleQuote,@phpInterpDouble contained keepend
+ syn region phpStringDouble matchgroup=phpStringDouble start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=@phpAddStrings,phpBackslashSequences,phpBackslashDoubleQuote,@phpInterpDouble,@Spell contained keepend
syn region phpBacktick matchgroup=phpBacktick start=+`+ skip=+\\\\\|\\"+ end=+`+ contains=@phpAddStrings,phpIdentifier,phpBackslashSequences,phpIdentifierSimply,phpIdentifierComplex contained keepend
- syn region phpStringSingle matchgroup=phpStringSingle start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=@phpAddStrings,phpBackslashSingleQuote contained keepend
+ syn region phpStringSingle matchgroup=phpStringSingle start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=@phpAddStrings,phpBackslashSingleQuote,@Spell contained keepend
else
- syn region phpStringDouble matchgroup=phpStringDouble start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=@phpAddStrings,phpBackslashSequences,phpBackslashDoubleQuote,@phpInterpDouble contained extend keepend
+ syn region phpStringDouble matchgroup=phpStringDouble start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=@phpAddStrings,phpBackslashSequences,phpBackslashDoubleQuote,@phpInterpDouble,@Spell contained extend keepend
syn region phpBacktick matchgroup=phpBacktick start=+`+ skip=+\\\\\|\\"+ end=+`+ contains=@phpAddStrings,phpIdentifier,phpBackslashSequences,phpIdentifierSimply,phpIdentifierComplex contained extend keepend
- syn region phpStringSingle matchgroup=phpStringSingle start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=@phpAddStrings,phpBackslashSingleQuote contained keepend extend
+ syn region phpStringSingle matchgroup=phpStringSingle start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=@phpAddStrings,phpBackslashSingleQuote,@Spell contained keepend extend
endif
" HereDoc and NowDoc
@@ -407,18 +407,18 @@ if version >= 600
syn case match
" HereDoc
- syn region phpHereDoc matchgroup=Delimiter start="\(<<<\)\@<=\(\"\=\)\z(\I\i*\)\2$" end="^\z1\(;\=$\)\@=" contained contains=phpIdentifier,phpIdentifierSimply,phpIdentifierComplex,phpBackslashSequences,phpMethodsVar keepend extend
+ syn region phpHereDoc matchgroup=Delimiter start="\(<<<\)\@<=\(\"\=\)\z(\I\i*\)\2$" end="^\z1\(;\=$\)\@=" contained contains=phpIdentifier,phpIdentifierSimply,phpIdentifierComplex,phpBackslashSequences,phpMethodsVar,@Spell keepend extend
" including HTML,JavaScript,SQL even if not enabled via options
- syn region phpHereDoc matchgroup=Delimiter start="\(<<<\)\@<=\(\"\=\)\z(\(\I\i*\)\=\(html\)\c\(\i*\)\)\2$" end="^\z1\(;\=$\)\@=" contained contains=@htmlTop,phpIdentifier,phpIdentifierSimply,phpIdentifierComplex,phpBackslashSequences,phpMethodsVar keepend extend
- syn region phpHereDoc matchgroup=Delimiter start="\(<<<\)\@<=\(\"\=\)\z(\(\I\i*\)\=\(sql\)\c\(\i*\)\)\2$" end="^\z1\(;\=$\)\@=" contained contains=@sqlTop,phpIdentifier,phpIdentifierSimply,phpIdentifierComplex,phpBackslashSequences,phpMethodsVar keepend extend
- syn region phpHereDoc matchgroup=Delimiter start="\(<<<\)\@<=\(\"\=\)\z(\(\I\i*\)\=\(javascript\)\c\(\i*\)\)\2$" end="^\z1\(;\=$\)\@=" contained contains=@htmlJavascript,phpIdentifierSimply,phpIdentifier,phpIdentifierComplex,phpBackslashSequences,phpMethodsVar keepend extend
+ syn region phpHereDoc matchgroup=Delimiter start="\(<<<\)\@<=\(\"\=\)\z(\(\I\i*\)\=\(html\)\c\(\i*\)\)\2$" end="^\z1\(;\=$\)\@=" contained contains=@htmlTop,phpIdentifier,phpIdentifierSimply,phpIdentifierComplex,phpBackslashSequences,phpMethodsVar,@Spell keepend extend
+ syn region phpHereDoc matchgroup=Delimiter start="\(<<<\)\@<=\(\"\=\)\z(\(\I\i*\)\=\(sql\)\c\(\i*\)\)\2$" end="^\z1\(;\=$\)\@=" contained contains=@sqlTop,phpIdentifier,phpIdentifierSimply,phpIdentifierComplex,phpBackslashSequences,phpMethodsVar,@Spell keepend extend
+ syn region phpHereDoc matchgroup=Delimiter start="\(<<<\)\@<=\(\"\=\)\z(\(\I\i*\)\=\(javascript\)\c\(\i*\)\)\2$" end="^\z1\(;\=$\)\@=" contained contains=@htmlJavascript,phpIdentifierSimply,phpIdentifier,phpIdentifierComplex,phpBackslashSequences,phpMethodsVar,@Spell keepend extend
" NowDoc
- syn region phpNowDoc matchgroup=Delimiter start="\(<<<\)\@<='\z(\I\i*\)'$" end="^\z1\(;\=$\)\@=" contained keepend extend
+ syn region phpNowDoc matchgroup=Delimiter start="\(<<<\)\@<='\z(\I\i*\)'$" end="^\z1\(;\=$\)\@=" contained contains=@Spell keepend extend
" including HTML,JavaScript,SQL even if not enabled via options
- syn region phpNowDoc matchgroup=Delimiter start="\(<<<\)\@<='\z(\(\I\i*\)\=\(html\)\c\(\i*\)\)'$" end="^\z1\(;\=$\)\@=" contained contains=@htmlTop keepend extend
- syn region phpNowDoc matchgroup=Delimiter start="\(<<<\)\@<='\z(\(\I\i*\)\=\(sql\)\c\(\i*\)\)'$" end="^\z1\(;\=$\)\@=" contained contains=@sqlTop keepend extend
- syn region phpNowDoc matchgroup=Delimiter start="\(<<<\)\@<='\z(\(\I\i*\)\=\(javascript\)\c\(\i*\)\)'$" end="^\z1\(;\=$\)\@=" contained contains=@htmlJavascript keepend extend
+ syn region phpNowDoc matchgroup=Delimiter start="\(<<<\)\@<='\z(\(\I\i*\)\=\(html\)\c\(\i*\)\)'$" end="^\z1\(;\=$\)\@=" contained contains=@htmlTop,@Spell keepend extend
+ syn region phpNowDoc matchgroup=Delimiter start="\(<<<\)\@<='\z(\(\I\i*\)\=\(sql\)\c\(\i*\)\)'$" end="^\z1\(;\=$\)\@=" contained contains=@sqlTop,@Spell keepend extend
+ syn region phpNowDoc matchgroup=Delimiter start="\(<<<\)\@<='\z(\(\I\i*\)\=\(javascript\)\c\(\i*\)\)'$" end="^\z1\(;\=$\)\@=" contained contains=@htmlJavascript,@Spell keepend extend
syn case ignore
endif
diff --git a/runtime/syntax/sh.vim b/runtime/syntax/sh.vim
index 711971ea4a..34b8ab79e4 100644
--- a/runtime/syntax/sh.vim
+++ b/runtime/syntax/sh.vim
@@ -2,8 +2,8 @@
" Language: shell (sh) Korn shell (ksh) bash (sh)
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
" Previous Maintainer: Lennart Schultz <Lennart.Schultz@ecmwf.int>
-" Last Change: Jun 10, 2016
-" Version: 152
+" Last Change: Jul 29, 2016
+" Version: 155
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_SH
" For options and settings, please use: :help ft-sh-syntax
" This file includes many ideas from Eric Brunet (eric.brunet@ens.fr)
@@ -131,11 +131,11 @@ syn cluster shArithParenList contains=shArithmetic,shCaseEsac,shComment,shDeref,
syn cluster shArithList contains=@shArithParenList,shParenError
syn cluster shCaseEsacList contains=shCaseStart,shCase,shCaseBar,shCaseIn,shComment,shDeref,shDerefSimple,shCaseCommandSub,shCaseExSingleQuote,shCaseSingleQuote,shCaseDoubleQuote,shCtrlSeq,@shErrorList,shStringSpecial,shCaseRange
syn cluster shCaseList contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shComment,shDo,shEcho,shExpr,shFor,shHereDoc,shIf,shRedir,shSetList,shSource,shStatement,shVariable,shCtrlSeq
-syn cluster shCommandSubList contains=shAlias,shArithmetic,shComment,shCmdParenRegion,shCtrlSeq,shDeref,shDerefSimple,shDoubleQuote,shEcho,shEscape,shExDoubleQuote,shExpr,shExSingleQuote,shNumber,shOperator,shOption,shPosnParm,shSingleQuote,shSpecial,shStatement,shSubSh,shTest,shVariable
+syn cluster shCommandSubList contains=shAlias,shArithmetic,shComment,shCmdParenRegion,shCtrlSeq,shDeref,shDerefSimple,shDoubleQuote,shEcho,shEscape,shExDoubleQuote,shExpr,shExSingleQuote,shHereDoc,shNumber,shOperator,shOption,shPosnParm,shSingleQuote,shSpecial,shStatement,shSubSh,shTest,shVariable
syn cluster shCurlyList contains=shNumber,shComma,shDeref,shDerefSimple,shDerefSpecial
syn cluster shDblQuoteList contains=shCommandSub,shDeref,shDerefSimple,shEscape,shPosnParm,shCtrlSeq,shSpecial
syn cluster shDerefList contains=shDeref,shDerefSimple,shDerefVar,shDerefSpecial,shDerefWordError,shDerefPSR,shDerefPPS
-syn cluster shDerefVarList contains=shDerefOp,shDerefVarArray,shDerefOpError
+syn cluster shDerefVarList contains=shDerefOff,shDerefOp,shDerefVarArray,shDerefOpError
syn cluster shEchoList contains=shArithmetic,shCommandSub,shDeref,shDerefSimple,shEscape,shExpr,shExSingleQuote,shExDoubleQuote,shSingleQuote,shDoubleQuote,shCtrlSeq,shEchoQuote
syn cluster shExprList1 contains=shCharClass,shNumber,shOperator,shExSingleQuote,shExDoubleQuote,shSingleQuote,shDoubleQuote,shExpr,shDblBrace,shDeref,shDerefSimple,shCtrlSeq
syn cluster shExprList2 contains=@shExprList1,@shCaseList,shTest
@@ -332,7 +332,7 @@ endif
" String And Character Constants: {{{1
"================================
syn match shNumber "\<\d\+\>#\="
-syn match shNumber "-\=\.\=\d\+\>#\="
+syn match shNumber "\<-\=\.\=\d\+\>#\="
syn match shCtrlSeq "\\\d\d\d\|\\[abcfnrtv0]" contained
if exists("b:is_bash")
syn match shSpecial "[^\\]\(\\\\\)*\zs\\\o\o\o\|\\x\x\x\|\\c[^"]\|\\[abefnrtv]" contained
@@ -366,21 +366,21 @@ syn match shQuickComment contained "#.*$"
" Here Documents: {{{1
" =========================================
-ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc01 start="<<\s*\\\=\z([^ \t|]\+\)" matchgroup=shHereDoc01 end="^\z1\s*$" contains=@shDblQuoteList
-ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc02 start="<<\s*\"\z([^ \t|]\+\)\"" matchgroup=shHereDoc02 end="^\z1\s*$"
-ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc03 start="<<-\s*\z([^ \t|]\+\)" matchgroup=shHereDoc03 end="^\s*\z1\s*$" contains=@shDblQuoteList
-ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc04 start="<<-\s*'\z([^ \t|]\+\)'" matchgroup=shHereDoc04 end="^\s*\z1\s*$"
-ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc05 start="<<\s*'\z([^ \t|]\+\)'" matchgroup=shHereDoc05 end="^\z1\s*$"
-ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc06 start="<<-\s*\"\z([^ \t|]\+\)\"" matchgroup=shHereDoc06 end="^\s*\z1\s*$"
-ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc07 start="<<\s*\\\_$\_s*\z([^ \t|]\+\)" matchgroup=shHereDoc07 end="^\z1\s*$" contains=@shDblQuoteList
-ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc08 start="<<\s*\\\_$\_s*'\z([^ \t|]\+\)'" matchgroup=shHereDoc08 end="^\z1\s*$"
-ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc09 start="<<\s*\\\_$\_s*\"\z([^ \t|]\+\)\"" matchgroup=shHereDoc09 end="^\z1\s*$"
-ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc10 start="<<-\s*\\\_$\_s*\z([^ \t|]\+\)" matchgroup=shHereDoc10 end="^\s*\z1\s*$"
-ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc11 start="<<-\s*\\\_$\_s*\\\z([^ \t|]\+\)" matchgroup=shHereDoc11 end="^\s*\z1\s*$"
-ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc12 start="<<-\s*\\\_$\_s*'\z([^ \t|]\+\)'" matchgroup=shHereDoc12 end="^\s*\z1\s*$"
-ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc13 start="<<-\s*\\\_$\_s*\"\z([^ \t|]\+\)\"" matchgroup=shHereDoc13 end="^\s*\z1\s*$"
-ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc14 start="<<\\\z([^ \t|]\+\)" matchgroup=shHereDoc14 end="^\z1\s*$"
-ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc15 start="<<-\s*\\\z([^ \t|]\+\)" matchgroup=shHereDoc15 end="^\s*\z1\s*$"
+ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc01 start="<<\s*\\\=\z([^ \t|>]\+\)" matchgroup=shHereDoc01 end="^\z1\s*$" contains=@shDblQuoteList
+ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc02 start="<<\s*\"\z([^ \t|>]\+\)\"" matchgroup=shHereDoc02 end="^\z1\s*$"
+ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc03 start="<<-\s*\z([^ \t|>]\+\)" matchgroup=shHereDoc03 end="^\s*\z1\s*$" contains=@shDblQuoteList
+ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc04 start="<<-\s*'\z([^ \t|>]\+\)'" matchgroup=shHereDoc04 end="^\s*\z1\s*$"
+ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc05 start="<<\s*'\z([^ \t|>]\+\)'" matchgroup=shHereDoc05 end="^\z1\s*$"
+ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc06 start="<<-\s*\"\z([^ \t|>]\+\)\"" matchgroup=shHereDoc06 end="^\s*\z1\s*$"
+ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc07 start="<<\s*\\\_$\_s*\z([^ \t|>]\+\)" matchgroup=shHereDoc07 end="^\z1\s*$" contains=@shDblQuoteList
+ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc08 start="<<\s*\\\_$\_s*'\z([^ \t|>]\+\)'" matchgroup=shHereDoc08 end="^\z1\s*$"
+ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc09 start="<<\s*\\\_$\_s*\"\z([^ \t|>]\+\)\"" matchgroup=shHereDoc09 end="^\z1\s*$"
+ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc10 start="<<-\s*\\\_$\_s*\z([^ \t|>]\+\)" matchgroup=shHereDoc10 end="^\s*\z1\s*$"
+ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc11 start="<<-\s*\\\_$\_s*\\\z([^ \t|>]\+\)" matchgroup=shHereDoc11 end="^\s*\z1\s*$"
+ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc12 start="<<-\s*\\\_$\_s*'\z([^ \t|>]\+\)'" matchgroup=shHereDoc12 end="^\s*\z1\s*$"
+ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc13 start="<<-\s*\\\_$\_s*\"\z([^ \t|>]\+\)\"" matchgroup=shHereDoc13 end="^\s*\z1\s*$"
+ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc14 start="<<\\\z([^ \t|>]\+\)" matchgroup=shHereDoc14 end="^\z1\s*$"
+ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc15 start="<<-\s*\\\z([^ \t|>]\+\)" matchgroup=shHereDoc15 end="^\s*\z1\s*$"
" Here Strings: {{{1
" =============
@@ -427,7 +427,7 @@ endif
if !exists("g:sh_no_error")
syn match shDerefWordError "[^}$[~]" contained
endif
-syn match shDerefSimple "\$\%(\k\+\|\d\)"
+syn match shDerefSimple "\$\%(\h\w*\|\d\)"
syn region shDeref matchgroup=PreProc start="\${" end="}" contains=@shDerefList,shDerefVarArray
syn match shDerefSimple "\$[-#*@!?]"
syn match shDerefSimple "\$\$"
@@ -445,18 +445,18 @@ endif
" bash: ${!prefix*} and ${#parameter}: {{{1
" ====================================
if exists("b:is_bash")
- syn region shDeref matchgroup=PreProc start="\${!" end="\*\=}" contains=@shDerefList,shDerefOp
- syn match shDerefVar contained "{\@<=!\k\+" nextgroup=@shDerefVarList
+ syn region shDeref matchgroup=PreProc start="\${!" end="\*\=}" contains=@shDerefList,shDerefOff
+ syn match shDerefVar contained "{\@<=!\h\w*" nextgroup=@shDerefVarList
endif
if exists("b:is_kornshell")
- syn match shDerefVar contained "{\@<=!\k[[:alnum:]_.]*" nextgroup=@shDerefVarList
+ syn match shDerefVar contained "{\@<=!\h\w*[[:alnum:]_.]*" nextgroup=@shDerefVarList
endif
syn match shDerefSpecial contained "{\@<=[-*@?0]" nextgroup=shDerefOp,shDerefOpError
syn match shDerefSpecial contained "\({[#!]\)\@<=[[:alnum:]*@_]\+" nextgroup=@shDerefVarList,shDerefOp
-syn match shDerefVar contained "{\@<=\k\+" nextgroup=@shDerefVarList
+syn match shDerefVar contained "{\@<=\h\w*" nextgroup=@shDerefVarList
if exists("b:is_kornshell")
- syn match shDerefVar contained "{\@<=\k[[:alnum:]_.]*" nextgroup=@shDerefVarList
+ syn match shDerefVar contained "{\@<=\h\w*[[:alnum:]_.]*" nextgroup=@shDerefVarList
endif
" sh ksh bash : ${var[... ]...} array reference: {{{1
@@ -498,8 +498,9 @@ syn match shDerefString contained "\\["']" nextgroup=shDerefPattern
if exists("b:is_bash")
" bash : ${parameter:offset}
" bash : ${parameter:offset:length}
- syn region shDerefOp contained start=":[$[:alnum:]_]"me=e-1 end=":"me=e-1 end="}"me=e-1 contains=@shCommandSubList nextgroup=shDerefPOL
- syn match shDerefPOL contained ":[^}]\+" contains=@shCommandSubList
+ syn region shDerefOff contained start=':' end='\ze:' end='\ze}' contains=shDeref,shDerefSimple nextgroup=shDerefLen,shDeref,shDerefSimple
+ syn region shDerefOff contained start=':\s-' end='\ze:' end='\ze}' contains=shDeref,shDerefSimple nextgroup=shDerefLen,shDeref,shDerefSimple
+ syn match shDerefLen contained ":[^}]\+" contains=shDeref,shDerefSimple
" bash : ${parameter//pattern/string}
" bash : ${parameter//pattern}
@@ -636,6 +637,8 @@ if exists("b:is_bash")
hi def link bashSpecialVariables shShellVariables
hi def link bashStatement shStatement
hi def link shCharClass shSpecial
+ hi def link shDerefOff shDerefOp
+ hi def link shDerefLen shDerefOff
endif
if exists("b:is_kornshell")
hi def link kshSpecialVariables shShellVariables
diff --git a/runtime/syntax/tex.vim b/runtime/syntax/tex.vim
index e560573e6e..c0982d84da 100644
--- a/runtime/syntax/tex.vim
+++ b/runtime/syntax/tex.vim
@@ -1,8 +1,8 @@
" Vim syntax file
" Language: TeX
" Maintainer: Charles E. Campbell <NdrchipO@ScampbellPfamily.AbizM>
-" Last Change: Jun 17, 2016
-" Version: 97
+" Last Change: Jul 05, 2016
+" Version: 98
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_TEX
"
" Notes: {{{1
@@ -132,14 +132,20 @@ endif
" One may override this iskeyword setting by providing
" g:tex_isk
if exists("g:tex_isk")
- exe "setlocal isk=".g:tex_isk
-elseif !has("patch-7.4.1142")
- setl isk=48-57,a-z,A-Z,192-255
+ if b:tex_stylish && g:tex_isk !~ '@'
+ let b:tex_isk= '@,'.g:tex_isk
+ else
+ let b:tex_isk= g:tex_isk
+ endif
+elseif b:tex_stylish
+ let b:tex_isk="@,48-57,a-z,A-Z,192-255"
else
- syn iskeyword 48-57,a-z,A-Z,192-255
+ let b:tex_isk="48-57,a-z,A-Z,192-255"
endif
-if b:tex_stylish
- setlocal isk+=@-@
+if v:version > 704 || (v:version == 704 && has("patch-7.4.1142"))
+ exe "syn iskeyword ".b:tex_isk
+else
+ exe "setl isk=".b:tex_isk
endif
if exists("g:tex_no_error") && g:tex_no_error
let s:tex_no_error= 1
@@ -159,7 +165,7 @@ endif
" Clusters: {{{1
" --------
-syn cluster texCmdGroup contains=texCmdBody,texComment,texDefParm,texDelimiter,texDocType,texInput,texLength,texLigature,texMathDelim,texMathOper,texNewCmd,texNewEnv,texRefZone,texSection,texBeginEnd,texBeginEndName,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle
+syn cluster texCmdGroup contains=texCmdBody,texComment,texDefParm,texDelimiter,texDocType,texInput,texLength,texLigature,texMathDelim,texMathOper,texNewCmd,texNewEnv,texRefZone,texSection,texBeginEnd,texBeginEndName,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,@texMathZones
if !s:tex_no_error
syn cluster texCmdGroup add=texMathError
endif
@@ -447,9 +453,8 @@ if !exists("g:tex_no_math")
call TexNewMathZone("G","gather",1)
call TexNewMathZone("H","math",1)
call TexNewMathZone("I","multline",1)
- call TexNewMathZone("J","subequations",0)
- call TexNewMathZone("K","xalignat",1)
- call TexNewMathZone("L","xxalignat",0)
+ call TexNewMathZone("J","xalignat",1)
+ call TexNewMathZone("K","xxalignat",0)
" Inline Math Zones: {{{2
if s:tex_fast =~# 'M'
@@ -481,8 +486,9 @@ if !exists("g:tex_no_math")
" \left..something.. and \right..something.. support: {{{2
syn match texMathDelimBad contained "\S"
if has("conceal") && &enc == 'utf-8' && s:tex_conceal =~# 'm'
- syn match texMathDelim contained "\\left\\{\>" skipwhite nextgroup=texMathDelimSet1,texMathDelimSet2,texMathDelimBad contains=texMathSymbol cchar={
- syn match texMathDelim contained "\\right\\}\>" skipwhite nextgroup=texMathDelimSet1,texMathDelimSet2,texMathDelimBad contains=texMathSymbol cchar=}
+ syn match texMathDelim contained "\\left\["
+ syn match texMathDelim contained "\\left\\{" skipwhite nextgroup=texMathDelimSet1,texMathDelimSet2,texMathDelimBad contains=texMathSymbol cchar={
+ syn match texMathDelim contained "\\right\\}" skipwhite nextgroup=texMathDelimSet1,texMathDelimSet2,texMathDelimBad contains=texMathSymbol cchar=}
let s:texMathDelimList=[
\ ['<' , '<'] ,
\ ['>' , '>'] ,
diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim
index 63618e902e..bb3fa1f6c9 100644
--- a/runtime/syntax/vim.vim
+++ b/runtime/syntax/vim.vim
@@ -238,7 +238,7 @@ if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_nousercmderror")
endif
syn case ignore
syn keyword vimUserAttrbKey contained bar ban[g] cou[nt] ra[nge] com[plete] n[args] re[gister]
-syn keyword vimUserAttrbCmplt contained augroup buffer color command compiler cscope dir environment event expression file file_in_path filetype function help highlight locale mapping menu option shellcmd sign syntax tag tag_listfiles var
+syn keyword vimUserAttrbCmplt contained augroup buffer behave color command compiler cscope dir environment event expression file file_in_path filetype function help highlight history locale mapping menu option packadd shellcmd sign syntax syntime tag tag_listfiles user var
syn keyword vimUserAttrbCmplt contained custom customlist nextgroup=vimUserAttrbCmpltFunc,vimUserCmdError
syn match vimUserAttrbCmpltFunc contained ",\%([sS]:\|<[sS][iI][dD]>\)\=\%(\h\w*\%(#\h\w*\)\+\|\h\w*\)"hs=s+1 nextgroup=vimUserCmdError
@@ -390,7 +390,7 @@ syn match vimNotation "\(\\\|<lt>\)\=<\([scamd]-\)\{0,4}x\=\(f\d\{1,2}\|[^ \t:]\
syn match vimNotation "\(\\\|<lt>\)\=<\([scam2-4]-\)\{0,4}\(right\|left\|middle\)\(mouse\)\=\(drag\|release\)\=>" contains=vimBracket
syn match vimNotation "\(\\\|<lt>\)\=<\(bslash\|plug\|sid\|space\|bar\|nop\|nul\|lt\)>" contains=vimBracket
syn match vimNotation '\(\\\|<lt>\)\=<C-R>[0-9a-z"%#:.\-=]'he=e-1 contains=vimBracket
-syn match vimNotation '\(\\\|<lt>\)\=<\%(q-\)\=\(line[12]\|count\|bang\|reg\|args\|f-args\|lt\)>' contains=vimBracket
+syn match vimNotation '\(\\\|<lt>\)\=<\%(q-\)\=\(line[12]\|count\|bang\|reg\|args\|mods\|f-args\|f-mods\|lt\)>' contains=vimBracket
syn match vimNotation "\(\\\|<lt>\)\=<\([cas]file\|abuf\|amatch\|cword\|cWORD\|client\)>" contains=vimBracket
syn match vimBracket contained "[\\<>]"
syn case match
diff --git a/scripts/vim-patch.sh b/scripts/vim-patch.sh
index bf4b7d9080..d02eef6b44 100755
--- a/scripts/vim-patch.sh
+++ b/scripts/vim-patch.sh
@@ -109,7 +109,7 @@ assign_commit_details() {
local strip_commit_line=true
else
# Interpret parameter as commit hash.
- vim_version="${1:0:7}"
+ vim_version="${1:0:12}"
vim_commit=$(cd "${VIM_SOURCE_DIR}" \
&& git log -1 --format="%H" "${vim_version}")
local strip_commit_line=false
@@ -136,9 +136,12 @@ preprocess_patch() {
2>/dev/null $nvim --cmd 'set dir=/tmp' +'g@^diff --git a/src/\S*\<\%('${na_src}'\)@norm! d/\v(^diff)|%$ ' +w +q "$file"
# Remove channel.txt, netbeans.txt, os_*.txt, todo.txt, version*.txt, tags
- local na_doc='channel\.txt\|netbeans\.txt\|os_\w\+\.txt\|todo\.txt\|version\d\.txt\|tags$'
+ local na_doc='channel\.txt\|netbeans\.txt\|os_\w\+\.txt\|todo\.txt\|version\d\.txt\|tags'
2>/dev/null $nvim --cmd 'set dir=/tmp' +'g@^diff --git a/runtime/doc/\%('${na_doc}'\)@norm! d/\v(^diff)|%$ ' +w +q "$file"
+ # Remove "Last change ..." changes in doc files.
+ 2>/dev/null $nvim --cmd 'set dir=/tmp' +'%s/^@@.*\n.*For Vim version.*Last change.*\n.*For Vim version.*Last change.*//' +w +q "$file"
+
# Remove some testdir/Make_*.mak files
local na_src_testdir='Make_amiga.mak\|Make_dos.mak\|Make_ming.mak\|Make_vms.mms'
2>/dev/null $nvim --cmd 'set dir=/tmp' +'g@^diff --git a/src/testdir/\%('${na_src_testdir}'\)@norm! d/\v(^diff)|%$ ' +w +q "$file"
diff --git a/src/nvim/eval.c b/src/nvim/eval.c
index d4daffb469..7eb149476f 100644
--- a/src/nvim/eval.c
+++ b/src/nvim/eval.c
@@ -4196,7 +4196,7 @@ static int eval7(
// string and free a string that isn't there.
rettv->v_type = VAR_UNKNOWN;
- // Skip '!' and '-' characters. They are handled later.
+ // Skip '!', '-' and '+' characters. They are handled later.
start_leader = *arg;
while (**arg == '!' || **arg == '-' || **arg == '+') {
*arg = skipwhite(*arg + 1);
diff --git a/src/nvim/ex_cmds2.c b/src/nvim/ex_cmds2.c
index 36f50ae7a2..9fc4ef2a02 100644
--- a/src/nvim/ex_cmds2.c
+++ b/src/nvim/ex_cmds2.c
@@ -2361,12 +2361,25 @@ int do_in_path(char_u *path, char_u *name, int flags,
while (*rtp != NUL && ((flags & DIP_ALL) || !did_one)) {
// Copy the path from 'runtimepath' to buf[].
copy_option_part(&rtp, buf, MAXPATHL, ",");
+ size_t buflen = STRLEN(buf);
+
+ // Skip after or non-after directories.
+ if (flags & (DIP_NOAFTER | DIP_AFTER)) {
+ bool is_after = buflen >= 5
+ && STRCMP(buf + buflen - 5, "after") == 0;
+
+ if ((is_after && (flags & DIP_NOAFTER))
+ || (!is_after && (flags & DIP_AFTER))) {
+ continue;
+ }
+ }
+
if (name == NULL) {
(*callback)(buf, (void *)&cookie);
if (!did_one) {
did_one = (cookie == NULL);
}
- } else if (STRLEN(buf) + STRLEN(name) + 2 < MAXPATHL) {
+ } else if (buflen + STRLEN(name) + 2 < MAXPATHL) {
add_pathsep((char *)buf);
tail = buf + STRLEN(buf);
@@ -2597,6 +2610,7 @@ static bool did_source_packages = false;
// ":packloadall"
// Find plugins in the package directories and source them.
+// "eap" is NULL when invoked during startup.
void ex_packloadall(exarg_T *eap)
{
if (!did_source_packages || (eap != NULL && eap->forceit)) {
diff --git a/src/nvim/main.c b/src/nvim/main.c
index 4416bd067c..7b1c912f4b 100644
--- a/src/nvim/main.c
+++ b/src/nvim/main.c
@@ -326,6 +326,12 @@ int main(int argc, char **argv)
do_cmdline_cmd("augroup END");
#undef PROTO
+ // Reset 'loadplugins' for "-u NONE" before "--cmd" arguments.
+ // Allows for setting 'loadplugins' there.
+ if (params.use_vimrc != NULL && strcmp(params.use_vimrc, "NONE") == 0) {
+ p_lpl = false;
+ }
+
/* Execute --cmd arguments. */
exe_pre_commands(&params);
@@ -1268,11 +1274,14 @@ static void set_window_layout(mparm_T *paramp)
static void load_plugins(void)
{
if (p_lpl) {
- source_runtime((char_u *)"plugin/**/*.vim", DIP_ALL); // NOLINT
+ source_runtime((char_u *)"plugin/**/*.vim", DIP_ALL | DIP_NOAFTER); // NOLINT
TIME_MSG("loading plugins");
ex_packloadall(NULL);
TIME_MSG("loading packages");
+
+ source_runtime((char_u *)"plugin/**/*.vim", DIP_ALL | DIP_AFTER);
+ TIME_MSG("loading after plugins");
}
}
@@ -1708,8 +1717,6 @@ static void source_startup_scripts(const mparm_T *const parmp)
if (parmp->use_vimrc != NULL) {
if (strcmp(parmp->use_vimrc, "NONE") == 0
|| strcmp(parmp->use_vimrc, "NORC") == 0) {
- if (parmp->use_vimrc[2] == 'N')
- p_lpl = false; // don't load plugins either
} else {
if (do_source((char_u *)parmp->use_vimrc, FALSE, DOSO_NONE) != OK)
EMSG2(_("E282: Cannot read from \"%s\""), parmp->use_vimrc);
diff --git a/src/nvim/move.c b/src/nvim/move.c
index 4c3f82bc16..4feabf624b 100644
--- a/src/nvim/move.c
+++ b/src/nvim/move.c
@@ -1877,6 +1877,7 @@ int onepage(int dir, long count)
}
}
foldAdjustCursor();
+ cursor_correct();
check_cursor_col();
if (retval == OK) {
beginline(BL_SOL | BL_FIX);
diff --git a/src/nvim/testdir/setup.vim b/src/nvim/testdir/setup.vim
index 05257d566d..06f2199214 100644
--- a/src/nvim/testdir/setup.vim
+++ b/src/nvim/testdir/setup.vim
@@ -4,8 +4,9 @@ set noruler
set noshowcmd
set belloff=
-" Make sure 'runtimepath' does not include $HOME.
+" Make sure 'runtimepath' and 'packpath' does not include $HOME.
set rtp=$VIM/vimfiles,$VIMRUNTIME,$VIM/vimfiles/after
+let &packpath = &rtp
" Make sure $HOME does not get read or written.
let $HOME = '/does/not/exist'
diff --git a/src/nvim/testdir/shared.vim b/src/nvim/testdir/shared.vim
new file mode 100644
index 0000000000..784e4a0a02
--- /dev/null
+++ b/src/nvim/testdir/shared.vim
@@ -0,0 +1,214 @@
+" Functions shared by several tests.
+
+" Get the name of the Python executable.
+" Also keeps it in s:python.
+func PythonProg()
+ " This test requires the Python command to run the test server.
+ " This most likely only works on Unix and Windows.
+ if has('unix')
+ " We also need the job feature or the pkill command to make sure the server
+ " can be stopped.
+ if !(executable('python') && (has('job') || executable('pkill')))
+ return ''
+ endif
+ let s:python = 'python'
+ elseif has('win32')
+ " Use Python Launcher for Windows (py.exe) if available.
+ if executable('py.exe')
+ let s:python = 'py.exe'
+ elseif executable('python.exe')
+ let s:python = 'python.exe'
+ else
+ return ''
+ endif
+ else
+ return ''
+ endif
+ return s:python
+endfunc
+
+" Run "cmd". Returns the job if using a job.
+func RunCommand(cmd)
+ let job = 0
+ if has('job')
+ let job = job_start(a:cmd, {"stoponexit": "hup"})
+ call job_setoptions(job, {"stoponexit": "kill"})
+ elseif has('win32')
+ exe 'silent !start cmd /c start "test_channel" ' . a:cmd
+ else
+ exe 'silent !' . a:cmd . '&'
+ endif
+ return job
+endfunc
+
+" Read the port number from the Xportnr file.
+func GetPort()
+ let l = []
+ for i in range(200)
+ try
+ let l = readfile("Xportnr")
+ catch
+ endtry
+ if len(l) >= 1
+ break
+ endif
+ sleep 10m
+ endfor
+ call delete("Xportnr")
+
+ if len(l) == 0
+ " Can't make the connection, give up.
+ return 0
+ endif
+ return l[0]
+endfunc
+
+" Run a Python server for "cmd" and call "testfunc".
+" Always kills the server before returning.
+func RunServer(cmd, testfunc, args)
+ " The Python program writes the port number in Xportnr.
+ call delete("Xportnr")
+
+ if len(a:args) == 1
+ let arg = ' ' . a:args[0]
+ else
+ let arg = ''
+ endif
+ let pycmd = s:python . " " . a:cmd . arg
+
+ try
+ let g:currentJob = RunCommand(pycmd)
+
+ " Wait for up to 2 seconds for the port number to be there.
+ let port = GetPort()
+ if port == 0
+ call assert_false(1, "Can't start " . a:cmd)
+ return
+ endif
+
+ call call(function(a:testfunc), [port])
+ catch
+ call assert_false(1, 'Caught exception: "' . v:exception . '" in ' . v:throwpoint)
+ finally
+ call s:kill_server(a:cmd)
+ endtry
+endfunc
+
+func s:kill_server(cmd)
+ if has('job')
+ if exists('g:currentJob')
+ call job_stop(g:currentJob)
+ unlet g:currentJob
+ endif
+ elseif has('win32')
+ let cmd = substitute(a:cmd, ".py", '', '')
+ call system('taskkill /IM ' . s:python . ' /T /F /FI "WINDOWTITLE eq ' . cmd . '"')
+ else
+ call system("pkill -f " . a:cmd)
+ endif
+endfunc
+
+" Wait for up to a second for "expr" to become true.
+" Return time slept in milliseconds. With the +reltime feature this can be
+" more than the actual waiting time. Without +reltime it can also be less.
+func WaitFor(expr)
+ " using reltime() is more accurate, but not always available
+ if has('reltime')
+ let start = reltime()
+ else
+ let slept = 0
+ endif
+ for i in range(100)
+ try
+ if eval(a:expr)
+ if has('reltime')
+ return float2nr(reltimefloat(reltime(start)) * 1000)
+ endif
+ return slept
+ endif
+ catch
+ endtry
+ if !has('reltime')
+ let slept += 10
+ endif
+ sleep 10m
+ endfor
+ return 1000
+endfunc
+
+" Wait for up to a given milliseconds.
+" With the +timers feature this waits for key-input by getchar(), Resume()
+" feeds key-input and resumes process. Return time waited in milliseconds.
+" Without +timers it uses simply :sleep.
+func Standby(msec)
+ if has('timers')
+ let start = reltime()
+ let g:_standby_timer = timer_start(a:msec, function('s:feedkeys'))
+ call getchar()
+ return float2nr(reltimefloat(reltime(start)) * 1000)
+ else
+ execute 'sleep ' a:msec . 'm'
+ return a:msec
+ endif
+endfunc
+
+func Resume()
+ if exists('g:_standby_timer')
+ call timer_stop(g:_standby_timer)
+ call s:feedkeys(0)
+ unlet g:_standby_timer
+ endif
+endfunc
+
+func s:feedkeys(timer)
+ call feedkeys('x', 'nt')
+endfunc
+
+" Get the command to run Vim, with -u NONE and --headless arguments.
+" Returns an empty string on error.
+func GetVimCommand()
+ let cmd = v:progpath
+ let cmd = substitute(cmd, '-u \f\+', '-u NONE', '')
+ if cmd !~ '-u NONE'
+ let cmd = cmd . ' -u NONE'
+ endif
+ let cmd .= ' --headless -i NONE'
+ let cmd = substitute(cmd, 'VIMRUNTIME=.*VIMRUNTIME;', '', '')
+ return cmd
+endfunc
+
+" Run Vim, using the "vimcmd" file and "-u NORC".
+" "before" is a list of Vim commands to be executed before loading plugins.
+" "after" is a list of Vim commands to be executed after loading plugins.
+" Plugins are not loaded, unless 'loadplugins' is set in "before".
+" Return 1 if Vim could be executed.
+func RunVim(before, after, arguments)
+ return RunVimPiped(a:before, a:after, a:arguments, '')
+endfunc
+
+func RunVimPiped(before, after, arguments, pipecmd)
+ let $NVIM_LOG_FILE='Xnvim.log'
+ let cmd = GetVimCommand()
+ if cmd == ''
+ return 0
+ endif
+ let args = ''
+ if len(a:before) > 0
+ call writefile(a:before, 'Xbefore.vim')
+ let args .= ' --cmd "so Xbefore.vim"'
+ endif
+ if len(a:after) > 0
+ call writefile(a:after, 'Xafter.vim')
+ let args .= ' -S Xafter.vim'
+ endif
+
+ exe "silent !" . a:pipecmd . cmd . args . ' ' . a:arguments
+
+ if len(a:before) > 0
+ call delete('Xbefore.vim')
+ endif
+ if len(a:after) > 0
+ call delete('Xafter.vim')
+ endif
+ return 1
+endfunc
diff --git a/src/nvim/testdir/test_normal.vim b/src/nvim/testdir/test_normal.vim
index 29a7c1edd8..a22dca35cc 100644
--- a/src/nvim/testdir/test_normal.vim
+++ b/src/nvim/testdir/test_normal.vim
@@ -433,7 +433,6 @@ func! Test_normal13_help()
endfunc
func! Test_normal14_page()
- throw "skipped: Nvim regression: CTRL-F with 'scrolloff'"
" basic test for Ctrl-F and Ctrl-B
call Setup_NewWindow()
exe "norm! \<c-f>"
diff --git a/src/nvim/testdir/test_startup.vim b/src/nvim/testdir/test_startup.vim
new file mode 100644
index 0000000000..f78d92f3ff
--- /dev/null
+++ b/src/nvim/testdir/test_startup.vim
@@ -0,0 +1,200 @@
+" Tests for startup.
+
+source shared.vim
+
+" Check that loading startup.vim works.
+func Test_startup_script()
+ throw 'skipped: Nvim does not need defaults.vim'
+ set compatible
+ source $VIMRUNTIME/defaults.vim
+
+ call assert_equal(0, &compatible)
+endfunc
+
+" Verify the order in which plugins are loaded:
+" 1. plugins in non-after directories
+" 2. packages
+" 3. plugins in after directories
+func Test_after_comes_later()
+ if !has('packages')
+ return
+ endif
+ let before = [
+ \ 'set nocp viminfo+=nviminfo',
+ \ 'set guioptions+=M',
+ \ 'let $HOME = "/does/not/exist"',
+ \ 'set loadplugins',
+ \ 'set rtp=Xhere,Xafter',
+ \ 'set packpath=Xhere,Xafter',
+ \ 'set nomore',
+ \ ]
+ let after = [
+ \ 'redir! > Xtestout',
+ \ 'scriptnames',
+ \ 'redir END',
+ \ 'quit',
+ \ ]
+ call mkdir('Xhere/plugin', 'p')
+ call writefile(['let done = 1'], 'Xhere/plugin/here.vim')
+ call mkdir('Xhere/pack/foo/start/foobar/plugin', 'p')
+ call writefile(['let done = 1'], 'Xhere/pack/foo/start/foobar/plugin/foo.vim')
+
+ call mkdir('Xafter/plugin', 'p')
+ call writefile(['let done = 1'], 'Xafter/plugin/later.vim')
+
+ if RunVim(before, after, '')
+
+ let lines = readfile('Xtestout')
+ let expected = ['Xbefore.vim', 'here.vim', 'foo.vim', 'later.vim', 'Xafter.vim']
+ let found = []
+ for line in lines
+ for one in expected
+ if line =~ one
+ call add(found, one)
+ endif
+ endfor
+ endfor
+ call assert_equal(expected, found)
+ endif
+
+ call delete('Xtestout')
+ call delete('Xhere', 'rf')
+ call delete('Xafter', 'rf')
+endfunc
+
+func Test_help_arg()
+ if !has('unix') && has('gui')
+ " this doesn't work with gvim on MS-Windows
+ return
+ endif
+ if RunVim([], [], '--help >Xtestout')
+ let lines = readfile('Xtestout')
+ call assert_true(len(lines) > 20)
+ call assert_match('Usage:', lines[0])
+
+ " check if couple of lines are there
+ let found = []
+ for line in lines
+ if line =~ '-R.*Readonly mode'
+ call add(found, 'Readonly mode')
+ endif
+ " Watch out for a second --version line in the Gnome version.
+ if line =~ '--version.*Print version information and exit'
+ call add(found, "--version")
+ endif
+ endfor
+ call assert_equal(['--version'], found)
+ endif
+ call delete('Xtestout')
+endfunc
+
+func Test_compatible_args()
+ throw "skipped: Nvim is always 'nocompatible'"
+ let after = [
+ \ 'call writefile([string(&compatible)], "Xtestout")',
+ \ 'set viminfo+=nviminfo',
+ \ 'quit',
+ \ ]
+ if RunVim([], after, '-C')
+ let lines = readfile('Xtestout')
+ call assert_equal('1', lines[0])
+ endif
+
+ if RunVim([], after, '-N')
+ let lines = readfile('Xtestout')
+ call assert_equal('0', lines[0])
+ endif
+
+ call delete('Xtestout')
+endfunc
+
+func Test_file_args()
+ let after = [
+ \ 'call writefile(argv(), "Xtestout")',
+ \ 'qall',
+ \ ]
+ if RunVim([], after, '')
+ let lines = readfile('Xtestout')
+ call assert_equal(0, len(lines))
+ endif
+
+ if RunVim([], after, 'one')
+ let lines = readfile('Xtestout')
+ call assert_equal(1, len(lines))
+ call assert_equal('one', lines[0])
+ endif
+
+ if RunVim([], after, 'one two three')
+ let lines = readfile('Xtestout')
+ call assert_equal(3, len(lines))
+ call assert_equal('one', lines[0])
+ call assert_equal('two', lines[1])
+ call assert_equal('three', lines[2])
+ endif
+
+ if RunVim([], after, 'one -c echo two')
+ let lines = readfile('Xtestout')
+ call assert_equal(2, len(lines))
+ call assert_equal('one', lines[0])
+ call assert_equal('two', lines[1])
+ endif
+
+ if RunVim([], after, 'one -- -c echo two')
+ let lines = readfile('Xtestout')
+ call assert_equal(4, len(lines))
+ call assert_equal('one', lines[0])
+ call assert_equal('-c', lines[1])
+ call assert_equal('echo', lines[2])
+ call assert_equal('two', lines[3])
+ endif
+
+ call delete('Xtestout')
+endfunc
+
+func Test_startuptime()
+ if !has('startuptime')
+ return
+ endif
+ let after = ['qall']
+ if RunVim([], after, '--startuptime Xtestout one')
+ let lines = readfile('Xtestout')
+ let expected = ['parsing arguments', 'inits 3', 'opening buffers']
+ let found = []
+ for line in lines
+ for exp in expected
+ if line =~ exp
+ call add(found, exp)
+ endif
+ endfor
+ endfor
+ call assert_equal(expected, found)
+ endif
+ call delete('Xtestout')
+endfunc
+
+func Test_read_stdin()
+ let after = [
+ \ 'write Xtestout',
+ \ 'quit!',
+ \ ]
+ if RunVimPiped([], after, '-', 'echo something | ')
+ let lines = readfile('Xtestout')
+ " MS-Windows adds a space after the word
+ call assert_equal(['something'], split(lines[0]))
+ endif
+ call delete('Xtestout')
+endfunc
+
+func Test_progpath()
+ " Tests normally run with "./vim" or "../vim", these must have been expanded
+ " to a full path.
+ if has('unix')
+ call assert_equal('/', v:progpath[0])
+ elseif has('win32')
+ call assert_equal(':', v:progpath[1])
+ call assert_match('[/\\]', v:progpath[2])
+ endif
+
+ " Only expect "vim" to appear in v:progname.
+ call assert_match('vim\c', v:progname)
+endfunc
diff --git a/src/nvim/version.c b/src/nvim/version.c
index 4bc108dd2d..39886aa9d9 100644
--- a/src/nvim/version.c
+++ b/src/nvim/version.c
@@ -148,7 +148,7 @@ static int included_patches[] = {
// 2296,
2295,
2294,
- // 2293,
+ 2293,
2292,
2291,
// 2290 NA
@@ -257,27 +257,27 @@ static int included_patches[] = {
2187,
// 2186 NA
2185,
- // 2184,
+ 2184,
2183,
// 2182 NA
// 2181,
// 2180,
// 2179,
- // 2178,
- // 2177,
+ 2178,
+ 2177,
// 2176 NA
2175,
2174,
// 2173,
- // 2172,
+ 2172,
// 2171,
// 2170,
- // 2169,
+ 2169,
// 2168 NA
// 2167 NA
// 2166 NA
// 2165,
- // 2164,
+ 2164,
2163,
2162,
// 2161,
diff --git a/src/nvim/vim.h b/src/nvim/vim.h
index 458d23fcad..87e9889465 100644
--- a/src/nvim/vim.h
+++ b/src/nvim/vim.h
@@ -325,6 +325,8 @@ enum {
#define DIP_START 0x08 // also use "start" directory in 'packpath'
#define DIP_OPT 0x10 // also use "opt" directory in 'packpath'
#define DIP_NORTP 0x20 // do not use 'runtimepath'
+#define DIP_NOAFTER 0x40 // skip "after" directories
+#define DIP_AFTER 0x80 // only use "after" directories
// Lowest number used for window ID. Cannot have this many windows per tab.
#define LOWEST_WIN_ID 1000