diff -Nru vim-7.4.2156/appveyor.yml vim-8.0.0134/appveyor.yml --- vim-7.4.2156/appveyor.yml 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/appveyor.yml 2016-12-14 20:42:00.000000000 +0000 @@ -16,9 +16,6 @@ before_build: - '"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64 /release' - # Work around for Python 2.7.11's bug - - reg copy HKLM\SOFTWARE\Python\PythonCore\2.7 HKLM\SOFTWARE\Python\PythonCore\2.7-32 /s /reg:32 - - reg copy HKLM\SOFTWARE\Python\PythonCore\2.7 HKLM\SOFTWARE\Python\PythonCore\2.7-32 /s /reg:64 build_script: - src/appveyor.bat @@ -26,9 +23,10 @@ test_script: - cd src/testdir # Testing with MSVC gvim + - path C:\Python35-x64;%PATH% - nmake -f Make_dos.mak VIMPROG=..\gvim - nmake -f Make_dos.mak clean # Testing with MingW console version - nmake -f Make_dos.mak VIMPROG=..\vim -# vim: sw=2 sts=2 et ts=2 sr +# vim: sw=2 sts=2 et ts=8 sr diff -Nru vim-7.4.2156/debian/changelog vim-8.0.0134/debian/changelog --- vim-7.4.2156/debian/changelog 2016-08-05 16:55:06.000000000 +0000 +++ vim-8.0.0134/debian/changelog 2017-01-02 07:56:00.000000000 +0000 @@ -1,4 +1,27 @@ -vim (2:7.4.2156-1~ppa1~y) yakkety; urgency=medium +vim (2:8.0.0134-1ubuntu1~ppa1~y) yakkety; urgency=medium + + * Applied patches 40-134 + + -- pi-rho Sun, 01 Jan 2017 23:40:50 -0700 + +vim (2:8.0.0039-1~ppa1~uuu) UNRELEASED; urgency=medium + + * Applied patches 5-39 + + -- pi-rho Sat, 15 Oct 2016 20:20:38 -0600 + +vim (2:8.0.0022-1~ppa1~uuu) UNRELEASED; urgency=medium + + * lintian + + -- pi-rho Sat, 15 Oct 2016 20:20:28 -0600 +vim (2:8.0.0004-1~ppa1~uuu) UNRELEASED; urgency=medium + + * VIM 8! + + -- pi-rho Wed, 14 Sep 2016 21:12:00 -0600 + +vim (2:7.4.2156-1~ppa1~uuu) UNRELEASED; urgency=medium * Applied patches 1907-2156 * Updated runtime files diff -Nru vim-7.4.2156/debian/changelog.old vim-8.0.0134/debian/changelog.old --- vim-7.4.2156/debian/changelog.old 2016-08-05 16:54:57.000000000 +0000 +++ vim-8.0.0134/debian/changelog.old 2017-01-02 07:55:52.000000000 +0000 @@ -1,3 +1,26 @@ +vim (2:8.0.0134-1ubuntu1~ppa1~uuu) UNRELEASED; urgency=medium + + * Applied patches 40-134 + + -- pi-rho Sun, 01 Jan 2017 23:40:50 -0700 + +vim (2:8.0.0039-1~ppa1~uuu) UNRELEASED; urgency=medium + + * Applied patches 5-39 + + -- pi-rho Sat, 15 Oct 2016 20:20:38 -0600 + +vim (2:8.0.0022-1~ppa1~uuu) UNRELEASED; urgency=medium + + * lintian + + -- pi-rho Sat, 15 Oct 2016 20:20:28 -0600 +vim (2:8.0.0004-1~ppa1~uuu) UNRELEASED; urgency=medium + + * VIM 8! + + -- pi-rho Wed, 14 Sep 2016 21:12:00 -0600 + vim (2:7.4.2156-1~ppa1~uuu) UNRELEASED; urgency=medium * Applied patches 1907-2156 diff -Nru vim-7.4.2156/debian/changelog.upstream vim-8.0.0134/debian/changelog.upstream --- vim-7.4.2156/debian/changelog.upstream 2016-08-05 16:54:57.000000000 +0000 +++ vim-8.0.0134/debian/changelog.upstream 2017-01-02 07:55:52.000000000 +0000 @@ -1,4 +1,4 @@ -Patches for Vim - Vi IMproved 7.4 +Patches for Vim - Vi IMproved 8.0 The files in this directory contain source code changes to fix problems in a released version of Vim. Each file also contains an explanation of @@ -12,8 +12,8 @@ "runtime" directories are located. Depending on the version of "patch" that you use, you may have add an argument to make it patch the right file: - patch -p < 7.4.001 - patch -p0 < 7.4.001 + patch -p < 8.0.0001 + patch -p0 < 8.0.0001 After applying a patch, you need to compile Vim. There are no patches for binaries. @@ -21,2155 +21,140 @@ Checksums for the patch files can be found in the file MD5SUMS. -Individual patches for Vim 7.4: +Individual patches for Vim 8.0: - SIZE NAME FIXES - 13179 7.4.001 'ic' doesn't work for patterns such as [a-z] - 2522 7.4.002 pattern with two alternative look-behind matches doesn't match - 2680 7.4.003 memory access error in Ruby syntax highlighting - 7145 7.4.004 when closing a window fails ":bwipe" may hang - 1391 7.4.005 "vaB" while 'virtualedit' is set selects the wrong area - 1952 7.4.006 mkdir("foo/bar/", "p") gives an error message - 2538 7.4.007 creating a preview window on startup messes up the screen - 2176 7.4.008 new regexp engine can't be interrupted - 2051 7.4.009 too easy to write a file was not decrypted (yet) - 2307 7.4.010 (after 7.4.006) crash with invalid argument to mkdir() - 2270 7.4.011 cannot find out if "acl" and "xpm" features are supported - 6180 7.4.012 MS-Windows: resolving multi-byte shortcut does not work - 2986 7.4.013 MS-Windows: File name buffer too small for utf-8 - 2671 7.4.014 MS-Windows: check for writing to device does not work - 3135 7.4.015 MS-Windows: Detecting node type fails for multi-byte chars - 5999 7.4.016 MS-Windows: File name completion has problem with Chinese - 2319 7.4.017 ":help !!" does not find the "!!" tag in the help file - 1400 7.4.018 when completing item becomes unselected - 1948 7.4.019 file name completion fails with Chinese characters - 2586 7.4.020 NFA engine matches too much with \@> - 2806 7.4.021 NFA regexp: Using \ze may result in wrong end - 4209 7.4.022 deadlock while exiting, because of allocating memory - 1704 7.4.023 MS-Windows: warning for 64 bit type - 1992 7.4.024 current user cannot always use the undo file he created - 2074 7.4.025 reading before start of a string - 1710 7.4.026 clang warning for int shift overflow - 2815 7.4.027 valgrind error when using CTRL-X CTRL-F at start of the line - 27323 7.4.028 equivalence classes are not working for multi-byte characters - 1837 7.4.029 an error in a pattern is reported twice - 2724 7.4.030 the -mno-cygwin argument is no longer supported by Cygwin - 1748 7.4.031 ":diffoff!" resets options even when 'diff' is not set - 2629 7.4.032 NFA engine does not match the NUL character - 3610 7.4.033 if terminal has 20 lines test 92 and 93 overwrite input file - 5336 7.4.034 using "p" in Visual block mode only changes the first line - 1696 7.4.035 MS-Windows: mouse pointer flickers when going to Normal mode - 7996 7.4.036 NFA engine does not capture group correctly when using \@> - 4274 7.4.037 "\ze" in a sub-pattern does set the end of the match - 3579 7.4.038 Using "zw" and "zg" when 'spell' is off give confusing error - 6108 7.4.039 MS-Windows: < MSCV10 can't handle symlinks to a directory - 2320 7.4.040 error on exit when variable holds reference to a script scope - 1695 7.4.041 Visual selection does not remain after being copied over - 2104 7.4.042 after ":setlocal" 'spell'/'spellang' :spelldump doesn't work - 2920 7.4.043 VMS can't handle long function names - 2134 7.4.044 can't build with old MSVC - 3167 7.4.045 substitute() has a problem with pattern starting with "\ze". - 2147 7.4.046 can't use Tcl 8.6 - 1685 7.4.047 input() does not work in a function invoked by a mapping - 4441 7.4.048 recent clang version complains about -fno-strength-reduce - 2145 7.4.049 in Ex mode substitute prompt is wrong with line numbers - 2605 7.4.050 "gn" may select too much when there are two matching lines - 2068 7.4.051 syntax highlighting a Yaml file causes a crash - 5890 7.4.052 cursor may end up in the wrong position when auto-formatting - 1251 7.4.053 test75 has a wrong header - 1441 7.4.054 reading past end of the 'stl' string - 4758 7.4.055 Mac: Where macros are defined depends on the system - 1651 7.4.056 Mac: Compilation problem with OS X 10.9 Mavericks - 7773 7.4.057 byteidx() does not work for composing characters - 2094 7.4.058 warnings on 64 bit Windows - 1479 7.4.059 set_last_cursor() may encounter w_buffer being NULL - 3582 7.4.060 declaration has wrong return type for PyObject_SetAttrString() - 4688 7.4.061 (after 7.4.056) configure check in the wrong place - 2634 7.4.062 (after 7.4.061) wrong configure check for AvailabilityMacros.h - 3619 7.4.063 crash when using invalid key in Python dictionary - 5347 7.4.064 in Visual block mode replacing with CR does not break lines - 2117 7.4.065 the character typed at the hit-enter prompt is recorded twice - 9483 7.4.066 MS-Windows: swap file name wrong if colon in file name - 4139 7.4.067 CTRL-\ CTRL-O moves the cursor after inserting comment leader - 5093 7.4.068 cannot build Vim on Mac with non-Apple compilers - 73551 7.4.069 cannot right shift comment lines starting with # - 1387 7.4.070 (after 7.4.069) can't compile with tiny features - 38365 7.4.071 (after 7.4.069) passing limits around too often - 1748 7.4.072 crash when using Insert mode completion - 11426 7.4.073 setting undolevels for one buffer changes undo in another - 2054 7.4.074 when undo'ing all and making a change, undo structure is wrong - 9907 7.4.075 locally setting 'undolevels' is not tested - 1894 7.4.076 "cgn" does not wrap around the end of the file - 2216 7.4.077 DOS installer creates shortcut without a path - 3552 7.4.078 MSVC 2013 is not supported - 13657 7.4.079 a script cannot detect whether 'hlsearch' highlighting is on - 1873 7.4.080 (after 7.4.079) missing documentation for v:hlsearch - 1659 7.4.081 (after 7.4.078) wrong logic when ANALYZE is "yes" - 11034 7.4.082 using "gf" in a changed buffer suggests adding "!" - 4493 7.4.083 hard to avoid adding a used pattern to the search history - 5971 7.4.084 Python: interrupt not being properly discarded - 3581 7.4.085 can't move cursor when inserting text in Visual block mode - 4786 7.4.086 can't skip over expression when not evaluating for dict member - 1770 7.4.087 compiler warning on 64 bit Windows systems - 16587 7.4.088 Asian characters are always marked as spell errors - 1397 7.4.089 Vim doesn't set the security context on a renamed file - 7859 7.4.090 Win32: no completion if dir name contains an exclamation mark - 1926 7.4.091 (after 7.4.089) missing semicolon - 1697 7.4.092 (after 7.4.088) can't build small version - 2993 7.4.093 configure can't use LuaJIT on ubuntu 12.04 - 4837 7.4.094 configure may not find that -lint is needed for gettext() - 3138 7.4.095 (after 7.4.093) regexp for LuaJIT version doesn't work on BSD - 2294 7.4.096 can't change directory to an UNC path - 1615 7.4.097 unexpected behavior change related to 'virtualedit' - 8357 7.4.098 error for line numbers out of range when using ":'<,'>del" - 3122 7.4.099 append in blockwise Visual mode with "$" is wrong - 3069 7.4.100 NFA regexp doesn't handle backreference correctly - 2899 7.4.101 using \1 in pattern goes one line too far - 2128 7.4.102 crash when interrupting "z=" - 3846 7.4.103 dos installer escapes spaces in the diff command wrong - 2823 7.4.104 ":help s/\_" reports an internal error - 1792 7.4.105 completing a tag pattern may give an error for invalid pattern - 1971 7.4.106 can't build with Ruby using Cygwin - 21498 7.4.107 Python try/catch doesn't catch Vim error in vim.eval() - 5478 7.4.108 "zG" and "zW" leave temp files around on MS-Windows - 3775 7.4.109 ColorScheme autocommand matches with the current buffer name - 3703 7.4.110 "gUgn" cannot be repeated - 1709 7.4.111 memory leak in Python OptionsAssItem - 1862 7.4.112 MS-Windows: defaults for 'dir' and 'bdir' do not include $TEMP - 2561 7.4.113 MSVC static analysis gives warnings - 3353 7.4.114 new GNU make directory change messages are different - 1633 7.4.115 Zsh: expanding ~abc fails when the result contains a space - 1381 7.4.116 'showcmd' does not show a typed space - 8049 7.4.117 can't build with Cygwin/MingW and Perl 5.18 - 2394 7.4.118 redrawing status lines may causes recursive call - 7060 7.4.119 Vim doesn't work well on OpenVMS - 1702 7.4.120 (after 7.4.117) can't build with Perl 5.18 on Linux - 1426 7.4.121 completion doesn't work for ":py3d" and ":py3f" - 6071 7.4.122 Win32: :grep doesn't work when 'encoding' and ACP differ - 1883 7.4.123 Win32: Getting user name does not use wide function - 1730 7.4.124 Win32: Getting host name does not use wide function - 1568 7.4.125 Win32: Dealing with messages may not work for multi-byte chars - 1946 7.4.126 compiler warnings for "const" and incompatible types - 1949 7.4.127 Perl 5.18 on Unix doesn't work - 1948 7.4.128 Perl 5.18 for MSVC doesn't work - 1499 7.4.129 getline(-1) returns zero - 2064 7.4.130 relative line numbers mix up windows when using folds - 3038 7.4.131 syncbind causes E315 errors in some situations - 1559 7.4.132 (after 7.4.122) Win32: flags/inherit_handles args mixed up - 2043 7.4.133 Clang warns for using NUL - 1562 7.4.134 spurious space in MingW Makefile - 1696 7.4.135 missing dot in MingW test Makefile - 2314 7.4.136 (after 7.4.096) Windows: readonly when saving UNC path file - 6184 7.4.137 cannot use IME with Windows 8 console - 3391 7.4.138 (after 7.4.114) directory change messages are not recognized - 2254 7.4.139 crash when using :cd in autocommand - 5016 7.4.140 crash when autocommand wipes out only other buffer - 2430 7.4.141 problems when building with Borland - 4651 7.4.142 (after 7.4.137) on MS-Windows 8 IME input doesn't work well - 6310 7.4.143 TextChangedI is not triggered. - 1480 7.4.144 MingW also supports intptr_t for OPEN_OH_ARGTYPE - 2513 7.4.145 getregtype() does not return zero for unknown register - 2324 7.4.146 when starting Vim with "-u NONE" v:oldfiles is NULL - 2583 7.4.147 cursor position wrong when using "gj" after "$" - 2554 7.4.148 cannot build with Cygwin and X11 - 24083 7.4.149 get E685 error when assigning a function to autoload variable - 2596 7.4.150 :keeppatterns is not respected for :s - 37572 7.4.151 Python: slices with steps are not supported - 19610 7.4.152 Python: Cannot iterate over options - 6150 7.4.153 compiler warning for pointer type - 5202 7.4.154 (after 7.4.149) still a problem with auto-loading - 2233 7.4.155 (after 7.4.150) search offset not kept with :keeppatterns - 1466 7.4.156 test file missing from distribution - 1643 7.4.157 error number used twice - 4006 7.4.158 pattern containing \zs not handled correctly by substitute() - 3819 7.4.159 completion hangs when using the current buffer after keywords - 2026 7.4.160 Win32: Crash when executing external command - 2296 7.4.161 crash in Python exception handling - 1395 7.4.162 running tests in shadow dir doesn't work - 2083 7.4.163 (after 7.4.142) MS-Windows 7 input doesn't work properly - 2050 7.4.164 problem with event handling on Windows 8 - 2313 7.4.165 by default, after closing a buffer changes can't be undone - 1685 7.4.166 auto-loading a function for code that won't be executed - 7150 7.4.167 (after 7.4.149) fixes are not tested - 2549 7.4.168 can't compile with Ruby 2.1.0 - 1656 7.4.169 ":sleep" puts cursor in the wrong column - 3474 7.4.170 some help tags don't work with ":help" - 21030 7.4.171 redo does not set v:count and v:count1 - 9545 7.4.172 blowfish code says OFB, but it's doing CFB - 2110 7.4.173 when using scrollbind the cursor can end up below last line - 2945 7.4.174 compiler warnings for Python interface - 5133 7.4.175 wrong fall-back to non-wide function if wide function fails - 2606 7.4.176 Python: Dictionary.update() throws an unexpected error - 1491 7.4.177 compiler warning for unused variable - 1957 7.4.178 the J command does not update '[ and '] marks - 1675 7.4.179 Compiler warning for type-punned pointer - 2650 7.4.180 (after 7.4.174) older Python versions don't support %ld - 1947 7.4.181 when using 'pastetoggle' the status lines are not updated - 1916 7.4.182 building with mzscheme and racket does not work - 1493 7.4.183 MSVC Visual Studio update not supported - 5677 7.4.184 match() does not work properly with a {count} argument - 1837 7.4.185 Clang gives warnings - 5437 7.4.186 (after 7.4.085) Visual mode insert mode is sometimes wrong - 3991 7.4.187 delete that crosses line break splits multi-byte character - 19236 7.4.188 SIZEOF_LONG clashes with similar defines in header files - 1429 7.4.189 compiler warning for unused argument - 2139 7.4.190 compiler warning for using %lld for off_t - 27520 7.4.191 can't escape a file name for shell commands without a function - 1329 7.4.192 memory leak when giving E853 - 3561 7.4.193 typos in messages - 1829 7.4.194 can't build for Android - 7729 7.4.195 (after 7.4.193) Python tests fail - 1651 7.4.196 tests fail on Solaris 9 and 10 - 34900 7.4.197 various problems on VMS - 3101 7.4.198 can't build with non-threading Perl and dynamic loading - 2946 7.4.199 (issue 197) ]P doesn't paste over Visual selection - 1817 7.4.200 too many #ifdefs in the code - 7626 7.4.201 'lispwords' is a global option - 7151 7.4.202 MS-Windows: non-ASCII font names don't work - 7124 7.4.203 parsing 'errorformat' is not correct - 3446 7.4.204 a mapping where the second byte is 0x80 doesn't work - 2953 7.4.205 ":mksession" does not handle the argument list correctly - 2217 7.4.206 compiler warnings on 64 bit Windows - 4843 7.4.207 cursor report sometimes not recognized causing replace mode - 1112 7.4.208 Mercurial picks up files that are not distributed (empty) - 1924 7.4.209 when repeating a filter command "%" and "#" are expanded - 3997 7.4.210 Visual block mode + virtual edit doesn't work well with tabs - 2404 7.4.211 ":lu" is abbreviation for ":lua", but it should be ":lunmap" -137444 7.4.212 #ifdefs for the +visual feature are not useful - 6508 7.4.213 it's not possible to open a new buffer without a swapfile - 1523 7.4.214 compilation problems on HP_nonStop (Tandem) - 3488 7.4.215 ":sp foo" reloads "foo" if it is the current buffer - 1922 7.4.216 compiler warnings - 3225 7.4.217 "make clean" may run configure pointlessly - 19321 7.4.218 it's not easy to remove duplicates from a list - 2890 7.4.219 redraw too often when 'relativenumber' or 'cursorline' set - 4640 7.4.220 test 105 does not work in a shadow dir - 1755 7.4.221 quickfix doesn't resize on ":copen 20" - 3882 7.4.222 the Ruby directory is constructed from parts -220004 7.4.223 still using an older autoconf version - 7317 7.4.224 /usr/bin/grep on Solaris does not support -F - 2702 7.4.225 dynamic Ruby doesn't work on Solaris - 3535 7.4.226 (after 7.4.219) cursorline highlight not always redrawn - 2832 7.4.227 (after 7.4.225) can't build with Ruby 1.8 - 6200 7.4.228 compiler warnings when building with Python 3.2 - 3782 7.4.229 ":let" fails when listing vars with a curly braces expression - 1673 7.4.230 error when using ":options" - 9286 7.4.231 an error in ":options" is not caught by the tests - 3599 7.4.232 ":%s/\n//" uses a lot of memory - 2222 7.4.233 escaping special chars in ":!cmd %" is inconsistent - 3017 7.4.234 can't get the command that was used to start Vim - 16436 7.4.235 it is not easy to get the full path of a command - 5191 7.4.236 it's not that easy to check the Vim patch version - 4893 7.4.237 (after 7.4.236) has() not checking for specific patch - 14829 7.4.238 Vim does not support the smack library - 1714 7.4.239 ":e +" does not position cursor at end of the file - 1676 7.4.240 ":tjump" shows "\n" as "\\n" - 12078 7.4.241 submatch() does not distinguish between a NL and a NUL - 15570 7.4.242 getreg() does not distinguish between a NL and a NUL character - 32738 7.4.243 cannot use setreg() to add text that includes a NUL - 1807 7.4.244 (after 7.4.238) the smack feature causes stray error messages - 1874 7.4.245 crash for "vim -u NONE -N -c '&&'" - 3736 7.4.246 configure message for detecting smack are out of sequence - 5838 7.4.247 NUL and NL mixed up when giving input to system() - 13519 7.4.248 cannot distinguish between NL and NUL in output of system() - 6037 7.4.249 using setreg() with a list of numbers does not work - 1641 7.4.250 some test files missing from distribution - 4570 7.4.251 crash when BufAdd autocommand wipes out the buffer - 1446 7.4.252 critical error in GTK, removing timer twice - 2643 7.4.253 crash when using external reference in syntax regexp - 5407 7.4.254 smack support detection is incomplete - 3397 7.4.255 configure check for smack doesn't work with all shells - 2252 7.4.256 (after 7.4.248) systemlist() does not work properly - 1948 7.4.257 compiler warning, possibly for mismatch in parameter name - 5726 7.4.258 configure fails if $CC contains options - 1554 7.4.259 warning for misplaced "const" - 8693 7.4.260 no error for function name with colon or lowercase char - 2863 7.4.261 an interactive :s to replace a "\n" with line break may fail - 9779 7.4.262 duplicate code in regexec() - 1306 7.4.263 GCC 4.8 compiler warning for hiding a declaration - 5143 7.4.264 (after 7.4.260) can't define function g:Foo() - 4813 7.4.265 (after 7.4.260) can't call function with "g:" in an expression - 1347 7.4.266 test 62 fails - 13880 7.4.267 (after 7.4.178) '[ mark is in the wrong position after "gq" - 3312 7.4.268 exists() on a funcref for script-local function does not work - 6283 7.4.269 CTRL-U in Insert mode does not work after using a cursor key - 1947 7.4.270 comparing pointers instead of the string they point to - 1457 7.4.271 compiler warning on 64 bit windows - 4216 7.4.272 using just "$" does not cause an error message - 2136 7.4.273 "make autoconf/reconfig" may run configure pointlessly - 1522 7.4.274 check for timestamp does not always detect a changed file - 1747 7.4.275 no error message when changing type of unplaced sign - 8604 7.4.276 the fish shell is not supported - 2243 7.4.277 using ":sign unplace *" may leave the cursor in wrong position - 5402 7.4.278 list_remove() conflicts with Sun header file - 18280 7.4.279 globpath() returns a string, a list would be better - 3504 7.4.280 relative position of cursor not restored if session has 2 tabs - 2486 7.4.281 positions are off when loading session with two tabpages - 1429 7.4.282 (after 7.4.279) test 97 fails on Mac - 1771 7.4.283 (after 7.4.276) compiler warning about unused variable - 1727 7.4.284 setting 'langmap' in the modeline can cause trouble - 1549 7.4.285 line numbers are not always updated for 'relativenumber' - 1610 7.4.286 error messages are inconsistent - 1394 7.4.287 patches for .hgignore don't work - 1397 7.4.288 when 'spellfile' is set the screen is not redrawn - 3604 7.4.289 NFA regexp with repeated backreference does not match - 6261 7.4.290 a non-greedy match followed by a branch is too greedy - 1650 7.4.291 compiler warning for int to pointer of different size - 4141 7.4.292 pattern "a" matches accented "a" when pattern is one byte - 9143 7.4.293 can't ignore composing characters in a pattern - 4480 7.4.294 (after 7.4.293) test files missing from patch - 5287 7.4.295 various typos, bad white space and unclear comments - 1927 7.4.296 can't run tests on Solaris - 2593 7.4.297 memory leak from result of get_isolated_shell_name() - 1789 7.4.298 can't have a funcref start with "t:" - 19202 7.4.299 when running configure twice DYNAMIC_PYTHON_DLL becomes empty - 2262 7.4.300 the way config.cache is removed doesn't always work - 1651 7.4.301 (after 7.4.280) scrolling problem when loading a session file - 2241 7.4.302 signs don't show up after filler lines - 2182 7.4.303 double-width chars on the command line sometimes truncated - 1559 7.4.304 cannot always use Python with Vim - 7820 7.4.305 making 'ttymouse' empty causes problems - 2660 7.4.306 getchar(0) does not return Esc - 4150 7.4.307 can't build without the +termresponse feature - 1420 7.4.308 ":diffsplit" on empty file cursor is displayed on command line - 2095 7.4.309 increasing size of lower window, upper window jumps to the top - 11194 7.4.310 getpos()/setpos() don't include curswant - 4740 7.4.311 can't use winrestview to only restore part of the view - 6272 7.4.312 cannot know what argument list is being used for a window - 10912 7.4.313 (after 7.4.310) changing return value of getpos() causes error - 5875 7.4.314 completion messages can get in the way of a plugin - 8020 7.4.315 (after 7.4.309) fixes for computation of topline not tested - 1537 7.4.316 warning from 64-bit compiler - 1434 7.4.317 crash when starting gvim, issue 230 - 1748 7.4.318 fg/bg color settings ignored when checking syntax attributes - 1764 7.4.319 crash when putting zero bytes on the clipboard - 4439 7.4.320 possible crash when an BufLeave autocommand deletes the buffer - 2515 7.4.321 can't build with strawberry perl 5.20 + mingw-w64-4.9.0 - 3274 7.4.322 using "msgfmt" is hard coded, cannot use "gmsgfmt" - 2898 7.4.323 substitute() with zero width pattern breaks multi-byte char - 4631 7.4.324 in Ex mode, cyrillic characters are not handled - 2070 7.4.325 incorrect display when starting GUI and setting 'laststatus' - 1384 7.4.326 can't build Tiny version - 4330 7.4.327 when 'verbose' is set may get E724 repeatedly - 2580 7.4.328 selection of inner block is inconsistent - 1945 7.4.329 window not scrolled if moving cursor and go to another window - 32746 7.4.330 using regexp pattern to show a position match can be slow - 1506 7.4.331 relative numbering not updated after a linewise yank - 4079 7.4.332 GTK: ugly gaps when a sign icon doesn't fit exactly - 2036 7.4.333 compiler warning for unused function - 3295 7.4.334 (after 7.4.330) uninitialized variables, causing some problems - 3313 7.4.335 no digraph for the new rouble sign - 3536 7.4.336 setting 'history' to a big value causes out-of-memory errors - 1589 7.4.337 can't execute command line if there was an error before - 52480 7.4.338 cannot wrap lines taking indent into account - 2655 7.4.339 local function is available globally - 3140 7.4.340 error from sed about illegal bytes when installing Vim - 6001 7.4.341 sort() doesn't handle numbers well - 1988 7.4.342 clang gives warnings - 1850 7.4.343 matchdelete() does not always update the right lines - 5304 7.4.344 small issues related to matchaddpos() - 2618 7.4.345 (after 7.4.338) indent is not updated when deleting indent - 1963 7.4.346 (after 7.4.338) indent is not updated when changing 'briopt' - 3209 7.4.347 test55 fails on some systems - 1738 7.4.348 Using "J1" in 'cinoptions' may cause too much indent - 2967 7.4.349 avoid redrawing the whole window with highlighted matches - 3909 7.4.350 C-indenting for Javascript fails for a {} block inside parens - 6034 7.4.351 sort() is not stable - 2637 7.4.352 with 'linebreak' a Tab causes a missing line break - 14437 7.4.353 'linebreak' doesn't work with the 'list' option - 1891 7.4.354 compiler warning - 21483 7.4.355 several problems with Javascript indenting - 1247 7.4.356 mercurial does not ignore memfile_test - 1654 7.4.357 after completion some characters are not redrawn - 8040 7.4.358 (after 7.4.351) sort is not always stable - 2942 7.4.359 if 'ttymouse' set to 'uxterm' xterm version is not requested - 2461 7.4.360 pattern with "$" followed by \[vV] is not used as end-of-line - 1487 7.4.361 flickering when filling the preview window for 'omnifunc' - 1608 7.4.362 short length in matchaddpos() highlights until end of the line - 4445 7.4.363 in Windows console typing 0xCE does not work - 2425 7.4.364 no error message when the viminfo file can't be renamed - 3973 7.4.365 crash when using ":botright split" when there isn't much space - 1602 7.4.366 can't run the linebreak test on MS-Windows - 2165 7.4.367 (after 7.4.357) other solution for redrawing after completion - 2581 7.4.368 window sizes not restored properly when closing cmdline window - 2331 7.4.369 using freed memory when exiting while compiled with EXITFREE - 9476 7.4.370 linebreak test fails when encoding is not utf-8 - 1880 7.4.371 with 'linebreak' set control characters displayed wrong - 5628 7.4.372 with 'winminheight' zero current window might be zero height - 2668 7.4.373 compiler warning for unused argument and unused variable - 2461 7.4.374 character after "fb" command sometimes not mapped - 1967 7.4.375 test 63 fails when run with GUI-only Vim - 1877 7.4.376 (after 7.4.367) popup menu flickers too much - 4200 7.4.377 with 'equalalways' set a split may report "no room" - 9720 7.4.378 title of quickfix list is not kept for setqflist(list, 'r') - 1382 7.4.379 accessing freed memory after using setqflist(list, 'r') - 3324 7.4.380 loading python may cause Vim to exit - 1359 7.4.381 u_undo error when backspacing in Insert mode deletes 2 lines - 1876 7.4.382 mapping chars may not work after typing Esc in Insert mode - 1744 7.4.383 bad interaction between preview window and omnifunc - 1522 7.4.384 test 102 fails when compiled with small features - 2559 7.4.385 when building with tiny/small features .mo files build fails - 5536 7.4.386 when splitting a window the changelist position is wrong - 6083 7.4.387 "4gro" replaces one character then executes "ooo" - 2972 7.4.388 with 'linebreak' set and 'list' unset Tab not counted properly - 13930 7.4.389 still sometimes Vim enters Replace mode when starting up - 1411 7.4.390 advancing pointer over end of a string - 3316 7.4.391 no 'cul' highlight with cursor on a line with diff highlight - 2701 7.4.392 not easy to detect type of command line window - 53004 7.4.393 text drawing on newer MS-Windows systems is suboptimal - 1890 7.4.394 (after 7.4.393) with DirectX last italic char is incomplete - 2600 7.4.395 C indent wrong below an if with wrapped () followed by {} - 8881 7.4.396 when 'clipboard' is "unnamed", :g/pat/d is very slow - 5060 7.4.397 matchparen only uses the topmost syntax item - 1533 7.4.398 (after 7.4.393) gcc error for argument of InterlockedIncrement -136047 7.4.399 crypt implementation is messy; blowfish crypt has a weakness - 1848 7.4.400 list of distributed files is incomplete - 8581 7.4.401 (after 7.4.399) new files missing in Makefiles - 2992 7.4.402 test 72 crashes under certain conditions - 4049 7.4.403 valgrind reports errors when running test 72 - 3009 7.4.404 Windows 64 bit compiler warnings - 3787 7.4.405 screen updating is slow when using matches - 2544 7.4.406 test 72 and 100 fail on MS-Windows - 3126 7.4.407 Visual block insert with cursor move repeats the wrong text - 9336 7.4.408 Visual block insert breaks a multi-byte character - 4404 7.4.409 can't build with Perl on Fedora 20 - 1964 7.4.410 fold does not open after search with CmdwinLeave autocmd - 3353 7.4.411 "foo bar" sorts before "foo" with sort() - 2823 7.4.412 can't build on Windows XP with MSVC - 3241 7.4.413 MS-Windows: inserting dead key does not always work - 5384 7.4.414 cannot define a command only when it's used - 2015 7.4.415 (after 7.4.414) cannot build, warning for shadowed variable - 2977 7.4.416 problem with breakindent/showbreak and tabs - 4376 7.4.417 minimum width used for breakindent is not set after split - 1727 7.4.418 when leaving ":append" the cursor shape is like in Insert mode - 3294 7.4.419 when part of a list is locked it's possible to make changes - 2044 7.4.420 it's not obvious how to add a new test - 3521 7.4.421 crash when searching for "\ze*" - 3205 7.4.422 with conceal + linebreak some text is not displayed correctly - 3565 7.4.423 expand("$shell") does not work as documented - 1793 7.4.424 ml_get error when using Python to delete lines in a buffer - 2453 7.4.425 when 'showbreak' is used "gj" may move to the wrong position - 1333 7.4.426 README File missing from list of files - 3287 7.4.427 system() typeahead may be echoed and mess up the display - 2926 7.4.428 executable() may return a wrong result on MS-Windows - 1384 7.4.429 build fails with fewer features - 1634 7.4.430 test_listlbr fails when compiled with normal features - 1599 7.4.431 compiler warning - 3119 7.4.432 MS-Windows: setting 'encoding' does not convert arguments - 2110 7.4.433 test 75 fails on MS-Windows - 4131 7.4.434 gettabvar() is not consistent with getwinvar() and getbufvar() - 1863 7.4.435 line formatting behaves differently when 'linebreak' is set - 1470 7.4.436 ml_get error for autocommand that moves the cursor - 3229 7.4.437 new and old regexp engine are not consistent - 1372 7.4.438 cached values for 'cino' not reset for ":set all&" - 1655 7.4.439 duplicate message in message history - 2106 7.4.440 omni complete popup drawn incorrectly - 1826 7.4.441 endless loop and other problems when 'cedit' is set to CTRL-C - 2303 7.4.442 (after 7.4.434) using uninitialized variable - 1539 7.4.443 error reported by ubsan when running test 72 - 1544 7.4.444 reversed question mark not recognized as punctuation - 2549 7.4.445 clipboard may be cleared on startup - 7513 7.4.446 environment for executing autocommand may not be restored - 4082 7.4.447 spell files from Hunspell may generate a lot of errors - 2691 7.4.448 MS-Windows: Using ETO_IGNORELANGUAGE causes problems - 3740 7.4.449 can't easily close the help window - 14932 7.4.450 some commands that edit another buffer don't support +cmd - 1851 7.4.451 calling system() with empty input gives an error - 1611 7.4.452 can't build with tiny features - 1409 7.4.453 still can't build with tiny features - 2495 7.4.454 CTRL-W-] does not work when using a Visual selection - 5104 7.4.455 completion for :buf does not use 'wildignorecase' - 12212 7.4.456 'backupcopy' is global, can't set a local value - 1513 7.4.457 cannot recognize getchar() returning K_CURSORHOLD - 1633 7.4.458 issue 252: Cursor moves in a zero-height window - 1470 7.4.460 (after 7.4.454) can't build without the quickfix feature - 2497 7.4.461 MS-Windows: When collate is on the number of copies is too high - 2454 7.4.462 Setting the local value of 'backupcopy' empty gives an error - 1844 7.4.463 tests 86 and 87 may hang on MS-Windows - 1536 7.4.464 (after 7.4.459) compiler warning - 1588 7.4.465 crash when expanding a very long string - 1576 7.4.466 (after 7.4.460) CTRL-W } does not open preview window - 4117 7.4.467 'linebreak' does not work well together with Visual mode - 1892 7.4.469 (after 7.4.467) can't build with MSVC - 4675 7.4.470 test 11 and 100 do not work properly on Windows - 2350 7.4.471 MS-Windows: multi-byte printer name is displayed as ??? - 1527 7.4.472 drawing "precedes" entry of 'listchar' when 'list' is not set - 1554 7.4.473 cursor position incorrect with number column and 'sbr' - 1293 7.4.474 AIX compiler can't handle // comment - 7374 7.4.475 can't compile if Xutf8SetWMProperties() is not in X11 library - 2408 7.4.476 MingW: compiling with "XPM=no" doesn't work - 1666 7.4.477 ":%diffput" adds an empty line if the other file is empty - 1763 7.4.478 using byte length instead of character length for 'showbreak' - 3025 7.4.479 MS-Windows: The console title can be wrong - 2962 7.4.480 (after 7.4.479) MS-Windows: Can't build - 2035 7.4.481 (after 7.4.471) compiler warning on MS-Windows - 1863 7.4.482 when 'balloonexpr' results in a list, text has a trailing NL - 5345 7.4.483 a 0x80 byte is not handled correctly in abbreviations - 1442 7.4.484 (after 7.4.483) compiler warning - 3033 7.4.485 (after 7.4.484) abbreviations don't work - 6864 7.4.486 check for writing to a yank register is wrong - 5994 7.4.487 ":sign jump" may unnecessarily use another window - 1394 7.4.488 test_mapping fails for some people - 1610 7.4.489 cursor movement wrong when 'lbr' with a number column - 6856 7.4.490 cannot specify the buffer to use for "do" and "dp" - 1907 7.4.491 negative "topline" value for winrestview() has display errors - 2917 7.4.492 Ctrl-O in Insert mode moves right after insert comment leader - 1686 7.4.493 a TextChanged autocommand is triggered when saving a file - 1968 7.4.494 cursor shape is wrong after a CompleteDone autocommand - 2484 7.4.495 XPM isn't used correctly in the Cygwin Makefile - 78227 7.4.496 many lines are both in Make_cyg.mak and Make_ming.mak -118187 7.4.497 NFA engine is very slow with some regexp patterns - 1770 7.4.498 (after 7.4.497) typo in DOS makefile - 2341 7.4.499 substitute() can be slow with long strings - 1991 7.4.500 test 72 still fails once in a while - 1577 7.4.501 (after 7.4.497) typo in file pattern - 6672 7.4.502 language mapping also applies to mapped characters - 6560 7.4.503 cannot append a list of lines to a file - 2930 7.4.504 MS-Windows installer restricts install path to end in "vim" - 2125 7.4.505 problem on MS-Windows file name longer than MAX_PATH bytes - 1680 7.4.506 MS-Windows: Cannot open a file with 259 characters - 2027 7.4.507 (after 7.4.496) building with MingW and Perl may fail - 1928 7.4.508 when generating ja.sjis.po, header is not correctly adjusted - 3558 7.4.509 users are not aware their encryption is weak - 2508 7.4.510 "-fwrapv" argument breaks use of cproto - 1938 7.4.511 generating proto for if_ruby.c uses type not defined elsewhere - 3016 7.4.512 cannot generate prototypes for Win32 files and VMS - 1408 7.4.513 crash because reference count is wrong for list from getreg() - 1444 7.4.514 (after 7.4.492) memory access error - 6056 7.4.515 in a help buffer the global 'foldmethod' is used - 2134 7.4.516 issue 253: completing function name with a # does not work - 1653 7.4.517 cursor may not end up in the right place on a wrapping line - 1705 7.4.518 using status line height in width computations - 26031 7.4.519 (after 7.4.497) crash when using syntax highlighting - 1629 7.4.520 Sun PCK locale is not recognized - 1687 7.4.521 when using "vep" a mark is moved to the next line - 1489 7.4.522 specifying wrong buffer size for GetLongPathName() - 2626 7.4.523 copy/paste no longer works is X11 server is restarted - 3292 7.4.524 when using ":ownsyntax" spell checking is messed up - 2460 7.4.525 map() leaks memory when there is an error in the expression - 5139 7.4.526 matchstr() fails on long text - 3709 7.4.527 still confusing regexp failure and NFA_TOO_EXPENSIVE - 1892 7.4.528 crash when using matchadd() - 7307 7.4.529 no test for what 7.4.517 fixes -147087 7.4.530 many commands take count/range that is not using line numbers - 3706 7.4.531 comments about parsing an Ex command are wrong - 4239 7.4.532 when using 'incsearch' "2/pattern/e" highlights first match - 6017 7.4.533 ":hardcopy" leaks memory in case of errors - 2827 7.4.534 warnings when compiling if_ruby.c - 10090 7.4.535 (after 7.4.530) can't build with tiny features - 1915 7.4.536 test 63 fails when using a black&white terminal - 3897 7.4.537 value of v:hlsearch reflects an internal variable - 5830 7.4.538 tests fail with small features plus Python - 7422 7.4.539 (after 7.4.530) crash when computing buffer count - 1802 7.4.540 (after 7.4.539) cannot build with tiny and small features - 2795 7.4.541 crash when doing a range assign - 28576 7.4.542 cannot specify the type of range for a user command - 4114 7.4.543 (after 7.4.232) "1,3s/\n//" joins two lines instead of three - 1655 7.4.544 warnings for unused arguments with a combination of features - 1983 7.4.545 highlighting for multi-line matches is not correct - 4044 7.4.546 repeated use of vim_snprintf() with a number - 1785 7.4.547 "vit" does not select multi-byte character at the end correctly - 1681 7.4.548 compilation fails with native version of MinGW-w64 - 6505 7.4.549 function name not recognized correctly when inside a function - 4016 7.4.550 curs_rows() function is always called with 2nd argument false - 5608 7.4.551 "ygn" may yank too much; Issue 295 - 2298 7.4.552 langmap applies to Insert mode expression mappings - 14152 7.4.553 various small issues - 1877 7.4.554 missing part of patch 7.4.519 - 1970 7.4.555 test_close_count may fail for some combination of features - 2121 7.4.556 failed commands in Python interface not handled correctly - 1997 7.4.557 one more small issue - 1690 7.4.558 when the X server restarts Vim may get stuck - 3549 7.4.559 block append inside tab is wrong when virtualedit is set - 5331 7.4.560 memory leak using :wviminfo; Issue 296 - 3743 7.4.561 Ex range handling is wrong for buffer-local user commands - 2165 7.4.562 segfault with wide screen and error in 'rulerformat' - 2129 7.4.563 no test for replacing on a tab in Virtual replace mode - 7046 7.4.564 FEAT_OSFILETYPE is used even though it's never defined - 10949 7.4.565 some ranges are not checked to be valid - 19788 7.4.566 :argdo, :bufdo, :windo and :tabdo don't take a range - 1571 7.4.567 non-ascii vertical separator characters are always redrawn - 2093 7.4.568 giving an error for ":0wincmd w" is a problem for some plugins - 5096 7.4.569 having CTRL-C interrupt does not check the mapping mode - 4492 7.4.570 building with dynamic library does not work for Ruby 2.2.0 - 1821 7.4.571 can't build with tiny features - 6076 7.4.572 address type of :wincmd depends on the argument - 2979 7.4.573 mapping CTRL-C in Visual mode doesn't work - 2177 7.4.574 no error for eval('$') - 16995 7.4.575 Unicode character properties are outdated - 4671 7.4.576 redrawing problem with 'relativenumber' and 'linebreak' - 2595 7.4.577 matching with virtual column has overhead on very long lines - 1647 7.4.578 after "$" in an empty line getcurpos() returns negative number - 5369 7.4.579 wrong cursor positioning when 'linebreak' set and lines wrap - 1513 7.4.580 ":52wincmd v" still gives an invalid range error - 1773 7.4.581 compiler warnings for uninitialized variables - 3876 7.4.582 (after 7.4.577) can't match "%>80v" properly - 1391 7.4.583 with tiny features test 16 may fail - 2093 7.4.584 with tiny features test_command_count may fail - 3336 7.4.585 range for :bdelete does not work - 1324 7.4.586 parallel building of documentation html files is not reliable - 7106 7.4.587 conceal does not work properly with 'linebreak' - 6287 7.4.588 ":0argedit foo" puts the new argument in the second place - 1927 7.4.589 MS-Windows console: Vim can't handle greek utf-8 characters - 1739 7.4.590 using ctrl_x_mode as if it contains flags - 1756 7.4.591 test_listlbr_utf8 fails when conceal feature is not available - 1645 7.4.592 buffer with 'buftype' "nofile" is cleared on re-edit - 4914 7.4.593 crash when searching for "x\{0,90000}" - 3194 7.4.594 using block delete with 'breakindent' does not work properly - 1533 7.4.595 the test_command_count test fails when using Japanese - 1604 7.4.596 (after 7.4.592) tiny build doesn't compile - 1729 7.4.597 cannot change the result of systemlist() - 7175 7.4.598 ":tabdo windo echo 'hi'" causes "* register not to be changed - 1503 7.4.599 out-of-memory error for complicated search pattern - 14844 7.4.600 memory wasted in struct because of aligning - 3684 7.4.601 it is not possible to have feedkeys() insert characters - 3058 7.4.602 ":set" does not accept hex numbers as documented - 6468 7.4.603 'foldcolumn' may fill the whole window - 1610 7.4.604 running tests changes viminfo - 10078 7.4.605 the # register cannot be restored after jumping around - 1457 7.4.606 may crash when using a small window - 1825 7.4.607 (after 7.4.598) compiler warnings for unused variables - 5034 7.4.608 (after 7.4.598) test_eval fails without the clipboard feature - 20895 7.4.609 the garbage collector can run out of stack space - 2518 7.4.610 some function headers may be missing from generated .pro files - 1341 7.4.611 (after 7.4.609) syntax error - 3589 7.4.612 test_eval fails on Mac - 6713 7.4.613 the NFA engine does not implement the 'redrawtime' time limit - 1880 7.4.614 there is no test for what patch 7.4.601 fixes - 4050 7.4.615 Vim hangs when freeing a lot of objects - 4582 7.4.616 cannot insert a tab in front of a block - 2790 7.4.617 wrong ":argdo" range does not cause an error - 1337 7.4.618 (after 7.4.609) luaV_setref() is missing a return statement - 1929 7.4.619 (after 7.4.618) luaV_setref() not returning the correct value - 1549 7.4.620 compiler warning for uninitialized variable - 1755 7.4.621 (after 7.4.619) returning 1 in the wrong function - 1584 7.4.622 compiler warning for unused argument - 2555 7.4.623 crash with pattern: \(\)\{80000} - 5520 7.4.624 may leak memory or crash when vim_realloc() returns NULL - 1976 7.4.625 possible NULL pointer dereference - 2091 7.4.626 MSVC with W4 gives useless warnings - 6670 7.4.627 the last screen cell is not updated - 1782 7.4.628 compiler warning for variable might be clobbered by longjmp - 2023 7.4.629 Coverity warning for Out-of-bounds read - 2242 7.4.630 redo is wrong for insert mode completion with autocommands - 1674 7.4.631 the default conceal character is a dash instead of a space - 1620 7.4.632 (after 7.4.592) breaks the netrw plugin - 2528 7.4.633 after 7.4.630 the problem persists - 5527 7.4.634 marks are not restored after redo + undo - 2039 7.4.635 fileformat set to "mac" if a file starts with a very long line - 4780 7.4.636 a search with end offset gets stuck at end of file - 2612 7.4.637 buffer number for autocommand is wrong - 1674 7.4.638 can't build with Lua 5.3 on Windows - 6808 7.4.639 combination of linebreak and conceal doesn't work well - 2214 7.4.640 after joining lines in Insert mode undo does not work properly - 2356 7.4.641 the tabline menu was using ":999tabnew" which is now invalid - 4539 7.4.642 when using "gf" escaped spaces are not handled - 6487 7.4.643 using the default file format for Mac files (Issue 77) - 1597 7.4.644 Stratus VOS doesn't have sync() - 3336 7.4.645 window count wrong when splitting window in BufAdd autocommand - 3961 7.4.646 ":bufdo" may start at a deleted buffer - 5305 7.4.647 files differ after running the tests on MS-Windows - 1462 7.4.648 (after 7.4.647) tests broken on MS-Windows - 1941 7.4.649 compiler complains about ignoring return value of fwrite() - 5907 7.4.650 configure check may fail because the dl library is not used - 1972 7.4.651 (after 7.4.582) can't match "%>80v" for multi-byte characters - 12413 7.4.652 xxd lacks a few features - 11064 7.4.653 Insert mode completion may have CTRL-L work like CTRL-P - 5292 7.4.654 glob()/ globpath() cannot include links to non-existing files - 4592 7.4.655 text deleted by "dit" depends on indent of closing tag - 2854 7.4.656 (after 7.4.654) missing changes for glob() in one file - 2249 7.4.657 (after 7.4.656) compiler warnings for pointer mismatch - 3033 7.4.658 'formatexpr' is evaluated too often - 2711 7.4.659 when 'ruler' is set the preferred column is reset (Issue 339) - 2025 7.4.660 using freed memory if g:colors_name is changed - 1571 7.4.661 using "0 CTRL-D" in Insert mode may have CursorHoldI interfere - 6826 7.4.662 selecting text object can be wrong when 'M' is in the 'cpo' - 1729 7.4.663 when using netbeans a buffer is not found in another tab - 2289 7.4.664 effect of 'numberwidth' being set not immediately visible - 2582 7.4.665 'linebreak' does not work properly with multi-byte characters - 2470 7.4.666 there is a chance that Vim may lock up - 2109 7.4.667 'colorcolumn' isn't drawn in closed fold like 'cursorcolumn' - 4671 7.4.668 can't use a glob pattern as a regexp pattern - 4296 7.4.669 when netbeans is active the sign column always shows up - 9924 7.4.670 using 'cindent' for Javascript is less than perfect - 2049 7.4.671 (after 7.4.665) warning for shadowing a variable - 13937 7.4.672 shell command completion does not see local directories - 1459 7.4.673 first syntax entry gets wrong sequence number zero - 2019 7.4.674 (after 7.4.672) missing changes in one file - 2676 7.4.675 when FileReadPost moves cursor inside line it gets moved back - 6606 7.4.676 on Mac, configure can't handle non-default Python framework - 3820 7.4.677 (after 7.4.676) configure fails when using python-config-dir - 3797 7.4.678 when using --remote the directory may end up being wrong - 2444 7.4.679 color values greater than 255 cause problems on MS-Windows - 9657 7.4.680 CTRL-W in Insert mode does not work well for multi-byte chars - 2327 7.4.681 MS-Windows: with minimized Vim window height is incorrect - 2603 7.4.682 search and match highlighting replace cursorline highlighting - 2222 7.4.683 typo in the vimtutor command - 12068 7.4.684 using non-unique temp file names when running Vim in diff mode - 1953 7.4.685 with illegal utf-8 chars old regexp engine may crash - 3157 7.4.686 "zr" and "zm" do not take a count - 9372 7.4.687 there is no way to use a different Replace cursor in terminal - 1697 7.4.688 when "$" is in 'cpo' the popup menu isn't undrawn correctly - 4590 7.4.689 MS-Windows: problem with diff mode when 'autochdir' is set - 3392 7.4.690 memory access errors when changing indent in Ex mode - 4331 7.4.691 (after 7.4.689) can't build with MzScheme - 1645 7.4.692 defining SOLARIS for no good reason - 2100 7.4.693 session file is not correct when there are multiple tab pages - 1515 7.4.694 running tests changes the .viminfo file - 2184 7.4.695 out-of-bounds read, detected by Coverity - 1809 7.4.696 not freeing memory when encountering an error - 1887 7.4.697 the filename used for ":profile" must be given literally - 14611 7.4.698 various problems with locked and fixed lists and dictionaries - 1420 7.4.699 E315 when trying to delete a fold - 3529 7.4.700 fold can't be opened after ":move" - 1774 7.4.701 compiler warning for using uninitialized variable - 1675 7.4.702 joining an empty list does unnecessary work - 1837 7.4.703 compiler warning for start_dir unused when building unittests - 20231 7.4.704 invalid memory access if char search matches an illegal byte - 1983 7.4.705 can't build with Ruby 2.2 - 2207 7.4.706 drawing error when 'laststatus' zero and a cmdline window - 1623 7.4.707 undo files can have their executable bit set - 20526 7.4.708 gettext() is called too often - 8809 7.4.709 ":tabmove" does not work as documented - 10791 7.4.710 it is not possible to make spaces visible in list mode - 1437 7.4.711 (after 7.4.710) missing change in one file - 1434 7.4.712 missing change in another file - 1657 7.4.713 wrong condition for #ifdef - 1636 7.4.714 illegal memory access when there are illegal bytes - 1778 7.4.715 invalid memory access when there are illegal bytes - 2272 7.4.716 ":substitute" flags are not always remembered - 7430 7.4.717 ":let list += list" can change a locked list - 2800 7.4.718 quickfix autocommands cannot get the current title value - 1682 7.4.719 overflow when adding MAXCOL to a pointer - 4211 7.4.720 can't build with Visual Studio 2015 - 2029 7.4.721 empty lines do not have Visual highlighting if 'list' set - 3246 7.4.722 0x202f is not recognized as a non-breaking space character - 7610 7.4.723 for indenting, finding the C++ baseclass can be slow - 9665 7.4.724 vim icon does not show in Windows context menu (issue 249) - 1569 7.4.725 ":call setreg('"', [])" reports an internal error - 1442 7.4.726 (after 7.4.724) cannot build GvimExt - 1709 7.4.727 (after 7.4.724) cannot build GvimExt with MingW - 2037 7.4.728 can't build with some version of Visual Studio 2015 - 1647 7.4.729 (after 7.4.721) occasional crash with 'list' set - 9012 7.4.730 when setting the crypt key text in swap file may be corrupted - 5005 7.4.731 the tab menu shows "Close tab" even when it doesn't work - 1472 7.4.732 the cursor line is not always updated for the "O" command - 1408 7.4.733 test_listchars breaks on MS-Windows - 9465 7.4.734 ml_get error when using "p" in Visual selection in last line - 1514 7.4.735 wrong argument for sizeof() - 2537 7.4.736 invalid memory access - 1573 7.4.737 on MS-Windows vimgrep over arglist doesn't work (Issue 361) - 2961 7.4.738 (after 7.4.732) can't compile without the syntax HL feature - 1749 7.4.739 in a string "\U" only takes 4 digits, should be eight - 2493 7.4.740 ":1quit" works like ":.quit" - 5470 7.4.741 when using += with ":set" a trailing comma is not recognized - 4378 7.4.742 no vertical split when loading buffer for a quickfix command - 4122 7.4.743 "p" in Visual mode causes an unexpected line split - 6095 7.4.744 no tests for Ruby and Perl - 4813 7.4.745 entries returned by getmatches() don't work with setmatches() - 2710 7.4.746 ":[count]tag" is not always working - 1489 7.4.747 ":cnext" may jump to wrong column when 'virtualedit' is "all" - 1459 7.4.748 (after 7.4.745) buffer overflow - 44109 7.4.749 (after 7.4.741) two consecutive commas are OK for some options - 3282 7.4.750 cannot build with clang 3.5 on Cygwin with perl enabled - 3533 7.4.751 it is not obvious how to enable the address sanitizer - 5908 7.4.752 Unicode 8.0 not supported - 10679 7.4.753 appending in Visual mode with 'linebreak' set is wrong - 24821 7.4.754 using CTRL-A in Visual mode does not work well - 7572 7.4.755 it is not easy to count the number of characters - 6051 7.4.756 can't use strawberry Perl 5.22 x64 on MS-Windows - 8830 7.4.757 cannot detect the background color of a terminal - 1573 7.4.758 'conceallevel' in command-line window hides first character - 5370 7.4.759 building with Lua 5.3 doesn't work, symbols have changed - 1596 7.4.760 spelling mistakes are not displayed after ":syn spell" - 4055 7.4.761 (after 7.4.757) incomplete request-background implementation - 2084 7.4.762 (after 7.4.757) comment for may_req_bg_color() is wrong - 5135 7.4.763 (after 7.4.759) building with Lua 5.1 doesn't work - 1553 7.4.764 (after 7.4.754) test_increment fails on MS-Windows - 12311 7.4.765 (after 7.4.754) CTRL-A/CTRL-X in Visual mode do not work well - 3085 7.4.766 (after 7.4.757) bg color check does not work on Tera Term - 2200 7.4.767 --remote-tab-silent can fail on MS-Windows - 6780 7.4.768 :diffoff only works properly once - 3627 7.4.769 (after 7.4 768) behavior of :diffoff is not tested - 8689 7.4.770 (after 7.4.766) different bg color response is not ignored - 8368 7.4.771 search wrong when multi-byte character at the start position - 3635 7.4.772 Racket 6.2 is not supported on MS-Windows - 2851 7.4.773 'langmap' is used in cmdline mode when checking for mappings - 7318 7.4.774 it's difficult to get info about the completed item - 6711 7.4.775 it is not possible to avoid using the first item of completion - 3109 7.4.776 equivalence class for 'd' does not work correctly - 5822 7.4.777 the README file doesn't look nice on github - 1682 7.4.778 Coverity warns for uninitialized variable - 2249 7.4.779 cursor moves when using CTRL-A in line without a number - 2682 7.4.780 compiler complains about uninitialized and clobbered variables - 1620 7.4.781 line2byte() returns one less when 'bin' and 'noeol' are set - 23839 7.4.782 still a few problems with CTRL-A and CTRL-X in Visual mode - 11681 7.4.783 copy_chars() and copy_spaces() are inefficient - 1746 7.4.784 using both "noinsert" and "noselect" in 'completeopt' fails - 18639 7.4.785 automatically adding the missing EOL may cause problems - 25332 7.4.786 it is not possible for a plugin to adjust to a changed setting - 3111 7.4.787 (after 7.4.786) snprintf() isn't available everywhere - 2355 7.4.788 (after 7.4.786) can't build without the crypt feature - 2730 7.4.789 (after 7.4.788) using freed memory and crash - 5328 7.4.790 (after 7.4.786) test fails without the autochdir feature - 6313 7.4.791 the buffer list can be too long to list - 27735 7.4.792 can only conceal text by defining syntax items - 22823 7.4.793 can't specify when not to ring the bell - 1645 7.4.794 Visual Studio 2015 is not recognized - 1420 7.4.795 the 'fixeol' option is not copied to a new window - 1609 7.4.796 warning from 64 bit compiler - 7291 7.4.797 crash when using more command line lines than 'maxcombine' - 3832 7.4.798 repeating a change in Visual mode does not work as expected - 1598 7.4.799 accessing memory before an allocated block - 1889 7.4.800 using freed memory when triggering CmdUndefined autocommands - 2265 7.4.801 (after 7.4.769) ":diffoff" test could catch more problems - 2315 7.4.802 using "A" in Visual mode with 'linebreak' set is not tested - 41522 7.4.803 C indent does not support C11 raw strings - 1515 7.4.804 Xxd doesn't have a license notice - 1662 7.4.805 ruler shows "Bot" when there are only filler lines missing - 3907 7.4.806 CTRL-A in Visual mode fails with "alpha" in 'nrformat' - 3649 7.4.807 (after 7.4.798) after CTRL-V CTRL-A mode isn't updated - 3304 7.4.808 on MS-Windows 10 IME input doesn't work correctly - 2336 7.4.809 (after 7.4.802) duplicate test case - 1825 7.4.810 sequence of commands using buffers in diff mode gives E749 - 2419 7.4.811 invalid memory access when using "exe 'sc'" - 1927 7.4.812 Gcc sanitizer complains about using NULL pointer to memmove() - 20045 7.4.813 it is not possible to save and restore character search state - 1561 7.4.814 illegal memory access with "sy match a fold" - 1721 7.4.815 invalid memory access when doing ":call g:" - 1271 7.4.816 invalid memory access when doing ":fun X(" - 1202 7.4.817 invalid memory access in file_pat_to_reg_pat() - 3206 7.4.818 'linebreak' breaks c% if the last Visual selection was block - 13128 7.4.819 beeping when running the tests - 1841 7.4.820 invalid memory access in file_pat_to_reg_pat - 2718 7.4.821 coverity reports a few problem. - 19948 7.4.822 more problems reported by coverity - 2528 7.4.823 cursor moves after CTRL-A on alphabetic character - 1654 7.4.824 (after 7.4.813) can't compile without the multi-byte feature - 2270 7.4.825 invalid memory access for ":syn keyword x a[" - 1946 7.4.826 compiler warnings and errors - 1795 7.4.827 not all test targets are in the Makefile - 1748 7.4.828 crash when using "syn keyword x c" - 1635 7.4.829 crash when clicking in beval balloon - 2105 7.4.830 resetting 'encoding' when doing ":set all&" causes problems - 3365 7.4.831 when error in expanding `=expr` the command is still executed - 1815 7.4.832 $HOME in `=$HOME . '/.vimrc'` is expanded too early - 8285 7.4.833 more side effects of ":set all&" are missing - 2971 7.4.834 gettabvar() doesn't work after Vim start - 3913 7.4.835 comparing utf-8 does not handle different byte sizes correctly - 1306 7.4.836 accessing unitinialized memory - 1478 7.4.837 compiler warning with MSVC compiler when using +sniff - 1820 7.4.838 (after 7.4.833) can't compile without the crypt feature - 1944 7.4.839 compiler warning on 64-bit system - 1482 7.4.840 (after 7.4.829) tooltip window stays open - 2380 7.4.841 can't compile without the multi-byte feature - 1456 7.4.842 sending too many messages to close the balloon - 2336 7.4.843 (after 7.4.835) still possible to go beyond end of a string - 5956 7.4.844 when '#' is in 'isident' the is# comparator doesn't work - 1720 7.4.845 compiler warning for possible loss of data - 3410 7.4.846 some GitHub users don't know how to use issues - 1541 7.4.847 "vi)d" may leave a character behind - 2613 7.4.848 CTRL-A on hex number in Visual block mode is incorrect - 11225 7.4.849 moving the cursor in Insert mode starts new undo sequence - 1868 7.4.850 does not show up - 11192 7.4.851 saving and restoring console buffer does not work properly - 16460 7.4.852 MS-Windows console cannot input/output Unicode characters - 2377 7.4.853 "zt" in diff mode does not always work properly - 2145 7.4.854 missing information about runtime files - 2113 7.4.855 GTK: font glitches for combining characters - 2405 7.4.856 "zt" still doesn't work well with filler lines - 1663 7.4.857 dragging the current tab with the mouse doesn't work properly - 39395 7.4.858 it's a bit clumsy to execute a command on a list of matches - 1653 7.4.859 Vim doesn't recognize all htmldjango files - 18401 7.4.860 filetype detection is outdated - 4357 7.4.861 (after 7.4.855) pango_shape_full() is not always available - 3012 7.4.862 (after 7.4.861) still problems with pango_shape_full() - 4501 7.4.863 plines_nofill() used without the diff feature - 3940 7.4.864 (after 7.4.858) tiny build fails - 1434 7.4.865 compiler warning for uninitialized variable - 17603 7.4.866 crash when changing the 'tags' option from a remote command - 1698 7.4.867 (after 7.4.866) can't build on MS-Windows - 4998 7.4.868 'smarttab' is also effective when 'paste' is enabled - 4534 7.4.869 MS-Windows with Intel GPU: scroll may cause text to disappear - 2143 7.4.870 get into an invalid state when using getchar() in expr mapping - 5367 7.4.871 Vim leaks memory when 'wildignore' filters out all matches - 3694 7.4.872 not using CI services available - 3729 7.4.873 (after 7.4.866) compiler warning for unused variable - 2467 7.4.874 MS-Windows: size isn't right when inside another application - 1459 7.4.875 not obvious how to contribute - 3258 7.4.876 Windows7: using vim with msys/msys2, conhost.exe freezes - 1484 7.4.877 ":find" sometimes fails - 1527 7.4.878 Coverity error for clearing only one byte of struct - 2727 7.4.879 can't see line numbers in nested function calls - 1665 7.4.880 no build and coverage status - 6097 7.4.881 (after 7.4.879) test 49 fails - 1623 7.4.882 popup menu remains visible when leaving command line window - 2651 7.4.883 (after 7.4.818) block-mode replace works characterwise - 1293 7.4.884 Travis also builds on a tag push - 2287 7.4.885 upwards search without wildcards does not always work - 2908 7.4.886 (after 7.4.876) Windows7: screen flicker when using system() - 1873 7.4.887 using uninitialized memory for regexp with back reference - 4794 7.4.888 OptionSet autocommands are not triggered from setwinvar() - 3145 7.4.889 triggering OptionSet from setwinvar() isn't tested - 2032 7.4.890 build failure when using dynamic python but not python3 - 5013 7.4.891 indentation of array initializer is wrong - 3100 7.4.892 on MS-Windows the iconv DLL may have a different name - 2911 7.4.893 C indenting is wrong below a "case (foo):" - 1617 7.4.894 vimrun.exe is picky about the number of spaces before -s - 2169 7.4.895 cmdline completion does not work for a command with digits - 2387 7.4.896 editing a URL, which netrw should handle, doesn't work - 1776 7.4.897 freeze and crash when there is a sleep in a remote command - 1419 7.4.898 the 'fixendofline' option is set on with ":edit" - 4930 7.4.899 README file is not optimal - 2100 7.4.900 (after 7.4.899) README file can still be improved - 2150 7.4.901 BufLeave autocommand an corrupt undo - 13294 7.4.902 problems with using the MS-Windows console - 1820 7.4.903 MS-Windows: expanding wildcards may cause bad memory access - 10391 7.4.904 Vim does not provide .desktop files - 8728 7.4.905 Python interface misses some functions on vim.message - 2927 7.4.906 MS-Windows: viminfo file is (always) given hidden attribute - 17429 7.4.907 dynamically loaded libs can only be defined at compile time - 1639 7.4.908 (after 7.4.907) build error with MingW compiler - 2331 7.4.909 "make install" fails - 1784 7.4.910 (after 7.4.905) compiler complains about type punned pointer - 1425 7.4.911 t_Ce and t_Cs are documented but not supported - 2179 7.4.912 wrong indenting for C++ constructor - 12094 7.4.913 no utf-8 support for the hangul input feature - 1384 7.4.914 new compiler warning: logical-not-parentheses - 2528 7.4.915 comma goes missing when removing from 'path' and then adding - 1516 7.4.916 when running out of memory, memory may be freed twice - 1529 7.4.917 compiler warning for comparing signed and unsigned - 3223 7.4.918 (after 7.4.907) a digit in an option name has problems - 7041 7.4.919 the dll options are not in the options window - 1505 7.4.920 the rubydll option is not in the options window - 1505 7.4.921 (after 7.4.906) missing proto file update - 1361 7.4.922 leaking memory with ":helpt {dir-not-exists}" - 2745 7.4.923 prototypes not always generated - 2817 7.4.924 DEVELOPER_DIR gets reset by configure - 5768 7.4.925 user may yank or put using the register being recorded in - 4328 7.4.926 completing longest match doesn'thandle multi-byte chars - 3376 7.4.927 Ruby crashes when there is a runtime error - 1891 7.4.928 a clientserver message interrupts handling keys of a mapping - 2457 7.4.929 "gv" after paste selects one char less if 'sel' is "exclusive" - 2135 7.4.930 MS-Windows: Most users appear not to like the window border - 1446 7.4.931 (after 7.4.929) test 94 fails on some systems - 3398 7.4.932 (after 7.4.926) test_utf8 has confusing dummy command - 1411 7.4.933 (after 7.4.926) crash using longest match in completion - 1381 7.4.934 Appveyor also builds on a tag push - 3041 7.4.935 test_utf8 fails on MS-Windows when executed with gvim - 2168 7.4.936 crash when dragging with the mouse - 1555 7.4.937 segfault reading unitialized memory - 2626 7.4.938 X11 and GTK have moure mouse buttons than Vim supports - 1695 7.4.939 memory leak when encountering a syntax error - 4766 7.4.940 vt52 terminal codes are not correct - 25376 7.4.941 there is no way to ignore case only for tag searches - 1372 7.4.942 (after 7.4.941) test_tagcase breaks for small builds - 4211 7.4.943 test_writefile tests are not run - 14800 7.4.944 writing tests for Vim script is hard - 13039 7.4.945 (after 7.4.944) new style testing is incomplete - 9161 7.4.946 (after 7.4.945) missing changes in source file - 1718 7.4.947 test_listchars fails with MingW - 1793 7.4.948 can't build when the insert_expand feature is disabled - 6173 7.4.949 highlighting wrong for 'colorcolumn' with a fullwidth sign - 1520 7.4.950 v:errors is not initialized - 5628 7.4.951 sorting number strings does not work as expected - 9868 7.4.952 'lispwords' is tested in the old way - 1602 7.4.953 a test may create the .res file with a wrong name - 2104 7.4.954 when using Lua there may be a crash (issue #468) - 1878 7.4.955 Vim doesn't recognize .pl6 and .pod6 files - 3136 7.4.956 a few more file name extensions not recognized - 1394 7.4.957 test_tagcase fails when using another language than English - 2061 7.4.958 Vim checks if the directory "$TMPDIR" exists - 1467 7.4.959 when setting 'term' the clipboard ownership is lost - 8759 7.4.960 detecting every version of nmake is clumsy - 3189 7.4.961 test107 fails in some circunstances - 4477 7.4.962 cannot run the tests with gvim and individual new tests - 3221 7.4.963 test_listlbr_utf8 sometimes fails - 2454 7.4.964 test 87 doesn't work in a shadow directory - 1722 7.4.965 on FreeBSD /dev/fd/ files are special - 18882 7.4.966 configure doesn't work with a space in a path - 3142 7.4.967 cross compilation on MS-windows doesn't work well - 2148 7.4.968 test86 and test87 are flaky in Appveyor - 1776 7.4.969 compiler warnings on Windowx x64 build - 1880 7.4.970 rare crash in getvcol() - 1987 7.4.971 the asin() function can't be used - 1533 7.4.972 memory leak when there is an error in setting an option - 3832 7.4.973 pasting on the command line line inserts characters - 2578 7.4.974 when using :diffsplit the cursor jumps to the first line - 1857 7.4.975 using ":sort" on a very big file may cause corrupted text - 3304 7.4.976 when compiling for MSYS2 the Win32 clipboard is not enabled - 7135 7.4.977 problem with 'linebreak' set and using "space" in 'listchars' - 1738 7.4.978 test_cdo fails when using another language than English - 1891 7.4.979 when crypt key changes blocks read from disk are not decrypted - 17049 7.4.980 tests for :cdo, :ldo, etc. are outdated - 2519 7.4.981 an error in a test script goes unnoticed - 28211 7.4.982 keeping the list of tests updated is a hassle - 8225 7.4.983 executing one test after "make testclean" doesn't work - 8427 7.4.984 searchpos() always starts searching in the first column - 8008 7.4.985 can't build with Ruby 2.3.0 - 2551 7.4.986 test49 doesn't work on MS-Windows, test70 is listed twice - 2394 7.4.987 (after 7.4.985) can't build with Ruby 1.9.2 - 3273 7.4.988 (after 7.4.982) default test target is test49.out - 1668 7.4.989 leaking memory when hash_add() fails; Coverity error 99126 - 1803 7.4.990 test 86 fails on AppVeyor - 7178 7.4.991 when running new style tests the output is not visible - 10272 7.4.992 makefiles for MS-Windows in src/po are outdated - 2531 7.4.993 test 87 is flaky on AppVeyor - 3360 7.4.994 new style tests are not run on MS-Windows - 40522 7.4.995 gdk_pixbuf_new_from_inline() is deprecated - 4784 7.4.996 new files missing from distro, outdated PC build instructions - 2956 7.4.997 "make shadow" was sometimes broken - 2803 7.4.998 running tests in shadow directory fails; test 49 fails - 1366 7.4.999 "make shadow" creates a broken link - 23744 7.4.1000 test 49 is slow and doesn't work on MS-Windows - 1371 7.4.1001 (after 7.4.1000) change in makefile missing - 1894 7.4.1002 cannot run an individual test on MS-Windows - 3048 7.4.1003 Travis could check a few more things - 1626 7.4.1004 warnings when using Makefile without auto/config.mk - 10231 7.4.1005 Vim users are not always happy - 4320 7.4.1006 the fix in patch 7.3.192 is not tested - 2537 7.4.1007 swapfile wrong when symbolic link points to file in root dir - 77315 7.4.1008 OS/2 code pollutes the source while nobody uses it these days - 8490 7.4.1009 there are still #ifdefs for ARCHIE - 2093 7.4.1010 some developers are unhappy while running tests - 2505 7.4.1011 can't build with Strawberry Perl - 2024 7.4.1012 Vim overwrites the value of $PYTHONHOME - 3335 7.4.1013 local value of 'errorformat' not used for :lexpr and :cexpr - 1950 7.4.1014 fnamemodify('.', ':.') returns an empty string in Cygwin - 4269 7.4.1015 matchparen plugin does not restore column in Insert mode - 4777 7.4.1016 still a few OS/2 pieces remain - 4525 7.4.1017 when there is a backslash in an option ":set -=" doesn't work - 1361 7.4.1018 (after 7.4.1017) failure running tests - 6463 7.4.1019 directory listing of "src" is too long - 1380 7.4.1020 on MS-Windows there is no target to run tests with gvim - 3200 7.4.1021 some makefiles are outdated - 3500 7.4.1022 the README file contains some outdated information - 16050 7.4.1023 MS-Windows distribution files use CR-LF instead of LF - 2250 7.4.1024 interfaces for MS-Windows are outdated - 3670 7.4.1025 version in installer needs to be updated manually - 3843 7.4.1026 running tests with MingW leaves directory behind - 40082 7.4.1027 no support for binary numbers - 1536 7.4.1028 Nsis version file missing from the distribution - 1930 7.4.1029 (after 7.4.1027) test_increment fails with 32 bit long - 27245 7.4.1030 test49 is still slow - 9385 7.4.1031 can't build with Python interface using MingW - 2416 7.4.1032 message from assert_false() does not look nice - 4311 7.4.1033 memory use on MS-Windows is very conservative - 3550 7.4.1034 there is no test for the 'backspace' option behavior - 3134 7.4.1035 non-line number Ex range gets adjusted for folded lines - 2689 7.4.1036 only terminals with up to 256 colors work properly - 8591 7.4.1037 need to repeat "q!" when there is a modified hidden buffer - 3585 7.4.1038 still get a deprecation warning with gdk-pixbuf 2.31 - 1351 7.4.1039 (after 7.4.1037) test 31 fails with small build - 4712 7.4.1040 the tee command can't be build on MS-Windows - 2698 7.4.1041 various small things - 20144 7.4.1042 there is no way to get the word count in a script - 2846 7.4.1043 another small thing - 1473 7.4.1044 (after 7.4.1042) can't build without the +eval feature - 2314 7.4.1045 can't see coverage if shadow and coverage on the same build - 1919 7.4.1046 no test coverage for menus - 1313 7.4.1047 (after patch 7.4.1042) tests fail on MS-Windows - 1795 7.4.1048 (after patch 7.4.1047) test still fails on MS-Windows - 1712 7.4.1049 (after patch 7.4.1048) test still still fails on MS-Windows - 3619 7.4.1050 warning for unused var with tiny features - 3758 7.4.1051 segfault when unletting "count" - 2463 7.4.1052 illegal memory access with weird syntax command - 10050 7.4.1053 insufficient testing for quickfix commands - 1495 7.4.1054 illegal memory access - 3525 7.4.1055 running "make newtests" in src/testdir has no output - 11108 7.4.1056 don't know why finding spell suggestions is slow - 2151 7.4.1057 typos in the :options window - 8986 7.4.1058 not possible to test behavior when memory allocation fails - 1352 7.4.1059 code is never executed - 3961 7.4.1060 instructions for writing tests are outdated - 2799 7.4.1061 compiler warning for ignoring return value of fwrite() - 4105 7.4.1062 building with Ruby on MS-Windows requires a lot of arguments - 2259 7.4.1063 TCL variables are not set when building with Cygwin and MingW - 7842 7.4.1064 with single letter compounding spell suggestions are slow - 13599 7.4.1065 cannot use the "dll" options on MS-Windows - 2890 7.4.1066 (after 7.4.1065) build fails on MS-Windows - 2723 7.4.1067 (after 7.4.1065) Can't build with MingW+Python on MS-Windows - 2880 7.4.1068 wrong way to check for unletting internal variables - 2244 7.4.1069 compiler warning for unused argument - 22364 7.4.1070 the Tcl interface can't be loaded dynamically on Unix - 2913 7.4.1071 new style tests are executed in arbitrary order - 27621 7.4.1072 increment test is old style - 7927 7.4.1073 alloc_id depends on numbers, may use the same one twice - 1525 7.4.1074 warning from VX2015 compiler - 1890 7.4.1075 crash when using an invalid command - 3552 7.4.1076 CTRL-A does not work well in right-left mode - 16900 7.4.1077 the build instructions for MS-Windows are incomplete - 1631 7.4.1078 MSVC: "make clean" doesn't cleanup in the tee directory - 2641 7.4.1079 (after 7.4.1073) file missing from distribution - 1865 7.4.1080 VS2015 HandleToLong() is shadowed by a Vim macro - 1617 7.4.1081 no test for what previously caused a crash - 1374 7.4.1082 the Tcl interface is always skipping memory free on exit - 2672 7.4.1083 building GvimExt with VS2015 may fail - 2963 7.4.1084 repeating CTRL-A in Visual mode increments the wrong numbers - 3938 7.4.1085 the CTRL-A and CTRL-X commands do not update '[ and '] marks - 1464 7.4.1086 crash with an extremely long buffer name - 33779 7.4.1087 CTRL-A and CTRL-X work badly with blockwise visual selection - 4334 7.4.1088 Coverity warns for uninitialized variables - 2506 7.4.1089 repeating CTRL-A doesn't work - 4054 7.4.1090 no tests for :hardcopy and related options - 1945 7.4.1091 2 sec delay when making change while need_wait_return is set - 6884 7.4.1092 is not simple to test for an exception - 4690 7.4.1093 typo in test goes unnoticed - 2163 7.4.1094 test for :hardcopy fails on MS-Windows - 2089 7.4.1095 can't build GvimExt with SDK 7.1 - 8454 7.4.1096 need several lines to verify a command produces an error - 3138 7.4.1097 looking up the alloc ID for tests fails - 8123 7.4.1098 still using old style C function declarations - 5136 7.4.1100 Cygwin makefiles are unused - 1787 7.4.1101 cursor in wrong position with 'rightleft' and concealing - 16478 7.4.1102 debugger has no stack backtrace support - 1334 7.4.1103 removed file still in distribution - 66134 7.4.1104 various problems building with MzScheme/Racket - 3911 7.4.1105 with slices there is a mixup of variable name and namespace - 7623 7.4.1106 the nsis script can't be used from the appveyor build - 11125 7.4.1107 Vim can create a directory but not delete it - 5251 7.4.1108 expanding "~" halfway a file name - 2549 7.4.1109 (after 7.4.1107) MS-Windows doesn't have rmdir() - 1261 7.4.1110 test 108 fails when language is French - 4008 7.4.1111 test_expand fails on MS-Windows - 1941 7.4.1112 no error is reported for ":next" with an illegal file name - 3248 7.4.1113 (after 7.4.1105) using {ns} in variable name does not work - 7989 7.4.1114 (after 7.4.1107) delete() does not handle symbolic links - 1643 7.4.1115 MS-Windows: make clean in testdir doesn't clean everything - 4697 7.4.1116 delete(x, 'rf') does not delete files starting with a dot - 3673 7.4.1117 (after 7.4.1116) no longer get "." and ".." in directory list - 1515 7.4.1118 tests hang in 24 line terminal - 2878 7.4.1119 argidx() has a wrong value after ":%argdelete" - 3505 7.4.1120 delete(x, 'rf') fails if a directory is empty - 1931 7.4.1121 test_expand leaves files behind - 4831 7.4.1122 test 92 and 93 fail with gvim on system with non utf-8 locale - 3513 7.4.1123 using ":argadd" makes wrong arg the current one - 7088 7.4.1124 MS-Windows: dead key behavior is not ideal - 17310 7.4.1125 there is no perleval() - 18360 7.4.1126 can only get the directory of the current window - 5343 7.4.1127 both old and new style tests for Perl - 5906 7.4.1128 MS-Windows: delete() does not recognize junctions - 3123 7.4.1129 Python None value can't be converted to a Vim value - 1550 7.4.1130 memory leak in :vimgrep - 10012 7.4.1131 new lines in the viminfo file are dropped -332180 7.4.1133 generated function prototypes still have __ARGS() - 1846 7.4.1134 the arglist test fails on MS-Windows - 1654 7.4.1135 one more arglist test fails on MS-Windows - 2379 7.4.1136 wrong argument to assert_exception() causes a crash - 2012 7.4.1137 illegal memory access when using :copen and :cclose - 1919 7.4.1138 when running gvim in the foreground some icons are missing - 4507 7.4.1139 MS-Windows: getftype() returns "file for symlink to directory - 1802 7.4.1140 recognizing does not work when the language is Turkish - 1677 7.4.1141 searchpair() with a syntax skip expression may not work - 14719 7.4.1142 cannot define keyword characters for a syntax file - 16382 7.4.1143 can't sort on floating point numbers - 1414 7.4.1144 (after 7.4.1143) can't build on several systems - 4215 7.4.1145 default features are conservative - 3103 7.4.1146 can't build with Python 3 interface using MingW - 15538 7.4.1147 conflict for "chartab" - 2751 7.4.1148 default for MingW and Cygwin is still "normal" - 3709 7.4.1149 (after 7.4.1013) problem with using local value of 'efm' - 6220 7.4.1150 'langmap' applies to the first character typed in Select mode - 1952 7.4.1151 (after 7.4.1150) missing change to eval.c - 1289 7.4.1152 (after 7.4.1150) langmap test fails with normal build - 2743 7.4.1153 autocommands for quickfix cannot always get current title - 55330 7.4.1154 no support for JSON - 1596 7.4.1155 (after 7.4.1154) build with normal features fails - 1953 7.4.1156 Coverity warns for NULL pointer and ignoring return value - 3787 7.4.1157 type() does not work for v:true, v:none, etc. - 74145 7.4.1158 still using __ARGS() - 16118 7.4.1159 automatically generated function prototypes use __ARGS - 1360 7.4.1160 no error for jsondecode('"') - 3333 7.4.1161 ":argadd" without argument does not work as documented - 1710 7.4.1162 missing error number in MzScheme - 3935 7.4.1163 expressions "0 + v:true" and "'' . v:true" cause an error - 5677 7.4.1164 can't compare special vars; jsondecode() doesn't report error - 4780 7.4.1165 build fails when defining DYNAMIC_ICONV_DLL in the makefile - 6664 7.4.1166 jsonencode() doesn't handle Funcref and repeated list right - 2213 7.4.1167 no tests for "is" and "isnot" with the new variables - 2678 7.4.1168 this doesn't give the right result: eval(string(v:true)) - 35041 7.4.1169 the socket I/O is intertwined with the netbeans code - 5990 7.4.1170 (after 7.4.1169) missing changes in src/Makefile, Filelist - 45145 7.4.1171 Makefile dependencies are outdated - 3160 7.4.1172 (after 7.4.1169) configure is overly positive - 1661 7.4.1173 (after 7.4.1168) no test for new behavior of v:true et al. - 4024 7.4.1174 netbeans contains dead code insde #ifndef INIT_SOCKETS - 1317 7.4.1175 (after 7.4.1169) can't build with Mingw and Cygwin - 1745 7.4.1176 missing change to proto file - 1335 7.4.1177 the +channel feature is not in :version output - 2064 7.4.1178 empty() doesn't work for the new special variables - 3461 7.4.1179 test_writefile and test_viml do not delete the tempfile - 2503 7.4.1180 crash with invalid argument to glob2regpat() - 2015 7.4.1181 free_tv() can't handle special variables - 44537 7.4.1182 still socket code intertwined with netbeans - 1726 7.4.1183 (after 7.4.1182) MS-Windows build is broken - 1575 7.4.1184 MS-Windows build is still broken - 4866 7.4.1185 can't build with TCL on some systems - 2549 7.4.1186 error messages for security context are hard to translate - 3976 7.4.1187 MS-Windows channel code only supports one channel - 4016 7.4.1188 using older JSON standard - 1922 7.4.1189 (after 7.4.1165) can't use another language on MS-Windows - 6783 7.4.1190 on OSX the default flag for dlopen() is different - 39635 7.4.1191 the channel feature isn't working yet - 1496 7.4.1192 can't build with FEAT_EVAL but without FEAT_MBYTE - 1486 7.4.1193 can't build the channel feature on MS-Windows - 3392 7.4.1194 compiler warning for not using return value of fwrite() - 8082 7.4.1195 the channel feature does not work in the MS-Windows console - 61502 7.4.1196 still using __ARGS - 62132 7.4.1197 still using __ARGS (fixed) - 98165 7.4.1198 still using __ARGS -141118 7.4.1199 still using __ARGS - 3902 7.4.1201 still using __ARGS - 3652 7.4.1202 can't build on Mac - 21663 7.4.1203 still using __ARGS (corrected patch) - 1835 7.4.1204 latin1 characters cause encoding conversion -414547 7.4.1205 using old style function declarations -271505 7.4.1206 using old style function declarations -205336 7.4.1207 using old style function declarations -147428 7.4.1208 using old style function declarations - 7098 7.4.1209 (after 7.4.1207) can't build with Athena -169183 7.4.1210 using old style function declarations -292164 7.4.1211 using old style function declarations - 1448 7.4.1212 (after 7.4.1207) can't build with Motif -219134 7.4.1213 using old style function declarations -285046 7.4.1214 using old style function declarations - 76252 7.4.1215 using old style function declarations - 7344 7.4.1216 still using HAVE_STDARG_H - 14109 7.4.1217 execution of command on channel doesn't work yet - 5288 7.4.1218 missing change in configure, more changes for function style - 1660 7.4.1219 build fails with +channel but without +float - 2075 7.4.1220 warnings for unused variables in tiny build - 6278 7.4.1221 tiny and small builds include too many features - 15218 7.4.1222 ":normal" command and others missing in tiny build (fixed 2) - 3568 7.4.1223 crash when setting v:errors to a number - 2475 7.4.1224 build problems with GTK on BSD - 15599 7.4.1225 still a few old style function declarations - 2684 7.4.1226 GRESOURCE_HDR is unused - 2443 7.4.1227 compiler warnings - 2207 7.4.1228 copy() and deepcopy() fail with special variables - 21628 7.4.1229 "eval" and "expr" channel commands don't work yet - 2258 7.4.1230 Win32: opening channel may hang, messages not handled - 24711 7.4.1231 JSON messages are not parsed properly - 1600 7.4.1232 compiler warnings when the Sniff feature is enabled - 1567 7.4.1233 channel command may cause a crash - 5758 7.4.1234 demo server only runs with Python 2 - 4850 7.4.1235 (after 7.4.1231) missing change to eval.c - 2556 7.4.1236 with "syntax manual" switching buffers removes highlighting - 2230 7.4.1237 can't translate message without adding a line break - 34251 7.4.1238 can't handle two messages right after each other (fixed) - 4601 7.4.1239 JSON message after the first one is dropped - 2964 7.4.1240 Visual studio tools are noisy - 2105 7.4.1241 missing change in Makefile due to diff mismatch - 1745 7.4.1242 json_test fails without the eval feature - 1546 7.4.1243 compiler warning for uninitialized variable - 21372 7.4.1244 the channel functions don't sort together - 1414 7.4.1245 file missing from distribution - 16263 7.4.1246 the channel functionality isn't tested - 3980 7.4.1247 the channel test doesn't run on MS-Windows - 2746 7.4.1248 can't reliably start and stop the channel test server - 8008 7.4.1249 crash when the process a channel is connected to exits - 1645 7.4.1250 running tests in shadow directory fails - 1361 7.4.1251 new test file missing from distribution - 6903 7.4.1252 the channel test server may receive two messages concatenated - 4434 7.4.1253 Python test server not displaying second of two commands - 7916 7.4.1254 opening a second channel causes a crash - 4811 7.4.1255 crash for channel "eval" command without third argument - 2618 7.4.1256 on Mac sys.exit(0) doesn't kill the test server - 1842 7.4.1257 channel test fails in some configurations - 1934 7.4.1258 the channel test can fail if messages arrive later - 1840 7.4.1259 no test for what patch 7.3.414 fixed - 3938 7.4.1260 the channel feature doesn't work on Win32 GUI - 3463 7.4.1261 crash on garbage collection, leaking memory - 10824 7.4.1262 the channel callback is not invoked - 31504 7.4.1263 ch_open() hangs when the server isn't running - 4731 7.4.1264 crash when receiving an empty array - 4642 7.4.1265 not all channel commands are tested - 2477 7.4.1266 a BufAdd autocommand may cause an ml_get error - 14468 7.4.1267 easy to miss handling all types of variables - 1645 7.4.1268 waittime is used as seconds instead of milliseconds - 4793 7.4.1269 encoding {'key':v:none} to JSON doesn't give an error - 2674 7.4.1270 warnings for missing values in switch - 2003 7.4.1271 assert_false(v:false) reports an error - 1681 7.4.1272 using future enum value - 32888 7.4.1274 cannot run a job - 2034 7.4.1275 (after 7.4.1274) build fails on MS-Windows - 3454 7.4.1276 warning for not using return value of fcntl() - 2170 7.4.1277 compiler can complain about missing enum value in switch - 7603 7.4.1278 when jsonencode() fails it still returns something - 52706 7.4.1279 jsonencode() is not producing strict JSON - 1519 7.4.1280 missing case value - 2425 7.4.1281 no test for skipping over code that isn't evaluated - 1559 7.4.1282 crash when evaluating the pattern of ":catch" causes an error - 5184 7.4.1283 the job feature isn't available on MS-Windows - 2134 7.4.1284 (after 7.4.1282) test 49 fails - 5215 7.4.1285 cannot measure elapsed time - 3664 7.4.1286 ch_open() with a timeout doesn't work correctly - 1869 7.4.1287 (after 7.4.1286) channel test fails - 3546 7.4.1288 ch_sendexpr() does not use JS encoding - 2299 7.4.1289 channel test fails on MS-Windows, connect() takes too long - 1400 7.4.1290 Coverity complains about uneccessary check for NULL - 1808 7.4.1291 on MS-Windows the channel test server doesn't quit - 2239 7.4.1292 some compilers complain about uninitialzed variable - 4709 7.4.1293 a channel may hang waiting for a discarded message - 1960 7.4.1294 job_stop() only kills the started process - 1853 7.4.1295 string(job) doesn't work well on MS-Windows - 1652 7.4.1296 cursor changes column with up motion when not supposed to - 2883 7.4.1297 on Mac test_channel leaves python instances running - 7301 7.4.1298 when the channel test fails the server keeps running - 4920 7.4.1299 when server sends zero ID message channel handler not invoked - 6089 7.4.1300 cannot test CursorMovedI because there is typeahead - 1672 7.4.1301 missing options in ch_open() - 3806 7.4.1302 typo in struct field name - 4596 7.4.1303 a Funcref is not accepted as a callback - 33319 7.4.1304 function names are difficult to read - 4094 7.4.1305 "\%1l^#.*" does not match on a line starting with "#" - 10114 7.4.1306 job control doesn't work well on MS-Windows - 2107 7.4.1307 some channel tests fail on MS-Windows - 1599 7.4.1308 (after 7.4.1307) typo in test - 5727 7.4.1309 when a test fails not all relevant info is listed - 76009 7.4.1310 jobs don't open a channel - 1847 7.4.1311 (after 7.4.1310) sock_T is defined too late - 1704 7.4.1312 (after 7.4.1311) sock_T not defined without +channel feature - 2518 7.4.1313 MS-Windows: Using socket after closed causes an exception - 1537 7.4.1314 warning for uninitialzed variable -103578 7.4.1315 using channel handle does not allow for freeing when unused - 3091 7.4.1316 can't build MS-Windows console version - 1551 7.4.1317 MS-Windows: channel test fails - 35549 7.4.1318 channel with pipes doesn't work in GUI - 15447 7.4.1319 tests fail on MS-Windows and on Unix with GUI - 1594 7.4.1320 Cygwin/MingW build fails with channel but without Netbeans - 1373 7.4.1321 compiler complains about missing statement - 4971 7.4.1322 crash when unletting the variable that holds the channel - 1732 7.4.1323 do not get warnings when building with MingW - 22670 7.4.1324 channels with pipes don't work on MS-Windows - 4039 7.4.1325 channel test fails on Unix/DOS line endings difference - 1624 7.4.1326 build rules are bit too complicated - 3569 7.4.1327 channel test doesn't work if Python executable is python.exe - 3629 7.4.1328 can't compile with +job but without +channel - 3714 7.4.1329 crash when using channel that failed to open - 2760 7.4.1330 fd_read() has an unused argument - 4098 7.4.1331 crash when closing the channel in a callback - 1848 7.4.1332 problem using Python3 when compiled with MingW - 3250 7.4.1333 channel test fails on non-darwin builds - 57703 7.4.1334 many compiler warnings with MingW - 2420 7.4.1335 can't build on MS-Windows with +job but without +channel - 14759 7.4.1336 channel NL mode is not supported yet - 6711 7.4.1337 (after 7.4.1336) part of the change missing - 1980 7.4.1338 (after 7.4.1336) another part of the change is missing - 23706 7.4.1339 warnings when building the GUI with MingW - 1242 7.4.1340 (after 7.4.1339) merge left extra #endif behind - 21723 7.4.1341 difficult to add more arguments to ch_sendraw()/ch_sendexpr() - 10172 7.4.1342 on Mac OS/X the waittime must be > 0 for connect to work - 4577 7.4.1343 can't compile with +job but without +channel - 1687 7.4.1344 can't compile Win32 GUI with tiny features - 2279 7.4.1345 a few more compiler warnings - 8883 7.4.1346 compiler warnings in build with -O2 - 1590 7.4.1347 when there is any error Vim will use a non-zero exit code - 3191 7.4.1348 more compiler warnings - 2250 7.4.1349 and some more MingW compiler warnings - 2468 7.4.1350 when the test server fails to start Vim hangs - 32197 7.4.1351 ch_open() may fail instead of waiting for the specified time - 1991 7.4.1352 the test script lists all functions before executing them - 1616 7.4.1353 Test_connect_waittime is skipped for MS-Windows - 4470 7.4.1354 MS-Windows: Mismatching default compile options - 9162 7.4.1355 Win32 console and GUI handle channels differently - 16221 7.4.1356 job and channel options parsing is scattered - 1519 7.4.1357 (after 7.4.1356) error for returning value from void function - 1580 7.4.1358 compiler warning when not building with +crypt - 1873 7.4.1359 (after 7.4.1356) channel test ch_sendexpr() times out - 3477 7.4.1360 can't remove a callback with ch_setoptions() - 2138 7.4.1361 channel test fails on Solaris - 1422 7.4.1362 (after 7.4.1356) using unitinialized value - 2907 7.4.1363 compiler warnings with tiny build -306584 7.4.1364 the Win 16 code is not maintained and unused - 2305 7.4.1365 cannot execute a single test function - 2017 7.4.1366 typo in test and resulting error in test result - 1636 7.4.1367 compiler warning for unreachable code - 1830 7.4.1368 one more Win16 file remains - 67480 7.4.1369 channels don't have a queue for stderr - 1515 7.4.1370 the Python test script may keep on running - 5541 7.4.1371 X11 GUI callbacks don't specify the part of the channel - 14982 7.4.1372 Channel read implementation is incomplete - 13828 7.4.1373 must turn args into string when calling Vim channel function - 2407 7.4.1374 channel test hangs on MS-Windows - 19093 7.4.1375 still some Win16 code - 41297 7.4.1376 ch_setoptions() cannot set all options - 2743 7.4.1377 Test_connect_waittime() is flaky - 11813 7.4.1378 can't change job settings after it started - 4248 7.4.1379 channel test fails on Win32 console - 11895 7.4.1380 the job exit callback is not implemented - 2007 7.4.1381 (after 7.4.1380) exit value not available on MS-Windows - 27514 7.4.1382 can't get the job of a channel - 3905 7.4.1383 GvimExt only loads the old libintl.dll - 16713 7.4.1384 it is not easy to use a set of plugins and their dependencies - 1821 7.4.1385 compiler warning for using array - 2908 7.4.1386 job may be freed when the Job exit callback is invoked - 1845 7.4.1387 Win16 docs still referenced - 1840 7.4.1388 compiler warning - 1517 7.4.1389 incomplete function declaration - 5404 7.4.1390 if glib-compile-resources cannot be found building Vim fails - 1712 7.4.1391 warning for uninitialzed variable - 1984 7.4.1392 some tests fail for Win32 console version - 1961 7.4.1393 starting a job hangs in the GUI - 15733 7.4.1394 can't sort inside a sort function - 3060 7.4.1395 DETACH in quotes is not compatible with Netbeans interface - 1946 7.4.1396 compiler warnings for conversions - 1799 7.4.1397 sort test fails on MS-Windows - 13147 7.4.1398 the close-cb option is not implemented yet -198260 7.4.1399 the MS-DOS code does not build (fixed 2) - 2202 7.4.1400 Perl eval doesn't work properly on 64-bit big-endian machine - 1877 7.4.1401 'autochdir' set during startup with diff mode doesn't work -215313 7.4.1402 GTK 3 is not supported - 3013 7.4.1403 can't build without the quickfix feature - 10511 7.4.1404 ch_read() doesn't time out on MS-Windows - 5435 7.4.1405 completion menu flickers - 1908 7.4.1406 leaking memory in cs_print_tags_priv() - 7064 7.4.1407 json_encode() does not handle NaN and inf properly - 3354 7.4.1408 MS-Windows doesn't have isnan() and isinf() - 1736 7.4.1409 configure includes GUI despite --disable-gui flag - 1600 7.4.1410 leaking memory in cscope interface - 1544 7.4.1411 compiler warning for indent - 1767 7.4.1412 compiler warning for indent - 4800 7.4.1413 when calling ch_close() the close callback is invoked - 5190 7.4.1414 Appveyor only builds one feature set - 1783 7.4.1415 (after 7.4.1414) dropped the skip-tags setting - 2323 7.4.1416 using "u_char" intead of "char_u", doesn't work everywhere - 1612 7.4.1417 (after 7.4.1414) missing appveyor.bat from the distribution - 5248 7.4.1418 job_stop() on MS-Windows does not really stop the job - 11240 7.4.1419 tests slowed down because of the "not a terminal" warning - 1337 7.4.1420 (after 7.4.1419) missing makefile - 4197 7.4.1421 may free a channel when a callback may need to be invoked - 5587 7.4.1422 keeping channel open after job stops results in test failing - 2603 7.4.1423 channel test fails on MS-Windows - 1485 7.4.1424 not using --not-a-term when running tests on MS-Windows - 81739 7.4.1425 there are still references to MS-DOS support - 23351 7.4.1426 the "out-io" option for jobs is not implemented yet - 1859 7.4.1427 trailing comma in enums is not ANSI C - 2001 7.4.1428 compiler warning for non-virtual destructor - 1902 7.4.1429 MS-Windows: when not using directx drawing emoji is broken - 6433 7.4.1430 not useful to encode NaN and Infinity as null for JSON - 1766 7.4.1431 including header files twice - 1933 7.4.1432 typo in button text - 72821 7.4.1433 the Sniff interface is no longer useful - 6751 7.4.1434 JSON encoding doesn't handle surrogate pair - 29141 7.4.1435 confusing that ch_sendexpr()/ch_sendraw() wait for a response - 1594 7.4.1436 (after 7.4.1433) Sniff files still referenced in distribution - 7821 7.4.1437 old system doesn't have isinf() and NAN - 8681 7.4.1438 can't get buffer number of a channel - 2684 7.4.1439 (after 7.4.1434) using uninitialzed variable - 3145 7.4.1440 (after 7.4.1437) can't build on Windows - 1697 7.4.1441 using empty name instead of no name for channel buffer - 1736 7.4.1442 MS-Windows: more compilation warnings for destructor - 4797 7.4.1443 can't build GTK3 with small features - 1841 7.4.1444 can't build with JSON but without multi-byte - 4344 7.4.1445 memory corruption when 'encoding' is not utf-8 - 1645 7.4.1446 crash when using json_decode() - 7566 7.4.1447 memory leak when using ch_read(); log messages missing - 1627 7.4.1448 JSON tests fail if 'encoding' is not utf-8 - 1486 7.4.1449 build fails with job feature but without channel feature - 2366 7.4.1450 json encoding still fails when encoding is not utf-8 - 3542 7.4.1451 Vim hangs when a channel has a callback but isn't referenced - 1886 7.4.1452 screen and cursor not updated after a callback was invoked - 1848 7.4.1453 missing --not-a-term - 2208 7.4.1454 the exit callback test is flaky - 2950 7.4.1455 JSON decoding test for surrogate pairs is in the wrong place - 2501 7.4.1456 test 87 fails with Python 3.5 - 5719 7.4.1457 opening a channel with select() is not done properly - 6156 7.4.1458 when a JSON channel has a callback it may never be cleared - 3244 7.4.1459 (after 7.4.1457) MS-Windows doesn't know socklen_t - 2447 7.4.1460 syntax error in rarily used code - 1642 7.4.1461 MS-Windows: all parts of a job command are put in quotes - 2426 7.4.1462 two more rarily used functions with errors - 5612 7.4.1463 configure doesn't find isinf() and isnan() on some systems - 3063 7.4.1464 when the argument of sort() is zero or empty it fails - 4963 7.4.1465 may use NULL pointer when using buffer output and JSON mode - 1436 7.4.1466 Coverity reports dead code - 2033 7.4.1467 can't build without the float feature - 2174 7.4.1468 sort test doesn't test with "1" argument - 2891 7.4.1469 channel test sometimes fails, especially on OS/X - 2486 7.4.1470 Coverity reports missing restore - 1571 7.4.1471 missing out-of-memory check, Coverity warning - 1752 7.4.1472 Coverity warning for not using return value - 3275 7.4.1473 can't build without the autocommand feature - 2461 7.4.1474 compiler warnings without the float feature - 1884 7.4.1475 using hangulinput with utf-8 CSI character is misintepreted - 5226 7.4.1476 function arguments marked as unused while they are not - 3047 7.4.1477 Test_reltime is flaky, it depends on timing - 3210 7.4.1478 ":loadplugin" doesn't take care of ftdetect files - 4124 7.4.1479 no test for ":loadplugin" - 17392 7.4.1480 cannot add a pack direcory without loading a plugin - 2113 7.4.1481 can't build with small features - 7105 7.4.1482 "timeout" option not supported on ch_eval*() - 7947 7.4.1483 a one-time callback is not used for a raw channel - 8593 7.4.1484 channel "err-io" value "out" is not supported - 13014 7.4.1485 job input from buffer is not implemented - 17982 7.4.1486 ":loadplugin" is not optimal, some people find it confusing - 1547 7.4.1487 for WIN32 isinf() is defined as a macro - 2180 7.4.1488 not using key if result from hangul_string_convert() is NULL - 1933 7.4.1489 (after 7.4.1487) "inline" is not supported by old MSVC - 1654 7.4.1490 compiler warning for unused function - 2593 7.4.1491 Visual-block shift breaks multi-byte characters - 5957 7.4.1492 no command line completion for ":packadd" - 6344 7.4.1493 wrong callback invoked for zero-id messages - 4204 7.4.1494 clr_history() does not work properly - 4176 7.4.1495 compiler warnings with job but without channel feature - 1656 7.4.1496 crash when built with GUI but it's not active - 3547 7.4.1497 cursor drawing problem with GTK 3 - 1540 7.4.1498 error for locked item when using json_decode() - 6652 7.4.1499 no error message when :packadd does not find anything - 1907 7.4.1500 should_free flag set to FALSE - 1617 7.4.1501 garbage collection with an open channel is not tested - 11155 7.4.1502 writing last-but-one buffer line to channel not implemented - 2394 7.4.1503 crash when using ch_getjob() - 3569 7.4.1504 (after 7.4.1502) no test for reading last-but-one line - 3392 7.4.1505 get too many "looking for messages" channel log entries - 8311 7.4.1506 job cannot read from a file - 1663 7.4.1507 crash when starting a job fails - 2102 7.4.1508 can't build GvimExt with MingW - 4088 7.4.1509 keeping both a job and channel variable is a hassle - 2586 7.4.1510 channel test fails on AppVeyor - 1607 7.4.1511 statusline highlighting is sometimes wrong - 3979 7.4.1512 channel input from file not supported on MS-Windows - 3195 7.4.1513 "J" fails if there are not enough lines - 9398 7.4.1514 channel output to file not implemented yet - 17914 7.4.1515 channel test is a bit flaky - 6145 7.4.1516 cannot change file permissions - 1633 7.4.1517 compiler warning with 64bit compiler - 14503 7.4.1518 channel with disconnected in/out/err is not supported - 7607 7.4.1519 (after 7.4.1514) file output not implemented for MS-Windows - 1777 7.4.1520 channel test: Waiting for a file to appear doesn't work - 1974 7.4.1521 (after 7.4.1516) file permission test fails on MS-Windows - 5440 7.4.1522 cannot write channel err to a buffer - 2227 7.4.1523 writing channel to a file fails on MS-Windows - 7637 7.4.1524 channel test fails on BSD - 2801 7.4.1525 on a high resolution screen the toolbar icons are too small - 10098 7.4.1526 MS-Windows channel: missing writing to file + not connecting - 5195 7.4.1527 channel test is flaky on MS-Windows - 7728 7.4.1528 using "ever" for packages is confusing - 11462 7.4.1529 specifying buffer number for channel not implemented yet - 1672 7.4.1530 MS-Windows job_start() closes wrong handle - 1912 7.4.1531 compiler warning for unitinialized variable - 5209 7.4.1532 MS-Windows channel leaks file descriptor - 3479 7.4.1533 using feedkeys() with an empty string disregards 'x' option - 1731 7.4.1534 compiler warning for shadowed variable - 1572 7.4.1535 the feedkeys test has a one second delay - 12113 7.4.1536 cannot re-use a channel for another job - 45289 7.4.1537 too many feature flags for pipes, jobs and channels - 2741 7.4.1538 selection with the mouse does not work in command line mode - 69836 7.4.1539 too much code in eval.c - 2476 7.4.1540 channel test is a bit flaky - 8271 7.4.1541 missing job_info() - 1704 7.4.1542 job_start() with a list is not tested - 2343 7.4.1543 channel log methods are not tested - 1881 7.4.1544 on Win32 escaping the command does not work properly - 3121 7.4.1545 GTK3: horizontal cursor movement in Visual selection not good - 5247 7.4.1546 sticky type checking is more annoying than useful - 3860 7.4.1547 get "-1" when getting not set cterm highlight attribute - 2631 7.4.1548 (after 7.4.1546) two tests fail - 2153 7.4.1549 (after 7.4.1547) syntax attributes test fails in Win32 GUI - 4596 7.4.1550 cannot load packages early - 11865 7.4.1551 cannot generate help tags in all doc directories - 18133 7.4.1552 ":colorscheme" does not use 'packpath' - 8737 7.4.1553 ":runtime" does not use 'packpath' - 7071 7.4.1554 completion for :colorscheme does not use 'packpath' - 3136 7.4.1555 list of test targets incomplete - 2041 7.4.1556 "make install" changes the help tags file - 12671 7.4.1557 windows cannot be identified - 5422 7.4.1558 it is not easy to find out what windows display a buffer - 58946 7.4.1559 passing cookie to a callback is clumsy - 43110 7.4.1560 Dict options with a dash are more difficult to use - 2076 7.4.1561 (after 7.4.1559) missing update to proto file - 1282 7.4.1562 ":helptags ALL" crashes - 1478 7.4.1563 partial test fails on windows - 4971 7.4.1564 an empty list in function() causes an error - 2049 7.4.1565 crash when assert_equal() runs into a NULL string - 1385 7.4.1566 compiler warning for shadowed variable - 2215 7.4.1567 crash in assert_fails() - 1479 7.4.1568 using CTRL-] in help on option in parentheses doesn't work - 5418 7.4.1569 using old style tests for quickfix - 4589 7.4.1570 there is no way to avoid the message when editing a file - 2202 7.4.1571 no test for ":help" - 1451 7.4.1572 setting 'compatible' in test influences following tests - 1903 7.4.1573 tests get stuck at the more prompt - 3063 7.4.1574 ":undo 0" does not work - 1806 7.4.1575 using wrong size for struct - 2833 7.4.1576 write error of viminfo file is not handled properly - 5645 7.4.1577 cannot pass "dict.Myfunc" around as a partial - 20899 7.4.1578 there is no way to invoke a function later or periodically - 2673 7.4.1579 (after 7.4.1578) missing changes in channel.c - 1916 7.4.1580 crash when using function reference - 11918 7.4.1581 ":call dict.func()" where function is a partial does not work - 11135 7.4.1582 get E923 when using function(dict.func, [], dict) - 1572 7.4.1583 warning for unitinialized variable - 2823 7.4.1584 timers don't work for Win32 console - 2184 7.4.1585 partial is not recognized everywhere - 5356 7.4.1586 nesting partials doesn't work - 1985 7.4.1587 compiler warnings with 64 bit compiler - 9095 7.4.1588 old style test for quickfix - 5792 7.4.1589 combining dict and args with partial doesn't always work - 1566 7.4.1590 warning for shadowed variable - 3316 7.4.1591 the quickfix title is truncated - 3328 7.4.1592 quickfix code using memory after being freed - 1483 7.4.1593 using channel timeout instead of request timeout - 3015 7.4.1594 timers don't work on Unix - 2202 7.4.1595 not checking for failed open() - 1263 7.4.1596 memory leak - 1588 7.4.1597 memory leak when out of memory - 3145 7.4.1598 when starting the GUI fails a swap file is left behind - 1636 7.4.1599 no link to Coverity - 18981 7.4.1600 libs directory is not useful - 61498 7.4.1601 README files take a lot of space in the top directory - 14853 7.4.1602 info files take space in the top directory - 3059 7.4.1603 timer with an ":echo" command messes up display - 9167 7.4.1604 emoji characters are not treated as full width - 1585 7.4.1605 catching exception that won't be thrown - 2241 7.4.1606 type() handling plain Funcref and partial differently - 5469 7.4.1607 comparing function on two dicts is not backwards compatible - 3620 7.4.1608 string() doesn't handle a partial - 3741 7.4.1609 Contents file is only for Amiga distro - 96222 7.4.1611 the versplit feature makes the code uneccessary complicated - 5931 7.4.1612 (after 7.4.1611) can't build with small features - 2264 7.4.1613 (after 7.4.1612) still can't build with small features - 15963 7.4.1614 still quickfix test in old style - 3023 7.4.1615 build fails with tiny features - 5699 7.4.1616 malformed channel request causes a hang - 17818 7.4.1617 when a JSON message is split it isn't decoded - 2119 7.4.1618 start job with buffer output changes option in current buffer - 1612 7.4.1619 'fileformats' does not apply to the initial buffer - 9085 7.4.1620 emoji characters are not considered a kind of word character - 16682 7.4.1621 channel test doesn't work with Python 2.6 - 3858 7.4.1622 channel demo doesn't work with Python 2.6 - 3602 7.4.1623 all Channels share the message ID, it keeps getting bigger - 12060 7.4.1624 can't get info about a channel - 1824 7.4.1625 trying to close file descriptor that isn't open - 2439 7.4.1626 (after 7.4.1624) missing changes to structs - 2155 7.4.1627 channel out_cb and err_cb are not tested - 1485 7.4.1628 64-bit Compiler warning - 21807 7.4.1629 handling emoji chars as full width not backwards compatibile - 1691 7.4.1630 Unicode table for double width is outdated - 1592 7.4.1631 compiler doesn't understand switch on all enum values - 4293 7.4.1632 list of test targets is outdated - 2991 7.4.1633 if the help tags file was removed "make install" fails - 2006 7.4.1634 vertical movement after CTRL-A ends up in the wrong column - 1461 7.4.1635 channel test is a bit flaky - 1957 7.4.1636 missing prompt for crypt key when 'F' is in 'shortmess' - 1739 7.4.1637 can't build with older MinGW compiler - 3564 7.4.1638 when binding function to dict the reference count is wrong - 4759 7.4.1639 invoking garbage collection may cause a double free - 4926 7.4.1640 crash when an autocommand changes a quickfix list - 2575 7.4.1641 using unterminated string - 3299 7.4.1642 handling emoji chars as full width not backwards compatibile - 2708 7.4.1643 (after 7.4.1641) terminating file name has side effects - 5680 7.4.1644 error when using string() on partial with recursive reference - 2293 7.4.1645 partial in a dict can't be redefined as a function - 2809 7.4.1646 using Python vim.bindeval() on a partial doesn't work - 2597 7.4.1647 using freed memory after setqflist() and ":caddbuffer" - 2728 7.4.1648 compiler has a problem copying a string into di_key[] -124628 7.4.1649 the matchit plugin needs to be copied to be used - 1530 7.4.1650 quickfix test fails - 5180 7.4.1651 some dead (MSDOS) code remains - 8475 7.4.1652 old style test for fnamemodify() - 1892 7.4.1653 (after 7.4.1649) can't load matchit.vim from the old location - 2230 7.4.1654 crash when using expand('%:S') in a buffer without a name - 1474 7.4.1655 remote_expr() hangs - 1970 7.4.1656 crash when using partial with a timer - 6849 7.4.1657 Unix in a terminal: channel messages not handled right away - 4888 7.4.1658 one canot know when VimEnter autocmds were already triggered - 1487 7.4.1659 (after 7.4.1657) compiler warning for argument type - 3263 7.4.1660 has('patch-7.4.1') doesn't work - 6195 7.4.1661 no test for special characters in channel eval command - 3347 7.4.1662 no test for an invalid Ex command on a channel - 13972 7.4.1663 in tests it's often useful to check if a pattern matches - 2149 7.4.1664 crash in :cgetexpr - 2061 7.4.1665 crash when calling job_start() with a NULL string - 9445 7.4.1666 when reading JSON from a channel all readahead is used - 2469 7.4.1667 Win32: waiting on a pipe with fixed sleep time - 3286 7.4.1668 channel_get_all() does multiple allocations - 24738 7.4.1669 when writing buffer lines to a pipe Vim may block - 1558 7.4.1670 completion doesn't work well for a variable containing "#" - 2985 7.4.1671 adding @ab to help tag completion may be unnecessary - 8535 7.4.1672 the Dvorak support is a bit difficult to install - 23583 7.4.1673 the justify plugin has to be copied or sourced to be used - 11414 7.4.1674 the editexisting plugin has to be copied/sourced to be used - 4614 7.4.1675 the swapmous plugin has to be copied or sourced to be used - 11092 7.4.1676 the shellmenu plugin has to be copied or sourced to be used - 2921 7.4.1677 a reference to the removed file_select plugin remains - 1514 7.4.1678 warning for unused argument - 1640 7.4.1679 Coverity: copying value of v_lock without initializing it - 1835 7.4.1680 Coverity warns for not checking name length (false positive) - 1543 7.4.1681 Coverity warns for fixed size buffer length (false positive) - 1880 7.4.1682 Coverity: no check for NULL - 1868 7.4.1683 generated .bat files do not support --nofork - 9790 7.4.1684 README text is slightly outdated - 8269 7.4.1685 there is no easy way to get all the information about a match - 2927 7.4.1686 when running tests $HOME/.viminfo is written - 2591 7.4.1687 the channel close_cb option does not work - 2365 7.4.1688 MzScheme does not support partial - 5484 7.4.1689 Ruby interface has inconsistent coding style - 2643 7.4.1690 can't compile with the conceal feature but without multi-byte - 1858 7.4.1691 ml_get error when going to new buffer and automd sets syntax - 1896 7.4.1692 feedkeys('i', 'x') gets stuck, waits for typing a character - 3707 7.4.1693 building the Perl interface gives compiler warnings - 1718 7.4.1694 Win32 gvim doesn't work with "dvorakj" input method - 1848 7.4.1695 ":syn reset" clears the effect ":syn iskeyword" - 2657 7.4.1696 using :stopinsert in silent mapping doesn't clear "INSERT" - 17226 7.4.1697 display problems when char width doesn't match terminal - 1974 7.4.1698 two tests fail when running tests with MinGW - 2739 7.4.1699 :packadd does not work the same when used early or late - 6599 7.4.1700 equivalence classes are not properly tested - 6727 7.4.1701 equivalence classes still tested in old style tests - 4133 7.4.1702 using freed memory when parsing 'printoptions' fails - 12835 7.4.1703 can't assert for not equal and not matching - 2123 7.4.1704 using freed memory with "wincmd p" - 5277 7.4.1705 the 'guifont' option does not allow for a quality setting - 1863 7.4.1706 old style function declaration breaks build - 3975 7.4.1707 cannot use empty dictionary key, even though it can be useful - 28965 7.4.1708 new regexp engine does not work properly with EBCDIC - 1565 7.4.1709 mistake in #ifdef - 2630 7.4.1710 not all output of an external command is read - 4514 7.4.1711 eror caught with try/catch in 'statusline' handled as error - 6236 7.4.1712 for plugins in packages need to take care of all dependencies - 1499 7.4.1713 GTK GUI doesn't work on Wayland - 4993 7.4.1714 non-GUI specific settings in the gvimrc_example file - 5662 7.4.1715 double free when a partial is in a cycle with a list or dict - 1543 7.4.1716 'autochdir' doesn't work for the first file - 11457 7.4.1717 leaking memory when opening a channel fails - 1482 7.4.1718 Coverity: not using return value of set_ref_in_item() - 34105 7.4.1719 leaking memory with a cycle involving a job and a partial - 2075 7.4.1720 tests fail without the job feature - 51998 7.4.1721 the vimtbar files are unused. - 1762 7.4.1722 crash when calling garbagecollect() after starting a job - 4103 7.4.1723 eror caught with try/catch in 'tabline' handled as error - 1734 7.4.1724 (after 7.4.1723) tabline test fails in GUI - 1924 7.4.1725 compiler errors for non-ANSI compilers - 3879 7.4.1726 ANSI compiler complains about string length - 18821 7.4.1727 cannot detect crash in tests when caused by garbagecollect() - 48724 7.4.1728 the help for functions require a space after the "(" - 6114 7.4.1729 Perl: cannot use 'print' for writing directly in standard IO - 6738 7.4.1730 it is not easy to get a character out of a string - 60581 7.4.1731 Python: turns partial into simple funcref - 2640 7.4.1732 folds may close when using autocomplete - 6675 7.4.1733 "make install" doesn't know about cross-compiling - 3859 7.4.1734 (after 7.4.1730) test fails when not using utf-8 - 6094 7.4.1735 it is not possible to clear or see part of message history - 1417 7.4.1736 (after 7.4.1731) unused variable - 1388 7.4.1737 argument marked as unused is used - 2122 7.4.1738 count for ":messages" depends on number of lines - 3996 7.4.1739 messages test fails on MS-Windows - 25188 7.4.1740 syn-cchar defined with matchadd() does not always appear - 2034 7.4.1741 not testing utf-8 characters - 3365 7.4.1742 strgetchar() does not work correctly - 1479 7.4.1743 Clang warns for uninitialzed variable - 2161 7.4.1744 Python: Converting a sequence may leak memory - 2367 7.4.1745 README file is not clear about where to get Vim - 3729 7.4.1746 memory leak in Perl - 1684 7.4.1747 Coverity: missing check for NULL pointer - 2780 7.4.1748 "gD" does not find match in first column of first line - 2475 7.4.1749 when using GTK 3.20 there are a few warnings - 3030 7.4.1750 messed up screen if buffer updated while in command line mode - 2569 7.4.1751 crash when 'tagstack' is off - 6376 7.4.1752 when adding to the quickfix list current position is reset - 3193 7.4.1753 "noinsert" in 'completeopt' is sometimes ignored - 3956 7.4.1754 syntax not set when using ":buf" and 'filetype' set manually - 2520 7.4.1755 using getreg() on non-existing register NULL list is returned - 6691 7.4.1756 "dll" options are not expanded - 2661 7.4.1757 'modified' may be set by complete() when nothing changed - 2843 7.4.1758 triggering CursorHoldI when in CTRL-X mode causes problems - 7136 7.4.1759 using feedkeys() in a timer does not break wait loop - 1407 7.4.1760 (after 7.4.1759) compiler warning for unused variable - 1861 7.4.1761 Coverity complains about ignoring return value - 1893 7.4.1762 Coverity: useless assignments - 1496 7.4.1763 Coverity: useless assignment - 2154 7.4.1764 C++ style comment - 2921 7.4.1765 undo options are not together in the options window - 10120 7.4.1766 building instructions for MS-Windows are outdated - 11520 7.4.1767 when installing on a GTK system the icon cache is not updated - 8859 7.4.1768 arguments of setqflist() are not checked properly - 7407 7.4.1769 no "closed"/"errors"/"encoding" attribute on Python output - 57527 7.4.1770 cannot use true color in the terminal - 1886 7.4.1771 (after 7.4.1768) warning for unused variable - 2641 7.4.1772 (after 7.4.1767) installation fails when env var is empty - 3831 7.4.1773 (after 7.4.1770) compiler warnings - 6750 7.4.1774 (after 7.4.1770) cterm true color feature has warnings - 1940 7.4.1775 the rgb.txt file is not installed - 1843 7.4.1776 using wrong buffer length - 2351 7.4.1777 newly added features can escape the sandbox - 3028 7.4.1778 with the term truecolor feature, t_8f/t_8b are not set - 1834 7.4.1779 using negative index in strcharpart() - 4664 7.4.1780 warnings reported by cppcheck - 1397 7.4.1781 synIDattr() does not respect 'guicolors' - 2815 7.4.1782 strcharpart() has problems with some multi-byte characters - 6286 7.4.1783 old regexp engine doesn't handle character classes correctly - 4530 7.4.1784 the termtruecolor feature is enabled differently - 1579 7.4.1785 (after 7.4.1783) regexp test fails on windows - 5912 7.4.1786 compiled-in colors do not match rgb.txt - 13107 7.4.1787 channel close callback is invoked before other callbacks - 2247 7.4.1788 NSIS script is missing packages - 13064 7.4.1789 cannot use ch_read() in the close callback - 1495 7.4.1790 leading white space in a job command matters - 4242 7.4.1791 channel could be garbage collected too early - 26373 7.4.1792 color name decoding is implemented several times - 3975 7.4.1793 character classes differ between systems, on OS/X test fails - 1426 7.4.1794 (after 7.4.1792) can't build on MS-Windows - 8426 7.4.1795 compiler warning for redefining RGB - 8456 7.4.1796 (after 7.4.1795) colors are wrong on MS-Windows - 1682 7.4.1797 warning from Windows 64 bit compiler - 1468 7.4.1798 still compiler warning for unused return value - 88738 7.4.1799 'guicolors' is a confusing option name - 1756 7.4.1800 unnecessary #ifdef - 1874 7.4.1801 make uninstall leaves file behind - 34025 7.4.1802 quickfix doesn't handle long lines well, they are split - 1538 7.4.1803 GTK3 doesn't handle menu separators properly - 4159 7.4.1804 can't use Vim as MANPAGER - 1403 7.4.1805 running tests in shadow dir fails - 2199 7.4.1806 'termguicolors' option missing from the options window - 3627 7.4.1807 Test_out_close_cb sometimes fails - 1781 7.4.1808 (after 7.4.1806) using wrong feature name - 1989 7.4.1809 (after 7.4.1808) using wrong short option name - 5150 7.4.1810 sending DETACH after a channel was closed isn't useful - 2521 7.4.1811 netbeans channel gets garbage collected - 3177 7.4.1812 failure on startup with Athena and Motif - 3475 7.4.1813 memory access error when running test_quickfix - 3900 7.4.1814 channel may be garbage collected while being used by a job - 1792 7.4.1815 compiler warnings for unused variables - 2222 7.4.1816 looping over a null list throws an error - 1794 7.4.1817 screen not updated if callback invoked when closing channel - 2937 7.4.1818 help completion adds @en to all matches except the first one - 4631 7.4.1819 compiler warnings when sprintf() is a macro - 6683 7.4.1820 removing language from help tags too often - 4458 7.4.1821 (after 7.4.1820) test fails on MS-Windows - 1677 7.4.1822 redirecting stdout of a channel to "null" doesn't work - 1843 7.4.1823 warning from 64 bit compiler - 2375 7.4.1824 process remains defunc if job is not referenced - 2374 7.4.1825 when job writes to buffer nothing is written - 4104 7.4.1826 callbacks are invoked when it's not safe - 4193 7.4.1827 no error when invoking a callback when it's not safe - 6598 7.4.1828 may try to access buffer that's already freed - 1821 7.4.1829 (after 7.4.1828) no channel log message when buffer was freed - 2725 7.4.1830 non-antialiased misnamed - 1719 7.4.1831 no proper error message for wrong argument to timer_stop() - 1730 7.4.1832 memory leak in debug commands - 4769 7.4.1833 cannot use an Ex command for 'keywordprg' - 1425 7.4.1834 possible crash when conceal is active - 4692 7.4.1835 when splitting and closing a window the status height changes - 8955 7.4.1836 when using partial on dict it's always bound to that dict - 4561 7.4.1837 the BufUnload event may be triggered twice - 14247 7.4.1838 functions specifically for testing do not sort together - 3633 7.4.1839 cannot get the items stored in a partial - 4897 7.4.1840 when using packages an "after" directory cannot be used - 6145 7.4.1841 code to reallocate the buffer used for quickfix is repeated - 5036 7.4.1842 (after 7.4.1839) get() works for Partial but not for Funcref - 28265 7.4.1843 tests involving Python are flaky - 15744 7.4.1844 more functions should start with test_ - 4674 7.4.1845 mentioning NetBeans when reading from channel - 2529 7.4.1846 ubsan detects a multiplication overflow - 3475 7.4.1847 using NULL dict or list crashes Vim - 4210 7.4.1848 can't build with Strawberry Perl 5.24 - 1908 7.4.1849 still trying to read from channel that is going to be closed - 1980 7.4.1850 GUI freezes when using a job - 2533 7.4.1851 test_syn_attr fails when using the GUI - 5752 7.4.1852 Unix: Cannot run all tests with the GUI - 1752 7.4.1853 crash when job and channel in same dict while using partials - 2861 7.4.1854 when setting 'termguicolors' Ignore highlighting doesn't work - 4209 7.4.1855 valgrind reports memory leak for job that is not freed - 1940 7.4.1856 failing job test fails on MS-Windows - 12921 7.4.1857 channel can append to a buffer that is 'nomodifiable' - 3993 7.4.1858 channel writing to buffer doesn't find it by the short name - 2989 7.4.1859 cannot use a function reference for "exit_cb" - 3759 7.4.1860 using a partial for timer_start() may cause a crash - 2556 7.4.1861 compiler warnings with 64 bit compiler - 22001 7.4.1862 eval() can't handle result from string() with repeated item - 5216 7.4.1863 compiler warnings on Win64 - 1582 7.4.1864 Python: encoding error with Python 2 - 1600 7.4.1865 memory leaks in test49 - 2279 7.4.1866 invalid memory access when exiting with EXITFREE defined - 1567 7.4.1867 memory leak in test_matchstrpos - 3598 7.4.1868 setting really_exiting causes memory leaks to be reported - 1748 7.4.1869 can't build with old version of Perl - 1950 7.4.1870 (after 7.4.1863) one more Win64 compiler warning - 13569 7.4.1871 appending to quickfix list is slow if quickfix window is open - 1458 7.4.1872 still build problem with old version of Perl - 7495 7.4.1873 GUI: when a callback adds a timer it is not used until later - 1309 7.4.1874 unused variable in Win32 code - 8249 7.4.1875 comparing functions and partials doesn't work well - 1786 7.4.1876 typing "k" at the hit-enter prompt has no effect - 2872 7.4.1877 no test for invoking "close_cb" when writing to a buffer - 4193 7.4.1878 exited job isn't detected until a character is typed - 1889 7.4.1879 (after 7.4.1877) channel test is flaky - 1807 7.4.1880 MS-Windows console build defaults to not having +channel - 15175 7.4.1881 appending to a long quickfix list is slow - 1629 7.4.1882 check for line break at end of line wrong - 2126 7.4.1883 cppcheck found 2 incorrect printf formats - 6332 7.4.1884 updating marks in long quickfix list is very slow - 1516 7.4.1885 MinGW console build defaults to not having +channel - 13782 7.4.1886 mapping times out when interrupted by receiving data - 7052 7.4.1887 when receiving channel data 'updatetime' is not respected - 2512 7.4.1888 wrong computation of remaining wait time in RealWaitForChar() - 2182 7.4.1889 when umask is set to 0177 Vim can't create temp files - 6161 7.4.1890 GUI: cursor blinking interrupted when channel data received - 8326 7.4.1891 channel reading very long lines is slow - 4055 7.4.1892 balloon eval only gets the window number, not the ID - 4736 7.4.1893 cannot easily get the window ID for a buffer - 5057 7.4.1894 cannot get the window ID for a mouse click - 11328 7.4.1895 cannot use a window ID where a window number is expected - 3440 7.4.1896 invoking mark_adjust() when it is pointless - 8595 7.4.1897 various typos, long lines and style mistakes - 8285 7.4.1898 user commands don't support modifiers - 2191 7.4.1899 GTK 3: cursor blinking doesn't work well - 2149 7.4.1900 using CTRL-] in the help on "{address}." doesn't work - 1860 7.4.1901 Win32: the "Disabled" menu items would appear enabled - 3076 7.4.1902 no test for collapsing channel buffers; some text is lost - 31848 7.4.1903 recent history items may be dropped when writing viminfo - 2219 7.4.1904 (after 7.4.1903) build fails - 1558 7.4.1905 (after 7.4.1903) some compilers can't handle double semicolon - 14566 7.4.1906 collapsing channel buffers does not work properly - 1925 7.4.1907 warnings from 64 bit compiler - 3480 7.4.1908 Netbeans uses uninitialzed pointer and freed memory - 5786 7.4.1909 doubled semicolons - 5490 7.4.1910 tests using external command to delete directory - 11568 7.4.1911 recent history lines may be lost when exiting Vim - 2773 7.4.1912 no test for using setqflist() on an older quickfix list - 6074 7.4.1913 after ":doautocmd" modelines are always processed - 1853 7.4.1914 crash when executing autocommands when on the signal stack - 1534 7.4.1915 effect of the PopupMenu autocommand isn't directly visible - 1753 7.4.1916 (after 7.4.1906) no proper test for what 7.4.1906 fixes - 3858 7.4.1917 history lines read from viminfo are not converted - 3933 7.4.1918 not enough testing for parsing viminfo lines - 40242 7.4.1919 register contents is not merged when writing viminfo - 3456 7.4.1920 (after 7.4.1919) missing test changes - 1523 7.4.1921 (after 7.4.1919) vim_time() not included when needed - 2481 7.4.1922 Ruby 2.4.0 unifies Fixnum and Bignum into Integer - 2394 7.4.1923 command line editing is not tested much - 5163 7.4.1924 missing "void" for functions without argument - 20207 7.4.1925 viminfo does not merge file marks properly - 1533 7.4.1926 possible crash with many history items - 1691 7.4.1927 compiler warning for signed/unsigned - 2177 7.4.1928 overwriting pointer argument - 3290 7.4.1929 inconsistent indenting and weird name - 1695 7.4.1930 can't build without +spell but with +quickfix - 1774 7.4.1931 using both old and new style file mark lines from viminfo - 4131 7.4.1932 jumplist is not merged with the one in the viminfo file - 1379 7.4.1933 compiler warning about uninitialzed variable - 5045 7.4.1934 new style tests not executed with MinGW compiler - 1947 7.4.1935 with GUI search/replace second match is skipped - 1558 7.4.1936 off-by-one error in bounds check - 11233 7.4.1937 no test for directory stack in quickfix - 2420 7.4.1938 when writing viminfo numbered marks were duplicated - 2798 7.4.1939 memory access error when reading viminfo - 3317 7.4.1940 "gd" hangs in some situations - 33597 7.4.1941 not all quickfix tests are also done with the location lists - 1707 7.4.1942 background is not drawn properly when 'termguicolors' is set - 1893 7.4.1943 Coverity warns for unreachable code -243580 7.4.1944 Win32: Cannot compile with XPM feature using VC2015 - 6792 7.4.1945 the Man plugin doesn't work that well - 1541 7.4.1946 (after 7.4.1944) file list does not include new XPM libraries - 6533 7.4.1947 viminfo continuation line with wrong length isn't skipped - 5258 7.4.1948 Ctrl-A with double-byte encoding may result in garbled text - 2794 7.4.1949 minor problems with the quickfix code - 1472 7.4.1950 quickfix long lines test not executed for buffer - 4793 7.4.1951 Ruby test is old style - 7383 7.4.1952 Cscope interface does not support finding assignments - 52369 7.4.1953 not all parts of the quickfix code are tested - 2691 7.4.1954 (after 7.4.1948) no test for what 7.4.1948 fixes - 9625 7.4.1955 using 32-bit Perl with 64-bit time_t causes memory corruption - 3362 7.4.1956 when file doesn't load with CTRL-W f new window is not closed - 3101 7.4.1957 Perl interface has obsolete workaround - 27270 7.4.1958 Perl interface preprocessor statements not nicely indented - 5056 7.4.1959 crash when running test_channel.vim on Windows - 10242 7.4.1960 Unicode standard 9 was released - 4492 7.4.1961 popup menu remains if 'insertmode' is reset during completion - 5936 7.4.1962 two test files for increment/decrement - 13194 7.4.1963 running Win32 Vim in mintty does not work - 16365 7.4.1964 the quickfix init function is too big - 3757 7.4.1965 job in raw mode appends garbage characterss to buffer - 2233 7.4.1966 Coverity reports a resource leak - 5838 7.4.1967 falling back from NFA to old regexp engine has problems - 2053 7.4.1968 invalid memory access with "\ - 2039 7.4.1969 crash when the netbeans channel is closed - 2696 7.4.1970 using ":insert" in an empty buffer sets the jump mark - 4005 7.4.1971 not easy to see error lines below the current error position - 1732 7.4.1972 on Solaris select() does not work as expected with typeahead - 2224 7.4.1973 on MS-Windows package directory added to 'rtp' at the end - 1542 7.4.1974 GUI has a problem with some termcodes - 69654 7.4.1975 on MS-Windows large files (> 2Gbyte) cause problems - 89057 7.4.1976 number variables are not 64 bits while they could be - 2599 7.4.1977 with 64 bit changes don't need three calls to sprintf() - 1855 7.4.1978 (after 7.4.1975) large file test does not delete its output - 2299 7.4.1979 (after 7.4.1976) getting value of binary option is wrong - 21082 7.4.1980 'errorformat' is parsed for every call to ":caddexpr" - 30172 7.4.1981 no testing for Farsi code - 1939 7.4.1982 viminfo file contains duplicate change marks - 22518 7.4.1983 farsi.c and arabic.c are included in a strange way - 7829 7.4.1984 not all quickfix features are tested - 4939 7.4.1985 (after 7.4.1983) missing changes in VMS build file - 1497 7.4.1986 compiler warns for loss of data - 1977 7.4.1987 viminfo may have useless continuation lines - 14954 7.4.1988 when updating viminfo with file marks there is no time order - 16681 7.4.1989 filter() and map() only accept a string argument - 3148 7.4.1990 (after 7.4.1952) cscope items are not sorted - 1580 7.4.1991 glob() does not add symbolic link when there are no wildcards - 47623 7.4.1992 values for true and false can be confusing - 2170 7.4.1993 not all TRUE and FALSE arguments are tested - 2100 7.4.1994 (after 7.4.1993) true-false test fails - 6361 7.4.1995 GUI: cursor drawn in wrong place when using a timer callback - 5994 7.4.1996 capturing the output of a command takes a few commands - 6029 7.4.1997 cannot easily scroll the quickfix window - 5051 7.4.1998 no NL to NUL conversion when writing buffer lines to a job - 8274 7.4.1999 evalcmd() doesn't work recursively - 1372 7.4.2000 (after 7.4.1999) evalcmd test fails - 1442 7.4.2001 (after 7.4.2000) tiny build fails - 3543 7.4.2002 crash when passing number to filter() or map() - 2889 7.4.2003 still cursor flickering when a callback updates the screen - 1436 7.4.2004 GUI: cursor displayed in the wrong position - 1501 7.4.2005 after using evalcmd() message output is in the wrong position - 3235 7.4.2006 crash when using tabnext in BufUnload autocmd - 1400 7.4.2007 running the tests leaves a viminfo file behind - 21334 7.4.2008 evalcmd() has a confusing name - 2216 7.4.2009 (after 7.4.2008) messages test fails - 8393 7.4.2010 there is a :cbottom command but no :lbottom command - 7883 7.4.2011 it is not easy to get a list of command arguments - 2589 7.4.2012 (after 7.4.2011) test for getcompletion() may fail - 3872 7.4.2013 using "noinsert" in 'completeopt' breaks redo - 2122 7.4.2014 using "noinsert" in 'completeopt' does not insert match - 6545 7.4.2015 when file gets a name when writing it 'acd' is not effective - 1977 7.4.2016 warning from MinGW about _WIN32_WINNT redefined - 10649 7.4.2017 adding many errors to the quickfix list takes a long time - 17873 7.4.2018 buf_valid() can be slow when there are many buffers - 1439 7.4.2019 when ignoring case utf_fold() may consume a lot of time - 1997 7.4.2020 can't build without +autocmd feature - 7783 7.4.2021 still too many buf_valid() calls - 2352 7.4.2022 warnings from 64 bit compiler - 3125 7.4.2023 buflist_findname_stat() may find a dummy buffer - 61795 7.4.2024 more buf_valid() calls can be optimized - 2690 7.4.2025 cursor blinking irregular when using channel or timer - 10910 7.4.2026 reference counting for callbacks isn't right - 1609 7.4.2027 can't build with +eval but without +menu - 1486 7.4.2028 cppcheck warns for using index before limits check - 1977 7.4.2029 printf() does not work with 64 bit numbers - 4070 7.4.2030 ARCH must be set properly when using MinGW - 3706 7.4.2031 list_lbr_utf8 test fails because of user setting - 1479 7.4.2032 (after 7.4.2030) build fails with 64 bit MinGW - 3186 7.4.2033 'cscopequickfix' option does not accept new value "a" - 1751 7.4.2034 build fails with some version of MinGW - 2389 7.4.2035 on Solaris with ZFS the ACL may get removed - 4661 7.4.2036 looking up a buffer by number is slow if there are many - 1864 7.4.2037 (after 7.4.2036) small build fails - 2218 7.4.2038 (after 7.4.2036) small build still fails - 50211 7.4.2039 the Netbeans integration is not tested - 1346 7.4.2040 new files missing from distribution - 2111 7.4.2041 netbeans file authentication not tested - 2221 7.4.2042 GTK: display updating is not done properly and can be slow - 3663 7.4.2043 setbufvar() causes a screen redraw - 21666 7.4.2044 filter() and map() either require a string or a function - 1632 7.4.2045 memory leak when using a function callback - 20324 7.4.2046 the qf_init_ext() function is too big - 1974 7.4.2047 compiler warning for initializing a struct - 55267 7.4.2048 there is still code and help for unsupported systems - 7416 7.4.2049 there is no way to get a list of the error lists - 3915 7.4.2050 when using ":vimgrep" may end up with duplicate buffers - 28748 7.4.2051 no proper testing of trunc_string() - 3118 7.4.2052 coverage report is messed up by the unittests - 1890 7.4.2053 can't run scripttests in the top directory - 2280 7.4.2054 (after 7.4.2048) wrong part of #ifdef removed - 59152 7.4.2055 eval.c is too big - 1996 7.4.2056 (after 7.4.2055) build fails - 51532 7.4.2057 eval.c is too big -232701 7.4.2058 eval.c is too big - 13545 7.4.2059 non-Unix builds fail - 1468 7.4.2060 (after 7.4.2059) typo in build file - 25065 7.4.2061 qf_init_ext() is too big - 3699 7.4.2062 using dummy variable to compute struct member offset -698729 7.4.2063 eval.c is still too big - 1709 7.4.2064 Coverity warns for possible buffer overflow - 1753 7.4.2065 compiler warns for uninitialzed variable - 3458 7.4.2066 getcompletion() not well tested - 1768 7.4.2067 compiler warning for char/char_u conversion, inefficient code - 7136 7.4.2068 memory access error when running the message tests -520360 7.4.2069 spell.c is too big - 1623 7.4.2070 (after 7.4.2069) missing change to include file - 11470 7.4.2071 the return value of type() is difficult to use - 13279 7.4.2072 substitute() does not support a Funcref argument - 23617 7.4.2073 rgb.txt is read for every color name - 1936 7.4.2074 one more place using a dummy variable - 11189 7.4.2075 no autocommand event to initialize a window or tab page - 2320 7.4.2076 syntax error when dict has '>' key - 5630 7.4.2077 cannot update 'tabline' when a tab was closed - 2152 7.4.2078 running checks in po diretory fails - 2057 7.4.2079 Netbeans test fails on non-Unix systems - 2838 7.4.2080 PERROR() on some systems does not trigger assert_fails() - 4355 7.4.2081 line numbers in the error list are not always adjusted - 16617 7.4.2082 not much test coverage for digraphs - 2128 7.4.2083 Coverity complains about not restoring a value - 3362 7.4.2084 (after 7.4.2081) new digraph test makes testing hang - 3465 7.4.2085 digraph tests fails on some systems - 6999 7.4.2086 using the system default encoding makes tests unpredictable - 2572 7.4.2087 digraph code test coverage is still low - 1515 7.4.2088 (after 7.4.2087) keymap test fails with normal features - 22910 7.4.2089 color handling of X11 GUIs is too complicated - 19171 7.4.2090 using submatch() in lambda passed to substitute() is verbose - 1416 7.4.2091 Coverity reports a resource leak when out of memory - 2205 7.4.2092 GTK 3 build fails with older GTK version - 2018 7.4.2093 Netbeans test fails once in a while; leaving log file behind - 8814 7.4.2094 the color allocation in X11 is overly complicated - 10873 7.4.2095 Man test fails when run with the GUI - 2246 7.4.2096 lambda functions show up with completion - 2979 7.4.2097 warning from 64 bit compiler - 5489 7.4.2098 text object tests are old style - 4652 7.4.2099 when a keymap is active only "(lang)" is displayed - 10044 7.4.2100 "cgn" and "dgn" do not always work correctly - 61881 7.4.2101 looping over windows, buffers and tab pages is inconsistant - 1638 7.4.2102 (after 7.4.2101) tiny build with GUI fails - 10505 7.4.2103 can't have "augroup END" right after ":au!" - 2669 7.4.2104 code duplication when unreferencing a function - 5347 7.4.2105 configure reports "normal" default features while its "huge" - 3897 7.4.2106 clang warns about missing field in initializer - 1821 7.4.2107 (after 7.4.2106) misplaced equal sign - 1405 7.4.2108 Netbeans test is flaky - 5025 7.4.2109 'display=lastline" is too drastic, without it not nice - 2818 7.4.2110 with CmdUndefined errof for missing autocmd is E464 - 27495 7.4.2111 defaults are very conservative - 6974 7.4.2112 getcompletion(.., 'dir') returns trailing "*" without matches - 15890 7.4.2113 test for undo is flaky - 1555 7.4.2114 (after 7.4.2113) tiny build fails - 4300 7.4.2115 loading defaults.vim with -C argument - 1896 7.4.2116 the default vimrc for Windows is very conservative - 6259 7.4.2117 no warning when deleting an augroup that still has autocmds - 1793 7.4.2118 Mac: can't build with tiny features - 29783 7.4.2119 closures are not supported - 12302 7.4.2120 user defined functions can't be a closure - 2231 7.4.2121 no easy way to check if lambda and closure are supported - 2580 7.4.2122 (after 7.4.2118) Mac: don't get +clipboard in huge build - 10470 7.4.2123 no new style test for diff mode - 1411 7.4.2124 diffmode test leaves files behind, breaking another test - 1349 7.4.2125 compiler warning for loss of data - 2287 7.4.2126 no tests for :diffget and :diffput - 4345 7.4.2127 short form of ":noswapfile" is ":noswap" instead of ":nos" - 1448 7.4.2128 memory leak when saving for undo fails - 1561 7.4.2129 memory leak when using timer_start() - 3536 7.4.2130 pending timers cause false memory leak reports - 2294 7.4.2131 more memory leaks when using partial, e.g. for "exit-cb" - 2682 7.4.2132 test_partial has memory leaks reported - 1498 7.4.2133 (after 7.4.2128) can't build with tiny features - 7884 7.4.2134 no error for using function() badly - 6036 7.4.2135 various tiny issues - 9838 7.4.2136 closure function fails - 57255 7.4.2137 using function() with a name will find redefined function - 1474 7.4.2138 test 86 and 87 fail - 2452 7.4.2139 :delfunction causes illegal memory access - 1645 7.4.2140 tiny build fails - 6471 7.4.2141 Coverity reports bogus NULL check - 11310 7.4.2142 leaking memory when redefining a function - 13393 7.4.2143 a funccal is garbage collected while it can still be used - 3702 7.4.2144 on MS-Windows quickix mishandles CR-LF line with 1023 bytes - 1961 7.4.2145 Win32: Using CreateThread/ExitThread is not safe - 10944 7.4.2146 Not enough testing for popup menu; problem with CTRL-E - 1301 7.4.2147 (after 7.4.2146) test_alot fails - 6658 7.4.2148 not much testing for cscope - 2167 7.4.2149 if a test leaves a window open a following test may fail - 1722 7.4.2150 warning with MinGW 64 - 1438 7.4.2151 quickfix test fails on MS-Windows - 8923 7.4.2152 no proper translation of messages with a count - 5760 7.4.2153 GUI test isn't testing much - 1621 7.4.2154 Test_communicate() fails sometimes - 1753 7.4.2155 quotes make GUI test fail on MS-Windows - 1471 7.4.2156 compiler warning + SIZE NAME FIXES + 2886 8.0.0001 intro screen still mentions version7 + 1864 8.0.0002 the netrw plugin does not work + 2835 8.0.0003 getwinvar() returns wrong Value of boolean and number options + 2662 8.0.0004 error messagge of function() with wrong argument says NULL + 1871 8.0.0005 netbeans test fails with Python 3 + 1936 8.0.0006 ":lb" is interpreted as ":lbottom" instead of ":lbuffer" + 7370 8.0.0007 Vim 7.4 is still mentioned in a few places + 2527 8.0.0008 popup complete test is disabled + 1673 8.0.0009 unnecessary workaround for AppVeyor + 3230 8.0.0010 crash when editing file that starts with crypt header + 1577 8.0.0011 on OSX Test_pipe_through_sort_all() sometimes fails + 7754 8.0.0012 typos in comments + 2257 8.0.0013 (after 8.0.0011) missing comma in list + 9516 8.0.0014 crypt tests are old style + 12101 8.0.0015 can't tell which part of a channel has "buffered" status + 1579 8.0.0016 (after 8.0.0015) build fails + 4451 8.0.0017 cannot get the number of current quickfix or location list + 8819 8.0.0018 when using ":sleep" channel input is not handled + 14106 8.0.0019 test_command_count is old style + 86459 8.0.0020 the regexp engines are not reentrant + 1734 8.0.0021 GUI: cursor may be drawn on second half of double byte char + 5008 8.0.0022 if channel is missing final NL remaining chars are dropped + 10912 8.0.0023 "gd" and "gD" may find a match in a comment or string + 2437 8.0.0024 when netbeans channel closes, "DETACH" is put in output part + 10551 8.0.0025 inconsistent use of spaces vs tabs in gd test + 5078 8.0.0026 error format with %W, %C and %Z does not work + 47686 8.0.0027 channel is closed when there may still be something to read + 1800 8.0.0028 superfluous semicolons +119305 8.0.0029 exceptions for old systems make MS-Windows code complicated + 1680 8.0.0030 mouse mode is not automatically detected for tmux + 3962 8.0.0031 after ":bwipeout" 'fileformat' is not set to the default + 3521 8.0.0032 tests may change the input file when something goes wrong + 2996 8.0.0033 cannot use overlapping positions with matchaddpos() + 4951 8.0.0034 no completion for ":messages" + 16444 8.0.0035 order of matches for 'omnifunc' is messed up + 13336 8.0.0036 detecting that a job has finished may take a while + 2597 8.0.0037 get E924 when switching tabs + 1807 8.0.0038 OPEN_CHR_FILES not defined for FreeBSD/Debian mix + 3492 8.0.0039 when Vim 8 reads an old viminfo next time marks are not read + 4622 8.0.0040 (after 8.0.0033) matchaddpos() whole line highlighting broken + 3574 8.0.0041 get undo item with Insert mode completion without inserting + 2457 8.0.0042 (after 8.0.0041) Insert mode completion is not saved for undo + 4037 8.0.0043 (after 8.0.0041) Insert mode completion is not saved for undo + 7877 8.0.0044 ml_get error In diff mode + 8476 8.0.0045 calling job_stop() right after job_start() does not work + 2559 8.0.0046 using NUL instead of NULL + 1719 8.0.0047 crash when using the preview window from an unnamed buffer + 5148 8.0.0048 on Windows job_stop() stops cmd.exe, not processes it runs + 2839 8.0.0049 concealing and match highlighting interfere + 12736 8.0.0050 an exiting job is detected with a large latency + 4939 8.0.0051 (after 8.0.0048) job_stop() change breaks tests + 1701 8.0.0052 (after 8.0.0049) conceal test passes even without the bug fix + 2684 8.0.0053 (after 8.0.0047) no test for what 8.0.0047 fixes + 3649 8.0.0054 (after 8.0.0051) Windows: job_stop() does not stop processes + 3450 8.0.0055 minor comment and style deficiencies + 4920 8.0.0056 when setting 'filetype' there is no check for a valid name + 2356 8.0.0057 (after 8.0.0056) tests fail without the 'keymap' features + 4871 8.0.0058 positioning of the popup menu is not good + 20700 8.0.0059 Vim does not build on VMS systems + 3176 8.0.0060 when 'keywordprg' is an Ex command it is shell-escaped + 1437 8.0.0061 (after 8.0.0058) compiler warning for unused variable + 2433 8.0.0062 no digraph for HORIZONTAL ELLIPSIS + 1681 8.0.0063 compiler warning for comparing with unsigned + 1771 8.0.0064 (after 8.0.0060) normal test fails on MS-Windows + 1727 8.0.0065 (after 8.0.0056) compiler warning for unused function + 4158 8.0.0066 calling an operator function without 'linebreak' set + 2184 8.0.0067 VMS has a problem with infinity + 5802 8.0.0068 checking did_throw after executing autocommands is wrong + 8650 8.0.0069 compiler warning for self-comparison + 1843 8.0.0070 tests referred in Makefile that no longer exist + 3054 8.0.0071 exit value from a shell command is wrong + 1600 8.0.0072 MS-Windows: Crash with long font name + 7228 8.0.0073 (after 8.0.0069) more comparisons between firstwin & lastwin + 36284 8.0.0074 cannot make Vim fail on an internal error + 5460 8.0.0075 using number for exception type lacks type checking + 1906 8.0.0076 channel log has double parens ()() + 1683 8.0.0077 GUI is not tested on Travis CI + 2550 8.0.0078 accessing freed memory in quickfix + 30894 8.0.0079 accessing freed memory in quickfix + 1740 8.0.0080 Travis CI fails for OS X + 16764 8.0.0081 inconsistent function names +309315 8.0.0082 extension for configure should be ".ac" + 2446 8.0.0083 using freed memory with win_getid() + 3153 8.0.0084 using freed memory when adding to a quickfix list + 3977 8.0.0085 using freed memory with recursive function call + 7394 8.0.0086 cannot add a comment after ":hide" + 14140 8.0.0087 channel callback may get job info after it was deleted + 2355 8.0.0088 when a test fails in Setup/Teardown problem is not reported + 13532 8.0.0089 various problems with GTK 3.22.2 + 17957 8.0.0090 cursor moved after last character when using 'breakindent' + 6000 8.0.0091 test_help_complete sometimes fails in MS-Windows console + 3075 8.0.0092 C indent does not support nested namespaces that C++ 17 has + 1842 8.0.0093 not using multiprocess build feature + 2397 8.0.0094 if vimrun.exe not found error message is not properly encoded + 3684 8.0.0095 problems with GTK 3.22.2 fixed in 3.22.4 + 7771 8.0.0096 when the input or output is not a tty Vim appears to hang + 11867 8.0.0097 if channel callback takes a lot of time Vim is unresponsive + 1728 8.0.0098 (after 8.0.0097) can't build on MS-Windows + 1734 8.0.0099 popup menu appears above the cursor too often + 1852 8.0.0100 file name options may contain non-filename characters + 4074 8.0.0101 some options are not strictly checked + 4876 8.0.0102 (after 8.0.0101) cannot set 'dictionary' to a path + 4425 8.0.0103 may not process channel readahead + 3602 8.0.0104 value of 'thesaurus' option not checked properly + 16483 8.0.0105 can't tell difference between reading empty line or nothing + 2174 8.0.0106 (after 8.0.0100) cannot use a semicolon in 'backupext' + 17300 8.0.0107 when reading channel output in timer messages may be missing + 2747 8.0.0108 (after 8.0.0107) the channel "drop" option is not tested + 6083 8.0.0109 still checking if memcmp() exists, should be everywhere now + 2281 8.0.0110 drop command doesn't use existing window + 3528 8.0.0111 the :history command is not tested + 13404 8.0.0112 tests 92 and 93 are old style + 5376 8.0.0113 MS-Windows: dialog for saving changes on the wrong monitor + 3510 8.0.0114 coding style not optimal + 1875 8.0.0115 when building with Cygwin libwinpthread isn't found + 5896 8.0.0116 using CTRl-] in English help language from 'helplang' is used + 3071 8.0.0117 parallel make fails + 2075 8.0.0118 "make proto" adds extra function prototype + 2045 8.0.0119 no test for using CTRL-R on the command line + 1506 8.0.0120 channel test is still flaky on OS X + 3662 8.0.0121 setting 'cursorline' changes the curswant column + 1678 8.0.0122 channel test is still flaky on OS X + 5083 8.0.0123 modern Sun compilers define "__sun" instead of "sun" + 2401 8.0.0124 internal error for assert_inrange(1, 1) + 1943 8.0.0125 not enough testing for entering Ex commands + 3820 8.0.0126 display problem with 'foldcolumn' and a wide character + 2553 8.0.0127 cancelling completion still formats text + 1334 8.0.0128 (after 8.0.0126) display test fails on MS-Windows + 2553 8.0.0129 parallel make still doesn't work + 2693 8.0.0130 configure uses "ushort" while the Vim code doesn't + 4053 8.0.0131 not enough test coverage for syntax commands + 1413 8.0.0132 (after 8.0.0131) test fails because of using :finish + 2151 8.0.0133 "2;'(" causes ml_get errors in an empty buffer + 1718 8.0.0134 null pointer access reported by UBsan diff -Nru vim-7.4.2156/debian/control vim-8.0.0134/debian/control --- vim-7.4.2156/debian/control 2016-08-05 16:54:57.000000000 +0000 +++ vim-8.0.0134/debian/control 2017-01-02 07:55:52.000000000 +0000 @@ -4,46 +4,64 @@ Maintainer: pi-rho XSBC-Original-Maintainer: Debian Vim Maintainers Standards-Version: 3.9.7 -Build-Depends: libacl1-dev, libgpmg1-dev [linux-any], autoconf, -# Building Vim's svg icons - pdf2svg, ghostscript, - debhelper (>= 9~), - libtinfo-dev | libncurses5-dev, libselinux1-dev [linux-any], -# B-D for dpkg-vendor +Build-Depends: + autoconf, + debhelper (>= 9), dpkg-dev (>= 1.15.1), -# B-D for GUI support - libgtk2.0-dev, libgtk-3-dev, libxaw7-dev, libxt-dev, libxpm-dev, libgnomeui-dev, -# B-D for language interpreters -# Update d/rules when ruby version changes - libperl-dev, python-dev, ruby, ruby-dev, - python3-dev, libluajit-5.1-dev | liblua5.2-dev, luajit | lua5.2, -# ruby1.8{,-dev} Provides: ruby{,-dev} which can cause breakage on buildds if -# ruby/ruby1.8-dev or ruby1.8/ruby-dev pairs get installed due to a mismatch in -# the ruby binary version and the library version -#Build-Conflicts: ruby1.8 (<< 1.8.7.358-8), ruby1.8-dev (<< 1.8.7.358-8) -Build-Depends-Indep: docbook-xml, docbook-utils + libacl1-dev, + libgpmg1-dev [linux-any], + libgtk-3-dev, + libgtk2.0-dev, + libluajit-5.1-dev | liblua5.2-dev, + libperl-dev, + libselinux1-dev [linux-any], + libtinfo-dev | libncurses5-dev, + libxaw7-dev, + libxpm-dev, + libxt-dev, + luajit | lua5.2, + python-dev, + python3-dev, + ruby, + ruby-dev, +Build-Conflicts: + autoconf2.13, + ruby1.8 (<< 1.8.7.358-8), + ruby1.8-dev (<< 1.8.7.358-8), +Build-Depends-Indep: + docbook-utils, + docbook-xml, + ghostscript, + pdf2svg, Homepage: http://www.vim.org/ Package: vim-common Priority: important -Architecture: any -Depends: ${misc:Depends}, ${shlibs:Depends} -Recommends: vim | vim-gnome | vim-gtk | vim-gtk3 | vim-athena | vim-nox | vim-tiny -# Move vim icon from vim-gui-common to vim-common -Breaks: vim-gui-common (<< 2:7.4.488-4~) -Replaces: vim-gui-common (<< 2:7.4.488-4~) +Architecture: all +Depends: + xxd, + ${misc:Depends}, + ${shlibs:Depends}, +Recommends: + vim | vim-gtk | vim-gtk3 | vim-athena | vim-nox | vim-tiny, +Breaks: + vim-gui-common (<< 2:7.4.488-4~), +Replaces: + vim-gui-common (<< 2:7.4.488-4~), Description: Vi IMproved - Common files Vim is an almost compatible version of the UNIX editor Vi. . This package contains files shared by all non GUI-enabled vim variants - available in Debian. Examples of such shared files are: manpages, - common executables like xxd, and configuration files. + available in Debian. Examples of such shared files are: manpages and + configuration files. Package: vim-gui-common Architecture: all Multi-Arch: foreign -Recommends: vim-gnome | vim-gtk | vim-gtk3 | vim-athena -Depends: ${misc:Depends} +Recommends: + vim-gtk | vim-gtk3 | vim-athena, +Depends: + ${misc:Depends}, Description: Vi IMproved - Common GUI files Vim is an almost compatible version of the UNIX editor Vi. . @@ -54,12 +72,14 @@ Package: vim-runtime Architecture: all Multi-Arch: foreign -Depends: ${misc:Depends} -# Upgrades across major versions need to update vim-tiny first, otherwise -# vim-runtime's removal of the old diversions will fail -Breaks: vim-tiny (<< ${source:Version}) -Recommends: vim | vim-gnome | vim-gtk | vim-gtk3 | vim-athena | vim-nox | vim-tiny -Enhances: vim-tiny +Depends: + ${misc:Depends}, +Breaks: + vim-tiny (<< ${source:Version}), +Recommends: + vim | vim-gtk | vim-gtk3 | vim-athena | vim-nox | vim-tiny, +Enhances: + vim-tiny, Description: Vi IMproved - Runtime files Vim is an almost compatible version of the UNIX editor Vi. . @@ -72,7 +92,8 @@ Package: vim-doc Section: doc Architecture: all -Depends: ${misc:Depends} +Depends: + ${misc:Depends}, Description: Vi IMproved - HTML documentation Vim is an almost compatible version of the UNIX editor Vi. . @@ -82,12 +103,14 @@ Package: vim-tiny Priority: important Architecture: any -Depends: vim-common (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends} -# Vim automatically invokes the indent program if it isn't built with internal -# indenting support (as is the case with vim-tiny) and the 'equalprg' option -# isn't set. -Suggests: indent -Provides: editor +Depends: + vim-common (= ${source:Version}), + ${misc:Depends}, + ${shlibs:Depends}, +Suggests: + indent, +Provides: + editor, Description: Vi IMproved - enhanced vi editor - compact version Vim is an almost compatible version of the UNIX editor Vi. . @@ -96,13 +119,21 @@ the vi binary for base installations. . If a vim binary is wanted, try one of the following more featureful - packages: vim, vim-nox, vim-athena, vim-gtk, vim-gtk3, or vim-gnome. + packages: vim, vim-nox, vim-athena, vim-gtk, or vim-gtk3. Package: vim Architecture: any -Depends: vim-common (= ${binary:Version}), vim-runtime (= ${source:Version}), ${misc:Depends}, ${shlibs:Depends} -Suggests: ctags, vim-doc, vim-scripts -Provides: editor +Depends: + vim-common (= ${source:Version}), + vim-runtime (= ${source:Version}), + ${misc:Depends}, + ${shlibs:Depends}, +Suggests: + ctags, + vim-doc, + vim-scripts, +Provides: + editor, Description: Vi IMproved - enhanced vi editor Vim is an almost compatible version of the UNIX editor Vi. . @@ -118,14 +149,31 @@ Package: vim-gtk Priority: extra Architecture: any -Depends: vim-gui-common (= ${source:Version}), vim-common (= ${binary:Version}), vim-runtime (= ${source:Version}), ${misc:Depends}, ${shlibs:Depends} +Depends: + vim-common (= ${source:Version}), + vim-gui-common (= ${source:Version}), + vim-runtime (= ${source:Version}), + ${misc:Depends}, + ${shlibs:Depends}, +Suggests: + cscope, + fonts-dejavu, + gnome-icon-theme, + vim-doc, Recommends: libluajit-5.1-2 | liblua5.2-0, libpython3.4 | libpython3.3 | libpython2.7, libperl5.20 | libperl5.18 | libperl5.14, libruby, -Suggests: cscope, vim-doc, fonts-dejavu, gnome-icon-theme -Provides: vim, gvim, editor, vim-perl, vim-python, vim-ruby, vim-lua, vim-python3 +Provides: + editor, + gvim, + vim, + vim-lua, + vim-python, + vim-python3, + vim-ruby, + ${vim:Perl-Provides}, Description: Vi IMproved - enhanced vi editor - with GTK2 GUI Vim is an almost compatible version of the UNIX editor Vi. . @@ -139,9 +187,31 @@ Package: vim-gtk3 Priority: extra Architecture: any -Depends: vim-gui-common (= ${source:Version}), vim-common (= ${binary:Version}), vim-runtime (= ${source:Version}), ${misc:Depends}, ${shlibs:Depends} -Suggests: cscope, vim-doc, fonts-dejavu, gnome-icon-theme -Provides: vim, gvim, editor, vim-perl, vim-python, vim-ruby, vim-lua, vim-python3 +Depends: + vim-common (= ${source:Version}), + vim-gui-common (= ${source:Version}), + vim-runtime (= ${source:Version}), + ${misc:Depends}, + ${shlibs:Depends}, +Suggests: + cscope, + fonts-dejavu, + gnome-icon-theme, + vim-doc, +Recommends: + libluajit-5.1-2 | liblua5.2-0, + libpython3.4 | libpython3.3 | libpython2.7, + libperl5.20 | libperl5.18 | libperl5.14, + libruby, +Provides: + editor, + gvim, + vim, + vim-lua, + vim-python, + vim-python3, + vim-ruby, + ${vim:Perl-Provides}, Description: Vi IMproved - enhanced vi editor - with GTK3 GUI Vim is an almost compatible version of the UNIX editor Vi. . @@ -155,14 +225,27 @@ Package: vim-nox Priority: extra Architecture: any -Depends: vim-common (= ${binary:Version}), vim-runtime (= ${source:Version}), ${misc:Depends}, ${shlibs:Depends} +Depends: + vim-common (= ${source:Version}), + vim-runtime (= ${source:Version}), + ${misc:Depends}, + ${shlibs:Depends}, +Suggests: + cscope, + vim-doc, Recommends: libluajit-5.1-2 | liblua5.2-0, libpython3.4 | libpython3.3 | libpython2.7, libperl5.20 | libperl5.18 | libperl5.14, libruby, -Suggests: cscope, vim-doc, -Provides: vim, editor, vim-perl, vim-python, vim-ruby, vim-lua, vim-python3 +Provides: + editor, + vim, + vim-lua, + vim-python, + vim-python3, + vim-ruby, + ${vim:Perl-Provides}, Description: Vi IMproved - enhanced vi editor - with scripting languages support Vim is an almost compatible version of the UNIX editor Vi. . @@ -176,14 +259,28 @@ Package: vim-athena Priority: extra Architecture: any -Depends: vim-gui-common (= ${source:Version}), vim-common (= ${binary:Version}), vim-runtime (= ${source:Version}), ${misc:Depends}, ${shlibs:Depends} +Depends: + vim-common (= ${source:Version}), + vim-gui-common (= ${source:Version}), + vim-runtime (= ${source:Version}), + ${misc:Depends}, + ${shlibs:Depends}, +Suggests: + cscope, + vim-doc, Recommends: libluajit-5.1-2 | liblua5.2-0, libpython3.4 | libpython3.3 | libpython2.7, libperl5.20 | libperl5.18 | libperl5.14, - libruby, -Suggests: cscope, vim-doc -Provides: vim, gvim, editor, vim-perl, vim-python, vim-ruby, vim-lua, vim-python3 +Provides: + editor, + gvim, + vim, + vim-lua, + vim-python, + vim-python3, + vim-ruby, + ${vim:Perl-Provides}, Description: Vi IMproved - enhanced vi editor - with Athena GUI Vim is an almost compatible version of the UNIX editor Vi. . @@ -196,24 +293,28 @@ Package: vim-gnome Priority: extra +Architecture: all +Depends: + vim-gtk3, + ${misc:Depends}, +Section: oldlibs +Description: Vi IMproved - enhanced vi editor (dummy package) + This is a transitional package to install the vim-gtk3 package. You may + remove this package if nothing depends on it. + +Package: xxd +Priority: extra Architecture: any -Depends: vim-gui-common (= ${source:Version}), vim-common (= ${binary:Version}), vim-runtime (= ${source:Version}), ${misc:Depends}, ${shlibs:Depends} -Recommends: - libluajit-5.1-2 | liblua5.2-0, - libpython3.4 | libpython3.3 | libpython2.7, - libperl5.20 | libperl5.18 | libperl5.14, - libruby, -Suggests: cscope, vim-doc, fonts-dejavu, gnome-icon-theme -Provides: vim, gvim, editor, vim-perl, vim-python, vim-ruby, vim-lua, vim-python3 -Description: Vi IMproved - enhanced vi editor - with GNOME2 GUI - Vim is an almost compatible version of the UNIX editor Vi. - . - Many new features have been added: multi level undo, syntax - highlighting, command line history, on-line help, filename - completion, block operations, folding, Unicode support, etc. - . - This package contains a version of vim compiled with a GNOME2 GUI - and support for scripting with Lua, Perl, Python, and Ruby. +Depends: + ${misc:Depends}, + ${shlibs:Depends}, +Breaks: + vim-common (<< 2:7.4.2347-1~), +Replaces: + vim-common (<< 2:7.4.2347-1~), +Description: tool to make (or reverse) a hex dump + xxd creates a hex dump of a given file or standard input. It can also convert + a hex dump back to its original binary form. Package: vim-dbg Section: debug diff -Nru vim-7.4.2156/debian/NEWS vim-8.0.0134/debian/NEWS --- vim-7.4.2156/debian/NEWS 2016-08-05 16:54:57.000000000 +0000 +++ vim-8.0.0134/debian/NEWS 2017-01-02 07:55:52.000000000 +0000 @@ -1,3 +1,31 @@ +vim (2:8.0.0022-1) unstable; urgency=medium + + Vim now ships with a defaults.vim file which, when the user has no vimrc, + enables some options that have historically been disabled by default. This + is described in more detail at ":help defaults.vim". + + Since defaults.vim is loaded when the user's vimrc would typically be + loaded, it will override any settings in /etc/vim/vimrc(.local). In order + to disable the loading of defaults.vim, add + + let g:skip_defaults_vim = 1 + + to /etc/vim/vimrc(.local). + + -- James McCoy Tue, 04 Oct 2016 20:28:02 -0400 + +vim (2:7.4.2330-1) unstable; urgency=medium + + The Python language bindings have been switched from python2 to python3. + If you have plugins/addons that use Python, they may need to be updated to + support python3. + + Similarly, python3 specific packages may need to be installed to re-enable + plugins (e.g., python-powerline is replaced by python3-powerline) or plugin + features. + + -- James McCoy Wed, 07 Sep 2016 22:12:11 -0400 + vim (2:7.3.154+hg~74503f6ee649-1) unstable; urgency=low The vim-lesstif package has been removed in favor of the new vim-athena diff -Nru vim-7.4.2156/debian/patches/debian/Add-recognition-of-more-LaTeX-commands-for-tex-filetype-d.patch vim-8.0.0134/debian/patches/debian/Add-recognition-of-more-LaTeX-commands-for-tex-filetype-d.patch --- vim-7.4.2156/debian/patches/debian/Add-recognition-of-more-LaTeX-commands-for-tex-filetype-d.patch 1970-01-01 00:00:00.000000000 +0000 +++ vim-8.0.0134/debian/patches/debian/Add-recognition-of-more-LaTeX-commands-for-tex-filetype-d.patch 2017-01-02 07:55:52.000000000 +0000 @@ -0,0 +1,27 @@ +From: Stefano Zacchiroli +Date: Fri, 25 Aug 2006 13:33:04 +0200 +Subject: Add recognition of more LaTeX commands for tex filetype detection + +Since filetype detection of TeX files defaults to plaintex, we've added +detection of some additional LaTeX commands to help sway the detection +to LaTeX. + +Closes: #384479 +Signed-off-by: James McCoy +--- + runtime/filetype.vim | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/runtime/filetype.vim b/runtime/filetype.vim +index df8f7fdd9..17db84276 100644 +--- a/runtime/filetype.vim ++++ b/runtime/filetype.vim +@@ -2224,7 +2224,7 @@ func! s:FTtex() + call cursor(1,1) + let firstNC = search('^\s*[^[:space:]%]', 'c', 1000) + if firstNC " Check the next thousand lines for a LaTeX or ConTeXt keyword. +- let lpat = 'documentclass\>\|usepackage\>\|begin{\|newcommand\>\|renewcommand\>' ++ let lpat = 'documentclass\>\|usepackage\>\|begin{\|newcommand\>\|renewcommand\>\|part\>\|chapter\>\|section\>\|subsection\>\|subsubsection\>\|paragraph\>\|subparagraph\>\|subsubparagraph' + let cpat = 'start\a\+\|setup\a\+\|usemodule\|enablemode\|enableregime\|setvariables\|useencoding\|usesymbols\|stelle\a\+\|verwende\a\+\|stel\a\+\|gebruik\a\+\|usa\a\+\|imposta\a\+\|regle\a\+\|utilisemodule\>' + let kwline = search('^\s*\\\%(' . lpat . '\)\|^\s*\\\(' . cpat . '\)', + \ 'cnp', firstNC + 1000) diff -Nru vim-7.4.2156/debian/patches/debian/build-date.patch vim-8.0.0134/debian/patches/debian/build-date.patch --- vim-7.4.2156/debian/patches/debian/build-date.patch 2016-08-05 16:54:57.000000000 +0000 +++ vim-8.0.0134/debian/patches/debian/build-date.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,78 +0,0 @@ -commit f3d2750f9dcd625127c7f7f01b9f98cc5e38469f -Author: James McCoy -Date: Thu Jan 28 10:55:11 2016 -0500 - - Support defining compilation date in $SOURCE_DATE_EPOCH - - There is an ongoing effort[0] to make FOSS software reproducibly - buildable. In order to make Vim build reproducibly, it is necessary to - allow defining the date/time that is part of VIM_VERSION_LONG as part of - the build process. - - This commit enables that by adding support for the SOURCE_DATE_EPOCH - spec[1]. When the $SOURCE_DATE_EPOCH environment variable is defined, - it will be used to populate the BUILD_DATE preprocessor define. - - If BUILD_DATE is not defined, the existing behavior of relying on the - preprocessor's __DATE__/__TIME__ symbols will be used. - - [0]: https://reproducible-builds.org/ - [1]: https://reproducible-builds.org/specs/source-date-epoch/ - -diff --git a/src/config.h.in b/src/config.h.in -index 9d35e48..86ee967 100644 ---- a/src/config.h.in -+++ b/src/config.h.in -@@ -30,6 +30,9 @@ - /* Define when __DATE__ " " __TIME__ can be used */ - #undef HAVE_DATE_TIME - -+/* Defined as the date of last modification */ -+#undef BUILD_DATE -+ - /* Define when __attribute__((unused)) can be used */ - #undef HAVE_ATTRIBUTE_UNUSED - -diff --git a/src/configure.in b/src/configure.in -index f29b62c..97948af 100644 ---- a/src/configure.in -+++ b/src/configure.in -@@ -29,6 +29,16 @@ dnl in autoconf needs it, where it uses STDC_HEADERS. - AC_HEADER_STDC - AC_HEADER_SYS_WAIT - -+dnl If $SOURCE_DATE_EPOCH is present in the environment, use that as the -+dnl "compiled" timestamp in :version's output. Attempt to get the formatted -+dnl date using GNU date syntax, BSD date syntax, and finally falling back to -+dnl just using the current time. -+if test -n "$SOURCE_DATE_EPOCH"; then -+ DATE_FMT="%b %d %Y %H:%M:%S" -+ BUILD_DATE=$(LC_ALL=C date -u -d "@$SOURCE_DATE_EPOCH" "+$DATE_FMT" 2>/dev/null || LC_ALL=C date -u -r "$SOURCE_DATE_EPOCH" "+$DATE_FMT" 2>/dev/null || LC_ALL=C date -u "+$DATE_FMT") -+ AC_DEFINE_UNQUOTED(BUILD_DATE, ["$BUILD_DATE"]) -+fi -+ - dnl Check for the flag that fails if stuff are missing. - - AC_MSG_CHECKING(--enable-fail-if-missing argument) -diff --git a/src/version.c b/src/version.c -index 333c0d8..56d7184 100644 ---- a/src/version.c -+++ b/src/version.c -@@ -43,11 +43,17 @@ make_version(void) - * VAX C can't catenate strings in the preprocessor. - */ - strcpy(longVersion, VIM_VERSION_LONG_DATE); -+#ifdef BUILD_DATE -+ strcat(longVersion, BUILD_DATE); -+#else - strcat(longVersion, __DATE__); - strcat(longVersion, " "); - strcat(longVersion, __TIME__); -+#endif - strcat(longVersion, ")"); - } -+# elif defined(BUILD_DATE) -+char *longVersion = VIM_VERSION_LONG_DATE BUILD_DATE ")"; - # else - char *longVersion = VIM_VERSION_LONG_DATE __DATE__ " " __TIME__ ")"; - # endif diff -Nru vim-7.4.2156/debian/patches/debian/Detect-the-rst-filetype-using-the-contents-of-the-file.patch vim-8.0.0134/debian/patches/debian/Detect-the-rst-filetype-using-the-contents-of-the-file.patch --- vim-7.4.2156/debian/patches/debian/Detect-the-rst-filetype-using-the-contents-of-the-file.patch 1970-01-01 00:00:00.000000000 +0000 +++ vim-8.0.0134/debian/patches/debian/Detect-the-rst-filetype-using-the-contents-of-the-file.patch 2017-01-02 07:55:52.000000000 +0000 @@ -0,0 +1,28 @@ +From: James Vega +Date: Fri, 18 Aug 2006 09:06:20 -0400 +Subject: Detect the rst filetype using the contents of the file + +Closes: #382541 +--- + runtime/scripts.vim | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/runtime/scripts.vim b/runtime/scripts.vim +index 276382808..d3101c6b7 100644 +--- a/runtime/scripts.vim ++++ b/runtime/scripts.vim +@@ -332,6 +332,14 @@ else + elseif s:line1 =~ 'exec\s\+\S*scheme' || s:line2 =~ 'exec\s\+\S*scheme' + set ft=scheme + ++ " rst files ++ elseif s:line1 =~ '^\.\.\s\|^\s*restindex\s*$' ++ \ || s:line2 =~ '^\.\.\s\|^\s*restindex\s*$' ++ \ || s:line3 =~ '^\.\.\s\|^\s*restindex\s*$' ++ \ || s:line4 =~ '^\.\.\s\|^\s*restindex\s*$' ++ \ || s:line5 =~ '^\.\.\s\|^\s*restindex\s*$' ++ set ft=rst ++ + " Git output + elseif s:line1 =~ '^\(commit\|tree\|object\) \x\{40\}\>\|^tag \S\+$' + set ft=git diff -Nru vim-7.4.2156/debian/patches/debian/disabled-modelines.patch vim-8.0.0134/debian/patches/debian/disabled-modelines.patch --- vim-7.4.2156/debian/patches/debian/disabled-modelines.patch 2016-08-05 16:54:57.000000000 +0000 +++ vim-8.0.0134/debian/patches/debian/disabled-modelines.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,22 +0,0 @@ -Subject: Document Debian's decision to disable modelines by default - Modelines have historically been a source of vulnerabilities in Vim. - As long it remains a "blacklist suspected/proven dangerous options" - instead of a "whitelist allowed options" piece of functionality, - Debian's system-wide vimrc will maintain this setting. As such, the - documentation needs to be updated to reflect the induced behavior. -Forwarded: not-needed -Author: James Vega -Bug-Debian: http://bugs.debian.org/472522 -Bug-Ubuntu: https://launchpad.net/bugs/130531 - ---- a/runtime/doc/options.txt -+++ b/runtime/doc/options.txt -@@ -5101,7 +5101,7 @@ A jump table for the options with a shor - - *'modeline'* *'ml'* *'nomodeline'* *'noml'* - 'modeline' 'ml' boolean (Vim default: on (off for root), -- Vi default: off) -+ Debian: off, Vi default: off) - local to buffer - *'modelines'* *'mls'* - 'modelines' 'mls' number (default 5) diff -Nru vim-7.4.2156/debian/patches/debian/Document-Debian-s-decision-to-disable-modelines-by-defaul.patch vim-8.0.0134/debian/patches/debian/Document-Debian-s-decision-to-disable-modelines-by-defaul.patch --- vim-7.4.2156/debian/patches/debian/Document-Debian-s-decision-to-disable-modelines-by-defaul.patch 1970-01-01 00:00:00.000000000 +0000 +++ vim-8.0.0134/debian/patches/debian/Document-Debian-s-decision-to-disable-modelines-by-defaul.patch 2017-01-02 07:55:52.000000000 +0000 @@ -0,0 +1,29 @@ +From: James Vega +Date: Thu, 27 Mar 2008 03:42:02 +0000 +Subject: Document Debian's decision to disable modelines by default + +Modelines have historically been a source of vulnerabilities in Vim. +As long as it remains a "blacklist suspected/proven dangerous options" +instead of a "whitelist allowed options" piece of functionality, +Debian's system-wide vimrc will maintain this setting. As such, the +documentation needs to be updated to reflect the induced behavior. + +Closes: #472522 +Signed-off-by: James McCoy +--- + runtime/doc/options.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt +index 5e0d06075..6e8285935 100644 +--- a/runtime/doc/options.txt ++++ b/runtime/doc/options.txt +@@ -5124,7 +5124,7 @@ A jump table for the options with a short description can be found at |Q_op|. + + *'modeline'* *'ml'* *'nomodeline'* *'noml'* + 'modeline' 'ml' boolean (Vim default: on (off for root), +- Vi default: off) ++ Debian: off, Vi default: off) + local to buffer + *'modelines'* *'mls'* + 'modelines' 'mls' number (default 5) diff -Nru vim-7.4.2156/debian/patches/debian/extra-tex-detection.patch vim-8.0.0134/debian/patches/debian/extra-tex-detection.patch --- vim-7.4.2156/debian/patches/debian/extra-tex-detection.patch 2016-08-05 16:54:57.000000000 +0000 +++ vim-8.0.0134/debian/patches/debian/extra-tex-detection.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,19 +0,0 @@ -Subject: Add recognition of more LaTeX commands for tex filetype detection - Since filetype detection of TeX files defaults to plaintex, we've added - detection of some additional LaTeX commands to help sway the detection - to LaTeX. -Author: Stefano Zacchiroli -Bug-Debian: http://bugs.debian.org/384479 -Forwarded: 2006-08-26 - ---- a/runtime/filetype.vim -+++ b/runtime/filetype.vim -@@ -2212,7 +2212,7 @@ func! s:FTtex() - call cursor(1,1) - let firstNC = search('^\s*[^[:space:]%]', 'c', 1000) - if firstNC " Check the next thousand lines for a LaTeX or ConTeXt keyword. -- let lpat = 'documentclass\>\|usepackage\>\|begin{\|newcommand\>\|renewcommand\>' -+ let lpat = 'documentclass\>\|usepackage\>\|begin{\|newcommand\>\|renewcommand\>\|part\>\|chapter\>\|section\>\|subsection\>\|subsubsection\>\|paragraph\>\|subparagraph\>\|subsubparagraph' - let cpat = 'start\a\+\|setup\a\+\|usemodule\|enablemode\|enableregime\|setvariables\|useencoding\|usesymbols\|stelle\a\+\|verwende\a\+\|stel\a\+\|gebruik\a\+\|usa\a\+\|imposta\a\+\|regle\a\+\|utilisemodule\>' - let kwline = search('^\s*\\\%(' . lpat . '\)\|^\s*\\\(' . cpat . '\)', - \ 'cnp', firstNC + 1000) diff -Nru vim-7.4.2156/debian/patches/debian/Support-sourcing-a-vimrc.tiny-when-Vim-is-invoked-as-vi.patch vim-8.0.0134/debian/patches/debian/Support-sourcing-a-vimrc.tiny-when-Vim-is-invoked-as-vi.patch --- vim-7.4.2156/debian/patches/debian/Support-sourcing-a-vimrc.tiny-when-Vim-is-invoked-as-vi.patch 1970-01-01 00:00:00.000000000 +0000 +++ vim-8.0.0134/debian/patches/debian/Support-sourcing-a-vimrc.tiny-when-Vim-is-invoked-as-vi.patch 2017-01-02 07:55:52.000000000 +0000 @@ -0,0 +1,85 @@ +From: James McCoy +Date: Tue, 6 Oct 2015 23:46:30 -0400 +Subject: Support sourcing a vimrc.tiny when Vim is invoked as vi + +This is used only in the vim-tiny package to allow a specific +configuration for vim-tiny's vi. The vim-tiny package is substantially +different from other Vim packages, so it does not make sense to +share the same config. + +Closes: #222138 +Signed-off-by: Stefano Zacchiroli +Signed-off-by: James Vega +--- + src/main.c | 14 +++++++++++++- + src/os_unix.h | 3 +++ + src/structs.h | 3 +++ + 3 files changed, 19 insertions(+), 1 deletion(-) + +diff --git a/src/main.c b/src/main.c +index f3c471a85..0d7de4f2c 100644 +--- a/src/main.c ++++ b/src/main.c +@@ -1729,6 +1729,10 @@ parse_command_name(mparm_T *parmp) + } + else if (STRNICMP(initstr, "vim", 3) == 0) + initstr += 3; ++#ifdef SYS_TINYRC_FILE ++ else if (STRNICMP(initstr, "vi", 2) == 0) ++ parmp->vi_mode = TRUE; ++#endif + + /* Catch "[r][g]vimdiff" and "[r][g]viewdiff". */ + if (STRICMP(initstr, "diff") == 0) +@@ -2972,7 +2976,12 @@ source_startup_scripts(mparm_T *parmp) + * Get system wide defaults, if the file name is defined. + */ + #ifdef SYS_VIMRC_FILE +- (void)do_source((char_u *)SYS_VIMRC_FILE, FALSE, DOSO_NONE); ++# if defined(SYS_TINYRC_FILE) && defined(TINY_VIMRC) ++ if (parmp->vi_mode) ++ (void)do_source((char_u *)SYS_TINYRC_FILE, FALSE, DOSO_NONE); ++ else ++# endif ++ (void)do_source((char_u *)SYS_VIMRC_FILE, FALSE, DOSO_NONE); + #endif + #ifdef MACOS_X + (void)do_source((char_u *)"$VIMRUNTIME/macmap.vim", FALSE, DOSO_NONE); +@@ -3008,6 +3017,9 @@ source_startup_scripts(mparm_T *parmp) + #ifdef USR_EXRC_FILE2 + && do_source((char_u *)USR_EXRC_FILE2, FALSE, DOSO_NONE) == FAIL + #endif ++#if defined(SYS_TINYRC_FILE) && defined(TINY_VIMRC) ++ && !parmp->vi_mode ++#endif + && !has_dash_c_arg) + { + /* When no .vimrc file was found: source defaults.vim. */ +diff --git a/src/os_unix.h b/src/os_unix.h +index d28aa4dde..3a00e05df 100644 +--- a/src/os_unix.h ++++ b/src/os_unix.h +@@ -213,6 +213,9 @@ typedef struct dsc$descriptor DESC; + /* + * Unix system-dependent file names + */ ++#ifndef SYS_TINYRC_FILE ++# define SYS_TINYRC_FILE "$VIM/vimrc.tiny" ++#endif + #ifndef SYS_VIMRC_FILE + # define SYS_VIMRC_FILE "$VIM/vimrc" + #endif +diff --git a/src/structs.h b/src/structs.h +index 3fdfb5fcd..1e778d0b0 100644 +--- a/src/structs.h ++++ b/src/structs.h +@@ -3260,6 +3260,9 @@ typedef struct + #ifdef FEAT_DIFF + int diff_mode; /* start with 'diff' set */ + #endif ++#ifdef SYS_TINYRC_FILE ++ int vi_mode; /* started as "vi" */ ++#endif + } mparm_T; + + /* diff -Nru vim-7.4.2156/debian/patches/debian/vim-tiny.patch vim-8.0.0134/debian/patches/debian/vim-tiny.patch --- vim-7.4.2156/debian/patches/debian/vim-tiny.patch 2016-08-05 16:54:57.000000000 +0000 +++ vim-8.0.0134/debian/patches/debian/vim-tiny.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,61 +0,0 @@ -Subject: Support sourcing a vimrc.tiny when Vim is invoked as vi - This is used only in the vim-tiny package to allow a specific - configuration for vim-tiny's vi. The vim-tiny package is substantially - different from the other Vim packages, so it did not make sense to - share the same config. -Forwarded: not-needed -Author: Stefano Zacchiroli -Author: James Vega -Bug-Debian: http://bugs.debian.org/222138 - ---- a/src/main.c -+++ b/src/main.c -@@ -1728,6 +1728,10 @@ parse_command_name(mparm_T *parmp) - } - else if (STRNICMP(initstr, "vim", 3) == 0) - initstr += 3; -+#ifdef SYS_TINYRC_FILE -+ else if (STRNICMP(initstr, "vi", 2) == 0) -+ parmp->vi_mode = TRUE; -+#endif - - /* Catch "[r][g]vimdiff" and "[r][g]viewdiff". */ - if (STRICMP(initstr, "diff") == 0) -@@ -2968,7 +2972,12 @@ source_startup_scripts(mparm_T *parmp) - * Get system wide defaults, if the file name is defined. - */ - #ifdef SYS_VIMRC_FILE -- (void)do_source((char_u *)SYS_VIMRC_FILE, FALSE, DOSO_NONE); -+# if defined(SYS_TINYRC_FILE) && defined(TINY_VIMRC) -+ if (parmp->vi_mode) -+ (void)do_source((char_u *)SYS_TINYRC_FILE, FALSE, DOSO_NONE); -+ else -+# endif -+ (void)do_source((char_u *)SYS_VIMRC_FILE, FALSE, DOSO_NONE); - #endif - #ifdef MACOS_X - (void)do_source((char_u *)"$VIMRUNTIME/macmap.vim", FALSE, DOSO_NONE); ---- a/src/os_unix.h -+++ b/src/os_unix.h -@@ -217,6 +217,9 @@ typedef struct dsc$descriptor DESC; - /* - * Unix system-dependent file names - */ -+#ifndef SYS_TINYRC_FILE -+# define SYS_TINYRC_FILE "$VIM/vimrc.tiny" -+#endif - #ifndef SYS_VIMRC_FILE - # define SYS_VIMRC_FILE "$VIM/vimrc" - #endif ---- a/src/structs.h -+++ b/src/structs.h -@@ -3228,6 +3228,9 @@ typedef struct - #ifdef FEAT_DIFF - int diff_mode; /* start with 'diff' set */ - #endif -+#ifdef SYS_TINYRC_FILE -+ int vi_mode; /* started as "vi" */ -+#endif - } mparm_T; - - /* diff -Nru vim-7.4.2156/debian/patches/series vim-8.0.0134/debian/patches/series --- vim-7.4.2156/debian/patches/series 2016-08-05 16:54:57.000000000 +0000 +++ vim-8.0.0134/debian/patches/series 2017-01-02 07:55:52.000000000 +0000 @@ -1,6 +1,8 @@ -upstream/extra-rst-detection.patch -debian/vim-tiny.patch -debian/disabled-modelines.patch -debian/extra-tex-detection.patch -debian/build-date.patch +upstream/Support-defining-compilation-date-in-SOURCE_DATE_EPOCH.patch +debian/Support-sourcing-a-vimrc.tiny-when-Vim-is-invoked-as-vi.patch +debian/Detect-the-rst-filetype-using-the-contents-of-the-file.patch +debian/Add-recognition-of-more-LaTeX-commands-for-tex-filetype-d.patch +debian/Document-Debian-s-decision-to-disable-modelines-by-defaul.patch +upstream/Add-Zesty-Zapus-to-deb-changelog-sources-syntax-files.patch +upstream/debcontrol.vim-Add-sections-for-Rust-and-JavaScript.patch debian-runtime-fixes.patch diff -Nru vim-7.4.2156/debian/patches/upstream/Add-Zesty-Zapus-to-deb-changelog-sources-syntax-files.patch vim-8.0.0134/debian/patches/upstream/Add-Zesty-Zapus-to-deb-changelog-sources-syntax-files.patch --- vim-7.4.2156/debian/patches/upstream/Add-Zesty-Zapus-to-deb-changelog-sources-syntax-files.patch 1970-01-01 00:00:00.000000000 +0000 +++ vim-8.0.0134/debian/patches/upstream/Add-Zesty-Zapus-to-deb-changelog-sources-syntax-files.patch 2017-01-02 07:55:52.000000000 +0000 @@ -0,0 +1,53 @@ +From: James McCoy +Date: Sat, 12 Nov 2016 12:40:03 -0500 +Subject: Add Zesty Zapus to deb{changelog,sources} syntax files + +--- + runtime/syntax/debchangelog.vim | 4 ++-- + runtime/syntax/debsources.vim | 4 ++-- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/runtime/syntax/debchangelog.vim b/runtime/syntax/debchangelog.vim +index a10e4ad34..eb02aaf4a 100644 +--- a/runtime/syntax/debchangelog.vim ++++ b/runtime/syntax/debchangelog.vim +@@ -3,7 +3,7 @@ + " Maintainer: Debian Vim Maintainers + " Former Maintainers: Gerfried Fuchs + " Wichert Akkerman +-" Last Change: 2016 Aug 30 ++" Last Change: 2016 Nov 12 + " URL: https://anonscm.debian.org/cgit/pkg-vim/vim.git/plain/runtime/syntax/debchangelog.vim + + " Standard syntax initialization +@@ -21,7 +21,7 @@ let binNMU='binary-only=yes' + syn match debchangelogName contained "^[[:alnum:]][[:alnum:].+-]\+ " + exe 'syn match debchangelogFirstKV contained "; \('.urgency.'\|'.binNMU.'\)"' + exe 'syn match debchangelogOtherKV contained ", \('.urgency.'\|'.binNMU.'\)"' +-syn match debchangelogTarget contained "\v %(frozen|unstable|sid|%(testing|%(old)=stable)%(-proposed-updates|-security)=|experimental|squeeze-%(backports%(-sloppy)=|volatile|lts|security)|wheezy-%(backports%(-sloppy)=|security)|jessie%(-backports|-security)=|stretch|%(devel|precise|trusty|vivid|wily|xenial|yakkety)%(-%(security|proposed|updates|backports|commercial|partner))=)+" ++syn match debchangelogTarget contained "\v %(frozen|unstable|sid|%(testing|%(old)=stable)%(-proposed-updates|-security)=|experimental|squeeze-%(backports%(-sloppy)=|volatile|lts|security)|wheezy-%(backports%(-sloppy)=|security)|jessie%(-backports|-security)=|stretch|%(devel|precise|trusty|vivid|wily|xenial|yakkety|zesty)%(-%(security|proposed|updates|backports|commercial|partner))=)+" + syn match debchangelogVersion contained "(.\{-})" + syn match debchangelogCloses contained "closes:\_s*\(bug\)\=#\=\_s\=\d\+\(,\_s*\(bug\)\=#\=\_s\=\d\+\)*" + syn match debchangelogLP contained "\clp:\s\+#\d\+\(,\s*#\d\+\)*" +diff --git a/runtime/syntax/debsources.vim b/runtime/syntax/debsources.vim +index 277794497..390c43035 100644 +--- a/runtime/syntax/debsources.vim ++++ b/runtime/syntax/debsources.vim +@@ -2,7 +2,7 @@ + " Language: Debian sources.list + " Maintainer: Debian Vim Maintainers + " Former Maintainer: Matthijs Mohlmann +-" Last Change: 2016 Sep 27 ++" Last Change: 2016 Nov 12 + " URL: https://anonscm.debian.org/cgit/pkg-vim/vim.git/plain/runtime/syntax/debsources.vim + + " Standard syntax initialization +@@ -25,7 +25,7 @@ let s:supported = [ + \ 'oldstable', 'stable', 'testing', 'unstable', 'experimental', + \ 'squeeze', 'wheezy', 'jessie', 'stretch', 'sid', 'rc-buggy', + \ +- \ 'precise', 'trusty', 'xenial', 'yakkety', 'devel' ++ \ 'precise', 'trusty', 'xenial', 'yakkety', 'zesty', 'devel' + \ ] + let s:unsupported = [ + \ 'buzz', 'rex', 'bo', 'hamm', 'slink', 'potato', diff -Nru vim-7.4.2156/debian/patches/upstream/debcontrol.vim-Add-sections-for-Rust-and-JavaScript.patch vim-8.0.0134/debian/patches/upstream/debcontrol.vim-Add-sections-for-Rust-and-JavaScript.patch --- vim-7.4.2156/debian/patches/upstream/debcontrol.vim-Add-sections-for-Rust-and-JavaScript.patch 1970-01-01 00:00:00.000000000 +0000 +++ vim-8.0.0134/debian/patches/upstream/debcontrol.vim-Add-sections-for-Rust-and-JavaScript.patch 2017-01-02 07:55:52.000000000 +0000 @@ -0,0 +1,22 @@ +From: Josh Triplett +Date: Thu, 8 Dec 2016 20:12:55 -0800 +Subject: debcontrol.vim: Add sections for Rust and JavaScript + +Signed-off-by: James McCoy +--- + runtime/syntax/debcontrol.vim | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/runtime/syntax/debcontrol.vim b/runtime/syntax/debcontrol.vim +index b52c496c9..b1bc9f8bf 100644 +--- a/runtime/syntax/debcontrol.vim ++++ b/runtime/syntax/debcontrol.vim +@@ -38,7 +38,7 @@ unlet s:kernels s:archs s:pairs + syn match debcontrolMultiArch contained "\%(no\|foreign\|allowed\|same\)" + syn match debcontrolName contained "[a-z0-9][a-z0-9+.-]\+" + syn match debcontrolPriority contained "\(extra\|important\|optional\|required\|standard\)" +-syn match debcontrolSection contained "\v((contrib|non-free|non-US/main|non-US/contrib|non-US/non-free|restricted|universe|multiverse)/)?(admin|cli-mono|comm|database|debian-installer|debug|devel|doc|editors|education|electronics|embedded|fonts|games|gnome|gnustep|gnu-r|graphics|hamradio|haskell|httpd|interpreters|introspection|java|kde|kernel|libs|libdevel|lisp|localization|mail|math|metapackages|misc|net|news|ocaml|oldlibs|otherosfs|perl|php|python|ruby|science|shells|sound|text|tex|utils|vcs|video|web|x11|xfce|zope)" ++syn match debcontrolSection contained "\v((contrib|non-free|non-US/main|non-US/contrib|non-US/non-free|restricted|universe|multiverse)/)?(admin|cli-mono|comm|database|debian-installer|debug|devel|doc|editors|education|electronics|embedded|fonts|games|gnome|gnustep|gnu-r|graphics|hamradio|haskell|httpd|interpreters|introspection|java|javascript|kde|kernel|libs|libdevel|lisp|localization|mail|math|metapackages|misc|net|news|ocaml|oldlibs|otherosfs|perl|php|python|ruby|rust|science|shells|sound|text|tex|utils|vcs|video|web|x11|xfce|zope)" + syn match debcontrolPackageType contained "u\?deb" + syn match debcontrolVariable contained "\${.\{-}}" + syn match debcontrolDmUpload contained "\cyes" diff -Nru vim-7.4.2156/debian/patches/upstream/extra-rst-detection.patch vim-8.0.0134/debian/patches/upstream/extra-rst-detection.patch --- vim-7.4.2156/debian/patches/upstream/extra-rst-detection.patch 2016-08-05 16:54:57.000000000 +0000 +++ vim-8.0.0134/debian/patches/upstream/extra-rst-detection.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,0 @@ -Subject: Detect rst filetype using contents of file - Inspect the first 5 lines of the file to see if there's a leading ".. " - or stand-alone "restindex". If either are found, set the filetype to - rst. -Author: James Vega -Bug-Debian: 382541 -Forwarded: 2006-08-12 - ---- a/runtime/scripts.vim -+++ b/runtime/scripts.vim -@@ -332,6 +332,14 @@ else - elseif s:line1 =~ 'exec\s\+\S*scheme' || s:line2 =~ 'exec\s\+\S*scheme' - set ft=scheme - -+ " rst files -+ elseif s:line1 =~ '^\.\.\s\|^\s*restindex\s*$' -+ \ || s:line2 =~ '^\.\.\s\|^\s*restindex\s*$' -+ \ || s:line3 =~ '^\.\.\s\|^\s*restindex\s*$' -+ \ || s:line4 =~ '^\.\.\s\|^\s*restindex\s*$' -+ \ || s:line5 =~ '^\.\.\s\|^\s*restindex\s*$' -+ set ft=rst -+ - " Git output - elseif s:line1 =~ '^\(commit\|tree\|object\) \x\{40\}\>\|^tag \S\+$' - set ft=git diff -Nru vim-7.4.2156/debian/patches/upstream/Support-defining-compilation-date-in-SOURCE_DATE_EPOCH.patch vim-8.0.0134/debian/patches/upstream/Support-defining-compilation-date-in-SOURCE_DATE_EPOCH.patch --- vim-7.4.2156/debian/patches/upstream/Support-defining-compilation-date-in-SOURCE_DATE_EPOCH.patch 1970-01-01 00:00:00.000000000 +0000 +++ vim-8.0.0134/debian/patches/upstream/Support-defining-compilation-date-in-SOURCE_DATE_EPOCH.patch 2017-01-02 07:55:52.000000000 +0000 @@ -0,0 +1,81 @@ +From: James McCoy +Date: Thu, 28 Jan 2016 10:55:11 -0500 +Subject: Support defining compilation date in $SOURCE_DATE_EPOCH + +There is an ongoing effort[0] to make FOSS software reproducibly +buildable. In order to make Vim build reproducibly, it is necessary to +allow defining the date/time that is part of VIM_VERSION_LONG as part of +the build process. + +This commit enables that by adding support for the SOURCE_DATE_EPOCH +spec[1]. When the $SOURCE_DATE_EPOCH environment variable is defined, +it will be used to populate the BUILD_DATE preprocessor define. + +If BUILD_DATE is not defined, the existing behavior of relying on the +preprocessor's __DATE__/__TIME__ symbols will be used. + +[0]: https://reproducible-builds.org/ +[1]: https://reproducible-builds.org/specs/source-date-epoch/ +--- + src/config.h.in | 3 +++ + src/configure.ac | 10 ++++++++++ + src/version.c | 6 ++++++ + 3 files changed, 19 insertions(+) + +diff --git a/src/config.h.in b/src/config.h.in +index 38b0ccf53..ab8f20207 100644 +--- a/src/config.h.in ++++ b/src/config.h.in +@@ -30,6 +30,9 @@ + /* Define when __DATE__ " " __TIME__ can be used */ + #undef HAVE_DATE_TIME + ++/* Defined as the date of last modification */ ++#undef BUILD_DATE ++ + /* Define when __attribute__((unused)) can be used */ + #undef HAVE_ATTRIBUTE_UNUSED + +diff --git a/src/configure.ac b/src/configure.ac +index 1706a8d9a..9cf8b9615 100644 +--- a/src/configure.ac ++++ b/src/configure.ac +@@ -29,6 +29,16 @@ dnl in autoconf needs it, where it uses STDC_HEADERS. + AC_HEADER_STDC + AC_HEADER_SYS_WAIT + ++dnl If $SOURCE_DATE_EPOCH is present in the environment, use that as the ++dnl "compiled" timestamp in :version's output. Attempt to get the formatted ++dnl date using GNU date syntax, BSD date syntax, and finally falling back to ++dnl just using the current time. ++if test -n "$SOURCE_DATE_EPOCH"; then ++ DATE_FMT="%b %d %Y %H:%M:%S" ++ BUILD_DATE=$(LC_ALL=C date -u -d "@$SOURCE_DATE_EPOCH" "+$DATE_FMT" 2>/dev/null || LC_ALL=C date -u -r "$SOURCE_DATE_EPOCH" "+$DATE_FMT" 2>/dev/null || LC_ALL=C date -u "+$DATE_FMT") ++ AC_DEFINE_UNQUOTED(BUILD_DATE, ["$BUILD_DATE"]) ++fi ++ + dnl Check for the flag that fails if stuff are missing. + + AC_MSG_CHECKING(--enable-fail-if-missing argument) +diff --git a/src/version.c b/src/version.c +index 723544ff4..4bcadad21 100644 +--- a/src/version.c ++++ b/src/version.c +@@ -44,11 +44,17 @@ make_version(void) + * VAX C can't catenate strings in the preprocessor. + */ + strcpy(longVersion, VIM_VERSION_LONG_DATE); ++#ifdef BUILD_DATE ++ strcat(longVersion, BUILD_DATE); ++#else + strcat(longVersion, __DATE__); + strcat(longVersion, " "); + strcat(longVersion, __TIME__); ++#endif + strcat(longVersion, ")"); + } ++# elif defined(BUILD_DATE) ++char *longVersion = VIM_VERSION_LONG_DATE BUILD_DATE ")"; + # else + char *longVersion = VIM_VERSION_LONG_DATE __DATE__ " " __TIME__ ")"; + # endif diff -Nru vim-7.4.2156/debian/policy/vim-policy.xml vim-8.0.0134/debian/policy/vim-policy.xml --- vim-7.4.2156/debian/policy/vim-policy.xml 2016-08-05 16:54:57.000000000 +0000 +++ vim-8.0.0134/debian/policy/vim-policy.xml 2017-01-02 07:55:52.000000000 +0000 @@ -1,8 +1,8 @@ - + + vim"> Vim"> diff -Nru vim-7.4.2156/debian/README.source vim-8.0.0134/debian/README.source --- vim-7.4.2156/debian/README.source 2016-08-05 16:54:57.000000000 +0000 +++ vim-8.0.0134/debian/README.source 2017-01-02 07:55:52.000000000 +0000 @@ -3,19 +3,39 @@ The rest of this file gives some hints about generating source packages from the packaging git repository. -This repository has patches to upstream source included in the packaging -branch. In order to generate a source package, you have several choices: +This repository maintains patches to upstream source using gbp-pq. These +patches are serialized to debian/patches/. -To generate an old-style single patch package, you can use dpkg-source or -e.g. gitpkg without any special preparation (with the possible exception -of adding "single-debian-patch" to debian/source/local-options). - -In order to have patches exported individually at source package creation -time, you can enable git-debcherry. After installing gitpkg-0.25 or later, -see /usr/share/gitpkg/hooks/debcherry-deb-export-hook and its associated -documentation in the gitpkg(1) and git-debcherry(1) man pages. - -The main development branch is debian/sid, with corresponding branches for -backports to previous releases. Tagging follows upstream's naming -convention, so the first Debian upload of the upstream tag vX.Y.Z should -be tagged vX.Y.Z-1. +In order to modify an existing patch, simply run “gbp pq importâ€. This will +create a local branch with the commits that were used to create the patches. +Edit or amend the commits as necessary. + +In order to create a new patch, switch to the patch using “gbp pq import†as +before. If a patch file exists, use “gbp pg apply --topic={upstream,debian} +patchfile†to apply the patch (works like “git amâ€). If the patch is intended +to be upstreamed, it should be applied before any Debian-specific patches and +use the "upstream" topic. Alternatively, if the patch is not intended to be +upstreamed, it should use the "debian" topic and be applied after any upstream +patches. + +When updating to a new version of upstream code, the patches need to be rebased +on the new upstream code. The process is + +* Create the patch-queue branch -- gbp pq import +* Switch back to the packaging branch -- gbp pq switch +* Merge the upstream tag -- git merge vX.Y.ZZZZ +* Rebase the patches -- gbp pq rebase + * Make any adjustments/fixups, as necessary +* Switch back to the packaging branch -- gbp pq switch +* Export the patches -- gbp pq export + +Whenever the patch queue branch is modified, those changes need to be exported +back to the packaging branch. “gbp pq switch†will change from the patch queue +branch to the packaging branch. At that point, “gbp pq export†will update +debian/patches/ with the current state of the patch queue. This needs to be +commited just like any other change. + +There are hooks setup in the git repo to avoid pushing the patch queue +branches, but it's also wise to remove the local branch when done with the +changes. The repository's configuration is set to delete the branch +automatically after running “gbp pq export†in order to help enforce this. diff -Nru vim-7.4.2156/debian/rules vim-8.0.0134/debian/rules --- vim-7.4.2156/debian/rules 2016-08-05 16:54:57.000000000 +0000 +++ vim-8.0.0134/debian/rules 2017-01-02 07:55:52.000000000 +0000 @@ -74,13 +74,6 @@ GTK3FLAGS+=--disable-athena-check GTK3FLAGS+=--disable-fontset -GNOMEFLAGS:=--enable-gui=gnome2 -GNOMEFLAGS+=--disable-gtk2-check -GNOMEFLAGS+=--enable-gnome-check -GNOMEFLAGS+=--disable-motif-check -GNOMEFLAGS+=--disable-athena-check -GNOMEFLAGS+=--disable-fontset - ATHENAFLAGS:=--enable-gui=athena ATHENAFLAGS+=--disable-gtk2-check ATHENAFLAGS+=--disable-gtk3-check @@ -107,7 +100,8 @@ NOINTERPFLAGS+=--disable-rubyinterp NOINTERPFLAGS+=--disable-tclinterp -ALLINTERPFLAGS:=--enable-perlinterp=dynamic +ALLINTERPFLAGS:=--disable-tclinterp +ALLINTERPFLAGS+=--disable-mzschemeinterp ifneq ($(shell ldconfig -p 2>/dev/null | grep libluajit),) ALLINTERPFLAGS+=--enable-luainterp=dynamic --with-luajit else @@ -115,11 +109,17 @@ ALLINTERPFLAGS+=--enable-luainterp=dynamic endif endif -ALLINTERPFLAGS+=--enable-pythoninterp=dynamic --with-python-config-dir=$(PY2CONF) +ifeq ($(DEB_HOST_ARCH_OS),kfreebsd) + # Until #827319 is resolved + ALLINTERPFLAGS+=--disable-perlinterp=dynamic + PERL_SUBSTVAR= +else + ALLINTERPFLAGS+=--enable-perlinterp + PERL_SUBSTVAR=-Vvim:Perl-Provides=vim-perl +endif ALLINTERPFLAGS+=--enable-python3interp=dynamic --with-python3-config-dir=$(PY3CONF) +ALLINTERPFLAGS+=--enable-pythoninterp=dynamic --with-python-config-dir=$(PY2CONF) ALLINTERPFLAGS+=--enable-rubyinterp=dynamic -ALLINTERPFLAGS+=--disable-mzschemeinterp -ALLINTERPFLAGS+=--disable-tclinterp # Each vim-xxx package is said to be a vim variant and contains only a vim # binary built with some compile-time options. Makefile VARIANTS below are @@ -131,7 +131,6 @@ VARIANTS+=vim-tiny VARIANTS+=vim-gtk VARIANTS+=vim-gtk3 -VARIANTS+=vim-gnome VARIANTS+=vim-athena VARIANTS+=vim-nox VARIANTS+=vim-basic @@ -152,9 +151,6 @@ CFLAGS_vim-gtk3:=$(CFLAGS) CFGFLAGS_vim-gtk3:=$(CFGFLAGS) $(OPTFLAGS) $(GUIFLAGS) $(GTK3FLAGS) $(ALLINTERPFLAGS) -CFLAGS_vim-gnome:=$(CFLAGS) -CFGFLAGS_vim-gnome:=$(CFGFLAGS) $(OPTFLAGS) $(GUIFLAGS) $(GNOMEFLAGS) $(ALLINTERPFLAGS) - CFLAGS_vim-athena:=$(CFLAGS) CFGFLAGS_vim-athena:=$(CFGFLAGS) $(OPTFLAGS) $(GUIFLAGS) $(ATHENAFLAGS) $(ALLINTERPFLAGS) @@ -254,10 +250,17 @@ touch $@ build-arch: build-stamp-arch -build-stamp-arch: $(foreach v,$(VARIANTS),build-stamp-$(v)) +build-stamp-arch: build-stamp-xxd $(foreach v,$(VARIANTS),build-stamp-$(v)) dh_testdir touch $@ +build-stamp-xxd: export DH_OPTIONS=-pxxd +build-stamp-xxd: build-stamp-vim-basic + dh_testdir + dh_prep + $(MAKE) -C src/vim-basic xxd/xxd + touch $@ + autoconf-stamp: dh_testdir [ -f debian/configure.dist ] || cp src/auto/configure debian/configure.dist @@ -291,116 +294,69 @@ cd src/$(SHADOWDIR) && LDFLAGS="$(LDFLAGS)" CPPFLAGS="$(CPPFLAGS)" CFLAGS="$(CFLAGS_$(*))" ./configure $(CFGFLAGS_$(*)) touch $@ +build-stamp-%: PKG=$(subst -basic,,$*) build-stamp-%: CURCFLAGS=$(CFLAGS_$*) build-stamp-%: SHADOWDIR=$* build-stamp-%: configure-stamp-% dh_testdir - dh_prep -p $* + dh_prep -p $(PKG) @echo "*** DEBIAN *** BUILDING VARIANT $*" $(MAKE) -C src/$(SHADOWDIR) + [ $(MAKETEST) != "yes" ] || flock debian $(MAKE) -j1 -C src/$(SHADOWDIR) test touch $@ -install: $(foreach v,$(VARIANTS),install-stamp-$(v)) - -install-stamp-indep: export DH_OPTIONS=-i -Nvim-gui-common -Nvim-runtime -install-stamp-indep: build-stamp-indep - dh_testdir - dh_testroot - dh_installdirs - dh_install - dh_installchangelogs debian/changelog.upstream - dh_installdocs - touch $@ +install: install-stamp-xxd $(foreach v,$(VARIANTS),install-stamp-$(v)) -install-stamp-vim-basic: export DH_OPTIONS=-pvim-runtime -pvim-common -pvim-gui-common -pvim -install-stamp-vim-basic: DESTDIR=$(CURDIR)/debian/tmp -install-stamp-vim-basic: build-stamp-vim-basic $(DOT_IN_DEPS) +# Use UTF-8 manpages for all languages +# If a .UTF-8 directory doesn't exist, then the $L directory is already UTF-8. +define munge-man-directories +for L in $(LANGS); do \ + if [ -d "$(DESTDIR)/usr/share/man/$$L.UTF-8" ]; then \ + rm -rf "$(DESTDIR)/usr/share/man/$$L"; \ + mv "$(DESTDIR)/usr/share/man/$$L.UTF-8" "$(DESTDIR)/usr/share/man/$$L"; \ + fi; \ + rm -rf "$(DESTDIR)/usr/share/man/$$L."*; \ +done +endef + +install-stamp-indep: export DH_OPTIONS=-i +install-stamp-indep: DESTDIR=$(CURDIR)/debian/tmp +install-stamp-indep: build-stamp-vim-basic build-stamp-indep $(DOT_IN_DEPS) dh_testdir dh_testroot - @echo "*** DEBIAN *** INSTALLING VARIANT vim-basic" dh_installdirs - # UPSTREAM INSTALLATION - mkdir -p $(DESTDIR)/usr/share/applications - mkdir -p $(DESTDIR)/usr/share/icons/hicolor/48x48/apps - mkdir -p $(DESTDIR)/usr/share/icons/locolor/32x32/apps - mkdir -p $(DESTDIR)/usr/share/icons/locolor/16x16/apps - $(MAKE) -C src/vim-basic STRIP=: DESTDIR=$(DESTDIR) \ - installvimbin \ + mkdir -p "$(DESTDIR)/usr/bin" + # installruntime requires a "vim" in /usr/bin + cp src/vim-basic/vim "$(DESTDIR)/usr/bin" + $(MAKE) -C src/vim-basic "DESTDIR=$(DESTDIR)" \ installtutorbin \ installgtutorbin \ installruntime \ - installtools \ install-languages \ install-icons + rm -f "$(DESTDIR)/usr/bin/vim" -# Tests need to be run in series, otherwise the terminal requests may not see -# proper responses. -# Prefer the vim-nox binary if it exists since that will also test the -# language interfaces. - if [ $(MAKETEST) = "yes" ]; then \ - if [ -e src/vim-nox/vim ]; then \ - $(MAKE) -j1 -C src/vim-nox test; \ - else \ - $(MAKE) -j1 -C src/vim-basic test; \ - fi; \ - fi - # installvimbin installs the vim binary under debian/tmp but we install - # it into the vim package from src/. Need to rm it from debian/tmp so - # that dh_install doesn't fail - rm -f debian/tmp/usr/bin/vim - mv src/vim-basic/vim src/vim-basic/vim.basic + $(munge-man-directories) -# DEBIAN INSTALLATION -# Use UTF-8 manpages for all languages. -# If a .UTF-8 directory doesn't exist, then the $lang directory is already UTF-8. - for L in $(LANGS); do \ - if [ -d "$(DESTDIR)/usr/share/man/$$L.UTF-8" ]; then \ - rm -rf "$(DESTDIR)/usr/share/man/$$L"; \ - mv "$(DESTDIR)/usr/share/man/$$L.UTF-8" "$(DESTDIR)/usr/share/man/$$L"; \ - fi; \ - rm -rf "$(DESTDIR)/usr/share/man/$$L."*; \ - done - - # rm stuff handled by alternatives - rm -f $(DESTDIR)/usr/bin/ex $(DESTDIR)/usr/bin/view - for f in $$(find $(DESTDIR)/usr/share/man -name view.1 -o -name ex.1); do \ - rm -f $$f; \ - done - - # rm stuff handled by our own symlinks - for f in $$(find $(DESTDIR)/usr/share/man -name rvim.1 -o -name rview.1); do \ - rm -f $$f; \ - done + # rm stuff handled by alternatives or our own symlinks + find "$(DESTDIR)/usr/share/man" \( -name view.1 -o -name ex.1 -o -name rvim.1 -o -name rview.1 \) -delete # helpztags manpage pod2man -c "User Commands" -s 1 -q none -r "vim $(VERSION)" \ - -d "August 2010" debian/helpztags debian/helpztags.1 - - # variant-related installations for package "vim" - # to be kept in sync with those in "install-stamp-%" target - for x in $(PER_VARIANT_FILES) ; do \ - sed -e "s:@PKG@:vim:;s:@VARIANT@:basic:g" \ - -e "s:@COMMON@:vim-common:" \ - debian/vim-variant.$$x > debian/vim.$$x ;\ - done - for L in $(LANGS); do \ - sed -e "s:\(.*\)@LANG_ALTS@:\1--slave \$$mandir/$$L/man1/\$$i.1.gz \$$i.$$L.1.gz \$$mandir/$$L/man1/vim.1.gz \\\\\n&:" \ - -i debian/vim.postinst; \ - done - sed -i "/@LANG_ALTS@/d" debian/vim.postinst + -d "August 2010" debian/helpztags debian/helpztags.1 # Generate language-specific sections of # vim-{runtime,common,gui-common}.install files for L in $(LANGS); do \ - echo debian/tmp/usr/share/man/$$L/man1/vimtutor.1 \ - usr/share/man/$$L/man1/ >>debian/vim-runtime.install; \ - for f in vim xxd vimdiff; do \ - echo debian/tmp/usr/share/man/$$L/man1/$$f.1 \ - usr/share/man/$$L/man1/ >>debian/vim-common.install; \ - done; \ - echo debian/tmp/usr/share/man/$$L/man1/evim.1 \ - usr/share/man/$$L/man1/ >>debian/vim-gui-common.install; \ + echo debian/tmp/usr/share/man/$$L/man1/vimtutor.1 \ + usr/share/man/$$L/man1/ >>debian/vim-runtime.install; \ + for f in vim vimdiff; do \ + echo debian/tmp/usr/share/man/$$L/man1/$$f.1 \ + usr/share/man/$$L/man1/ >>debian/vim-common.install; \ + done; \ + echo debian/tmp/usr/share/man/$$L/man1/evim.1 \ + usr/share/man/$$L/man1/ >>debian/vim-gui-common.install; \ done # Icons @@ -410,12 +366,11 @@ gs -sDefaultCMYKProfile=ps_cmyk.icc -sOutputICCProfile=ps_rgb.icc \ -dSAFER -dEPSCrop -dBATCH -dNOPAUSE \ -sDEVICE=pdfwrite -sOutputFile=debian/tmplogo.pdf runtime/vimlogo.eps - pdf2svg debian/tmplogo.pdf debian/vim-common/usr/share/pixmaps/vim.svg - cp debian/vim-common/usr/share/pixmaps/vim.svg \ - debian/vim-common/usr/share/icons/hicolor/scalable/apps/vim.svg + pdf2svg debian/tmplogo.pdf debian/vim-common/usr/share/pixmaps/gvim.svg + cp debian/vim-common/usr/share/pixmaps/gvim.svg \ + debian/vim-common/usr/share/icons/hicolor/scalable/apps/gvim.svg - dh_installman - dh_install --fail-missing -X/tools/ + dh_install # adjust things for vim-gui-common cp debian/vim-common/usr/share/man/man1/vim.1 \ debian/vim-gui-common/usr/share/man/man1/gvim.1 @@ -446,52 +401,27 @@ usr/share/man/$$L/man1/eview.1 >>debian/vim-gui-common.links; \ done dh_link - - # all excepts vim - dh_installchangelogs -Nvim debian/changelog.upstream + dh_installman + dh_installchangelogs debian/changelog.upstream dh_installdocs dh_installmime - - env -u DH_OPTIONS dh_bugfiles -A -pvim - touch $@ -# the other variants only include the binary -install-stamp-vim-tiny: export DH_OPTIONS=-pvim-tiny -install-stamp-vim-tiny: DESTDIR=$(CURDIR)/debian/vim-tiny -install-stamp-vim-tiny: build-stamp-vim-tiny $(DOT_IN_DEPS_TINY) +install-stamp-xxd: export DH_OPTIONS=-pxxd +install-stamp-xxd: DESTDIR=$(CURDIR)/debian/xxd +install-stamp-xxd: build-stamp-xxd dh_testdir dh_testroot - @echo "*** DEBIAN *** INSTALLING VARIANT vim-tiny" - dh_installdirs - - mv src/vim-tiny/vim src/vim-tiny/vim.tiny - # variant-related installations - # to be kept in sync with those in "install-stamp-vim-basic" target - for x in $(PER_VARIANT_FILES) ; do \ - sed -e "s:@PKG@:vim-tiny:" \ - -e "s:@VARIANT@:tiny:g" \ - -e "s:@COMMON@:vim-common:" \ - debian/vim-variant.$$x > debian/vim-tiny.$$x ;\ - done - for L in $(LANGS); do \ - sed -e "s:\(.*\)@LANG_ALTS@:\1--slave \$$mandir/$$L/man1/\$$i.1.gz \$$i.$$L.1.gz \$$mandir/$$L/man1/vim.1.gz \\\\\n&:" \ - -i debian/vim-tiny.postinst; \ - done - sed -i "/@LANG_ALTS@/d" debian/vim-tiny.postinst - # fake help installation for vim-tiny - echo "debian/tiny/doc/ usr/share/vim/$(VIMCUR)" >> debian/vim-tiny.install - echo "debian/tiny/vimrc.tiny etc/vim" >> debian/vim-tiny.install - echo "etc/vim/vimrc.tiny usr/share/vim/vimrc.tiny" >> debian/vim-tiny.links - dh_install - dh_link - dh_bugfiles -A - + $(MAKE) -C src/vim-basic STRIP=: DESTDIR=$(DESTDIR) installtools install-tool-languages + rm -r $(DESTDIR)/usr/share/vim + $(munge-man-directories) + dh_installchangelogs + dh_installdocs touch $@ -# the other variants only include the binary -install-stamp-%: export DH_OPTIONS=-p$* -install-stamp-%: DESTDIR=$(CURDIR)/debian/$* +install-stamp-%: PKG=$(subst -basic,,$*) +install-stamp-%: export DH_OPTIONS=-p$(PKG) +install-stamp-%: DESTDIR=$(CURDIR)/debian/$(PKG) install-stamp-%: VARIANT=$(patsubst vim-%,%,$*) install-stamp-%: build-stamp-% dh_testdir @@ -499,27 +429,34 @@ @echo "*** DEBIAN *** INSTALLING VARIANT $*" dh_installdirs - mv src/$*/vim src/$*/$(subst -,.,$*) + cp src/$*/vim src/$*/$(subst -,.,$*) # variant-related installations - # to be kept in sync with those in "install-stamp-vim-basic" target for x in $(PER_VARIANT_FILES) ; do \ - if [ "$*" = "vim-nox" ]; then \ - sed -e "s:@PKG@:$*:" \ - -e "s:@VARIANT@:$(VARIANT):g" \ - -e "s:@COMMON@:vim-common:" \ - debian/vim-variant.$$x > debian/$*.$$x ;\ - else \ - sed -e "s:@PKG@:$*:" \ - -e "s:@VARIANT@:$(VARIANT):g" \ - -e "s:@COMMON@:vim-gui-common:" \ - debian/vim-variant.$$x > debian/$*.$$x ;\ - fi \ + case "$(PKG)" in \ + vim-nox|vim|vim-tiny) \ + sed -e "s:@PKG@:$(PKG):" -e "s:@VARIANT@:$(VARIANT):g" \ + -e "s:@COMMON@:vim-common:" \ + debian/vim-variant.$$x > debian/$(PKG).$$x ;\ + ;; \ + *) \ + sed -e "s:@PKG@:$(PKG):" -e "s:@VARIANT@:$(VARIANT):g" \ + -e "s:@COMMON@:vim-gui-common:" \ + debian/vim-variant.$$x > debian/$(PKG).$$x ;\ + ;; \ + esac \ done for L in $(LANGS); do \ sed -e "s:\(.*\)@LANG_ALTS@:\1--slave \$$mandir/$$L/man1/\$$i.1.gz \$$i.$$L.1.gz \$$mandir/$$L/man1/vim.1.gz \\\\\n&:" \ - -i debian/$*.postinst; \ + -i debian/$(PKG).postinst; \ done - sed -i "/@LANG_ALTS@/d" debian/$*.postinst + sed -i "/@LANG_ALTS@/d" debian/$(PKG).postinst + # fake help installation for vim-tiny + if [ "$(PKG)" = "vim-tiny" ]; then \ + $(MAKE) -f debian/rules $(DOT_IN_DEPS_TINY); \ + echo "debian/tiny/doc/ usr/share/vim/$(VIMCUR)" >> debian/vim-tiny.install; \ + echo "debian/tiny/vimrc.tiny etc/vim" >> debian/vim-tiny.install; \ + echo "etc/vim/vimrc.tiny usr/share/vim/vimrc.tiny" >> debian/vim-tiny.links; \ + fi dh_install dh_link dh_bugfiles -A @@ -530,7 +467,7 @@ cat $< | sed 's/@VIMCUR@/$(VIMCUR)/' > $@ binary-indep: export DH_OPTIONS=-i -binary-indep: install-stamp-vim-basic install-stamp-indep +binary-indep: install-stamp-indep dh_testdir dh_testroot dh_compress @@ -541,10 +478,11 @@ dh_md5sums dh_builddeb -- -Zxz -binary-arch: $(foreach v,$(VARIANTS),binary-arch-$(v)) +binary-arch: binary-arch-xxd $(foreach v,$(VARIANTS),binary-arch-$(v)) -binary-arch-vim-basic: export DH_OPTIONS=-pvim-common -pvim -binary-arch-vim-basic: install-stamp-vim-basic +binary-arch-%: PKG=$(subst -basic,,$*) +binary-arch-%: export DH_OPTIONS=-p$(PKG) $(foreach v,$(VARIANTS_SKIP),-N$(v)) +binary-arch-%: install-stamp-% dh_testdir dh_testroot dh_strip --dbg-package=vim-dbg @@ -553,18 +491,17 @@ dh_lintian dh_installdeb dh_shlibdeps - dh_gencontrol + dh_gencontrol -- $(PERL_SUBSTVAR) dh_md5sums dh_builddeb -- -Zxz -binary-arch-%: export DH_OPTIONS=-p$* $(foreach v,$(VARIANTS_SKIP),-N$(v)) -binary-arch-%: install-stamp-% +binary-arch-xxd: export DH_OPTIONS=-pxxd +binary-arch-xxd: install-stamp-xxd dh_testdir dh_testroot dh_strip --dbg-package=vim-dbg dh_compress dh_fixperms - dh_lintian dh_installdeb dh_shlibdeps dh_gencontrol diff -Nru vim-7.4.2156/debian/runtime/debian.vim.in vim-8.0.0134/debian/runtime/debian.vim.in --- vim-7.4.2156/debian/runtime/debian.vim.in 2016-08-05 16:54:57.000000000 +0000 +++ vim-8.0.0134/debian/runtime/debian.vim.in 2017-01-02 07:55:52.000000000 +0000 @@ -28,10 +28,6 @@ " Some Debian-specific things if has("autocmd") - " set mail filetype for reportbug's temp files - augroup debian - au BufRead reportbug-* set ft=mail - augroup END if has('gui') " Make shift-insert work like in Xterm autocmd GUIEnter * if empty(maparg("", "nvso")) | execute "map " | endif diff -Nru vim-7.4.2156/debian/runtime/vimrc vim-8.0.0134/debian/runtime/vimrc --- vim-7.4.2156/debian/runtime/vimrc 2016-08-05 16:54:57.000000000 +0000 +++ vim-8.0.0134/debian/runtime/vimrc 2017-01-02 07:55:52.000000000 +0000 @@ -9,6 +9,13 @@ " properly set to work with the Vim-related packages available in Debian. runtime! debian.vim +" Vim will load $VIMRUNTIME/defaults.vim if the user does not have a vimrc. +" This happens after /etc/vim/vimrc(.local) are loaded, so it will override +" any settings in these files. +" If you don't want that to happen, uncomment the below line to prevent +" defaults.vim from being loaded. +" let g:skip_defaults_vim = 1 + " Uncomment the next line to make Vim more Vi-compatible " NOTE: debian.vim sets 'nocompatible'. Setting 'compatible' changes numerous " options, so any other options should be set AFTER setting 'compatible'. diff -Nru vim-7.4.2156/debian/source/lintian-overrides vim-8.0.0134/debian/source/lintian-overrides --- vim-7.4.2156/debian/source/lintian-overrides 2016-08-05 16:54:57.000000000 +0000 +++ vim-8.0.0134/debian/source/lintian-overrides 2017-01-02 07:55:52.000000000 +0000 @@ -1,4 +1,4 @@ # vim-tiny provides stub help.txt/tags which are diverted when vim-runtime is # installed -vim source: binaries-have-file-conflict vim-runtime vim-tiny usr/share/vim/vim74/doc/help.txt -vim source: binaries-have-file-conflict vim-runtime vim-tiny usr/share/vim/vim74/doc/tags +vim source: binaries-have-file-conflict vim-runtime vim-tiny usr/share/vim/vim80/doc/help.txt +vim source: binaries-have-file-conflict vim-runtime vim-tiny usr/share/vim/vim80/doc/tags diff -Nru vim-7.4.2156/debian/tiny/doc/help.txt vim-8.0.0134/debian/tiny/doc/help.txt --- vim-7.4.2156/debian/tiny/doc/help.txt 2016-08-05 16:54:57.000000000 +0000 +++ vim-8.0.0134/debian/tiny/doc/help.txt 2017-01-02 07:55:52.000000000 +0000 @@ -1,4 +1,4 @@ -*help.txt* For Vim version 7.4. Last change: 2015 Aug 30 +*help.txt* For Vim version 7.4. Last change: 2016 Sep 07 VIM - fake help file for vim-tiny @@ -18,7 +18,7 @@ To get a more featureful Vim binary (and a vim command, rather than just vi), install one of the following packages: vim, vim-nox, vim-athena, vim-gtk, or -vim-gnome. +vim-gtk3. HOW TO OBTAIN HELP diff -Nru vim-7.4.2156/debian/vim-common.dirs vim-8.0.0134/debian/vim-common.dirs --- vim-7.4.2156/debian/vim-common.dirs 2016-08-05 16:54:57.000000000 +0000 +++ vim-8.0.0134/debian/vim-common.dirs 2017-01-02 07:55:52.000000000 +0000 @@ -1,6 +1,9 @@ /etc/ /usr/bin/ -/var/lib/vim/addons/ -/usr/share/pixmaps/ -/usr/share/icons/hicolor/scalable/apps/ +/usr/share/applications/ /usr/share/icons/hicolor/48x48/apps/ +/usr/share/icons/hicolor/scalable/apps/ +/usr/share/icons/locolor/16x16/apps/ +/usr/share/icons/locolor/32x32/apps/ +/usr/share/pixmaps/ +/var/lib/vim/addons/ diff -Nru vim-7.4.2156/debian/vim-common.install.in vim-8.0.0134/debian/vim-common.install.in --- vim-7.4.2156/debian/vim-common.install.in 2016-08-05 16:54:57.000000000 +0000 +++ vim-8.0.0134/debian/vim-common.install.in 2017-01-02 07:55:52.000000000 +0000 @@ -1,10 +1,8 @@ -debian/tmp/usr/bin/xxd usr/bin/ debian/helpztags usr/bin/ debian/runtime/vimrc etc/vim/ debian/runtime/debian.vim usr/share/vim/@VIMCUR@/ debian/tmp/usr/share/applications/vim.desktop usr/share/applications debian/tmp/usr/share/icons/ -debian/tmp/usr/share/man/man1/xxd.1 usr/share/man/man1/ debian/tmp/usr/share/man/man1/vimdiff.1 usr/share/man/man1/ debian/tmp/usr/share/man/man1/vim.1 usr/share/man/man1/ debian/extra/vim-interpreter usr/bin/ diff -Nru vim-7.4.2156/debian/vim-doc.docs vim-8.0.0134/debian/vim-doc.docs --- vim-7.4.2156/debian/vim-doc.docs 2016-08-05 16:54:57.000000000 +0000 +++ vim-8.0.0134/debian/vim-doc.docs 2017-01-02 07:55:52.000000000 +0000 @@ -1,3 +1,3 @@ +debian/FAQ debian/policy/vim-policy.html debian/policy/vim-policy.txt -debian/FAQ diff -Nru vim-7.4.2156/debian/vim-gnome.postinst vim-8.0.0134/debian/vim-gnome.postinst --- vim-7.4.2156/debian/vim-gnome.postinst 1970-01-01 00:00:00.000000000 +0000 +++ vim-8.0.0134/debian/vim-gnome.postinst 2017-01-02 07:55:52.000000000 +0000 @@ -0,0 +1,11 @@ +#!/bin/sh +set -e + +dpkg-maintscript-helper symlink_to_dir \ + /usr/share/doc/vim-gnome vim-gui-common 2:7.4.2330-1~ vim-gnome -- "$@" + +update-alternatives --remove gnome-text-editor /usr/bin/vim.gnome + +#DEBHELPER# + +exit 0 diff -Nru vim-7.4.2156/debian/vim-gnome.preinst vim-8.0.0134/debian/vim-gnome.preinst --- vim-7.4.2156/debian/vim-gnome.preinst 1970-01-01 00:00:00.000000000 +0000 +++ vim-8.0.0134/debian/vim-gnome.preinst 2017-01-02 07:55:52.000000000 +0000 @@ -0,0 +1,9 @@ +#!/bin/sh +set -e + +dpkg-maintscript-helper symlink_to_dir \ + /usr/share/doc/vim-gnome vim-gui-common 2:7.4.2330-1~ vim-gnome -- "$@" + +#DEBHELPER# + +exit 0 diff -Nru vim-7.4.2156/debian/vim-runtime.install.in vim-8.0.0134/debian/vim-runtime.install.in --- vim-7.4.2156/debian/vim-runtime.install.in 2016-08-05 16:54:57.000000000 +0000 +++ vim-8.0.0134/debian/vim-runtime.install.in 2017-01-02 07:55:52.000000000 +0000 @@ -2,4 +2,3 @@ debian/tmp/usr/share/vim/ usr/share/ debian/tmp/usr/share/man/man1/vimtutor.1 usr/share/man/man1/ debian/vim-registry/*.yaml usr/share/vim/registry/ -runtime/rgb.txt usr/share/vim/@VIMCUR@/ diff -Nru vim-7.4.2156/debian/vim-variant.postinst vim-8.0.0134/debian/vim-variant.postinst --- vim-7.4.2156/debian/vim-variant.postinst 2016-08-05 16:54:57.000000000 +0000 +++ vim-8.0.0134/debian/vim-variant.postinst 2017-01-02 07:55:52.000000000 +0000 @@ -5,21 +5,8 @@ variant=@VARIANT@ mandir=/usr/share/man -# two things to do: -# 1) add /usr/bin/vim.variant as alternative for /usr/bin/vim. Priority are -# chosen accordingly to the principle: ``more features, higher priority'' -# 2) add /usr/bin/gvim as an alternative for gnome-text-editor for variants -# built with gnome support. Same principle for the priority above, with the -# additional constraint that priority should not be higher than gedit's - -add_gnome_alternative () { - if [ -f /usr/bin/gvim ]; then - update-alternatives --install /usr/bin/gnome-text-editor \ - gnome-text-editor /usr/bin/vim.$variant $1 \ - --slave $mandir/man1/gnome-text-editor.1.gz gnome-text-editor.1.gz \ - $mandir/man1/vim.1.gz - fi -} +# add /usr/bin/vim.variant as alternative for /usr/bin/vim. Priority are +# chosen accordingly to the principle: ``more features, higher priority'' add_variant_alternative () { if [ "$variant" != "tiny" ]; then @@ -38,7 +25,7 @@ $mandir/man1/vim.1.gz done case "$variant" in - gtk|gtk3|gnome|athena) # gui enabled variants + gtk|gtk3|athena) # gui enabled variants add_gui_variant_alternative $1 ;; esac @@ -52,7 +39,7 @@ case "$pkg" in vim-tiny) - add_variant_alternative 10 + add_variant_alternative 15 ;; vim) add_variant_alternative 30 @@ -63,10 +50,6 @@ vim-gtk|vim-gtk3|vim-athena) add_variant_alternative 50 ;; - vim-gnome) # gnome enabled variant - add_variant_alternative 60 - add_gnome_alternative 45 - ;; esac #DEBHELPER# diff -Nru vim-7.4.2156/debian/vim-variant.prerm vim-8.0.0134/debian/vim-variant.prerm --- vim-7.4.2156/debian/vim-variant.prerm 2016-08-05 16:54:57.000000000 +0000 +++ vim-8.0.0134/debian/vim-variant.prerm 2017-01-02 07:55:52.000000000 +0000 @@ -4,23 +4,14 @@ pkg=@PKG@ variant=@VARIANT@ -# two things to do: -# 1) remove /usr/bin/vim.variant as alternative for /usr/bin/vim -# 2) remove /usr/bin/gvim as an alternative for gnome-text-editor for -# variants built with gnome support - -remove_gnome_alternative () { - if [ -f /usr/bin/vim.$variant ]; then - update-alternatives --remove gnome-text-editor /usr/bin/vim.$variant - fi -} +# remove /usr/bin/vim.variant as alternative for /usr/bin/vim remove_variant_alternative () { for i in vi view ex editor rvim rview vimdiff vim; do update-alternatives --remove $i /usr/bin/vim.$variant done case "$variant" in - gtk|gtk3|athena|gnome) # gui enabled variants + gtk|gtk3|athena) # gui enabled variants remove_gui_variant_alternative ;; esac @@ -35,11 +26,6 @@ case "$1" in # only remove in remove/deconfigure so we don't disrupt users' preferences remove|deconfigure) - case "$pkg" in - vim-gnome) # gnome enabled variants - remove_gnome_alternative - ;; - esac remove_variant_alternative ;; diff -Nru vim-7.4.2156/Filelist vim-8.0.0134/Filelist --- vim-7.4.2156/Filelist 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/Filelist 2016-12-14 20:42:00.000000000 +0000 @@ -93,6 +93,7 @@ src/vim.h \ src/winclip.c \ src/window.c \ + src/tee/tee.c \ src/xxd/xxd.c \ src/main.aap \ src/testdir/main.aap \ @@ -206,7 +207,7 @@ src/config.mk.dist \ src/config.mk.in \ src/configure \ - src/configure.in \ + src/configure.ac \ src/gui_at_fs.c \ src/gui_at_sb.c \ src/gui_at_sb.h \ @@ -263,6 +264,7 @@ src/workshop.h \ src/wsdebug.c \ src/wsdebug.h \ + src/tee/Makefile \ src/xxd/Makefile \ # source files for both DOS and Unix @@ -314,6 +316,7 @@ src/Make_dvc.mak \ src/Make_ming.mak \ src/Make_mvc.mak \ + tools/rename.bat \ src/bigvim.bat \ src/bigvim64.bat \ src/msvcsetup.bat \ @@ -357,6 +360,7 @@ src/vimrun.c \ src/xpm_w32.c \ src/xpm_w32.h \ + src/tee/Make_mvc.mak \ src/xxd/Make_bc5.mak \ src/xxd/Make_ming.mak \ src/xxd/Make_mvc.mak \ diff -Nru vim-7.4.2156/.gitignore vim-8.0.0134/.gitignore --- vim-7.4.2156/.gitignore 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/.gitignore 2016-12-14 20:42:00.000000000 +0000 @@ -5,6 +5,7 @@ src/auto/if_perl.c src/auto/gui_gtk_gresources.c src/auto/gui_gtk_gresources.h +src/objects/.dirstamp src/tags # We do need src/auto/configure. diff -Nru vim-7.4.2156/Makefile vim-8.0.0134/Makefile --- vim-7.4.2156/Makefile 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/Makefile 2016-12-14 20:42:00.000000000 +0000 @@ -51,12 +51,9 @@ # # dossrc vim##src.zip sources for MS-DOS # dosrt vim##rt.zip runtime for MS-DOS -# dosbin vim##d16.zip binary for MS-DOS 16 bits -# vim##d32.zip binary for MS-DOS 32 bits -# vim##w32.zip binary for Win32 +# dosbin vim##w32.zip binary for Win32 # gvim##.zip binary for GUI Win32 # gvim##ole.zip OLE exe for Win32 GUI -# gvim##_s.zip exe for Win32s GUI # # OBSOLETE # amisrc vim##src.tgz sources for Amiga @@ -70,25 +67,17 @@ # To do all this you need the Unix archive and compiled binaries. # Before creating an archive first delete all backup files, *.orig, etc. -MAJOR = 7 -MINOR = 4 - -# Uncomment this line if the Win32s version is to be included. -# DOSBIN_S = dosbin_s - -# Uncomment this line if the 16 bit DOS version is to be included. -# DOSBIN_D16 = dosbin_d16 - -# Uncomment this line if the 32 bit DOS version is to be included. -# DOSBIN_D32 = dosbin_d32 +MAJOR = 8 +MINOR = 0 # CHECKLIST for creating a new version: # -# - Update Vim version number. For a test version in: src/version.h, Contents, -# MAJOR/MINOR above, VIMMAJOR and VIMMINOR in src/Makefile, README*.txt, -# runtime/doc/*.txt and nsis/gvim.nsi. +# - Update Vim version number. For a test version in: src/version.h, +# READMEdir/Contents, MAJOR/MINOR above, VIMMAJOR and VIMMINOR in +# src/Makefile, README.txt, README.md, READMEdir/README*.txt, +# runtime/doc/*.txt and make nsis/gvim_version.nsh. # For a minor/major version: src/GvimExt/GvimExt.reg, src/vim.def, -# src/vim16.def, src/gvim.exe.mnf. +# src/gvim.exe.mnf. # - Compile Vim with GTK, Perl, Python, Python3, TCL, Ruby, MZscheme, Lua (if # you can make it all work), Cscope and "huge" features. Exclude workshop # and SNiFF. @@ -108,7 +97,7 @@ # - Check for missing entries in runtime/makemenu.vim (with checkmenu script). # - Check for missing options in runtime/optwin.vim et al. (with check.vim). # - Do "make menu" to update the runtime/synmenu.vim file. -# - Add remarks for changes to runtime/doc/version7.txt. +# - Add remarks for changes to runtime/doc/version8.txt. # - Check that runtime/doc/help.txt doesn't contain entries in "LOCAL # ADDITIONS". # - In runtime/doc run "make" and "make html" to check for errors. @@ -149,31 +138,35 @@ # - > cd src # > nmake -f Make_mvc.mak # - Run the tests: -# > rm testdir/*.out testdir/*.res +# > nmake -f Make_mvc.mak testclean # > nmake -f Make_mvc.mak test # - check the output. -# - Rename vim.exe to vimw32.exe, xxd/xxd.exe to xxdw32.exe. -# - Rename vim.pdb to vimw32.pdb. -# - Rename install.exe to installw32.exe and uninstal.exe to uninstalw32.exe. +# - Rename (using ../tools/rename.bat): +# vim.exe to vimw32.exe +# tee/tee.exe to teew32.exe +# xxd/xxd.exe to xxdw32.exe +# vim.pdb to vimw32.pdb +# install.exe to installw32.exe +# uninstal.exe to uninstalw32.exe # Win32 GUI version build: # - > cd src # > nmake -f Make_mvc.mak GUI=yes # - Run the tests: -# > rm testdir/*.out testdir/*.res +# > nmake -f Make_mvc.mak testclean # > nmake -f Make_mvc.mak testgvim # - check the output. # - move "gvim.exe" to here (otherwise the OLE version will overwrite it). # - Move gvim.pdb to here. # - Copy "GvimExt/gvimext.dll" to here. # - Delete vimrun.exe, install.exe and uninstal.exe. -# Win32 GUI version with OLE, PERL, TCL, PYTHON and dynamic IME: +# Win32 GUI version with OLE, PERL, Ruby, TCL, PYTHON and dynamic IME: # - Install the interfaces you want, see src/INSTALLpc.txt # - Build: # > cd src # Adjust bigvim.bat to match the version of each interface you want. # > bigvim.bat # - Run the tests: -# > rm testdir/*.out testdir/*.res +# > nmake -f Make_mvc.mak testclean # > nmake -f Make_mvc.mak testgvim # - check the output. # - Rename "gvim.exe" to "gvim_ole.exe". @@ -187,7 +180,8 @@ # NSIS self installing exe: # - To get NSIS see http://nsis.sourceforge.net # - Make sure gvim_ole.exe, vimw32.exe, installw32.exe, -# uninstalw32.exe and xxdw32.exe have been build as mentioned above. +# uninstalw32.exe, teew32.exe and xxdw32.exe have been build as mentioned +# above. # - copy these files (get them from a binary archive or build them): # gvimext.dll in src/GvimExt # gvimext64.dll in src/GvimExt @@ -199,6 +193,7 @@ # version). # - go to ../nsis and do: # > makensis gvim.nsi (takes a few minutes). +# ignore warning for libwinpthread-1.dll # - Copy gvim##.exe to the dist directory. # # 64 bit builds (these are not in the normal distribution, the 32 bit build @@ -221,15 +216,7 @@ # 32 bit DOS version: Support was removed in 7.4.1399. When syncing to before # that it probably won't build. # -# Win32s GUI version: (requires a very old compiler) -# - Set environment for Visual C++ 4.1 (requires a new console window): -# "vcvars32.bat" (use the path for VC 4.1 e:\msdev\bin) -# - "nmake -f Make_mvc.mak GUI=yes INTL=no clean" (use the path for VC 4.1) -# - "nmake -f Make_mvc.mak GUI=yes INTL=no" (use the path for VC 4.1) -# - Rename "gvim.exe" to "gvim_w32s.exe". -# - Rename "install.exe" to "installw32.exe" -# - Rename "uninstal.exe" to "uninstalw32.exe" -# - The produced uninstalw32.exe and vimrun.exe are used. +# Win32s GUI version: Support was removed in patch 7.4.1364. # # OS/2 support was removed in patch 7.4.1008. If you want to give it a try # sync to before that and check the old version of this Makefile for @@ -268,12 +255,9 @@ mkdir dist/comment COMMENT_RT = comment/$(VERSION)-rt -COMMENT_D16 = comment/$(VERSION)-bin-d16 -COMMENT_D32 = comment/$(VERSION)-bin-d32 COMMENT_W32 = comment/$(VERSION)-bin-w32 COMMENT_GVIM = comment/$(VERSION)-bin-gvim COMMENT_OLE = comment/$(VERSION)-bin-ole -COMMENT_W32S = comment/$(VERSION)-bin-w32s COMMENT_SRC = comment/$(VERSION)-src COMMENT_HTML = comment/$(VERSION)-html COMMENT_FARSI = comment/$(VERSION)-farsi @@ -281,12 +265,6 @@ dist/$(COMMENT_RT): dist/comment echo "Vim - Vi IMproved - v$(VDOT) runtime files for MS-DOS and MS-Windows" > dist/$(COMMENT_RT) -dist/$(COMMENT_D16): dist/comment - echo "Vim - Vi IMproved - v$(VDOT) binaries for MS-DOS 16 bit real mode" > dist/$(COMMENT_D16) - -dist/$(COMMENT_D32): dist/comment - echo "Vim - Vi IMproved - v$(VDOT) binaries for MS-DOS 32 bit protected mode" > dist/$(COMMENT_D32) - dist/$(COMMENT_W32): dist/comment echo "Vim - Vi IMproved - v$(VDOT) binaries for MS-Windows NT/95" > dist/$(COMMENT_W32) @@ -296,9 +274,6 @@ dist/$(COMMENT_OLE): dist/comment echo "Vim - Vi IMproved - v$(VDOT) MS-Windows GUI binaries with OLE support" > dist/$(COMMENT_OLE) -dist/$(COMMENT_W32S): dist/comment - echo "Vim - Vi IMproved - v$(VDOT) GUI binaries for MS-Windows 3.1/3.11" > dist/$(COMMENT_W32S) - dist/$(COMMENT_SRC): dist/comment echo "Vim - Vi IMproved - v$(VDOT) sources for MS-DOS and MS-Windows" > dist/$(COMMENT_SRC) @@ -501,7 +476,8 @@ cd dist/vim/$(VIMRTDIR); tar cf - * \ | (cd ../../../runtime/dos; tar xf -) -dosbin: prepare dosbin_gvim dosbin_w32 $(DOSBIN_D32) dosbin_ole $(DOSBIN_S) $(DOSBIN_D16) +dosbin: prepare dosbin_gvim dosbin_w32 dosbin_ole $(DOSBIN_S) + -rm $(IN_README_DIR) # make Win32 gvim dosbin_gvim: dist no_title.vim dist/$(COMMENT_GVIM) @@ -512,8 +488,8 @@ tar cf - \ $(BIN_DOS) \ | (cd dist/vim/$(VIMRTDIR); tar xf -) - -rm $(IN_README_DIR) cp gvim.exe dist/vim/$(VIMRTDIR)/gvim.exe + cp teew32.exe dist/vim/$(VIMRTDIR)/tee.exe cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe cp vimrun.exe dist/vim/$(VIMRTDIR)/vimrun.exe cp installw32.exe dist/vim/$(VIMRTDIR)/install.exe @@ -532,43 +508,13 @@ $(BIN_DOS) \ | (cd dist/vim/$(VIMRTDIR); tar xf -) cp vimw32.exe dist/vim/$(VIMRTDIR)/vim.exe + cp teew32.exe dist/vim/$(VIMRTDIR)/tee.exe cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe cp installw32.exe dist/vim/$(VIMRTDIR)/install.exe cp uninstalw32.exe dist/vim/$(VIMRTDIR)/uninstal.exe cd dist && zip -9 -rD -z vim$(VERSION)w32.zip vim <$(COMMENT_W32) cp vimw32.pdb dist/vim$(VERSION)w32.pdb -# make 32bit DOS -dosbin_d32: dist no_title.vim dist/$(COMMENT_D32) - -rm -rf dist/vim$(VERSION)d32.zip - -rm -rf dist/vim - mkdir dist/vim - mkdir dist/vim/$(VIMRTDIR) - tar cf - \ - $(BIN_DOS) \ - | (cd dist/vim/$(VIMRTDIR); tar xf -) - cp vimd32.exe dist/vim/$(VIMRTDIR)/vim.exe - cp xxdd32.exe dist/vim/$(VIMRTDIR)/xxd.exe - cp installd32.exe dist/vim/$(VIMRTDIR)/install.exe - cp uninstald32.exe dist/vim/$(VIMRTDIR)/uninstal.exe - cp csdpmi4b.zip dist/vim/$(VIMRTDIR) - cd dist && zip -9 -rD -z vim$(VERSION)d32.zip vim <$(COMMENT_D32) - -# make 16bit DOS -dosbin_d16: dist no_title.vim dist/$(COMMENT_D16) - -rm -rf dist/vim$(VERSION)d16.zip - -rm -rf dist/vim - mkdir dist/vim - mkdir dist/vim/$(VIMRTDIR) - tar cf - \ - $(BIN_DOS) \ - | (cd dist/vim/$(VIMRTDIR); tar xf -) - cp vimd16.exe dist/vim/$(VIMRTDIR)/vim.exe - cp xxdd16.exe dist/vim/$(VIMRTDIR)/xxd.exe - cp installd16.exe dist/vim/$(VIMRTDIR)/install.exe - cp uninstald16.exe dist/vim/$(VIMRTDIR)/uninstal.exe - cd dist && zip -9 -rD -z vim$(VERSION)d16.zip vim <$(COMMENT_D16) - # make Win32 gvim with OLE dosbin_ole: dist no_title.vim dist/$(COMMENT_OLE) -rm -rf dist/gvim$(VERSION)ole.zip @@ -579,6 +525,7 @@ $(BIN_DOS) \ | (cd dist/vim/$(VIMRTDIR); tar xf -) cp gvim_ole.exe dist/vim/$(VIMRTDIR)/gvim.exe + cp teew32.exe dist/vim/$(VIMRTDIR)/tee.exe cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe cp vimrun.exe dist/vim/$(VIMRTDIR)/vimrun.exe cp installw32.exe dist/vim/$(VIMRTDIR)/install.exe @@ -590,22 +537,6 @@ cd dist && zip -9 -rD -z gvim$(VERSION)ole.zip vim <$(COMMENT_OLE) cp gvim_ole.pdb dist/gvim$(VERSION)ole.pdb -# make Win32s gvim -dosbin_s: dist no_title.vim dist/$(COMMENT_W32S) - -rm -rf dist/gvim$(VERSION)_s.zip - -rm -rf dist/vim - mkdir dist/vim - mkdir dist/vim/$(VIMRTDIR) - tar cf - \ - $(BIN_DOS) \ - | (cd dist/vim/$(VIMRTDIR); tar xf -) - cp gvim_w32s.exe dist/vim/$(VIMRTDIR)/gvim.exe - cp xxdd32.exe dist/vim/$(VIMRTDIR)/xxd.exe - cp README_w32s.txt dist/vim/$(VIMRTDIR) - cp installw32.exe dist/vim/$(VIMRTDIR)/install.exe - cp uninstalw32.exe dist/vim/$(VIMRTDIR)/uninstal.exe - cd dist && zip -9 -rD -z gvim$(VERSION)_s.zip vim <$(COMMENT_W32S) - html: dist dist/$(COMMENT_HTML) -rm -rf dist/vim$(VERSION)html.zip cd runtime/doc && zip -9 -z ../../dist/vim$(VERSION)html.zip *.html <../../dist/$(COMMENT_HTML) diff -Nru vim-7.4.2156/nsis/gvim.nsi vim-8.0.0134/nsis/gvim.nsi --- vim-7.4.2156/nsis/gvim.nsi 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/nsis/gvim.nsi 2016-12-14 20:42:00.000000000 +0000 @@ -188,6 +188,7 @@ File /oname=install.exe ${VIMSRC}\installw32.exe File /oname=uninstal.exe ${VIMSRC}\uninstalw32.exe File ${VIMSRC}\vimrun.exe + File /oname=tee.exe ${VIMSRC}\teew32.exe File /oname=xxd.exe ${VIMSRC}\xxdw32.exe File ${VIMTOOLS}\diff.exe File ${VIMRT}\vimtutor.bat diff -Nru vim-7.4.2156/nsis/gvim_version.nsh vim-8.0.0134/nsis/gvim_version.nsh --- vim-7.4.2156/nsis/gvim_version.nsh 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/nsis/gvim_version.nsh 2016-12-14 20:42:00.000000000 +0000 @@ -1,6 +1,6 @@ # Generated from Makefile: define the version numbers !ifndef __GVIM_VER__NSH__ !define __GVIM_VER__NSH__ -!define VER_MAJOR 7 -!define VER_MINOR 4 +!define VER_MAJOR 8 +!define VER_MINOR 0 !endif diff -Nru vim-7.4.2156/READMEdir/Contents vim-8.0.0134/READMEdir/Contents --- vim-7.4.2156/READMEdir/Contents 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/READMEdir/Contents 2016-12-14 20:42:00.000000000 +0000 @@ -9,10 +9,10 @@ messages, shows current file name in window title, on-line help, rectangular cut/paste, etc., etc., etc... - Version 7.4. Also runs under UNIX, MS-Windows, Mac, etc. - vim74rt.tgz contains the documentation and syntax files. - vim74bin.tgz contains the binaries. - vim74src.tgz contains the sources. + Version 8.0. Also runs under UNIX, MS-Windows, Mac, etc. + vim80rt.tgz contains the documentation and syntax files. + vim80bin.tgz contains the binaries. + vim80src.tgz contains the sources. Author: Bram Moolenaar et al. diff -Nru vim-7.4.2156/READMEdir/README_amibin.txt vim-8.0.0134/READMEdir/README_amibin.txt --- vim-7.4.2156/READMEdir/README_amibin.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/READMEdir/README_amibin.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,8 +1,8 @@ -README_amibin.txt for version 7.4 of Vim: Vi IMproved. +README_amibin.txt for version 8.0 of Vim: Vi IMproved. See "README.txt" for general information about Vim. See "README_ami.txt" for installation instructions for the Amiga. -These files are in the runtime archive (vim60rt.tgz). +These files are in the runtime archive (vim80rt.tgz). The Amiga "bin" archive contains the Vim executable for the Amiga. It was diff -Nru vim-7.4.2156/READMEdir/README_amisrc.txt vim-8.0.0134/READMEdir/README_amisrc.txt --- vim-7.4.2156/READMEdir/README_amisrc.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/READMEdir/README_amisrc.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,8 +1,8 @@ -README_amisrc.txt for version 7.4 of Vim: Vi IMproved. +README_amisrc.txt for version 8.0 of Vim: Vi IMproved. See "README.txt" for general information about Vim. See "README_ami.txt" for installation instructions for the Amiga. -These files are in the runtime archive (vim60rt.tgz). +These files are in the runtime archive (vim80rt.tgz). The Amiga source archive contains the files needed to compile Vim on the diff -Nru vim-7.4.2156/READMEdir/README_ami.txt vim-8.0.0134/READMEdir/README_ami.txt --- vim-7.4.2156/READMEdir/README_ami.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/READMEdir/README_ami.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -README_ami.txt for version 7.4 of Vim: Vi IMproved. +README_ami.txt for version 8.0 of Vim: Vi IMproved. This file explains the installation of Vim on Amiga systems. See README.txt for general information about Vim. @@ -16,8 +16,8 @@ You would then unpack the archives like this: cd dh0:editors - tar xf t:vim60bin.tar - tar xf t:vim60rt.tar + tar xf t:vim80bin.tar + tar xf t:vim80rt.tar Set the $VIM environment variable to point to the top directory of your Vim files. For the above example: diff -Nru vim-7.4.2156/READMEdir/README_bindos.txt vim-8.0.0134/READMEdir/README_bindos.txt --- vim-7.4.2156/READMEdir/README_bindos.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/READMEdir/README_bindos.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,16 +1,16 @@ -README_bindos.txt for version 7.4 of Vim: Vi IMproved. +README_bindos.txt for version 8.0 of Vim: Vi IMproved. See "README.txt" for general information about Vim. See "README_dos.txt" for installation instructions for MS-DOS and MS-Windows. -These files are in the runtime archive (vim74rt.zip). +These files are in the runtime archive (vim80rt.zip). There are several binary distributions of Vim for the PC. You would normally pick only one of them, but it's also possible to install several. These ones are available (the version number may differ): - vim74w32.zip Windows 95/98/NT/etc. console version - gvim74.zip Windows 95/98/NT/etc. GUI version - gvim74ole.zip Windows 95/98/NT/etc. GUI version with OLE + vim80w32.zip Windows 95/98/NT/etc. console version + gvim80.zip Windows 95/98/NT/etc. GUI version + gvim80ole.zip Windows 95/98/NT/etc. GUI version with OLE -You MUST also get the runtime archive (vim74rt.zip). -The sources are also available (vim74src.zip). +You MUST also get the runtime archive (vim80rt.zip). +The sources are also available (vim80src.zip). diff -Nru vim-7.4.2156/READMEdir/README_dos.txt vim-8.0.0134/READMEdir/README_dos.txt --- vim-7.4.2156/READMEdir/README_dos.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/READMEdir/README_dos.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -README_dos.txt for version 7.4 of Vim: Vi IMproved. +README_dos.txt for version 8.0 of Vim: Vi IMproved. This file explains the installation of Vim on MS-DOS and MS-Windows systems. See "README.txt" for general information about Vim. @@ -41,19 +41,19 @@ located. Check the $VIM setting to see where it points to: set VIM For example, if you have - C:\vim\vim54 + C:\vim\vim80 do cd C:\ Binary and runtime Vim archives are normally unpacked in the same location, on top of each other. -2. Unpack the zip archives. This will create a new directory "vim\vim74", +2. Unpack the zip archives. This will create a new directory "vim\vim80", in which all the distributed Vim files are placed. Since the directory name includes the version number, it is unlikely that you overwrite existing files. Examples: - pkunzip -d gvim74.zip - unzip vim74w32.zip + pkunzip -d gvim80.zip + unzip vim80w32.zip You need to unpack the runtime archive and at least one of the binary archives. When using more than one binary version, be careful not to @@ -69,7 +69,7 @@ archive and follow the instructions in the documentation. 3. Change to the new directory: - cd vim\vim74 + cd vim\vim80 Run the "install.exe" program. It will ask you a number of questions about how you would like to have your Vim setup. Among these are: - You can tell it to write a "_vimrc" file with your preferences in the @@ -80,8 +80,8 @@ console or in a shell. You can select one of the directories in your $PATH. If you skip this, you can add Vim to the search path manually: The simplest is to add a line to your autoexec.bat. Examples: - set path=%path%;C:\vim\vim74 - set path=%path%;D:\editors\vim\vim74 + set path=%path%;C:\vim\vim80 + set path=%path%;D:\editors\vim\vim80 - Create entries for Vim on the desktop and in the Start menu. That's it! @@ -93,8 +93,8 @@ won't show a menubar. Then you need to set the $VIM environment variable to point to the top directory of your Vim files. Example: set VIM=C:\editors\vim - Vim version 7.4 will look for your vimrc file in $VIM, and for the runtime - files in $VIM/vim74. See ":help $VIM" for more information. + Vim version 8.0 will look for your vimrc file in $VIM, and for the runtime + files in $VIM/vim80. See ":help $VIM" for more information. - To avoid confusion between distributed files of different versions and your own modified vim scripts, it is recommended to use this directory layout: @@ -105,14 +105,14 @@ C:\vim\vimfiles\ftplugin\*.vim Filetype plugins C:\vim\... Other files you made. Distributed files: - C:\vim\vim74\vim.exe The Vim version 7.4 executable. - C:\vim\vim74\doc\*.txt The version 7.4 documentation files. - C:\vim\vim74\bugreport.vim A Vim version 7.4 script. - C:\vim\vim74\... Other version 7.4 distributed files. + C:\vim\vim80\vim.exe The Vim version 8.0 executable. + C:\vim\vim80\doc\*.txt The version 8.0 documentation files. + C:\vim\vim80\bugreport.vim A Vim version 8.0 script. + C:\vim\vim80\... Other version 8.0 distributed files. In this case the $VIM environment variable would be set like this: set VIM=C:\vim - Then $VIMRUNTIME will automatically be set to "$VIM\vim74". Don't add - "vim74" to $VIM, that won't work. + Then $VIMRUNTIME will automatically be set to "$VIM\vim80". Don't add + "vim80" to $VIM, that won't work. - You can put your Vim executable anywhere else. If the executable is not with the other Vim files, you should set $VIM. The simplest is to add a line @@ -136,8 +136,8 @@ Select Properties. 5. In the Program tab, change the "Cmdline" to add "/c" and the name of the Vim executable. Examples: - C:\command.com /c C:\vim\vim74\vim.exe - C:\command.com /c D:\editors\vim\vim74\vim.exe + C:\command.com /c C:\vim\vim80\vim.exe + C:\command.com /c D:\editors\vim\vim80\vim.exe 6. Select the font, window size, etc. that you like. If this isn't possible, select "Advanced" in the Program tab, and deselect "MS-DOS mode". diff -Nru vim-7.4.2156/READMEdir/README_extra.txt vim-8.0.0134/READMEdir/README_extra.txt --- vim-7.4.2156/READMEdir/README_extra.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/READMEdir/README_extra.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -README_extra.txt for version 7.4 of Vim: Vi IMproved. +README_extra.txt for version 8.0 of Vim: Vi IMproved. These extra files of Vim are for special purposes. This README explains what the files are for. For general information about Vim, see the "README.txt" diff -Nru vim-7.4.2156/READMEdir/README_mac.txt vim-8.0.0134/READMEdir/README_mac.txt --- vim-7.4.2156/READMEdir/README_mac.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/READMEdir/README_mac.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,8 +1,28 @@ -README_mac.txt for version 7.4 of Vim: Vi IMproved. +README_mac.txt for version 8.0 of Vim: Vi IMproved. This file explains the installation of Vim on Macintosh systems. See "README.txt" for general information about Vim. -Sorry, this text still needs to be written! +To build from sources, like on Unix +1. Get the build tools: "clang" and "make". These can be installed with the + "CommandLineTools" package. If you don't have one, do + xcode-select --install + Just like for any software development with OS X. + +2. Get the source code. Best is to use git (which you need to install first), + see http://www.vim.org/git.php + Or you can download and unpack the Unix tar archive, see + http://www.vim.org/download.php + +3. Go to the top directory of the source tree, do + make + sudo make install + A newly built vim will be installed under "/usr/local". + + +If you can't manage to make this work, there is a fallback using Homebrew: + +1. Install Homebrew from http://brew.sh/ +2. Install latest Vim with: brew install vim diff -Nru vim-7.4.2156/READMEdir/README_ole.txt vim-8.0.0134/READMEdir/README_ole.txt --- vim-7.4.2156/READMEdir/README_ole.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/READMEdir/README_ole.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -README_ole.txt for version 7.4 of Vim: Vi IMproved. +README_ole.txt for version 8.0 of Vim: Vi IMproved. This archive contains gvim.exe with OLE interface and VisVim. This version of gvim.exe can also load a number of interface dynamically (you diff -Nru vim-7.4.2156/READMEdir/README_os2.txt vim-8.0.0134/READMEdir/README_os2.txt --- vim-7.4.2156/READMEdir/README_os2.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/READMEdir/README_os2.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -README_os2.txt for version 7.4 of Vim: Vi IMproved. +README_os2.txt for version 8.0 of Vim: Vi IMproved. This file used to explain the installation of Vim on OS/2 systems. However, support for OS/2 has been removed in patch 7.4.1008. diff -Nru vim-7.4.2156/READMEdir/README_os390.txt vim-8.0.0134/READMEdir/README_os390.txt --- vim-7.4.2156/READMEdir/README_os390.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/READMEdir/README_os390.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -README_zOS.txt for version 7.4 of Vim: Vi IMproved. +README_zOS.txt for version 8.0 of Vim: Vi IMproved. This readme explains how to build Vim on z/OS. Formerly called OS/390. See "README.txt" for general information about Vim. @@ -78,7 +78,7 @@ With X11: --------- -WARNING: This instruction was not tested with Vim 7.4. +WARNING: This instruction was not tested with Vim 7.4 or later. There are two ways for building VIM with X11 support. The first way is simple and results in a big executable (~13 Mb), the second needs a few additional diff -Nru vim-7.4.2156/READMEdir/README_srcdos.txt vim-8.0.0134/READMEdir/README_srcdos.txt --- vim-7.4.2156/READMEdir/README_srcdos.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/READMEdir/README_srcdos.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,8 +1,8 @@ -README_srcdos.txt for version 7.4 of Vim: Vi IMproved. +README_srcdos.txt for version 8.0 of Vim: Vi IMproved. See "README.txt" for general information about Vim. See "README_dos.txt" for installation instructions for MS-DOS and MS-Windows. -These files are in the runtime archive (vim74rt.zip). +These files are in the runtime archive (vim80rt.zip). The DOS source archive contains the files needed to compile Vim on MS-DOS or diff -Nru vim-7.4.2156/READMEdir/README_src.txt vim-8.0.0134/READMEdir/README_src.txt --- vim-7.4.2156/READMEdir/README_src.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/READMEdir/README_src.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,8 +1,8 @@ -README_src.txt for version 7.4 of Vim: Vi IMproved. +README_src.txt for version 8.0 of Vim: Vi IMproved. The source archive contains the files needed to compile Vim on Unix systems. It is packed for Unix systems (NL line separator). For more information, see the README.txt file that comes with the runtime -archive (vim-7.4-rt.tar.gz). To be able to run Vim you MUST get the runtime +archive (vim-8.0-rt.tar.gz). To be able to run Vim you MUST get the runtime archive too! diff -Nru vim-7.4.2156/READMEdir/README_unix.txt vim-8.0.0134/READMEdir/README_unix.txt --- vim-7.4.2156/READMEdir/README_unix.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/READMEdir/README_unix.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -README_unix.txt for version 7.4 of Vim: Vi IMproved. +README_unix.txt for version 8.0 of Vim: Vi IMproved. This file explains the installation of Vim on Unix systems. See "README.txt" for general information about Vim. diff -Nru vim-7.4.2156/READMEdir/README_vms.txt vim-8.0.0134/READMEdir/README_vms.txt --- vim-7.4.2156/READMEdir/README_vms.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/READMEdir/README_vms.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -README_vms.txt for version 7.4 of Vim: Vi IMproved. +README_vms.txt for version 8.0 of Vim: Vi IMproved. This file explains the installation of Vim on VMS systems. See "README.txt" in the runtime archive for information about Vim. diff -Nru vim-7.4.2156/READMEdir/README_w32s.txt vim-8.0.0134/READMEdir/README_w32s.txt --- vim-7.4.2156/READMEdir/README_w32s.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/READMEdir/README_w32s.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -README_w32s.txt for version 7.4 of Vim: Vi IMproved. +README_w32s.txt for version 8.0 of Vim: Vi IMproved. This archive contains the gvim.exe that was specifically compiled for use in the Win32s subsystem in MS-Windows 3.1 and 3.11. diff -Nru vim-7.4.2156/README.md vim-8.0.0134/README.md --- vim-7.4.2156/README.md 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/README.md 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -`README.md` for version 7.4 of Vim: Vi IMproved. +`README.md` for version 8.0 of Vim: Vi IMproved. [![Build Status](https://travis-ci.org/vim/vim.svg?branch=master)](https://travis-ci.org/vim/vim) [![Coverage Status](https://coveralls.io/repos/vim/vim/badge.svg?branch=master&service=github)](https://coveralls.io/github/vim/vim?branch=master) [![Appveyor Build status](https://ci.appveyor.com/api/projects/status/o2qht2kjm02sgghk?svg=true)](https://ci.appveyor.com/project/chrisbra/vim) diff -Nru vim-7.4.2156/README.txt vim-8.0.0134/README.txt --- vim-7.4.2156/README.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/README.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -README.txt for version 7.4 of Vim: Vi IMproved. +README.txt for version 8.0 of Vim: Vi IMproved. WHAT IS VIM? diff -Nru vim-7.4.2156/runtime/autoload/contextcomplete.vim vim-8.0.0134/runtime/autoload/contextcomplete.vim --- vim-7.4.2156/runtime/autoload/contextcomplete.vim 1970-01-01 00:00:00.000000000 +0000 +++ vim-8.0.0134/runtime/autoload/contextcomplete.vim 2016-12-14 20:42:00.000000000 +0000 @@ -0,0 +1,25 @@ +" Language: ConTeXt typesetting engine +" Maintainer: Nicola Vitacolonna +" Latest Revision: 2016 Oct 15 + +let s:keepcpo= &cpo +set cpo&vim + +" Complete keywords in MetaPost blocks +function! contextcomplete#Complete(findstart, base) + if a:findstart == 1 + if len(synstack(line('.'), 1)) > 0 && + \ synIDattr(synstack(line('.'), 1)[0], "name") ==# 'contextMPGraphic' + return syntaxcomplete#Complete(a:findstart, a:base) + else + return -3 + endif + else + return syntaxcomplete#Complete(a:findstart, a:base) + endif +endfunction + +let &cpo = s:keepcpo +unlet s:keepcpo + +" vim: sw=2 fdm=marker diff -Nru vim-7.4.2156/runtime/autoload/context.vim vim-8.0.0134/runtime/autoload/context.vim --- vim-7.4.2156/runtime/autoload/context.vim 1970-01-01 00:00:00.000000000 +0000 +++ vim-8.0.0134/runtime/autoload/context.vim 2016-12-14 20:42:00.000000000 +0000 @@ -0,0 +1,184 @@ +" Language: ConTeXt typesetting engine +" Maintainer: Nicola Vitacolonna +" Latest Revision: 2016 Oct 21 + +let s:keepcpo= &cpo +set cpo&vim + +" Helper functions {{{ +function! s:context_echo(message, mode) + redraw + echo "\r" + execute 'echohl' a:mode + echomsg '[ConTeXt]' a:message + echohl None +endf + +function! s:sh() + return has('win32') || has('win64') || has('win16') || has('win95') + \ ? ['cmd.exe', '/C'] + \ : ['/bin/sh', '-c'] +endfunction + +" For backward compatibility +if exists('*win_getid') + + function! s:win_getid() + return win_getid() + endf + + function! s:win_id2win(winid) + return win_id2win(a:winid) + endf + +else + + function! s:win_getid() + return winnr() + endf + + function! s:win_id2win(winnr) + return a:winnr + endf + +endif +" }}} + +" ConTeXt jobs {{{ +if has('job') + + let g:context_jobs = [] + + " Print the status of ConTeXt jobs + function! context#job_status() + let l:jobs = filter(g:context_jobs, 'job_status(v:val) == "run"') + let l:n = len(l:jobs) + call s:context_echo( + \ 'There '.(l:n == 1 ? 'is' : 'are').' '.(l:n == 0 ? 'no' : l:n) + \ .' job'.(l:n == 1 ? '' : 's').' running' + \ .(l:n == 0 ? '.' : ' (' . join(l:jobs, ', ').').'), + \ 'ModeMsg') + endfunction + + " Stop all ConTeXt jobs + function! context#stop_jobs() + let l:jobs = filter(g:context_jobs, 'job_status(v:val) == "run"') + for job in l:jobs + call job_stop(job) + endfor + sleep 1 + let l:tmp = [] + for job in l:jobs + if job_status(job) == "run" + call add(l:tmp, job) + endif + endfor + let g:context_jobs = l:tmp + if empty(g:context_jobs) + call s:context_echo('Done. No jobs running.', 'ModeMsg') + else + call s:context_echo('There are still some jobs running. Please try again.', 'WarningMsg') + endif + endfunction + + function! context#callback(path, job, status) + if index(g:context_jobs, a:job) != -1 && job_status(a:job) != 'run' " just in case + call remove(g:context_jobs, index(g:context_jobs, a:job)) + endif + call s:callback(a:path, a:job, a:status) + endfunction + + function! context#close_cb(channel) + call job_status(ch_getjob(a:channel)) " Trigger exit_cb's callback for faster feedback + endfunction + + function! s:typeset(path) + call add(g:context_jobs, + \ job_start(add(s:sh(), context#command() . ' ' . shellescape(fnamemodify(a:path, ":t"))), { + \ 'close_cb' : 'context#close_cb', + \ 'exit_cb' : function(get(b:, 'context_callback', get(g:, 'context_callback', 'context#callback')), + \ [a:path]), + \ 'in_io' : 'null' + \ })) + endfunction + +else " No jobs + + function! context#job_status() + call s:context_echo('Not implemented', 'WarningMsg') + endfunction! + + function! context#stop_jobs() + call s:context_echo('Not implemented', 'WarningMsg') + endfunction + + function! context#callback(path, job, status) + call s:callback(a:path, a:job, a:status) + endfunction + + function! s:typeset(path) + execute '!' . context#command() . ' ' . shellescape(fnamemodify(a:path, ":t")) + call call(get(b:, 'context_callback', get(g:, 'context_callback', 'context#callback')), + \ [a:path, 0, v:shell_error]) + endfunction + +endif " has('job') + +function! s:callback(path, job, status) abort + if a:status < 0 " Assume the job was terminated + return + endif + " Get info about the current window + let l:winid = s:win_getid() " Save window id + let l:efm = &l:errorformat " Save local errorformat + let l:cwd = fnamemodify(getcwd(), ":p") " Save local working directory + " Set errorformat to parse ConTeXt errors + execute 'setl efm=' . escape(b:context_errorformat, ' ') + try " Set cwd to expand error file correctly + execute 'lcd' fnameescape(fnamemodify(a:path, ':h')) + catch /.*/ + execute 'setl efm=' . escape(l:efm, ' ') + throw v:exception + endtry + try + execute 'cgetfile' fnameescape(fnamemodify(a:path, ':r') . '.log') + botright cwindow + finally " Restore cwd and errorformat + execute s:win_id2win(l:winid) . 'wincmd w' + execute 'lcd ' . fnameescape(l:cwd) + execute 'setl efm=' . escape(l:efm, ' ') + endtry + if a:status == 0 + call s:context_echo('Success!', 'ModeMsg') + else + call s:context_echo('There are errors. ', 'ErrorMsg') + endif +endfunction + +function! context#command() + return get(b:, 'context_mtxrun', get(g:, 'context_mtxrun', 'mtxrun')) + \ . ' --script context --autogenerate --nonstopmode' + \ . ' --synctex=' . (get(b:, 'context_synctex', get(g:, 'context_synctex', 0)) ? '1' : '0') + \ . ' ' . get(b:, 'context_extra_options', get(g:, 'context_extra_options', '')) +endfunction + +" Accepts an optional path (useful for big projects, when the file you are +" editing is not the project's root document). If no argument is given, uses +" the path of the current buffer. +function! context#typeset(...) abort + let l:path = fnamemodify(strlen(a:000[0]) > 0 ? a:1 : expand("%"), ":p") + let l:cwd = fnamemodify(getcwd(), ":p") " Save local working directory + call s:context_echo('Typesetting...', 'ModeMsg') + execute 'lcd' fnameescape(fnamemodify(l:path, ":h")) + try + call s:typeset(l:path) + finally " Restore local working directory + execute 'lcd ' . fnameescape(l:cwd) + endtry +endfunction! +"}}} + +let &cpo = s:keepcpo +unlet s:keepcpo + +" vim: sw=2 fdm=marker diff -Nru vim-7.4.2156/runtime/autoload/getscript.vim vim-8.0.0134/runtime/autoload/getscript.vim --- vim-7.4.2156/runtime/autoload/getscript.vim 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/autoload/getscript.vim 2016-12-14 20:42:00.000000000 +0000 @@ -236,7 +236,7 @@ " call Decho("..depscript<".depscript.">") " found a "GetLatestVimScripts: # #" line in the script; - " check if its already in the datafile by searching backwards from llp1, + " check if it's already in the datafile by searching backwards from llp1, " the (prior to reading in the plugin script) last line plus one of the GetLatestVimScripts.dat file, " for the script-id with no wrapping allowed. let curline = line(".") diff -Nru vim-7.4.2156/runtime/autoload/gzip.vim vim-8.0.0134/runtime/autoload/gzip.vim --- vim-7.4.2156/runtime/autoload/gzip.vim 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/autoload/gzip.vim 2016-12-14 20:42:00.000000000 +0000 @@ -1,6 +1,6 @@ " Vim autoload file for editing compressed files. " Maintainer: Bram Moolenaar -" Last Change: 2014 Nov 05 +" Last Change: 2016 Sep 28 " These functions are used by the gzip plugin. @@ -63,6 +63,9 @@ " set 'modifiable' let ma_save = &ma setlocal ma + " set 'write' + let write_save = &write + set write " Reset 'foldenable', otherwise line numbers get adjusted. if has("folding") let fen_save = &fen @@ -127,6 +130,7 @@ let &pm = pm_save let &cpo = cpo_save let &l:ma = ma_save + let &write = write_save if has("folding") let &l:fen = fen_save endif diff -Nru vim-7.4.2156/runtime/autoload/netrw.vim vim-8.0.0134/runtime/autoload/netrw.vim --- vim-7.4.2156/runtime/autoload/netrw.vim 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/autoload/netrw.vim 2016-12-14 20:42:00.000000000 +0000 @@ -22,8 +22,8 @@ if &cp || exists("g:loaded_netrw") finish endif -" netrw requires vim having patch 213; netrw will benefit from vim's having patch#656, too -if v:version < 704 || !has("patch213") +" netrw requires vim having patch 7.4.213; netrw will benefit from vim's having patch#656, too +if v:version < 704 || (v:version == 704 && !has("patch213")) if !exists("s:needpatch213") unsilent echomsg "***sorry*** this version of netrw requires vim v7.4 with patch 213" endif diff -Nru vim-7.4.2156/runtime/autoload/phpcomplete.vim vim-8.0.0134/runtime/autoload/phpcomplete.vim --- vim-7.4.2156/runtime/autoload/phpcomplete.vim 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/autoload/phpcomplete.vim 2016-12-14 20:42:00.000000000 +0000 @@ -3,7 +3,7 @@ " 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: 2015 Jul 13 +" Last Change: 2016 Oct 10 " " OPTIONS: " @@ -195,6 +195,8 @@ " }}} elseif context =~? 'implements' return phpcomplete#CompleteClassName(a:base, ['i'], current_namespace, imports) + elseif context =~? 'instanceof' + return phpcomplete#CompleteClassName(a:base, ['c', 'n'], current_namespace, imports) elseif context =~? 'extends\s\+.\+$' && a:base == '' return ['implements'] elseif context =~? 'extends' @@ -787,6 +789,8 @@ if kinds == ['c', 'i'] let filterstr = 'v:val =~? "\\(class\\|interface\\)\\s\\+[a-zA-Z_\\x7f-\\xff][a-zA-Z_0-9\\x7f-\\xff]*\\s*"' + elseif kinds == ['c', 'n'] + let filterstr = 'v:val =~? "\\(class\\|namespace\\)\\s\\+[a-zA-Z_\\x7f-\\xff][a-zA-Z_0-9\\x7f-\\xff]*\\s*"' elseif kinds == ['c'] let filterstr = 'v:val =~? "class\\s\\+[a-zA-Z_\\x7f-\\xff][a-zA-Z_0-9\\x7f-\\xff]*\\s*"' elseif kinds == ['i'] @@ -931,7 +935,7 @@ endfor for modifier in a:modifiers - " if the modifier is prohibited its a no match + " if the modifier is prohibited it's a no match if index(a:prohibited_modifiers, modifier) != -1 return 0 endif @@ -996,7 +1000,7 @@ let required_modifiers += ['static'] endif let all_variable = filter(deepcopy(a:sccontent), - \ 'v:val =~ "^\\s*\\(var\\s\\+\\|public\\s\\+\\|protected\\s\\+\\|private\\s\\+\\|final\\s\\+\\|abstract\\s\\+\\|static\\s\\+\\)\\+\\$"') + \ 'v:val =~ "\\(^\\s*\\(var\\s\\+\\|public\\s\\+\\|protected\\s\\+\\|private\\s\\+\\|final\\s\\+\\|abstract\\s\\+\\|static\\s\\+\\)\\+\\$\\|^\\s*\\(\\/\\|\\*\\)*\\s*@property\\s\\+\\S\\+\\s\\S\\{-}\\s*$\\)"') let variables = [] for i in all_variable @@ -1160,6 +1164,14 @@ endif let tags = taglist(a:pattern) + for tag in tags + for prop in keys(tag) + if prop == 'cmd' || prop == 'static' || prop == 'kind' || prop == 'builtin' + continue + endif + let tag[prop] = substitute(tag[prop], '\\\\', '\\', 'g') + endfor + endfor let s:cache_tags[a:pattern] = tags let has_key = has_key(s:cache_tags, a:pattern) let s:cache_tags_checksum = cache_checksum @@ -1379,7 +1391,7 @@ " Get Structured information of all classes and subclasses including namespace and includes " try to find the method's return type in docblock comment for classstructure in classcontents - let docblock_target_pattern = 'function\s\+&\?'.method.'\|\(public\|private\|protected\|var\).\+\$'.method + let docblock_target_pattern = 'function\s\+&\?'.method.'\>\|\(public\|private\|protected\|var\).\+\$'.method.'\>\|@property.\+\$'.method.'\>' let doc_str = phpcomplete#GetDocBlock(split(classstructure.content, '\n'), docblock_target_pattern) if doc_str != '' break @@ -1387,8 +1399,17 @@ endfor if doc_str != '' let docblock = phpcomplete#ParseDocBlock(doc_str) - if has_key(docblock.return, 'type') || has_key(docblock.var, 'type') - let type = has_key(docblock.return, 'type') ? docblock.return.type : docblock.var.type + if has_key(docblock.return, 'type') || has_key(docblock.var, 'type') || len(docblock.properties) > 0 + let type = has_key(docblock.return, 'type') ? docblock.return.type : has_key(docblock.var, 'type') ? docblock.var.type : '' + + if type == '' + for property in docblock.properties + if property.description =~? method + let type = property.type + break + endif + endfor + endif " there's a namespace in the type, threat the type as FQCN if type =~ '\\' @@ -1554,6 +1575,9 @@ elseif get(methodstack, 0) =~# function_invocation_pattern let function_name = matchstr(methodstack[0], '^\s*\zs'.function_name_pattern) let function_file = phpcomplete#GetFunctionLocation(function_name, a:current_namespace) + if function_file == '' + let function_file = phpcomplete#GetFunctionLocation(function_name, '\') + endif if function_file == 'VIMPHP_BUILTINFUNCTION' " built in function, grab the return type from the info string @@ -1569,7 +1593,7 @@ let [class_candidate_namespace, function_imports] = phpcomplete#GetCurrentNameSpace(file_lines) " try to expand the classname of the returned type with the context got from the function's source file - let [classname_candidate, unused] = phpcomplete#ExpandClassName(classname_candidate, class_candidate_namespace, function_imports) + let [classname_candidate, class_candidate_namespace] = phpcomplete#ExpandClassName(classname_candidate, class_candidate_namespace, function_imports) endif endif if classname_candidate != '' @@ -1650,9 +1674,10 @@ let sub_methodstack = phpcomplete#GetMethodStack(matchstr(line, '^\s*'.object.'\s*=&\?\s*\s\+\zs.*')) let [classname_candidate, class_candidate_namespace] = phpcomplete#GetCallChainReturnType( \ classname, - \ a:current_namespace, + \ namespace_for_class, \ a:imports, \ sub_methodstack) + return (class_candidate_namespace == '\' || class_candidate_namespace == '') ? classname_candidate : class_candidate_namespace.'\'.classname_candidate endif endif @@ -1783,6 +1808,9 @@ let [function_name, function_namespace] = phpcomplete#ExpandClassName(function_name, a:current_namespace, a:imports) let function_file = phpcomplete#GetFunctionLocation(function_name, function_namespace) + if function_file == '' + let function_file = phpcomplete#GetFunctionLocation(function_name, '\') + endif if function_file == 'VIMPHP_BUILTINFUNCTION' " built in function, grab the return type from the info string @@ -1798,7 +1826,7 @@ let classname_candidate = docblock.return.type let [class_candidate_namespace, function_imports] = phpcomplete#GetCurrentNameSpace(file_lines) " try to expand the classname of the returned type with the context got from the function's source file - let [classname_candidate, unused] = phpcomplete#ExpandClassName(classname_candidate, class_candidate_namespace, function_imports) + let [classname_candidate, class_candidate_namespace] = phpcomplete#ExpandClassName(classname_candidate, class_candidate_namespace, function_imports) break endif endif @@ -1861,6 +1889,8 @@ for tag in tags if tag.kind ==? 'v' && tag.cmd =~? '=\s*new\s\+\zs'.class_name_pattern.'\ze' let classname = matchstr(tag.cmd, '=\s*new\s\+\zs'.class_name_pattern.'\ze') + " unescape the classname, it would have "\" doubled since it is an ex command + let classname = substitute(classname, '\\\(\_.\)', '\1', 'g') return classname endif endfor @@ -2077,6 +2107,19 @@ endif call searchpair('{', '', '}', 'W') let class_closing_bracket_line = line('.') + + " Include class docblock + let doc_line = cfline - 1 + if getline(doc_line) =~? '^\s*\*/' + while doc_line != 0 + if getline(doc_line) =~? '^\s*/\*\*' + let cfline = doc_line + break + endif + let doc_line -= 1 + endwhile + endif + let classcontent = join(getline(cfline, class_closing_bracket_line), "\n") let used_traits = [] @@ -2241,8 +2284,19 @@ let line = a:sccontent[i] " search for a function declaration if line =~? a:search - let l = i - 1 - " start backward serch for the comment block + if line =~? '@property' + let doc_line = i + while doc_line != sccontent_len - 1 + if a:sccontent[doc_line] =~? '^\s*\*/' + let l = doc_line + break + endif + let doc_line += 1 + endwhile + else + let l = i - 1 + endif + " start backward search for the comment block while l != 0 let line = a:sccontent[l] " if it's a one line docblock like comment and we can just return it right away @@ -2263,7 +2317,7 @@ return '' end - while l != 0 + while l >= 0 let line = a:sccontent[l] if line =~? '^\s*/\*\*' let comment_start = l @@ -2297,9 +2351,10 @@ \ 'return': {}, \ 'throws': [], \ 'var': {}, + \ 'properties': [], \ } - let res.description = substitute(matchstr(a:docblock, '\zs\_.\{-}\ze\(@var\|@param\|@return\|$\)'), '\(^\_s*\|\_s*$\)', '', 'g') + let res.description = substitute(matchstr(a:docblock, '\zs\_.\{-}\ze\(@type\|@var\|@param\|@return\|$\)'), '\(^\_s*\|\_s*$\)', '', 'g') let docblock_lines = split(a:docblock, "\n") let param_lines = filter(copy(docblock_lines), 'v:val =~? "^@param"') @@ -2334,15 +2389,26 @@ endif endfor - let var_line = filter(copy(docblock_lines), 'v:val =~? "^@var"') + let var_line = filter(copy(docblock_lines), 'v:val =~? "^\\(@var\\|@type\\)"') if len(var_line) > 0 - let var_parts = matchlist(var_line[0], '@var\s\+\(\S\+\)\s*\(.*\)') + let var_parts = matchlist(var_line[0], '\(@var\|@type\)\s\+\(\S\+\)\s*\(.*\)') let res['var'] = { \ 'line': var_parts[0], - \ 'type': phpcomplete#GetTypeFromDocBlockParam(get(var_parts, 1, '')), - \ 'description': get(var_parts, 2, '')} + \ 'type': phpcomplete#GetTypeFromDocBlockParam(get(var_parts, 2, '')), + \ 'description': get(var_parts, 3, '')} endif + let property_lines = filter(copy(docblock_lines), 'v:val =~? "^@property"') + for property_line in property_lines + let parts = matchlist(property_line, '\(@property\)\s\+\(\S\+\)\s*\(.*\)') + if len(parts) > 0 + call add(res.properties, { + \ 'line': parts[0], + \ 'type': phpcomplete#GetTypeFromDocBlockParam(get(parts, 2, '')), + \ 'description': get(parts, 3, '')}) + endif + endfor + return res endfunction " }}} @@ -2498,6 +2564,7 @@ let name = matchstr(name, '\\\zs[^\\]\+\ze$') endif endif + " leading slash is not required use imports are always absolute let imports[name] = {'name': object, 'kind': ''} endfor @@ -2533,6 +2600,7 @@ elseif !exists('no_namespace_candidate') " save the first namespacless match to be used if no better " candidate found later on + let tag.namespace = namespace_for_classes let no_namespace_candidate = tag endif endif diff -Nru vim-7.4.2156/runtime/autoload/rubycomplete.vim vim-8.0.0134/runtime/autoload/rubycomplete.vim --- vim-7.4.2156/runtime/autoload/rubycomplete.vim 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/autoload/rubycomplete.vim 2016-12-14 20:42:00.000000000 +0000 @@ -93,7 +93,7 @@ let stopline = 1 - let crex = '^\s*\<' . a:type . '\>\s*\<' . a:name . '\>\s*\(<\s*.*\s*\)\?' + let crex = '^\s*\<' . a:type . '\>\s*\<' . escape(a:name, '*') . '\>\s*\(<\s*.*\s*\)\?' let [lnum,lcol] = searchpos( crex, 'w' ) "let [lnum,lcol] = searchpairpos( crex . '\zs', '', '\(end\|}\)', 'w' ) @@ -149,7 +149,7 @@ let ctors = ctors.'\)' let fstr = '=\s*\([^ \t]\+.' . ctors .'\>\|[\[{"''/]\|%[xwQqr][(\[{@]\|[A-Za-z0-9@:\-()\.]\+...\?\|lambda\|&\)' - let sstr = ''.a:v.'\>\s*[+\-*/]*'.fstr + let sstr = ''.escape(a:v, '*').'\>\s*[+\-*/]*'.fstr let [lnum,lcol] = searchpos(sstr,'nb',stopline) if lnum != 0 && lcol != 0 let str = matchstr(getline(lnum),fstr,lcol) @@ -196,7 +196,7 @@ if c =~ '\w' continue elseif ! c =~ '\.' - idx = -1 + let idx = -1 break else break @@ -266,6 +266,28 @@ end end + def load_gems + fpath = VIM::evaluate("get(g:, 'rubycomplete_gemfile_path', 'Gemfile')") + return unless File.file?(fpath) && File.readable?(fpath) + want_bundler = VIM::evaluate("get(g:, 'rubycomplete_use_bundler')") + parse_file = !want_bundler + begin + require 'bundler' + Bundler.setup + Bundler.require + rescue Exception + parse_file = true + end + if parse_file + File.new(fpath).each_line do |line| + begin + require $1 if /\s*gem\s*['"]([^'"]+)/.match(line) + rescue Exception + end + end + end + end + def load_buffer_class(name) dprint "load_buffer_class(%s) START" % name classdef = get_buffer_entity(name, 's:GetBufferRubyClass("%s")') @@ -588,6 +610,10 @@ load_rails end + want_gems = VIM::evaluate("get(g:, 'rubycomplete_load_gemfile')") + load_gems unless want_gems.to_i.zero? + + input = VIM::Buffer.current.line cpos = VIM::Window.current.cursor[1] - 1 input = input[0..cpos] @@ -678,7 +704,9 @@ cv = eval("self.class.constants") vartype = get_var_type( receiver ) dprint "vartype: %s" % vartype - if vartype != '' + + invalid_vartype = ['', "gets"] + if !invalid_vartype.include?(vartype) load_buffer_class( vartype ) begin @@ -706,7 +734,7 @@ methods.concat m.instance_methods(false) } end - variables += add_rails_columns( "#{vartype}" ) if vartype && vartype.length > 0 + variables += add_rails_columns( "#{vartype}" ) if vartype && !invalid_vartype.include?(vartype) when /^\(?\s*[A-Za-z0-9:^@.%\/+*\(\)]+\.\.\.?[A-Za-z0-9:^@.%\/+*\(\)]+\s*\)?\.([^.]*)/ message = $1 diff -Nru vim-7.4.2156/runtime/autoload/tar.vim vim-8.0.0134/runtime/autoload/tar.vim --- vim-7.4.2156/runtime/autoload/tar.vim 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/autoload/tar.vim 2016-12-14 20:42:00.000000000 +0000 @@ -117,7 +117,7 @@ if !filereadable(a:tarfile) " call Decho('a:tarfile<'.a:tarfile.'> not filereadable') if a:tarfile !~# '^\a\+://' - " if its an url, don't complain, let url-handlers such as vim do its thing + " if it's an url, don't complain, let url-handlers such as vim do its thing redraw! echohl Error | echo "***error*** (tar#Browse) File not readable<".a:tarfile.">" | echohl None endif diff -Nru vim-7.4.2156/runtime/autoload/vimball.vim vim-8.0.0134/runtime/autoload/vimball.vim --- vim-7.4.2156/runtime/autoload/vimball.vim 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/autoload/vimball.vim 2016-12-14 20:42:00.000000000 +0000 @@ -347,7 +347,7 @@ " call Decho("exe tabn ".curtabnr) exe "tabn ".curtabnr - " set up help if its a doc/*.txt file + " set up help if it's a doc/*.txt file " call Decho("didhelp<".didhelp."> fname<".fname.">") if a:really && didhelp == "" && fname =~ 'doc/[^/]\+\.\(txt\|..x\)$' let didhelp= substitute(fname,'^\(.*\ " License: Vim License (see vim's :help license) " Copyright: Copyright (C) 2005-2013 Charles E. Campbell {{{1 @@ -20,10 +20,10 @@ if &cp || exists("g:loaded_zip") finish endif -let g:loaded_zip= "v27" +let g:loaded_zip= "v28" if v:version < 702 echohl WarningMsg - echo "***warning*** this version of zip needs vim 7.2" + echo "***warning*** this version of zip needs vim 7.2 or later" echohl Normal finish endif @@ -53,6 +53,9 @@ if !exists("g:zip_unzipcmd") let g:zip_unzipcmd= "unzip" endif +if !exists("g:zip_extractcmd") + let g:zip_extractcmd= g:zip_unzipcmd +endif " ---------------- " Functions: {{{1 @@ -62,14 +65,14 @@ " zip#Browse: {{{2 fun! zip#Browse(zipfile) " call Dfunc("zip#Browse(zipfile<".a:zipfile.">)") - " sanity check: insure that the zipfile has "PK" as its first two letters + " sanity check: ensure that the zipfile has "PK" as its first two letters " (zipped files have a leading PK as a "magic cookie") if !filereadable(a:zipfile) || readfile(a:zipfile, "", 1)[0] !~ '^PK' exe "noautocmd e ".fnameescape(a:zipfile) " call Dret("zip#Browse : not a zipfile<".a:zipfile.">") return " else " Decho -" call Decho("zip#Browse: a:zipfile<".a:zipfile."> passed PK test - its a zip file") +" call Decho("zip#Browse: a:zipfile<".a:zipfile."> passed PK test - it's a zip file") endif let repkeep= &report @@ -92,7 +95,7 @@ endif if !filereadable(a:zipfile) if a:zipfile !~# '^\a\+://' - " if its an url, don't complain, let url-handlers such as vim do its thing + " if it's an url, don't complain, let url-handlers such as vim do its thing redraw! echohl Error | echo "***error*** (zip#Browse) File not readable<".a:zipfile.">" | echohl None " call inputsave()|call input("Press to continue")|call inputrestore() @@ -136,8 +139,10 @@ return endif + " Maps associated with zip plugin setlocal noma nomod ro - noremap :call ZipBrowseSelect() + noremap :call ZipBrowseSelect() + noremap x :call zip#Extract() let &report= repkeep " call Dret("zip#Browse") @@ -204,6 +209,15 @@ endif " call Decho("zipfile<".zipfile.">") " call Decho("fname <".fname.">") + " sanity check + if !executable(substitute(g:zip_unzipcmd,'\s\+.*$','','')) + redraw! + echohl Error | echo "***error*** (zip#Read) sorry, your system doesn't appear to have the ".g:zip_unzipcmd." program" | echohl None +" call inputsave()|call input("Press to continue")|call inputrestore() + let &report= repkeep +" call Dret("zip#Write") + return + endif " the following code does much the same thing as " exe "keepj sil! r! ".g:zip_unzipcmd." -p -- ".s:Escape(zipfile,1)." ".s:Escape(fnameescape(fname),1) @@ -236,9 +250,9 @@ set report=10 " sanity checks - if !executable(g:zip_zipcmd) + if !executable(substitute(g:zip_zipcmd,'\s\+.*$','','')) redraw! - echohl Error | echo "***error*** (zip#Write) sorry, your system doesn't appear to have the zip pgm" | echohl None + echohl Error | echo "***error*** (zip#Write) sorry, your system doesn't appear to have the ".g:zip_zipcmd." program" | echohl None " call inputsave()|call input("Press to continue")|call inputrestore() let &report= repkeep " call Dret("zip#Write") @@ -345,6 +359,48 @@ endfun " --------------------------------------------------------------------- +" zip#Extract: extract a file from a zip archive {{{2 +fun! zip#Extract() +" call Dfunc("zip#Extract()") + + let repkeep= &report + set report=10 + let fname= getline(".") +" call Decho("fname<".fname.">") + + " sanity check + if fname =~ '^"' + let &report= repkeep +" call Dret("zip#Extract") + return + endif + if fname =~ '/$' + redraw! + echohl Error | echo "***error*** (zip#Extract) Please specify a file, not a directory" | echohl None + let &report= repkeep +" call Dret("zip#Extract") + return + endif + + " extract the file mentioned under the cursor +" call Decho("system(".g:zip_extractcmd." ".shellescape(b:zipfile)." ".shellescape(shell).")") + call system(g:zip_extractcmd." ".shellescape(b:zipfile)." ".shellescape(shell)) +" call Decho("zipfile<".b:zipfile.">") + if v:shell_error != 0 + echohl Error | echo "***error*** ".g:zip_extractcmd." ".b:zipfile." ".fname.": failed!" | echohl NONE + elseif !filereadable(fname) + echohl Error | echo "***error*** attempted to extract ".fname." but it doesn't appear to be present!" + else + echo "***note*** successfully extracted ".fname + endif + + " restore option + let &report= repkeep + +" call Dret("zip#Extract") +endfun + +" --------------------------------------------------------------------- " s:Escape: {{{2 fun! s:Escape(fname,isfilt) " call Dfunc("QuoteFileDir(fname<".a:fname."> isfilt=".a:isfilt.")") diff -Nru vim-7.4.2156/runtime/colors/evening.vim vim-8.0.0134/runtime/colors/evening.vim --- vim-7.4.2156/runtime/colors/evening.vim 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/colors/evening.vim 2016-12-14 20:42:00.000000000 +0000 @@ -1,6 +1,6 @@ " Vim color file " Maintainer: Bram Moolenaar -" Last Change: 2006 Apr 14 +" Last Change: 2016 Oct 10 " This color scheme uses a dark grey background. @@ -46,8 +46,8 @@ hi CursorLine term=underline cterm=underline guibg=grey40 " Groups for syntax highlighting -hi Constant term=underline ctermfg=Magenta guifg=#ffa0a0 guibg=grey5 -hi Special term=bold ctermfg=LightRed guifg=Orange guibg=grey5 +hi Constant term=underline ctermfg=Magenta guifg=#ffa0a0 +hi Special term=bold ctermfg=LightRed guifg=Orange if &t_Co > 8 hi Statement term=bold cterm=bold ctermfg=Yellow guifg=#ffff60 gui=bold endif diff -Nru vim-7.4.2156/runtime/colors/koehler.vim vim-8.0.0134/runtime/colors/koehler.vim --- vim-7.4.2156/runtime/colors/koehler.vim 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/colors/koehler.vim 2016-12-14 20:42:00.000000000 +0000 @@ -2,7 +2,7 @@ " vim: tw=0 ts=4 sw=4 " Vim color file " Maintainer: Ron Aaron -" Last Change: 2013 May 23 +" Last Change: 2016 Sep 04 hi clear set background=dark @@ -45,6 +45,7 @@ hi TabLineSel term=reverse ctermfg=white ctermbg=lightblue guifg=white guibg=blue hi Underlined term=underline cterm=bold,underline ctermfg=lightblue guifg=lightblue gui=bold,underline hi Ignore ctermfg=black ctermbg=black guifg=black guibg=black +hi EndOfBuffer term=bold cterm=bold ctermfg=darkred guifg=#cc0000 gui=bold hi link IncSearch Visual hi link String Constant hi link Character Constant diff -Nru vim-7.4.2156/runtime/colors/README.txt vim-8.0.0134/runtime/colors/README.txt --- vim-7.4.2156/runtime/colors/README.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/colors/README.txt 2016-12-14 20:42:00.000000000 +0000 @@ -41,9 +41,16 @@ autocmd SourcePre */colors/blue_sky.vim set background=dark Replace "blue_sky" with the name of the colorscheme. -In case you want to tweak a colorscheme after it was loaded, check out that +In case you want to tweak a colorscheme after it was loaded, check out the ColorScheme autocmd event. +To customize a colorscheme use another name, e.g. "~/.vim/colors/mine.vim", +and use `:runtime` to load the original colorscheme: + " load the "evening" colorscheme + runtime colors/evening.vim + " change the color of statements + hi Statement ctermfg=Blue guifg=Blue + To see which highlight group is used where, find the help for "highlight-groups" and "group-name". diff -Nru vim-7.4.2156/runtime/compiler/context.vim vim-8.0.0134/runtime/compiler/context.vim --- vim-7.4.2156/runtime/compiler/context.vim 1970-01-01 00:00:00.000000000 +0000 +++ vim-8.0.0134/runtime/compiler/context.vim 2016-12-14 20:42:00.000000000 +0000 @@ -0,0 +1,54 @@ +" Vim compiler file +" Compiler: ConTeXt typesetting engine +" Maintainer: Nicola Vitacolonna +" Last Change: 2016 Oct 21 + +if exists("current_compiler") + finish +endif +let s:keepcpo= &cpo +set cpo&vim + +if exists(":CompilerSet") != 2 " older Vim always used :setlocal + command -nargs=* CompilerSet setlocal +endif + +" If makefile exists and we are not asked to ignore it, we use standard make +" (do not redefine makeprg) +if get(b:, 'context_ignore_makefile', get(g:, 'context_ignore_makefile', 0)) || + \ (!filereadable('Makefile') && !filereadable('makefile')) + let current_compiler = 'context' + " The following assumes that the current working directory is set to the + " directory of the file to be typeset + let &l:makeprg = get(b:, 'context_mtxrun', get(g:, 'context_mtxrun', 'mtxrun')) + \ . ' --script context --autogenerate --nonstopmode --synctex=' + \ . (get(b:, 'context_synctex', get(g:, 'context_synctex', 0)) ? '1' : '0') + \ . ' ' . get(b:, 'context_extra_options', get(g:, 'context_extra_options', '')) + \ . ' ' . shellescape(expand('%:p:t')) +else + let current_compiler = 'make' +endif + +let b:context_errorformat = '' + \ . '%-Popen source%.%#> %f,' + \ . '%-Qclose source%.%#> %f,' + \ . "%-Popen source%.%#name '%f'," + \ . "%-Qclose source%.%#name '%f'," + \ . '%Etex %trror%.%#mp error on line %l in file %f:%.%#,' + \ . 'tex %trror%.%#error on line %l in file %f: %m,' + \ . '%Elua %trror%.%#error on line %l in file %f:,' + \ . '%+Emetapost %#> error: %#,' + \ . '! error: %#%m,' + \ . '%-C %#,' + \ . '%C! %m,' + \ . '%Z[ctxlua]%m,' + \ . '%+C<*> %.%#,' + \ . '%-C%.%#,' + \ . '%Z...%m,' + \ . '%-Zno-error,' + \ . '%-G%.%#' " Skip remaining lines + +execute 'CompilerSet errorformat=' . escape(b:context_errorformat, ' ') + +let &cpo = s:keepcpo +unlet s:keepcpo diff -Nru vim-7.4.2156/runtime/compiler/csslint.vim vim-8.0.0134/runtime/compiler/csslint.vim --- vim-7.4.2156/runtime/compiler/csslint.vim 1970-01-01 00:00:00.000000000 +0000 +++ vim-8.0.0134/runtime/compiler/csslint.vim 2016-12-14 20:42:00.000000000 +0000 @@ -0,0 +1,16 @@ +" Vim compiler file +" Compiler: csslint for CSS +" Maintainer: Daniel Moch +" Last Change: 2016 May 21 + +if exists("current_compiler") + finish +endif +let current_compiler = "csslint" + +if exists(":CompilerSet") != 2 " older Vim always used :setlocal + command -nargs=* CompilerSet setlocal +endif + +CompilerSet makeprg=csslint\ --format=compact +CompilerSet errorformat=%-G,%-G%f:\ lint\ free!,%f:\ line\ %l\\,\ col\ %c\\,\ %trror\ -\ %m,%f:\ line\ %l\\,\ col\ %c\\,\ %tarning\ -\ %m,%f:\ line\ %l\\,\ col\ %c\\,\ %m diff -Nru vim-7.4.2156/runtime/compiler/cucumber.vim vim-8.0.0134/runtime/compiler/cucumber.vim --- vim-7.4.2156/runtime/compiler/cucumber.vim 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/compiler/cucumber.vim 2016-12-14 20:42:00.000000000 +0000 @@ -1,7 +1,7 @@ " Vim compiler file " Compiler: Cucumber " Maintainer: Tim Pope -" Last Change: 2010 Aug 09 +" Last Change: 2016 Aug 29 if exists("current_compiler") finish @@ -19,7 +19,7 @@ CompilerSet errorformat= \%W%m\ (Cucumber::Undefined), - \%E%m\ (%.%#), + \%E%m\ (%\\S%#), \%Z%f:%l, \%Z%f:%l:%.%# diff -Nru vim-7.4.2156/runtime/compiler/ghc.vim vim-8.0.0134/runtime/compiler/ghc.vim --- vim-7.4.2156/runtime/compiler/ghc.vim 1970-01-01 00:00:00.000000000 +0000 +++ vim-8.0.0134/runtime/compiler/ghc.vim 2016-12-14 20:42:00.000000000 +0000 @@ -0,0 +1,26 @@ +" Vim compiler file +" Compiler: GHC Haskell Compiler +" Maintainer: Daniel Campoverde +" Latest Revision: 2016-11-29 + +if exists("current_compiler") + finish +endif +let current_compiler = "ghc" + +let s:cpo_save = &cpo +set cpo&vim + +CompilerSet errorformat= + \%-G%.%#:\ build, + \%-G%.%#preprocessing\ library\ %.%#, + \%-G[%.%#]%.%#, + \%E%f:%l:%c:\ %m, + \%-G--%.%# + +if exists('g:compiler_ghc_ignore_unmatched_lines') + CompilerSet errorformat+=%-G%.%# +endif + +let &cpo = s:cpo_save +unlet s:cpo_save diff -Nru vim-7.4.2156/runtime/compiler/haml.vim vim-8.0.0134/runtime/compiler/haml.vim --- vim-7.4.2156/runtime/compiler/haml.vim 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/compiler/haml.vim 2016-12-14 20:42:00.000000000 +0000 @@ -1,7 +1,7 @@ " Vim compiler file " Compiler: Haml " Maintainer: Tim Pope -" Last Change: 2013 May 30 +" Last Change: 2016 Aug 29 if exists("current_compiler") finish @@ -15,7 +15,7 @@ let s:cpo_save = &cpo set cpo-=C -CompilerSet makeprg=haml\ -c +CompilerSet makeprg=haml CompilerSet errorformat= \Haml\ %trror\ on\ line\ %l:\ %m, diff -Nru vim-7.4.2156/runtime/compiler/pylint.vim vim-8.0.0134/runtime/compiler/pylint.vim --- vim-7.4.2156/runtime/compiler/pylint.vim 1970-01-01 00:00:00.000000000 +0000 +++ vim-8.0.0134/runtime/compiler/pylint.vim 2016-12-14 20:42:00.000000000 +0000 @@ -0,0 +1,16 @@ +" Vim compiler file +" Compiler: Pylint for Python +" Maintainer: Daniel Moch +" Last Change: 2016 May 20 + +if exists("current_compiler") + finish +endif +let current_compiler = "pylint" + +if exists(":CompilerSet") != 2 " older Vim always used :setlocal + command -nargs=* CompilerSet setlocal +endif + +CompilerSet makeprg=pylint\ --output-format=text\ --msg-template=\"{path}:{line}:{column}:{C}:\ [{symbol}]\ {msg}\"\ --reports=no +CompilerSet errorformat=%A%f:%l:%c:%t:\ %m,%A%f:%l:\ %m,%A%f:(%l):\ %m,%-Z%p^%.%#,%-G%.%# diff -Nru vim-7.4.2156/runtime/compiler/rake.vim vim-8.0.0134/runtime/compiler/rake.vim --- vim-7.4.2156/runtime/compiler/rake.vim 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/compiler/rake.vim 2016-12-14 20:42:00.000000000 +0000 @@ -27,7 +27,11 @@ \%\\s%#[%f:%l:\ %#%m, \%\\s%#%f:%l:\ %#%m, \%\\s%#%f:%l:, - \%m\ [%f:%l]: + \%m\ [%f:%l]:, + \%+Erake\ aborted!, + \%+EDon't\ know\ how\ to\ build\ task\ %.%#, + \%+Einvalid\ option:%.%#, + \%+Irake\ %\\S%\\+%\\s%\\+#\ %.%# let &cpo = s:cpo_save unlet s:cpo_save diff -Nru vim-7.4.2156/runtime/compiler/rspec.vim vim-8.0.0134/runtime/compiler/rspec.vim --- vim-7.4.2156/runtime/compiler/rspec.vim 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/compiler/rspec.vim 2016-12-14 20:42:00.000000000 +0000 @@ -22,9 +22,10 @@ \%f:%l:\ %tarning:\ %m, \%E%.%#:in\ `load':\ %f:%l:%m, \%E%f:%l:in\ `%*[^']':\ %m, - \%-Z\ \ \ \ \ \#\ %f:%l:%.%#, + \%-Z\ \ \ \ \ %\\+\#\ %f:%l:%.%#, \%E\ \ %\\d%\\+)%.%#, \%C\ \ \ \ \ %m, + \%C%\\s%#, \%-G%.%# let &cpo = s:cpo_save diff -Nru vim-7.4.2156/runtime/compiler/rubyunit.vim vim-8.0.0134/runtime/compiler/rubyunit.vim --- vim-7.4.2156/runtime/compiler/rubyunit.vim 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/compiler/rubyunit.vim 2016-12-14 20:42:00.000000000 +0000 @@ -17,6 +17,8 @@ set cpo-=C CompilerSet makeprg=testrb +" CompilerSet makeprg=ruby\ -Itest +" CompilerSet makeprg=m CompilerSet errorformat=\%W\ %\\+%\\d%\\+)\ Failure:, \%C%m\ [%f:%l]:, diff -Nru vim-7.4.2156/runtime/compiler/sass.vim vim-8.0.0134/runtime/compiler/sass.vim --- vim-7.4.2156/runtime/compiler/sass.vim 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/compiler/sass.vim 2016-12-14 20:42:00.000000000 +0000 @@ -1,7 +1,7 @@ " Vim compiler file " Compiler: Sass " Maintainer: Tim Pope -" Last Change: 2013 May 30 +" Last Change: 2016 Aug 29 if exists("current_compiler") finish @@ -15,7 +15,7 @@ let s:cpo_save = &cpo set cpo-=C -CompilerSet makeprg=sass\ -c +CompilerSet makeprg=sass CompilerSet errorformat= \%f:%l:%m\ (Sass::Syntax%trror), diff -Nru vim-7.4.2156/runtime/defaults.vim vim-8.0.0134/runtime/defaults.vim --- vim-7.4.2156/runtime/defaults.vim 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/defaults.vim 2016-12-14 20:42:00.000000000 +0000 @@ -1,7 +1,7 @@ " The default vimrc file. " " Maintainer: Bram Moolenaar -" Last change: 2016 Jul 29 +" Last change: 2016 Sep 02 " " This is loaded if no vimrc file was found. " Except when Vim is run with "-u NONE" or "-C". @@ -13,6 +13,12 @@ finish endif +" Bail out if something that ran earlier, e.g. a system wide vimrc, does not +" want Vim to use these default values. +if exists('skip_defaults_vim') + finish +endif + " Use Vim settings, rather than Vi settings (much better!). " This must be first, because it changes other options as a side effect. set nocompatible @@ -25,9 +31,16 @@ set showcmd " display incomplete commands set wildmenu " display completion matches in a status line +set ttimeout " time out for key codes +set ttimeoutlen=100 " wait up to 100ms after Esc for special key + " Show @@@ in the last line if it is truncated. set display=truncate +" Show a few lines of context around the cursor. Note that this makes the +" text scroll if you mouse-click near the start or end of the window. +set scrolloff=5 + " Do incremental searching when it's possible to timeout. if has('reltime') set incsearch @@ -104,9 +117,9 @@ \ | wincmd p | diffthis endif -if has('langmap') && exists('+langnoremap') +if has('langmap') && exists('+langremap') " Prevent that the langmap option applies to characters that result from a - " mapping. If unset (default), this may break plugins (but it's backward + " mapping. If set (default), this may break plugins (but it's backward " compatible). - set langnoremap + set nolangremap endif diff -Nru vim-7.4.2156/runtime/doc/arabic.txt vim-8.0.0134/runtime/doc/arabic.txt --- vim-7.4.2156/runtime/doc/arabic.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/arabic.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*arabic.txt* For Vim version 7.4. Last change: 2010 Nov 13 +*arabic.txt* For Vim version 8.0. Last change: 2010 Nov 13 VIM REFERENCE MANUAL by Nadim Shaikli diff -Nru vim-7.4.2156/runtime/doc/autocmd.txt vim-8.0.0134/runtime/doc/autocmd.txt --- vim-7.4.2156/runtime/doc/autocmd.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/autocmd.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*autocmd.txt* For Vim version 7.4. Last change: 2016 Jul 29 +*autocmd.txt* For Vim version 8.0. Last change: 2016 Sep 27 VIM REFERENCE MANUAL by Bram Moolenaar @@ -79,11 +79,15 @@ Here Vim expands to the name of the file containing this line. -When your .vimrc file is sourced twice, the autocommands will appear twice. -To avoid this, put this command in your .vimrc file, before defining -autocommands: > - - :autocmd! " Remove ALL autocommands for the current group. +`:autocmd` adds to the list of autocommands regardless of whether they are +already present. When your .vimrc file is sourced twice, the autocommands +will appear twice. To avoid this, define your autocommands in a group, so +that you can easily clear them: > + + augroup vimrc + autocmd! " Remove all vimrc autocommands + au BufNewFile,BufRead *.html so :h/html.vim + augroup END If you don't want to remove all autocommands, you can instead use a variable to ensure that Vim includes the autocommands only once: > @@ -130,8 +134,13 @@ :au[tocmd]! [group] {event} Remove ALL autocommands for {event}. + Warning: You should not do this without a group for + |BufRead| and other common events, it can break + plugins, syntax highlighting, etc. :au[tocmd]! [group] Remove ALL autocommands. + Warning: You should normally not do this without a + group, it breaks plugins, syntax highlighting, etc. When the [group] argument is not given, Vim uses the current group (as defined with ":augroup"); otherwise, Vim uses the group defined with [group]. @@ -419,8 +428,8 @@ NOTE: When this autocommand is executed, the current buffer "%" may be different from the buffer being unloaded "". - Don't change to another buffer, it will cause - problems. + Don't change to another buffer or window, it + will cause problems! When exiting and v:dying is 2 or more this event is not triggered. *BufWinEnter* @@ -784,7 +793,9 @@ |:vimgrepadd|, |:lvimgrepadd|, |:cscope|, |:cfile|, |:cgetfile|, |:caddfile|, |:lfile|, |:lgetfile|, |:laddfile|, |:helpgrep|, - |:lhelpgrep|). + |:lhelpgrep|, |:cexpr|, |:cgetexpr|, + |:caddexpr|, |:cbuffer|, |:cgetbuffer|, + |:caddbuffer|). The pattern is matched against the command being run. When |:grep| is used but 'grepprg' is set to "internal" it still matches "grep". @@ -981,7 +992,7 @@ *WinNew* WinNew When a new window was created. Not done for - the fist window, when Vim has just started. + the first window, when Vim has just started. Before a WinEnter event. ============================================================================== @@ -1065,6 +1076,9 @@ MS-DOS and OS/2). This was done because the backslash is difficult to use in a pattern and to make the autocommands portable across different systems. +It is possible to use |pattern| items, but they may not work as expected, +because of the translation done for the above. + *autocmd-changes* Matching with the pattern is done when an event is triggered. Changing the buffer name in one of the autocommands, or even deleting the buffer, does not @@ -1163,11 +1177,12 @@ different from existing {event} names, as this most likely will not do what you intended. - *:augroup-delete* *E367* *W19* + *:augroup-delete* *E367* *W19* *E936* :aug[roup]! {name} Delete the autocmd group {name}. Don't use this if there is still an autocommand using this group! You will get a warning if doing - it anyway. + it anyway. when the group is the current group + you will get error E936. To enter autocommands for a specific group, use this method: 1. Select the group with ":augroup {name}". diff -Nru vim-7.4.2156/runtime/doc/change.txt vim-8.0.0134/runtime/doc/change.txt --- vim-7.4.2156/runtime/doc/change.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/change.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*change.txt* For Vim version 7.4. Last change: 2016 Apr 12 +*change.txt* For Vim version 8.0. Last change: 2016 Nov 19 VIM REFERENCE MANUAL by Bram Moolenaar @@ -684,6 +684,7 @@ *:s_flags* The flags that you can use for the substitute commands: + *:&&* [&] Must be the first one: Keep the flags from the previous substitute command. Examples: > :&& @@ -872,6 +873,7 @@ the pattern (going left to right). When a parentheses group matches several times, the last one will be used for "\1", "\2", etc. Example: > :s/\(\(a[a-d] \)*\)/\2/ modifies "aa ab x" to "ab x" +The "\2" is for "\(a[a-d] \)". At first it matches "aa ", secondly "ab ". When using parentheses in combination with '|', like in \([ab]\)\|\([cd]\), either the first or second pattern in parentheses did not match, so either @@ -912,8 +914,7 @@ Substitute with an expression *sub-replace-expression* *sub-replace-\=* *s/\=* When the substitute string starts with "\=" the remainder is interpreted as an -expression. This does not work recursively: a |substitute()| function inside -the expression cannot use "\=" for the substitute string. +expression. The special meaning for characters as mentioned at |sub-replace-special| does not apply except for "". A character is used as a line break, you diff -Nru vim-7.4.2156/runtime/doc/channel.txt vim-8.0.0134/runtime/doc/channel.txt --- vim-7.4.2156/runtime/doc/channel.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/channel.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*channel.txt* For Vim version 7.4. Last change: 2016 Jul 15 +*channel.txt* For Vim version 8.0. Last change: 2016 Dec 01 VIM REFERENCE MANUAL by Bram Moolenaar @@ -25,13 +25,15 @@ {Vi does not have any of these features} {only when compiled with the |+channel| feature for channel stuff} + You can check this with: `has('channel')` {only when compiled with the |+job| feature for job stuff} + You can check this with: `has('job')` ============================================================================== 1. Overview *job-channel-overview* There are four main types of jobs: -1. A deamon, serving several Vim instances. +1. A daemon, serving several Vim instances. Vim connects to it with a socket. 2. One job working with one Vim instance, asynchronously. Uses a socket or pipes. @@ -54,7 +56,7 @@ - Using a job connected through pipes in NL mode. E.g., to run a style checker and receive errors and warnings. - Using a deamon, connecting over a socket in JSON mode. E.g. to lookup - crosss-refrences in a database. + cross-references in a database. ============================================================================== 2. Channel demo *channel-demo* *demoserver.py* @@ -153,7 +155,13 @@ func MyCloseHandler(channel) < Vim will invoke callbacks that handle data before invoking close_cb, thus when this function is called no more data will - be received. + be passed to the callbacks. + *channel-drop* +"drop" Specifies when to drop messages: + "auto" When there is no callback to handle a message. + The "close_cb" is also considered for this. + "never" All messages will be kept. + *waittime* "waittime" The time to wait for the connection to be made in milliseconds. A negative number waits forever. @@ -247,9 +255,15 @@ This way Vim knows which sent message matches with which received message and can call the right handler. Also when the messages arrive out of order. +A newline character is terminating the JSON text. This can be used to +separate the read text. For example, in Python: + splitidx = read_text.find('\n') + message = read_text[:splitidx] + rest = read_text[splitidx + 1:] + The sender must always send valid JSON to Vim. Vim can check for the end of the message by parsing the JSON. It will only accept the message if the end -was received. +was received. A newline after the message is optional. When the process wants to send a message to Vim without first receiving a message, it must use the number zero: @@ -269,7 +283,7 @@ handled by Vim internally, it does not require a handler for the channel. Possible commands are: *E903* *E904* *E905* - ["redraw" {forced}] + ["redraw", {forced}] ["ex", {Ex command}] ["normal", {Normal mode command}] ["expr", {expression}, {number}] @@ -361,7 +375,7 @@ ============================================================================== 6. Using a RAW or NL channel *channel-raw* -If mode is RAW or NL then a message can be send like this: > +If mode is RAW or NL then a message can be sent like this: > let response = ch_evalraw(channel, {string}) The {string} is sent as-is. The response will be what can be read from the @@ -389,6 +403,9 @@ It is not possible to use |ch_evalexpr()| or |ch_sendexpr()| on a raw channel. +A String in Vim cannot contain NUL bytes. To send or receive NUL bytes read +or write from a buffer. See |in_io-buffer| and |out_io-buffer|. + ============================================================================== 7. More channel functions *channel-more* @@ -407,7 +424,11 @@ message that is available: > let output = ch_read(channel, {'timeout': 0}) When no message was available then the result is v:none for a JSON or JS mode -channels, an empty string for a RAW or NL channel. +channels, an empty string for a RAW or NL channel. You can use |ch_canread()| +to check if there is something to read. + +Note that when there is no callback message are dropped. To avoid that add a +close callback to the channel. To read all output from a RAW channel that is available: > let output = ch_readraw(channel) @@ -454,6 +475,11 @@ Without the handler you need to read the output with |ch_read()| or |ch_readraw()|. You can do this in the close callback, see |read-in-close-cb|. +Note that if the job exits before you read the output, the output may be lost. +This depends on the system (on Unix this happens because closing the write end +of a pipe causes the read end to get EOF). To avoid this make the job sleep +for a short while before it exits. + The handler defined for "out_cb" will not receive stderr. If you want to handle that separately, add an "err_cb" handler: > let job = job_start(command, {"out_cb": "MyHandler", @@ -474,7 +500,7 @@ Job input from a buffer ~ - + *in_io-buffer* To run a job that reads from a buffer: > let job = job_start({command}, \ {'in_io': 'buffer', 'in_name': 'mybuffer'}) @@ -490,6 +516,10 @@ time a line is added to the buffer, the last-but-one line will be send to the job stdin. This allows for editing the last line and sending it when pressing Enter. + *channel-close-in* +When not using the special mode the pipe or socket will be closed after the +last line has been written. This signals the reading end that the input +finished. You can also use |ch_close_in()| to close it sooner. NUL bytes in the text will be passed to the job (internally Vim stores these as NL bytes). @@ -501,7 +531,7 @@ add a close callback and read the output there: > func! CloseHandler(channel) - while ch_status(a:channel) == 'buffered' + while ch_status(a:channel, {'part': 'out'}) == 'buffered' echomsg ch_read(a:channel) endwhile endfunc @@ -514,7 +544,7 @@ To start another process without creating a channel: > let job = job_start(command, - \ {"in_io": "null", "out_io": "null", "err_io": "null"}) + \ {"in_io": "null", "out_io": "null", "err_io": "null"}) This starts {command} in the background, Vim does not wait for it to finish. @@ -576,11 +606,16 @@ "close_cb": handler Callback for when the channel is closed. Same as "close_cb" on |ch_open()|, see |close_cb|. *job-exit_cb* +"drop" Specifies when to drop messages. Same as "drop" on + |ch_open()|, see |channel-drop|. For "auto" the + exit_cb is not considered. + "exit_cb": handler Callback for when the job ends. The arguments are the job and the exit status. - Vim checks about every 10 seconds for jobs that ended. - The check also be triggered by calling |job_status()|, - which may then invoke the exit_cb handler. + Vim checks up to 10 times per second for jobs that + ended. The check can also be triggered by calling + |job_status()|, which may then invoke the exit_cb + handler. Note that data can be buffered, callbacks may still be called after the process ends. *job-timeout* @@ -608,7 +643,7 @@ "channel": {channel} Use an existing channel instead of creating a new one. The parts of the channel that get used for the new job will be disconnected from what they were used before. - If the channel was still use by another job this may + If the channel was still used by another job this may cause I/O errors. Existing callbacks and other settings remain. @@ -626,29 +661,33 @@ "out_io": "null" disconnect stdout (goes to /dev/null) "out_io": "pipe" stdout is connected to the channel (default) "out_io": "file" stdout writes to a file -"out_io": "buffer" stdout appends to a buffer (see below) +"out_io": "buffer" stdout appends to a buffer (see below) "out_name": "/path/file" the name of the file or buffer to write to "out_buf": number the number of the buffer to write to "out_modifiable": 0 when writing to a buffer, 'modifiable' will be off (see below) +"out_msg": 0 when writing to a new buffer, the first line will be + set to "Reading from channel output..." *job-err_io* *err_name* *err_buf* "err_io": "out" stderr messages to go to stdout "err_io": "null" disconnect stderr (goes to /dev/null) "err_io": "pipe" stderr is connected to the channel (default) "err_io": "file" stderr writes to a file -"err_io": "buffer" stderr appends to a buffer (see below) +"err_io": "buffer" stderr appends to a buffer (see below) "err_name": "/path/file" the name of the file or buffer to write to "err_buf": number the number of the buffer to write to "err_modifiable": 0 when writing to a buffer, 'modifiable' will be off (see below) +"err_msg": 0 when writing to a new buffer, the first line will be + set to "Reading from channel error..." "block_write": number only for testing: pretend every other write to stdin will block Writing to a buffer ~ - + *out_io-buffer* When the out_io or err_io mode is "buffer" and there is a callback, the text is appended to the buffer before invoking the callback. @@ -671,11 +710,19 @@ For a new buffer 'buftype' is set to "nofile" and 'bufhidden' to "hide". If you prefer other settings, create the buffer first and pass the buffer number. - + *out_modifiable* *err_modifiable* The "out_modifiable" and "err_modifiable" options can be used to set the 'modifiable' option off, or write to a buffer that has 'modifiable' off. That means that lines will be appended to the buffer, but the user can't easily change the buffer. + *out_msg* *err_msg* +The "out_msg" option can be used to specify whether a new buffer will have the +first line set to "Reading from channel output...". The default is to add the +message. "err_msg" does the same for channel error. + +'modifiable' option off, or write to a buffer that has 'modifiable' off. That +means that lines will be appended to the buffer, but the user can't easily +change the buffer. When an existing buffer is to be written where 'modifiable' is off and the "out_modifiable" or "err_modifiable" options is not zero, an error is given diff -Nru vim-7.4.2156/runtime/doc/cmdline.txt vim-8.0.0134/runtime/doc/cmdline.txt --- vim-7.4.2156/runtime/doc/cmdline.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/cmdline.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*cmdline.txt* For Vim version 7.4. Last change: 2015 Dec 17 +*cmdline.txt* For Vim version 8.0. Last change: 2016 Sep 27 VIM REFERENCE MANUAL by Bram Moolenaar @@ -229,9 +229,10 @@ the clipboard. |modeless-selection| If there is no selection CTRL-Y is inserted as a character. -CTRL-J *c_CTRL-J* *c_* *c_* *c_CR* +CTRL-M or CTRL-J *c_CTRL-M* *c_CTRL-J* *c_* *c_* *c_CR* or start entered command - *c_* *c_Esc* + +CTRL-[ *c_CTRL-[* *c_* *c_Esc* When typed and 'x' not present in 'cpoptions', quit Command-line mode without executing. In macros or when 'x' present in 'cpoptions', start entered command. @@ -358,8 +359,11 @@ List entries 6 to 12 from the search history: > :history / 6,12 < - List the recent five entries from all histories: > - :history all -5, + List the penultimate entry from all histories: > + :history all -2 +< + List the most recent two entries from all histories: > + :history all -2, :keepp[atterns] {command} *:keepp* *:keeppatterns* Execute {command}, without adding anything to the search @@ -423,12 +427,26 @@ If there are multiple matches the longest common part is inserted in place of the pattern. If the result is shorter than the pattern, no completion is done. + */_CTRL-L* When 'incsearch' is set, entering a search pattern for "/" or "?" and the current match is displayed then CTRL-L will add one character from the end of the current match. If 'ignorecase' and 'smartcase' are set and the command line has no uppercase characters, the added character is converted to lowercase. + *c_CTRL-G* */_CTRL-G* +CTRL-G When 'incsearch' is set, entering a search pattern for "/" or + "?" and the current match is displayed then CTRL-G will move + to the next match (does not take |search-offset| into account) + Use CTRL-T to move to the previous match. Hint: on a regular + keyboard T is above G. + *c_CTRL-T* */_CTRL-T* +CTRL-T When 'incsearch' is set, entering a search pattern for "/" or + "?" and the current match is displayed then CTRL-T will move + to the previous match (does not take |search-offset| into + account). + Use CTRL-G to move to the next match. Hint: on a regular + keyboard T is above G. The 'wildchar' option defaults to (CTRL-E when in Vi compatible mode; in a previous version was used). In the pattern standard wildcards '*' and diff -Nru vim-7.4.2156/runtime/doc/debugger.txt vim-8.0.0134/runtime/doc/debugger.txt --- vim-7.4.2156/runtime/doc/debugger.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/debugger.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*debugger.txt* For Vim version 7.4. Last change: 2005 Mar 29 +*debugger.txt* For Vim version 8.0. Last change: 2005 Mar 29 VIM REFERENCE MANUAL by Gordon Prieur diff -Nru vim-7.4.2156/runtime/doc/debug.txt vim-8.0.0134/runtime/doc/debug.txt --- vim-7.4.2156/runtime/doc/debug.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/debug.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*debug.txt* For Vim version 7.4. Last change: 2012 Feb 11 +*debug.txt* For Vim version 8.0. Last change: 2012 Feb 11 VIM REFERENCE MANUAL by Bram Moolenaar diff -Nru vim-7.4.2156/runtime/doc/develop.txt vim-8.0.0134/runtime/doc/develop.txt --- vim-7.4.2156/runtime/doc/develop.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/develop.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*develop.txt* For Vim version 7.4. Last change: 2016 Jan 31 +*develop.txt* For Vim version 8.0. Last change: 2016 Jan 31 VIM REFERENCE MANUAL by Bram Moolenaar diff -Nru vim-7.4.2156/runtime/doc/diff.txt vim-8.0.0134/runtime/doc/diff.txt --- vim-7.4.2156/runtime/doc/diff.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/diff.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,12 +1,12 @@ -*diff.txt* For Vim version 7.4. Last change: 2015 Nov 01 +*diff.txt* For Vim version 8.0. Last change: 2016 Aug 24 VIM REFERENCE MANUAL by Bram Moolenaar *diff* *vimdiff* *gvimdiff* *diff-mode* -This file describes the |+diff| feature: Showing differences between two, -three or four versions of the same file. +This file describes the |+diff| feature: Showing differences between two to +eight versions of the same file. The basics are explained in section |08.7| of the user manual. @@ -117,7 +117,7 @@ If you always prefer a vertical split include "vertical" in 'diffopt'. *E96* -There can be up to four buffers with 'diff' set. +There can be up to eight buffers with 'diff' set. Since the option values are remembered with the buffer, you can edit another file for a moment and come back to the same file and be in diff mode again. diff -Nru vim-7.4.2156/runtime/doc/digraph.txt vim-8.0.0134/runtime/doc/digraph.txt --- vim-7.4.2156/runtime/doc/digraph.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/digraph.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*digraph.txt* For Vim version 7.4. Last change: 2014 Jun 19 +*digraph.txt* For Vim version 8.0. Last change: 2016 Nov 04 VIM REFERENCE MANUAL by Bram Moolenaar @@ -147,7 +147,7 @@ Two 2 Hook Nine 9 Horn - Equals = Cyrillic (= used as second char) + Equals = Cyrillic (= used as second char) Asterisk * Greek Percent sign % Greek/Cyrillic special Plus + smalls: Arabic, capitals: Hebrew @@ -926,6 +926,7 @@ † /- 2020 8224 DAGGER ‡ /= 2021 8225 DOUBLE DAGGER ‥ .. 2025 8229 TWO DOT LEADER +… ,. 2026 8230 HORIZONTAL ELLIPSIS ‰ %0 2030 8240 PER MILLE SIGN ′ 1' 2032 8242 PRIME ″ 2' 2033 8243 DOUBLE PRIME diff -Nru vim-7.4.2156/runtime/doc/editing.txt vim-8.0.0134/runtime/doc/editing.txt --- vim-7.4.2156/runtime/doc/editing.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/editing.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*editing.txt* For Vim version 7.4. Last change: 2016 Mar 28 +*editing.txt* For Vim version 8.0. Last change: 2016 Nov 24 VIM REFERENCE MANUAL by Bram Moolenaar @@ -181,7 +181,8 @@ protection, add a '!' to the command. The changes will then be lost. For example: ":q" will not work if the buffer was changed, but ":q!" will. To see whether the buffer was changed use the "CTRL-G" command. The message includes -the string "[Modified]" if the buffer has been changed. +the string "[Modified]" if the buffer has been changed, or "+" if the 'm' flag +is in 'shortmess'. If you want to automatically save the changes without asking, switch on the 'autowriteall' option. 'autowrite' is the associated Vi-compatible option @@ -976,12 +977,12 @@ *:wa* *:wall* :wa[ll] Write all changed buffers. Buffers without a file - name or which are readonly are not written. {not in - Vi} + name cause an error message. Buffers which are + readonly are not written. {not in Vi} :wa[ll]! Write all changed buffers, even the ones that are readonly. Buffers without a file name are not - written. {not in Vi} + written and cause an error message. {not in Vi} Vim will warn you if you try to overwrite a file that has been changed @@ -1114,10 +1115,12 @@ edited. See |:confirm| and 'confirm'. {not in Vi} :q[uit]! Quit without writing, also when the current buffer has - changes. If this is the last window and there is a - modified hidden buffer, the current buffer is - abandoned and the first changed hidden buffer becomes - the current buffer. + changes. The buffer is unloaded, also when it has + 'hidden' set. + If this is the last window and there is a modified + hidden buffer, the current buffer is abandoned and the + first changed hidden buffer becomes the current + buffer. Use ":qall!" to exit always. :cq[uit] Quit always, without writing, and return an error diff -Nru vim-7.4.2156/runtime/doc/eval.txt vim-8.0.0134/runtime/doc/eval.txt --- vim-7.4.2156/runtime/doc/eval.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/eval.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*eval.txt* For Vim version 7.4. Last change: 2016 Aug 02 +*eval.txt* For Vim version 8.0. Last change: 2016 Nov 29 VIM REFERENCE MANUAL by Bram Moolenaar @@ -9,7 +9,7 @@ Using expressions is introduced in chapter 41 of the user manual |usr_41.txt|. Note: Expression evaluation can be disabled at compile time. If this has been -done, the features in this document are not available. See |+eval| and +done, the features in this document are not available. See |+eval| and |no-eval-feature|. 1. Variables |variables| @@ -29,6 +29,7 @@ 10. No +eval feature |no-eval-feature| 11. The sandbox |eval-sandbox| 12. Textlock |textlock| +13. Testing |testing| {Vi does not have any of these commands} @@ -42,7 +43,7 @@ Number A 32 or 64 bit signed number. |expr-number| *Number* 64-bit Numbers are available only when compiled with the |+num64| feature. - Examples: -123 0x10 0177 + Examples: -123 0x10 0177 0b1011 Float A floating point number. |floating-point-format| *Float* {only when compiled with the |+float| feature} @@ -118,16 +119,17 @@ *non-zero-arg* Function arguments often behave slightly different from |TRUE|: If the argument is present and it evaluates to a non-zero Number, |v:true| or a -non-empty String, then the value is considere to be TRUE. +non-empty String, then the value is considered to be TRUE. Note that " " and "0" are also non-empty strings, thus cause the mode to be cleared. A List, Dictionary or Float is not a Number or String, thus evaluates to FALSE. *E745* *E728* *E703* *E729* *E730* *E731* *E908* *E910* *E913* -List, Dictionary, Funcref and Job types are not automatically converted. +List, Dictionary, Funcref, Job and Channel types are not automatically +converted. *E805* *E806* *E808* -When mixing Number and Float the Number is converted to Float. Otherwise +When mixing Number and Float the Number is converted to Float. Otherwise there is no automatic conversion of Float. You can use str2float() for String to Float, printf() for Float to String and float2nr() for Float to Number. @@ -140,10 +142,10 @@ 1.2 Function references ~ *Funcref* *E695* *E718* -A Funcref variable is obtained with the |function()| function or created with -the lambda expression |expr-lambda|. It can be used in an expression in the -place of a function name, before the parenthesis around the arguments, to -invoke the function it refers to. Example: > +A Funcref variable is obtained with the |function()| function, the |funcref()| +function or created with the lambda expression |expr-lambda|. It can be used +in an expression in the place of a function name, before the parenthesis +around the arguments, to invoke the function it refers to. Example: > :let Fn = function("MyFunc") :echo Fn() @@ -175,8 +177,8 @@ *Partial* A Funcref optionally binds a Dictionary and/or arguments. This is also called a Partial. This is created by passing the Dictionary and/or arguments to -function(). When calling the function the Dictionary and/or arguments will be -passed to the function. Example: > +function() or funcref(). When calling the function the Dictionary and/or +arguments will be passed to the function. Example: > let Cb = function('Callback', ['foo'], myDict) call Cb() @@ -207,13 +209,13 @@ let otherDict.myFunction = myDict.myFunction call otherDict.myFunction() -Here "self" will be "myDict", because it was bound explitly. +Here "self" will be "myDict", because it was bound explicitly. 1.3 Lists ~ *list* *List* *Lists* *E686* A List is an ordered sequence of items. An item can be of any type. Items -can be accessed by their index number. Items can be added and removed at any +can be accessed by their index number. Items can be added and removed at any position in the sequence. @@ -224,7 +226,7 @@ :let mylist = [1, two, 3, "four"] :let emptylist = [] -An item can be any expression. Using a List for an item creates a +An item can be any expression. Using a List for an item creates a List of Lists: > :let nestlist = [[11, 12], [21, 22], [31, 32]] @@ -283,7 +285,7 @@ :echo mylist[2:8] " result: [2, 3] NOTE: mylist[s:e] means using the variable "s:e" as index. Watch out for -using a single letter variable before the ":". Insert a space when needed: +using a single letter variable before the ":". Insert a space when needed: mylist[s : e]. @@ -412,7 +414,7 @@ If all you want to do is modify each item in the list then the |map()| function will be a simpler method than a for loop. -Just like the |:let| command, |:for| also accepts a list of variables. This +Just like the |:let| command, |:for| also accepts a list of variables. This requires the argument to be a list of lists. > :for [lnum, col] in [[1, 3], [2, 8], [3, 0]] : call Doit(lnum, col) @@ -469,11 +471,11 @@ < *E713* *E716* *E717* A key is always a String. You can use a Number, it will be converted to a String automatically. Thus the String '4' and the number 4 will find the same -entry. Note that the String '04' and the Number 04 are different, since the +entry. Note that the String '04' and the Number 04 are different, since the Number will be converted to the String '4'. The empty string can be used as a key. -A value can be any expression. Using a Dictionary for a value creates a +A value can be any expression. Using a Dictionary for a value creates a nested Dictionary: > :let nestdict = {1: {11: 'a', 12: 'b'}, 2: {21: 'c'}} @@ -500,7 +502,7 @@ Dictionary to List conversion ~ -You may want to loop over the entries in a dictionary. For this you need to +You may want to loop over the entries in a dictionary. For this you need to turn the Dictionary into a List and pass it to |:for|. Most often you want to loop over the keys, using the |keys()| function: > @@ -567,7 +569,7 @@ Dictionary function ~ *Dictionary-function* *self* *E725* *E862* When a function is defined with the "dict" attribute it can be used in a -special way with a dictionary. Example: > +special way with a dictionary. Example: > :function Mylen() dict : return len(self.data) :endfunction @@ -591,7 +593,7 @@ :echo mydict.len() The function will then get a number and the value of dict.len is a |Funcref| -that references this function. The function can only be used through a +that references this function. The function can only be used through a |Funcref|. It will automatically be deleted when there is no |Funcref| remaining that refers to it. @@ -642,13 +644,17 @@ Expression syntax summary, from least to most significant: -|expr1| expr2 ? expr1 : expr1 if-then-else +|expr1| expr2 + expr2 ? expr1 : expr1 if-then-else -|expr2| expr3 || expr3 .. logical OR +|expr2| expr3 + expr3 || expr3 .. logical OR -|expr3| expr4 && expr4 .. logical AND +|expr3| expr4 + expr4 && expr4 .. logical AND -|expr4| expr5 == expr5 equal +|expr4| expr5 + expr5 == expr5 equal expr5 != expr5 not equal expr5 > expr5 greater than expr5 >= expr5 greater than or equal @@ -665,24 +671,28 @@ expr5 is expr5 same |List| instance expr5 isnot expr5 different |List| instance -|expr5| expr6 + expr6 .. number addition or list concatenation +|expr5| expr6 + expr6 + expr6 .. number addition or list concatenation expr6 - expr6 .. number subtraction expr6 . expr6 .. string concatenation -|expr6| expr7 * expr7 .. number multiplication +|expr6| expr7 + expr7 * expr7 .. number multiplication expr7 / expr7 .. number division expr7 % expr7 .. number modulo -|expr7| ! expr7 logical NOT +|expr7| expr8 + ! expr7 logical NOT - expr7 unary minus + expr7 unary plus -|expr8| expr8[expr1] byte of a String or item of a |List| +|expr8| expr9 + expr8[expr1] byte of a String or item of a |List| expr8[expr1 : expr1] substring of a String or sublist of a |List| expr8.name entry in a |Dictionary| expr8(expr1, ...) function call with |Funcref| variable -|expr9| number number constant +|expr9| number number constant "string" string constant, backslash is special 'string' string constant, ' is doubled [expr1, ...] |List| @@ -735,7 +745,9 @@ expr2 and expr3 *expr2* *expr3* --------------- - *expr-barbar* *expr-&&* +expr3 || expr3 .. logical OR *expr-barbar* +expr4 && expr4 .. logical AND *expr-&&* + The "||" and "&&" operators take one argument on each side. The arguments are (converted to) Numbers. The result is: @@ -839,7 +851,7 @@ "is#"/"isnot#" and "is?"/"isnot?" can be used to match and ignore case. When comparing a String with a Number, the String is converted to a Number, -and the comparison is done on Numbers. This means that: > +and the comparison is done on Numbers. This means that: > echo 0 == 'x' 1 because 'x' converted to a Number is zero. However: > @@ -934,7 +946,7 @@ A String will be converted to a Number first. -These three can be repeated and mixed. Examples: +These three can be repeated and mixed. Examples: !-1 == 0 !!8 == 1 --9 == 9 @@ -946,7 +958,7 @@ *E909* *subscript* If expr8 is a Number or String this results in a String that contains the expr1'th single byte from expr8. expr8 is used as a String, expr1 as a -Number. This doesn't recognize multi-byte encodings, see |byteidx()| for +Number. This doesn't recognize multi-byte encodings, see `byteidx()` for an alternative, or use `split()` to turn the string into a list of characters. Index zero gives the first byte. This is like it works in C. Careful: @@ -960,7 +972,7 @@ If expr8 is a |List| then it results the item at index expr1. See |list-index| for possible index values. If the index is out of range this results in an -error. Example: > +error. Example: > :let item = mylist[-1] " get last item Generally, if a |List| index is equal to or higher than the length of the @@ -992,7 +1004,7 @@ < *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 +the indexes expr1a and expr1b. This works like with a String, as explained just above. Also see |sublist| below. Examples: > :let l = mylist[:3] " first four items :let l = mylist[4:4] " List with one item @@ -1037,9 +1049,10 @@ number ------ number number constant *expr-number* - *hex-number* *octal-number* + *hex-number* *octal-number* *binary-number* -Decimal, Hexadecimal (starting with 0x or 0X), or Octal (starting with 0). +Decimal, Hexadecimal (starting with 0x or 0X), Binary (starting with 0b or 0B) +and Octal (starting with 0). *floating-point-format* Floating point numbers can be written in two forms: @@ -1051,7 +1064,7 @@ contain digits. [-+] means there is an optional plus or minus sign. {exp} is the exponent, power of 10. -Only a decimal point is accepted, not a comma. No matter what the current +Only a decimal point is accepted, not a comma. No matter what the current locale is. {only when compiled with the |+float| feature} @@ -1120,8 +1133,10 @@ \\ backslash \" double quote \ Special key named "xxx". e.g. "\" for CTRL-W. This is for use - in mappings, the 0x80 byte is escaped. Don't use to get a - utf-8 character, use \uxxxx as mentioned above. + in mappings, the 0x80 byte is escaped. + To use the double quote character it must be escaped: "". + Don't use to get a utf-8 character, use \uxxxx as + mentioned above. Note that "\xff" is stored as the byte 255, which may be invalid in some encodings. Use "\u00ff" to store character 255 according to the current value @@ -1136,11 +1151,11 @@ Note that single quotes are used. -This string is taken as it is. No backslashes are removed or have a special +This string is taken as it is. No backslashes are removed or have a special meaning. The only exception is that two quotes stand for one quote. Single quoted strings are useful for patterns, so that backslashes do not need -to be doubled. These two commands are equivalent: > +to be doubled. These two commands are equivalent: > if a =~ "\\s*" if a =~ '\s*' @@ -1166,7 +1181,7 @@ The result is the contents of the named register, as a single string. Newlines are inserted where required. To get the contents of the unnamed -register use @" or @@. See |registers| for an explanation of the available +register use @" or @@. See |registers| for an explanation of the available registers. When using the '=' register you get the expression itself, not what it @@ -1230,8 +1245,8 @@ < error function *closure* Lambda expressions can access outer scope variables and arguments. This is -often called a closure. Example where "i" a and "a:arg" are used in a lambda -while they exists in the function scope. They remain valid even after the +often called a closure. Example where "i" and "a:arg" are used in a lambda +while they exist in the function scope. They remain valid even after the function returns: > :function Foo(arg) : let i = 3 @@ -1326,7 +1341,7 @@ *global-variable* *g:var* *g:* Inside functions global variables are accessed with "g:". Omitting this will -access a variable local to a function. But "g:" can also be used in any other +access a variable local to a function. But "g:" can also be used in any other place if you like. *local-variable* *l:var* *l:* @@ -1443,8 +1458,8 @@ window gets a number). *v:beval_winid* *beval_winid-variable* -v:beval_winid The window ID of the window, over which the mouse pointer is. - Otherwise like v:beval_winnr. +v:beval_winid The |window-ID| of the window, over which the mouse pointer + is. Otherwise like v:beval_winnr. *v:char* *char-variable* v:char Argument for evaluating 'formatexpr' and used for the typed @@ -1468,7 +1483,7 @@ set before an autocommand event for a file read/write command is triggered. There is a leading space to make it possible to append this variable directly after the - read/write command. Note: The "+cmd" argument isn't + read/write command. Note: The "+cmd" argument isn't included here, because it will be executed anyway. 2. When printing a PostScript file with ":hardcopy" this is the argument for the ":hardcopy" command. This can be used @@ -1488,7 +1503,7 @@ *v:count* *count-variable* v:count The count given for the last Normal mode command. Can be used - to get the count before a mapping. Read-only. Example: > + to get the count before a mapping. Read-only. Example: > :map _x :echo "the count is " . v:count < Note: The is required to remove the line range that you get when typing ':' after a count. @@ -1511,7 +1526,7 @@ See |multi-lang|. *v:dying* *dying-variable* -v:dying Normally zero. When a deadly signal is caught it's set to +v:dying Normally zero. When a deadly signal is caught it's set to one. When multiple signals are caught the number increases. Can be used in an autocommand to check if Vim didn't terminate normally. {only works on Unix} @@ -1601,7 +1616,7 @@ 'diffexpr' output of diff 'patchexpr' resulting patched file (*) When doing conversion for a write command (e.g., ":w - file") it will be equal to v:fname_in. When doing conversion + file") it will be equal to v:fname_in. When doing conversion for a read command (e.g., ":e file") it will be a temporary file and different from v:fname_in. @@ -1758,7 +1773,7 @@ < Read-only. *v:profiling* *profiling-variable* -v:profiling Normally zero. Set to one after using ":profile start". +v:profiling Normally zero. Set to one after using ":profile start". See |profiling|. *v:progname* *progname-variable* @@ -1837,41 +1852,41 @@ 'd' Delete swapfile 'q' Quit 'a' Abort - The value should be a single-character string. An empty value + The value should be a single-character string. An empty value results in the user being asked, as would happen when there is no SwapExists autocommand. The default is empty. *v:swapcommand* *swapcommand-variable* v:swapcommand Normal mode command to be executed after a file has been opened. Can be used for a |SwapExists| autocommand to have - another Vim open the file and jump to the right place. For + another Vim open the file and jump to the right place. For example, when jumping to a tag the value is ":tag tagname\r". For ":edit +cmd file" the value is ":cmd\r". - *v:t_TYPE* *v:t_bool* *t_bool-varialble* + *v:t_TYPE* *v:t_bool* *t_bool-variable* v:t_bool Value of Boolean type. Read-only. See: |type()| - *v:t_channel* *t_channel-varialble* + *v:t_channel* *t_channel-variable* v:t_channel Value of Channel type. Read-only. See: |type()| - *v:t_dict* *t_dict-varialble* + *v:t_dict* *t_dict-variable* v:t_dict Value of Dictionary type. Read-only. See: |type()| - *v:t_float* *t_float-varialble* + *v:t_float* *t_float-variable* v:t_float Value of Float type. Read-only. See: |type()| - *v:t_func* *t_func-varialble* + *v:t_func* *t_func-variable* v:t_func Value of Funcref type. Read-only. See: |type()| - *v:t_job* *t_job-varialble* + *v:t_job* *t_job-variable* v:t_job Value of Job type. Read-only. See: |type()| - *v:t_list* *t_list-varialble* + *v:t_list* *t_list-variable* v:t_list Value of List type. Read-only. See: |type()| - *v:t_none* *t_none-varialble* + *v:t_none* *t_none-variable* v:t_none Value of None type. Read-only. See: |type()| - *v:t_number* *t_number-varialble* + *v:t_number* *t_number-variable* v:t_number Value of Number type. Read-only. See: |type()| - *v:t_string* *t_string-varialble* + *v:t_string* *t_string-variable* v:t_string Value of String type. Read-only. See: |type()| *v:termresponse* *termresponse-variable* v:termresponse The escape sequence returned by the terminal for the |t_RV| - termcap entry. It is set when Vim receives an escape sequence + termcap entry. It is set when Vim receives an escape sequence that starts with ESC [ or CSI and ends in a 'c', with only digits, ';' and '.' in between. When this option is set, the TermResponse autocommand event is @@ -1894,7 +1909,7 @@ *v:throwpoint* *throwpoint-variable* v:throwpoint The point where the exception most recently caught and not - finished was thrown. Not set when commands are typed. See + finished was thrown. Not set when commands are typed. See also |v:exception| and |throw-variables|. Example: > :try @@ -1913,7 +1928,7 @@ That is so that eval() can parse the string back to the same value. Read-only. *v:val* *val-variable* -v:val Value of the current item of a |List| or |Dictionary|. Only +v:val Value of the current item of a |List| or |Dictionary|. Only valid while evaluating the expression used with |map()| and |filter()|. Read-only. @@ -1942,7 +1957,8 @@ When an MS-Windows GUI is running this will be set to the window handle. Otherwise the value is zero. - Note: for windows inside Vim use |winnr()| or |win_getid()|. + Note: for windows inside Vim use |winnr()| or |win_getid()|, + see |window-ID|. ============================================================================== 4. Builtin Functions *functions* @@ -1969,14 +1985,14 @@ assert_fails({cmd} [, {error}]) none assert {cmd} fails assert_false({actual} [, {msg}]) none assert {actual} is false assert_inrange({lower}, {upper}, {actual} [, {msg}]) - none assert {actual} is inside the range + none assert {actual} is inside the range assert_match({pat}, {text} [, {msg}]) none assert {pat} matches {text} assert_notequal({exp}, {act} [, {msg}]) none assert {exp} is not equal {act} assert_notmatch({pat}, {text} [, {msg}]) none assert {pat} not matches {text} assert_true({actual} [, {msg}]) none assert {actual} is true asin({expr}) Float arc sine of {expr} atan({expr}) Float arc tangent of {expr} -atan2({expr}, {expr}) Float arc tangent of {expr1} / {expr2} +atan2({expr1}, {expr2}) Float arc tangent of {expr1} / {expr2} browse({save}, {title}, {initdir}, {default}) String put up a file requester browsedir({title}, {initdir}) String put up a directory requester @@ -1993,7 +2009,9 @@ call({func}, {arglist} [, {dict}]) any call {func} with arguments {arglist} ceil({expr}) Float round {expr} up +ch_canread({handle}) Number check if there is something to read ch_close({handle}) none close {handle} +ch_close_in({handle}) none close in part of {handle} ch_evalexpr({handle}, {expr} [, {options}]) any evaluate {expr} on JSON {handle} ch_evalraw({handle}, {string} [, {options}]) @@ -2014,7 +2032,8 @@ any send {string} over raw {handle} ch_setoptions({handle}, {options}) none set options for {handle} -ch_status({handle}) String status of channel {handle} +ch_status({handle} [, {options}]) + String status of channel {handle} changenr() Number current change number char2nr({expr}[, {utf8}]) Number ASCII/UTF8 value of first char in {expr} cindent({lnum}) Number C indent for line {lnum} @@ -2030,7 +2049,7 @@ cosh({expr}) Float hyperbolic cosine of {expr} count({list}, {expr} [, {ic} [, {start}]]) Number count how many {expr} are in {list} -cscope_connection([{num} , {dbpath} [, {prepend}]]) +cscope_connection([{num}, {dbpath} [, {prepend}]]) Number checks existence of cscope connection cursor({lnum}, {col} [, {off}]) Number move cursor to {lnum}, {col}, {off} @@ -2056,8 +2075,8 @@ feedkeys({string} [, {mode}]) Number add key sequence to typeahead buffer filereadable({file}) Number |TRUE| if {file} is a readable file filewritable({file}) Number |TRUE| if {file} is a writable file -filter({expr}, {string}) List/Dict remove items from {expr} where - {string} is 0 +filter({expr1}, {expr2}) List/Dict remove items from {expr1} where + {expr2} is 0 finddir({name}[, {path}[, {count}]]) String find directory {name} in {path} findfile({name}[, {path}[, {count}]]) @@ -2081,6 +2100,7 @@ get({list}, {idx} [, {def}]) any get item {idx} from {list} or {def} get({dict}, {key} [, {def}]) any get item {key} from {dict} or {def} get({func}, {what}) any get property of funcref/partial {func} +getbufinfo([{expr}]) List information about buffers getbufline({expr}, {lnum} [, {end}]) List lines {lnum} to {end} of buffer {expr} getbufvar({expr}, {varname} [, {def}]) @@ -2092,7 +2112,8 @@ getcmdpos() Number return cursor position in command-line getcmdtype() String return current command-line type getcmdwintype() String return current command-line window type -getcompletion({pat}, {type}) List list of cmdline completion matches +getcompletion({pat}, {type} [, {filtered}]) + List list of cmdline completion matches getcurpos() List position of the cursor getcwd([{winnr} [, {tabnr}]]) String get the current working directory getfontname([{name}]) String name of font being used @@ -2102,18 +2123,20 @@ getftype({fname}) String description of type of file {fname} getline({lnum}) String line {lnum} of current buffer getline({lnum}, {end}) List lines {lnum} to {end} of current buffer -getloclist({nr}) List list of location list items +getloclist({nr}[, {what}]) List list of location list items getmatches() List list of current matches getpid() Number process ID of Vim getpos({expr}) List position of cursor, mark, etc. -getqflist() List list of quickfix items +getqflist([{what}]) List list of quickfix items getreg([{regname} [, 1 [, {list}]]]) String or List contents of register getregtype([{regname}]) String type of register +gettabinfo([{expr}]) List list of tab pages gettabvar({nr}, {varname} [, {def}]) any variable {varname} in tab {nr} or {def} gettabwinvar({tabnr}, {winnr}, {name} [, {def}]) any {name} in {winnr} in tab page {tabnr} +getwininfo([{winid}]) List list of windows getwinposx() Number X coord in pixels of GUI Vim window getwinposy() Number Y coord in pixels of GUI Vim window getwinvar({nr}, {varname} [, {def}]) @@ -2177,7 +2200,7 @@ log({expr}) Float natural logarithm (base e) of {expr} log10({expr}) Float logarithm of Float {expr} to base 10 luaeval({expr}[, {expr}]) any evaluate |Lua| expression -map({expr}, {string}) List/Dict change each item in {expr} to {expr} +map({expr1}, {expr2}) List/Dict change each item in {expr1} to {expr} maparg({name}[, {mode} [, {abbr} [, {dict}]]]) String or Dict rhs of mapping {name} in mode {mode} @@ -2261,11 +2284,12 @@ setcmdpos({pos}) Number set cursor position in command-line setfperm({fname}, {mode}) Number set {fname} file permissions to {mode} setline({lnum}, {line}) Number set line {lnum} to {line} -setloclist({nr}, {list}[, {action}]) +setloclist({nr}, {list}[, {action}[, {what}]]) Number modify location list using {list} setmatches({list}) Number restore a list of matches setpos({expr}, {list}) Number set the {expr} position to {list} -setqflist({list}[, {action}]) Number modify quickfix list using {list} +setqflist({list}[, {action}[, {what}]]) + Number modify quickfix list using {list} setreg({n}, {v}[, {opt}]) Number set register to value and type settabvar({nr}, {varname}, {val}) none set {varname} in tab page {nr} to {val} settabwinvar({tabnr}, {winnr}, {varname}, {val}) @@ -2339,9 +2363,12 @@ test_null_partial() Funcref null value for testing test_null_string() String null value for testing test_settime({expr}) none set current time for testing +timer_info([{id}]) List information about timers +timer_pause({id}, {pause}) none pause or unpause a timer timer_start({time}, {callback} [, {options}]) Number create a timer timer_stop({timer}) none stop a timer +timer_stopall() none stop all timers tolower({expr}) String the String {expr} switched to lowercase toupper({expr}) String the String {expr} switched to uppercase tr({src}, {fromstr}, {tostr}) String translate chars of {src} in {fromstr} @@ -2428,7 +2455,7 @@ the current buffer. {lnum} can be zero to insert a line before the first one. Returns 1 for failure ({lnum} out of range or out of memory), - 0 for success. Example: > + 0 for success. Example: > :let failed = append(line('$'), "# THE END") :let failed = append(0, ["Chapter 1", "the beginning"]) < @@ -2451,7 +2478,7 @@ With {winnr} only use this window in the current tab page. With {winnr} and {tabnr} use the window in the specified tab page. - {winnr} can be the window number or the window ID. + {winnr} can be the window number or the |window-ID|. *argv()* argv([{nr}]) The result is the {nr}th file in the argument list of the @@ -2497,7 +2524,7 @@ assert_fails({cmd} [, {error}]) *assert_fails()* Run {cmd} and add an error message to |v:errors| if it does NOT produce an error. - When {error} is given it must match |v:errmsg|. + When {error} is given it must match in |v:errmsg|. assert_false({actual} [, {msg}]) *assert_false()* When {actual} is not false an error message is added to @@ -2653,7 +2680,7 @@ If {expr} is a Number, that buffer number's name is given. Number zero is the alternate buffer for the current window. If {expr} is a String, it is used as a |file-pattern| to match - with the buffer names. This is always done like 'magic' is + with the buffer names. This is always done like 'magic' is set and 'cpoptions' is empty. When there is more than one match an empty string is returned. "" or "%" can be used for the current buffer, "#" for the @@ -2697,9 +2724,9 @@ Obsolete name for bufnr("$"): last_buffer_nr(). bufwinid({expr}) *bufwinid()* - The result is a Number, which is the window ID of the first + The result is a Number, which is the |window-ID| of the first window associated with buffer {expr}. For the use of {expr}, - see |bufname()| above. If buffer {expr} doesn't exist or + see |bufname()| above. If buffer {expr} doesn't exist or there is no such window, -1 is returned. Example: > echo "A window containing buffer 1 is " . (bufwinid(1)) @@ -2709,7 +2736,7 @@ bufwinnr({expr}) *bufwinnr()* The result is a Number, which is the number of the first window associated with buffer {expr}. For the use of {expr}, - see |bufname()| above. If buffer {expr} doesn't exist or + see |bufname()| above. If buffer {expr} doesn't exist or there is no such window, -1 is returned. Example: > echo "A window containing buffer 1 is " . (bufwinnr(1)) @@ -2842,7 +2869,7 @@ col("$") length of cursor line plus one col("'t") column of mark t col("'" . markname) column of mark markname -< The first column is 1. 0 is returned for an error. +< The first column is 1. 0 is returned for an error. For an uppercase mark the column may actually be in another buffer. For the cursor position, when 'virtualedit' is active, the @@ -2857,8 +2884,8 @@ complete({startcol}, {matches}) *complete()* *E785* Set the matches for Insert mode completion. Can only be used in Insert mode. You need to use a mapping - with CTRL-R = |i_CTRL-R|. It does not work after CTRL-O or - with an expression mapping. + with CTRL-R = (see |i_CTRL-R|). It does not work after CTRL-O + or with an expression mapping. {startcol} is the byte offset in the line where the completed text start. The text up to the cursor is the original text that will be replaced by the matches. Use col('.') for an @@ -2889,7 +2916,7 @@ Returns 0 for failure (empty string or out of memory), 1 when the match was added, 2 when the match was already in the list. - See |complete-functions| for an explanation of {expr}. It is + See |complete-functions| for an explanation of {expr}. It is the same as one item in the list that 'omnifunc' would return. complete_check() *complete_check()* @@ -2949,14 +2976,34 @@ :endif < In a GUI dialog, buttons are used. The layout of the buttons depends on the 'v' flag in 'guioptions'. If it is included, - the buttons are always put vertically. Otherwise, confirm() + the buttons are always put vertically. Otherwise, confirm() tries to put the buttons in one horizontal line. If they don't fit, a vertical layout is used anyway. For some systems the horizontal layout is always used. +ch_canread({handle}) *ch_canread()* + Return non-zero when there is something to read from {handle}. + {handle} can be a Channel or a Job that has a Channel. + + This is useful to read from a channel at a convenient time, + e.g. from a timer. + + Note that messages are dropped when the channel does not have + a callback. Add a close callback to avoid that. + + {only available when compiled with the |+channel| feature} + ch_close({handle}) *ch_close()* Close {handle}. See |channel-close|. - {handle} can be Channel or a Job that has a Channel. + {handle} can be a Channel or a Job that has a Channel. + A close callback is not invoked. + + {only available when compiled with the |+channel| feature} + +ch_close_in({handle}) *ch_close_in()* + Close the "in" part of {handle}. See |channel-close-in|. + {handle} can be a Channel or a Job that has a Channel. + A close callback is not invoked. {only available when compiled with the |+channel| feature} @@ -2964,7 +3011,7 @@ Send {expr} over {handle}. The {expr} is encoded according to the type of channel. The function cannot be used with a raw channel. See |channel-use|. - {handle} can be Channel or a Job that has a Channel. + {handle} can be a Channel or a Job that has a Channel. *E917* {options} must be a Dictionary. It must not have a "callback" entry. It can have a "timeout" entry to specify the timeout @@ -2978,7 +3025,7 @@ ch_evalraw({handle}, {string} [, {options}]) *ch_evalraw()* Send {string} over {handle}. - {handle} can be Channel or a Job that has a Channel. + {handle} can be a Channel or a Job that has a Channel. Works like |ch_evalexpr()|, but does not encode the request or decode the response. The caller is responsible for the @@ -2991,7 +3038,7 @@ ch_getbufnr({handle}, {what}) *ch_getbufnr()* Get the buffer number that {handle} is using for {what}. - {handle} can be Channel or a Job that has a Channel. + {handle} can be a Channel or a Job that has a Channel. {what} can be "err" for stderr, "out" for stdout or empty for socket output. Returns -1 when there is no buffer. @@ -3009,7 +3056,8 @@ Returns a Dictionary with information about {handle}. The items are: "id" number of the channel - "status" "open" (any part is open) or "closed" + "status" "open", "buffered" or "closed", like + ch_status() When opened with ch_open(): "hostname" the hostname of the address "port" the port of the address @@ -3018,11 +3066,11 @@ "sock_io" "socket" "sock_timeout" timeout in msec When opened with job_start(): - "out_status" "open" or "closed" + "out_status" "open", "buffered" or "closed" "out_mode" "NL", "RAW", "JSON" or "JS" "out_io" "null", "pipe", "file" or "buffer" "out_timeout" timeout in msec - "err_status" "open" or "closed" + "err_status" "open", "buffered" or "closed" "err_mode" "NL", "RAW", "JSON" or "JS" "err_io" "out", "null", "pipe", "file" or "buffer" "err_timeout" timeout in msec @@ -3036,8 +3084,8 @@ |ch_logfile()|. When {handle} is passed the channel number is used for the message. - {handle} can be Channel or a Job that has a Channel. The - Channel must open. + {handle} can be a Channel or a Job that has a Channel. The + Channel must be open for the channel number to be used. ch_logfile({fname} [, {mode}]) *ch_logfile()* Start logging channel activity to {fname}. @@ -3064,7 +3112,7 @@ ch_read({handle} [, {options}]) *ch_read()* Read from {handle} and return the received message. - {handle} can be Channel or a Job that has a Channel. + {handle} can be a Channel or a Job that has a Channel. See |channel-more|. {only available when compiled with the |+channel| feature} @@ -3078,7 +3126,7 @@ according to the type of channel. The function cannot be used with a raw channel. See |channel-use|. *E912* - {handle} can be Channel or a Job that has a Channel. + {handle} can be a Channel or a Job that has a Channel. {only available when compiled with the |+channel| feature} @@ -3099,26 +3147,31 @@ "timeout" default read timeout in msec "mode" mode for the whole channel See |ch_open()| for more explanation. - {handle} can be Channel or a Job that has a Channel. + {handle} can be a Channel or a Job that has a Channel. Note that changing the mode may cause queued messages to be lost. These options cannot be changed: - "waittime" only applies to "ch_open()| + "waittime" only applies to |ch_open()| -ch_status({handle}) *ch_status()* +ch_status({handle} [, {options}]) *ch_status()* Return the status of {handle}: "fail" failed to open the channel "open" channel can be used "buffered" channel can be read, not written to "closed" channel can not be used - {handle} can be Channel or a Job that has a Channel. + {handle} can be a Channel or a Job that has a Channel. "buffered" is used when the channel was closed but there is still data that can be obtained with |ch_read()|. + If {options} is given it can contain a "part" entry to specify + the part of the channel to return the status for: "out" or + "err". For example, to get the error status: > + ch_status(job, {"part": "err"}) +< *copy()* -copy({expr}) Make a copy of {expr}. For Numbers and Strings this isn't +copy({expr}) Make a copy of {expr}. For Numbers and Strings this isn't different from using {expr} directly. When {expr} is a |List| a shallow copy is created. This means that the original |List| can be changed without changing the @@ -3230,7 +3283,7 @@ deepcopy({expr}[, {noref}]) *deepcopy()* *E698* - Make a copy of {expr}. For Numbers and Strings this isn't + Make a copy of {expr}. For Numbers and Strings this isn't different from using {expr} directly. When {expr} is a |List| a full copy is created. This means that the original |List| can be changed without changing the @@ -3259,6 +3312,9 @@ When {flags} is "rf": Deletes the directory by the name {fname} and everything in it, recursively. BE CAREFUL! + Note: on MS-Windows it is not possible to delete a directory + that is being used. + A symbolic link itself is deleted, not what it points to. The result is a Number, which is 0 if the delete operation was @@ -3340,10 +3396,10 @@ searchpath for programs. *PATHEXT* On MS-DOS and MS-Windows the ".exe", ".bat", etc. can optionally be included. Then the extensions in $PATHEXT are - tried. Thus if "foo.exe" does not exist, "foo.exe.bat" can be - found. If $PATHEXT is not set then ".exe;.com;.bat;.cmd" is + tried. Thus if "foo.exe" does not exist, "foo.exe.bat" can be + found. If $PATHEXT is not set then ".exe;.com;.bat;.cmd" is used. A dot by itself can be used in $PATHEXT to try using - the name without an extension. When 'shell' looks like a + the name without an extension. When 'shell' looks like a Unix shell, then the name is also tried without adding an extension. On MS-DOS and MS-Windows it only checks if the file exists and @@ -3392,9 +3448,13 @@ an empty string is returned. *exists()* -exists({expr}) The result is a Number, which is |TRUE| if {expr} is - defined, zero otherwise. The {expr} argument is a string, - which contains one of these: +exists({expr}) The result is a Number, which is |TRUE| if {expr} is defined, + zero otherwise. + + For checking for a supported feature use |has()|. + For checking if a file exists use |filereadable()|. + + The {expr} argument is a string, which contains one of these: &option-name Vim option (only checks if it exists, not if it really works) +option-name Vim option that works. @@ -3406,7 +3466,7 @@ |user-functions|). Also works for a variable that is a Funcref. varname internal variable (see - |internal-variables|). Also works + |internal-variables|). Also works for |curly-braces-names|, |Dictionary| entries, |List| items, etc. Beware that evaluating an index may cause an @@ -3442,7 +3502,6 @@ event and pattern. ##event autocommand for this event is supported. - For checking for a supported feature use |has()|. Examples: > exists("&shortname") @@ -3495,7 +3554,7 @@ version 5.0 a space was used, which caused problems when a file name contains a space] - If the expansion fails, the result is an empty string. A name + If the expansion fails, the result is an empty string. A name for a non-existing file is not included, unless {expr} does not start with '%', '#' or '<', see below. @@ -3559,7 +3618,7 @@ slow, because a shell may be used to do the expansion. See |expr-env-expand|. The expanded variable is still handled like a list of file - names. When an environment variable cannot be expanded, it is + names. When an environment variable cannot be expanded, it is left unchanged. Thus ":echo expand('$FOOBAR')" results in "$FOOBAR". @@ -3582,7 +3641,7 @@ items copied is equal to the original length of the List. E.g., when {expr3} is 1 you get N new copies of the first item (where N is the original length of the List). - Use |add()| to concatenate one item to a list. To concatenate + Use |add()| to concatenate one item to a list. To concatenate two lists into a new list use the + operator: > :let newlist = [1, 2, 3] + [4, 5] < @@ -3663,9 +3722,10 @@ is zero remove the item from the |List| or |Dictionary|. {expr2} must be a |string| or |Funcref|. - if {expr2} is a |string|, inside {expr2} |v:val| has the value + If {expr2} is a |string|, inside {expr2} |v:val| has the value of the current item. For a |Dictionary| |v:key| has the key - of the current item. + of the current item and for a |List| |v:key| has the index of + the current item. Examples: > call filter(mylist, 'v:val !~ "OLD"') < Removes the items where "OLD" appears. > @@ -3687,6 +3747,10 @@ return a:idx % 2 == 1 endfunc call filter(mylist, function('Odd')) +< It is shorter when using a |lambda|: > + call filter(myList, {idx, val -> idx * val <= 42}) +< If you do not use "val" you can leave it out: > + call filter(myList, {idx -> idx % 2 == 1}) < The operation is done in-place. If you want a |List| or |Dictionary| to remain unmodified make a copy first: > @@ -3776,7 +3840,7 @@ fnameescape({string}) *fnameescape()* - Escape {string} for use as file name command argument. All + Escape {string} for use as file name command argument. All characters that have a special meaning, such as '%' and '|' are escaped with a backslash. For most systems the characters escaped are @@ -3813,7 +3877,7 @@ foldlevel({lnum}) *foldlevel()* The result is a Number, which is the foldlevel of line {lnum} - in the current buffer. For nested folds the deepest level is + in the current buffer. For nested folds the deepest level is returned. If there is no fold at line {lnum}, zero is returned. It doesn't matter if the folds are open or closed. When used while updating folds (from 'foldexpr') -1 is @@ -3828,7 +3892,7 @@ |v:foldstart|, |v:foldend| and |v:folddashes| variables. The returned string looks like this: > +-- 45 lines: abcdef -< The number of dashes depends on the foldlevel. The "45" is +< The number of dashes depends on the foldlevel. The "45" is the number of lines in the fold. "abcdef" is the text in the first non-blank line of the fold. Leading white space, "//" or "/*" and the text from the 'foldmarker' and 'commentstring' @@ -3846,7 +3910,7 @@ {not available when compiled without the |+folding| feature} *foreground()* -foreground() Move the Vim window to the foreground. Useful when sent from +foreground() Move the Vim window to the foreground. Useful when sent from a client to a Vim server. |remote_send()| On Win32 systems this might not work, the OS does not always allow a window to bring itself to the foreground. Use @@ -3969,6 +4033,60 @@ 'dict' The dictionary 'args' The list with arguments + *getbufinfo()* +getbufinfo([{expr}]) +getbufinfo([{dict}]) + Get information about buffers as a List of Dictionaries. + + Without an argument information about all the buffers is + returned. + + When the argument is a Dictionary only the buffers matching + the specified criteria are returned. The following keys can + be specified in {dict}: + buflisted include only listed buffers. + bufloaded include only loaded buffers. + + Otherwise, {expr} specifies a particular buffer to return + information for. For the use of {expr}, see |bufname()| + above. If the buffer is found the returned List has one item. + Otherwise the result is an empty list. + + Each returned List item is a dictionary with the following + entries: + bufnr buffer number. + changed TRUE if the buffer is modified. + changedtick number of changes made to the buffer. + hidden TRUE if the buffer is hidden. + listed TRUE if the buffer is listed. + lnum current line number in buffer. + loaded TRUE if the buffer is loaded. + name full path to the file in the buffer. + signs list of signs placed in the buffer. + Each list item is a dictionary with + the following fields: + id sign identifier + lnum line number + name sign name + variables a reference to the dictionary with + buffer-local variables. + windows list of |window-ID|s that display this + buffer + + Examples: > + for buf in getbufinfo() + echo buf.name + endfor + for buf in getbufinfo({'buflisted':1}) + if buf.changed + .... + endif + endfor +< + To get buffer-local options use: > + getbufvar({bufnr}, '&') + +< *getbufline()* getbufline({expr}, {lnum} [, {end}]) Return a |List| with the lines starting from {lnum} to {end} @@ -4000,6 +4118,10 @@ must be used. When {varname} is empty returns a dictionary with all the buffer-local variables. + When {varname} is equal to "&" returns a dictionary with all + the buffer-local options. + Otherwise, when {varname} starts with "&" returns the value of + a buffer-local option. This also works for a global or buffer-local option, but it doesn't work for a global variable, window-local variable or window-local option. @@ -4093,7 +4215,7 @@ 96 mouse quadruple click (== 32 + 64) 128 command (Macintosh only) Only the modifiers that have not been included in the - character itself are obtained. Thus Shift-a results in "A" + character itself are obtained. Thus Shift-a results in "A" without a modifier. getcharsearch() *getcharsearch()* @@ -4152,7 +4274,7 @@ values are the same as |getcmdtype()|. Returns an empty string when not in the command-line window. -getcompletion({pat}, {type}) *getcompletion()* +getcompletion({pat}, {type} [, {filtered}]) *getcompletion()* Return a list of command-line completion matches. {type} specifies what for. The following completion types are supported: @@ -4178,7 +4300,9 @@ locale locale names (as output of locale -a) mapping mapping name menu menus + messages |:messages| suboptions option options + packadd optional package |pack-add| names shellcmd Shell command sign |:sign| suboptions syntax syntax file names |'syntax'| @@ -4192,6 +4316,10 @@ Otherwise only items matching {pat} are returned. See |wildcards| for the use of special characters in {pat}. + If the optional {filtered} flag is set to 1, then 'wildignore' + is applied to filter the results. Otherwise all the matches + are returned. The 'wildignorecase' option always applies. + If there are no matches, an empty list is returned. An invalid value for {type} produces an error. @@ -4216,7 +4344,7 @@ in the current tab page. With {winnr} and {tabnr} return the local current directory of the window in the specified tab page. - {winnr} can be the window number or the window ID. + {winnr} can be the window number or the |window-ID|. Return an empty string if the arguments are invalid. getfsize({fname}) *getfsize()* @@ -4256,7 +4384,7 @@ < This will hopefully (from a security point of view) display the string "rw-r--r--" or even "rw-------". - For setting permissins use |setfperm()|. + For setting permissions use |setfperm()|. getftime({fname}) *getftime()* The result is a Number, which is the last modification time of @@ -4311,15 +4439,19 @@ < To get lines from another buffer see |getbufline()| -getloclist({nr}) *getloclist()* +getloclist({nr}[, {what}]) *getloclist()* Returns a list with all the entries in the location list for - window {nr}. {nr} can be the window number or the window ID. + window {nr}. {nr} can be the window number or the |window-ID|. When {nr} is zero the current window is used. For a location list window, the displayed location list is returned. For an invalid window number {nr}, an empty list is returned. Otherwise, same as |getqflist()|. + If the optional {what} dictionary argument is supplied, then + returns the items listed in {what} as a dictionary. Refer to + |getqflist()| for the supported items in {what}. + getmatches() *getmatches()* Returns a |List| with all matches previously defined by |matchadd()| and the |:match| commands. |getmatches()| is @@ -4344,7 +4476,7 @@ *getpid()* getpid() Return a Number which is the process ID of the Vim process. On Unix and MS-Windows this is a unique number, until Vim - exits. On MS-DOS it's always zero. + exits. On MS-DOS it's always zero. *getpos()* getpos({expr}) Get the position for {expr}. For possible values of {expr} @@ -4370,7 +4502,7 @@ < Also see |getcurpos()| and |setpos()|. -getqflist() *getqflist()* +getqflist([{what}]) *getqflist()* Returns a list with all the current quickfix errors. Each list item is a dictionary with these entries: bufnr number of buffer that has the file name, use @@ -4385,7 +4517,7 @@ type type of the error, 'E', '1', etc. valid |TRUE|: recognized error message - When there is no error list or it's empty an empty list is + When there is no error list or it's empty, an empty list is returned. Quickfix list entries with non-existing buffer number are returned with "bufnr" set to zero. @@ -4395,13 +4527,35 @@ :for d in getqflist() : echo bufname(d.bufnr) ':' d.lnum '=' d.text :endfor +< + If the optional {what} dictionary argument is supplied, then + returns only the items listed in {what} as a dictionary. The + following string items are supported in {what}: + nr get information for this quickfix list; zero + means the current quickfix list + title get the list title + winid get the |window-ID| (if opened) + all all of the above quickfix properties + Non-string items in {what} are ignored. + If "nr" is not present then the current quickfix list is used. + In case of error processing {what}, an empty dictionary is + returned. + + The returned dictionary contains the following entries: + nr quickfix list number + title quickfix list title text + winid quickfix |window-ID| (if opened) + Examples: > + :echo getqflist({'all': 1}) + :echo getqflist({'nr': 2, 'title': 1}) +< getreg([{regname} [, 1 [, {list}]]]) *getreg()* The result is a String, which is the contents of register {regname}. Example: > :let cliptext = getreg('*') -< When {regname} was not set the result is a empty string. +< When {regname} was not set the result is an empty string. getreg('=') returns the last evaluated value of the expression register. (For use in maps.) @@ -4429,6 +4583,19 @@ is one character with value 0x16. If {regname} is not specified, |v:register| is used. +gettabinfo([{arg}]) *gettabinfo()* + If {arg} is not specified, then information about all the tab + pages is returned as a List. Each List item is a Dictionary. + Otherwise, {arg} specifies the tab page number and information + about that one is returned. If the tab page does not exist an + empty List is returned. + + Each List item is a Dictionary with the following entries: + tabnr tab page number. + variables a reference to the dictionary with + tabpage-local variables + windows List of |window-ID|s in the tag page. + gettabvar({tabnr}, {varname} [, {def}]) *gettabvar()* Get the value of a tab-local variable {varname} in tab page {tabnr}. |t:var| @@ -4442,14 +4609,16 @@ gettabwinvar({tabnr}, {winnr}, {varname} [, {def}]) *gettabwinvar()* Get the value of window-local variable {varname} in window {winnr} in tab page {tabnr}. - When {varname} starts with "&" get the value of a window-local - option. When {varname} is empty a dictionary with all window-local variables is returned. + When {varname} is equal to "&" get the values of all + window-local options in a Dictionary. + Otherwise, when {varname} starts with "&" get the value of a + window-local option. Note that {varname} must be the name without "w:". Tabs are numbered starting with one. For the current tabpage use |getwinvar()|. - {winnr} can be the window number or the window ID. + {winnr} can be the window number or the |window-ID|. When {winnr} is zero the current window is used. This also works for a global option, buffer-local option and window-local option, but it doesn't work for a global variable @@ -4467,9 +4636,36 @@ *getwinposy()* getwinposy() The result is a Number, which is the Y coordinate in pixels of - the top of the GUI Vim window. The result will be -1 if the + the top of the GUI Vim window. The result will be -1 if the information is not available. +getwininfo([{winid}]) *getwininfo()* + Returns information about windows as a List with Dictionaries. + + If {winid} is given Information about the window with that ID + is returned. If the window does not exist the result is an + empty list. + + Without {winid} information about all the windows in all the + tab pages is returned. + + Each List item is a Dictionary with the following entries: + bufnr number of buffer in the window + height window height + loclist 1 if showing a location list + {only with the +quickfix feature} + quickfix 1 if quickfix or location list window + {only with the +quickfix feature} + tabnr tab page number + variables a reference to the dictionary with + window-local variables + width window width + winid |window-ID| + winnr window number + + To obtain all window-local variables use: > + gettabwinvar({tabnr}, {winnr}, '&') + getwinvar({winnr}, {varname} [, {def}]) *getwinvar()* Like |gettabwinvar()| for the current tabpage. Examples: > @@ -4504,7 +4700,7 @@ :let tagfiles = glob("`find . -name tags -print`") :let &tags = substitute(tagfiles, "\n", ",", "g") < The result of the program inside the backticks should be one - item per line. Spaces inside an item are allowed. + item per line. Spaces inside an item are allowed. See |expand()| for expanding special Vim variables. See |system()| for getting the raw output of an external command. @@ -4518,6 +4714,8 @@ if filename =~ '^Make.*\.mak$' < When {expr} is an empty string the result is "^$", match an empty string. + Note that the result depends on the system. On MS-Windows + a backslash usually means a path separator. *globpath()* globpath({path}, {expr} [, {nosuf} [, {list} [, {alllinks}]]]) @@ -4574,7 +4772,7 @@ With {winnr} use this window in the current tab page. With {winnr} and {tabnr} use the window in the specified tab page. - {winnr} can be the window number or the window ID. + {winnr} can be the window number or the |window-ID|. Return 0 if the arguments are invalid. hasmapto({what} [, {mode} [, {abbr}]]) *hasmapto()* @@ -4598,7 +4796,7 @@ When {mode} is omitted, "nvo" is used. This function is useful to check if a mapping already exists - to a function in a Vim script. Example: > + to a function in a Vim script. Example: > :if !hasmapto('\ABCdoit') : map d \ABCdoit :endif @@ -4613,6 +4811,7 @@ "expr" or "=" typed expression history "input" or "@" input line history "debug" or ">" debug command history + empty the current or last used history The {history} string does not need to be the whole name, one character is sufficient. If {item} does already exist in the history, it will be @@ -4694,7 +4893,7 @@ with name {name}. When the highlight group doesn't exist, zero is returned. This can be used to retrieve information about the highlight - group. For example, to get the background color of the + group. For example, to get the background color of the "Comment" group: > :echo synIDattr(synIDtrans(hlID("Comment")), "bg") < *highlightID()* @@ -4756,7 +4955,7 @@ in the prompt to start a new line. The highlighting set with |:echohl| is used for the prompt. The input is entered just like a command-line, with the same - editing commands and mappings. There is a separate history + editing commands and mappings. There is a separate history for lines typed for input(). Example: > :if input("Coffee or beer? ") == "beer" @@ -4770,9 +4969,9 @@ < The optional {completion} argument specifies the type of completion supported for the input. Without it completion is - not performed. The supported completion types are the same as + not performed. The supported completion types are the same as that can be supplied to a user-defined command using the - "-complete=" argument. Refer to |:command-completion| for + "-complete=" argument. Refer to |:command-completion| for more information. Example: > let fname = input("File: ", "", "file") < @@ -4813,12 +5012,12 @@ displayed, one string per line. The user will be prompted to enter a number, which is returned. The user can also select an item by clicking on it with the - mouse. For the first string 0 is returned. When clicking + mouse. For the first string 0 is returned. When clicking above the first item a negative number is returned. When clicking on the prompt one more than the length of {textlist} is returned. Make sure {textlist} has less than 'lines' entries, otherwise - it won't work. It's a good idea to put the entry number at + it won't work. It's a good idea to put the entry number at the start of the string. And put a prompt in the first item. Example: > let color = inputlist(['Select color:', '1. red', @@ -4852,7 +5051,7 @@ insert({list}, {item} [, {idx}]) *insert()* Insert {item} at the start of |List| {list}. If {idx} is specified insert {item} before the item with index - {idx}. If {idx} is zero it goes before the first item, just + {idx}. If {idx} is zero it goes before the first item, just like omitting {idx}. A negative {idx} is also possible, see |list-index|. -1 inserts just before the last item. Returns the resulting |List|. Examples: > @@ -5270,6 +5469,10 @@ return a:key . '-' . a:val endfunc call map(myDict, function('KeyValue')) +< It is shorter when using a |lambda|: > + call map(myDict, {key, val -> key . '-' . val}) +< If you do not use "val" you can leave it out: > + call map(myDict, {key -> 'item: ' . key}) < The operation is done in-place. If you want a |List| or |Dictionary| to remain unmodified make a copy first: > @@ -5372,7 +5575,7 @@ When {expr} is a |List| then this returns the index of the first item where {pat} matches. Each item is used as a String, |Lists| and |Dictionaries| are used as echoed. - Otherwise, {expr} is used as a String. The result is a + Otherwise, {expr} is used as a String. The result is a Number, which gives the index (byte offset) in {expr} where {pat} matches. A match at the first character or |List| item returns zero. @@ -5383,7 +5586,7 @@ :echo match([1, 'x'], '\a') " results in 1 < See |string-match| for how {pat} is used. *strpbrk()* - Vim doesn't have a strpbrk() function. But you can do: > + Vim doesn't have a strpbrk() function. But you can do: > :let sepidx = match(line, '[.,;: \t]') < *strcasestr()* Vim doesn't have a strcasestr() function. But you can add @@ -5420,7 +5623,7 @@ See |pattern| for the patterns that are accepted. The 'ignorecase' option is used to set the ignore-caseness of - the pattern. 'smartcase' is NOT used. The matching is always + the pattern. 'smartcase' is NOT used. The matching is always done like 'magic' is set and 'cpoptions' is empty. *matchadd()* *E798* *E799* *E801* @@ -5436,7 +5639,7 @@ concealed. The optional {priority} argument assigns a priority to the - match. A match with a high priority will have its + match. A match with a high priority will have its highlighting overrule that of a match with a lower priority. A priority is specified as an integer (negative numbers are no exception). If the {priority} argument is not specified, the @@ -5473,10 +5676,11 @@ :call matchdelete(m) < A list of matches defined by |matchadd()| and |:match| are - available from |getmatches()|. All matches can be deleted in + available from |getmatches()|. All matches can be deleted in one operation by |clearmatches()|. -matchaddpos({group}, {pos}[, {priority}[, {id}[, {dict}]]]) *matchaddpos()* + *matchaddpos()* +matchaddpos({group}, {pos}[, {priority}[, {id}[, {dict}]]]) Same as |matchadd()|, but requires a list of positions {pos} instead of a pattern. This command is faster than |matchadd()| because it does not require to handle regular expressions and @@ -5608,7 +5812,7 @@ necessary. Otherwise it must be "". If {prot} is given it is used to set the protection bits of the new directory. The default is 0755 (rwxr-xr-x: r/w for - the user readable for others). Use 0700 to make it unreadable + the user readable for others). Use 0700 to make it unreadable for others. This is only used for the last part of {name}. Thus if you create /tmp/foo/bar then /tmp/foo will be created with 0755. @@ -5753,9 +5957,11 @@ %04x hex number padded with zeros to at least 4 characters %X hex number using upper case letters %o octal number - %f floating point number in the form 123.456 - %e floating point number in the form 1.234e3 - %E floating point number in the form 1.234E3 + %08b binary number padded with zeros to at least 8 chars + %f floating point number as 12.23, inf, -inf or nan + %F floating point number as 12.23, INF, -INF or NAN + %e floating point number as 1.23e3, inf, -inf or nan + %E floating point number as 1.23E3, INF, -INF or NAN %g floating point number, as %f or %e depending on value %G floating point number, as %f or %E depending on value %% the % character itself @@ -5779,6 +5985,9 @@ character of the output string to a zero (except if a zero value is printed with an explicit precision of zero). + For b and B conversions, a non-zero result has + the string "0b" (or "0B" for B conversions) + prepended to it. For x and X conversions, a non-zero result has the string "0x" (or "0X" for X conversions) prepended to it. @@ -5786,8 +5995,8 @@ 0 (zero) Zero padding. For all conversions the converted value is padded on the left with zeros rather than blanks. If a precision is given with a - numeric conversion (d, o, x, and X), the 0 flag - is ignored. + numeric conversion (d, b, B, o, x, and X), the 0 + flag is ignored. - A negative field width flag; the converted value is to be left adjusted on the field boundary. @@ -5799,7 +6008,7 @@ number produced by a signed conversion (d). + A sign must always be placed before a number - produced by a signed conversion. A + overrides + produced by a signed conversion. A + overrides a space if both are used. field-width @@ -5825,7 +6034,7 @@ A field width or precision, or both, may be indicated by an asterisk '*' instead of a digit string. In this case, a - Number argument supplies the field width or precision. A + Number argument supplies the field width or precision. A negative field width is treated as a left adjustment flag followed by a positive field width; a negative precision is treated as though it were missing. Example: > @@ -5835,12 +6044,13 @@ The conversion specifiers and their meanings are: - *printf-d* *printf-o* *printf-x* *printf-X* - doxX The Number argument is converted to signed decimal - (d), unsigned octal (o), or unsigned hexadecimal (x - and X) notation. The letters "abcdef" are used for - x conversions; the letters "ABCDEF" are used for X - conversions. + *printf-d* *printf-b* *printf-B* *printf-o* + *printf-x* *printf-X* + dbBoxX The Number argument is converted to signed decimal + (d), unsigned binary (b and B), unsigned octal (o), or + unsigned hexadecimal (x and X) notation. The letters + "abcdef" are used for x conversions; the letters + "ABCDEF" are used for X conversions. The precision, if any, gives the minimum number of digits that must appear; if the converted value requires fewer digits, it is padded on the left with @@ -5849,6 +6059,16 @@ cause truncation of a numeric field; if the result of a conversion is wider than the field width, the field is expanded to contain the conversion result. + The 'h' modifier indicates the argument is 16 bits. + The 'l' modifier indicates the argument is 32 bits. + The 'L' modifier indicates the argument is 64 bits. + Generally, these modifiers are not useful. They are + ignored when type is known from the argument. + + i alias for d + D alias for ld + U alias for lu + O alias for lo *printf-c* c The Number argument is converted to a byte, and the @@ -5858,6 +6078,9 @@ s The text of the String argument is used. If a precision is specified, no more bytes than the number specified are used. + If the argument is not a String type, it is + automatically converted to text with the same format + as ":echo". *printf-S* S The text of the String argument is used. If a precision is specified, no more display cells than the @@ -5865,13 +6088,14 @@ feature works just like 's'. *printf-f* *E807* - f The Float argument is converted into a string of the + f F The Float argument is converted into a string of the form 123.456. The precision specifies the number of digits after the decimal point. When the precision is zero the decimal point is omitted. When the precision is not specified 6 is used. A really big number - (out of range or dividing by zero) results in "inf". - "0.0 / 0.0" results in "nan". + (out of range or dividing by zero) results in "inf" + or "-inf" with %f (INF or -INF with %F). + "0.0 / 0.0" results in "nan" with %f (NAN with %F). Example: > echo printf("%.2f", 12.115) < 12.12 @@ -5959,9 +6183,9 @@ *readfile()* readfile({fname} [, {binary} [, {max}]]) Read file {fname} and return a |List|, each line of the file - as an item. Lines broken at NL characters. Macintosh files - separated with CR will result in a single long line (unless a - NL appears somewhere). + as an item. Lines are broken at NL characters. Macintosh + files separated with CR will result in a single long line + (unless a NL appears somewhere). All NUL characters are replaced with a NL character. When {binary} contains "b" binary mode is used: - When the last line ends in a NL an extra empty list item is @@ -6029,7 +6253,7 @@ *remote_expr()* *E449* remote_expr({server}, {string} [, {idvar}]) - Send the {string} to {server}. The string is sent as an + Send the {string} to {server}. The string is sent as an expression and the result is returned after evaluation. The result must be a String or a |List|. A |List| is turned into a String by joining the items with a line break in @@ -6064,7 +6288,7 @@ remote_peek({serverid} [, {retvar}]) *remote_peek()* Returns a positive number if there are available strings from {serverid}. Copies any reply string into the variable - {retvar} if specified. {retvar} must be a string with the + {retvar} if specified. {retvar} must be a string with the name of a variable. Returns zero if none are available. Returns -1 if something is wrong. @@ -6086,7 +6310,7 @@ < *remote_send()* *E241* remote_send({server}, {string} [, {idvar}]) - Send the {string} to {server}. The string is sent as input + Send the {string} to {server}. The string is sent as input keys and the function returns immediately. At the Vim server the keys are not mapped |:map|. If {idvar} is present, it is taken as the name of a variable @@ -6138,7 +6362,7 @@ :let separator = repeat('-', 80) < When {count} is zero or negative the result is empty. When {expr} is a |List| the result is {expr} concatenated - {count} times. Example: > + {count} times. Example: > :let longlist = repeat(['a', 'b'], 3) < Results in ['a', 'b', 'a', 'b', 'a', 'b']. @@ -6157,7 +6381,7 @@ path name) and also keeps a trailing path separator. *reverse()* -reverse({list}) Reverse the order of items in {list} in-place. Returns +reverse({list}) Reverse the order of items in {list} in-place. Returns {list}. If you want a list to remain unmodified make a copy first: > :let revlist = reverse(copy(mylist)) @@ -6177,7 +6401,7 @@ {only available when compiled with the |+float| feature} screenattr(row, col) *screenattr()* - Like screenchar(), but return the attribute. This is a rather + Like |screenchar()|, but return the attribute. This is a rather arbitrary number that can only be used to compare to the attribute at other positions. @@ -6254,7 +6478,7 @@ A zero value is equal to not giving the argument. When the {timeout} argument is given the search stops when - more than this many milliseconds have passed. Thus when + more than this many milliseconds have passed. Thus when {timeout} is 500 the search stops after half a second. The value must not be negative. A zero value is like not giving the argument. @@ -6371,7 +6595,7 @@ < When starting at the "if 2", with the cursor on the "i", and searching forwards, the "endif 2" is found. When starting on the character just before the "if 2", the "endif 1" will be - found. That's because the "if 2" will be found first, and + found. That's because the "if 2" will be found first, and then this is considered to be a nested if/endif from "if 2" to "endif 2". When searching backwards and {end} is more than one character, @@ -6484,7 +6708,7 @@ setcmdpos({pos}) *setcmdpos()* Set the cursor position in the command line to byte position - {pos}. The first position is 1. + {pos}. The first position is 1. Use |getcmdpos()| to obtain the current position. Only works while editing the command line, thus you must use |c_CTRL-\_e|, |c_CTRL-R_=| or |c_CTRL-R_CTRL-R| with '='. For @@ -6533,9 +6757,9 @@ :endfor < Note: The '[ and '] marks are not set. -setloclist({nr}, {list} [, {action}]) *setloclist()* +setloclist({nr}, {list}[, {action}[, {what}]]) *setloclist()* Create or replace or add to the location list for window {nr}. - {nr} can be the window number or the window ID. + {nr} can be the window number or the |window-ID|. When {nr} is zero the current window is used. For a location list window, the displayed location list is @@ -6543,6 +6767,10 @@ Otherwise, same as |setqflist()|. Also see |location-list|. + If the optional {what} dictionary argument is supplied, then + only the items listed in {what} are set. Refer to |setqflist()| + for the list of supported keys in {what}. + setmatches({list}) *setmatches()* Restores a list of matches saved by |getmatches()|. Returns 0 if successful, otherwise -1. All current matches are cleared @@ -6558,7 +6786,7 @@ [bufnum, lnum, col, off] [bufnum, lnum, col, off, curswant] - "bufnum" is the buffer number. Zero can be used for the + "bufnum" is the buffer number. Zero can be used for the current buffer. Setting the cursor is only possible for the current buffer. To set a mark in another buffer you can use the |bufnr()| function to turn a file name into a buffer @@ -6595,8 +6823,7 @@ also set the preferred column. Also see the "curswant" key in |winrestview()|. - -setqflist({list} [, {action}]) *setqflist()* +setqflist({list} [, {action}[, {what}]]) *setqflist()* Create or replace or add to the quickfix list using the items in {list}. Each item in {list} is a dictionary. Non-dictionary items in {list} are ignored. Each dictionary @@ -6641,6 +6868,20 @@ If {action} is not present or is set to ' ', then a new list is created. + If the optional {what} dictionary argument is supplied, then + only the items listed in {what} are set. The first {list} + argument is ignored. The following items can be specified in + {what}: + nr list number in the quickfix stack + title quickfix list title text + Unsupported keys in {what} are ignored. + If the "nr" item is not present, then the current quickfix list + is modified. + + Examples: > + :call setqflist([], 'r', {'title': 'My search'}) + :call setqflist([], 'r', {'nr': 2, 'title': 'Errors'}) +< Returns zero for success, -1 for failure. This function can be used to create a quickfix list @@ -6706,7 +6947,7 @@ {val}. Tabs are numbered starting with one. For the current tabpage use |setwinvar()|. - {winnr} can be the window number or the window ID. + {winnr} can be the window number or the |window-ID|. When {winnr} is zero the current window is used. This also works for a global or local buffer option, but it doesn't work for a global or local buffer variable. @@ -7147,7 +7388,7 @@ Ambiguous, this function's return value depends on 'ambiwidth'. Also see |strlen()|, |strdisplaywidth()| and |strchars()|. -submatch({nr}[, {list}]) *submatch()* +submatch({nr}[, {list}]) *submatch()* *E935* Only for an expression in a |:substitute| command or substitute() function. Returns the {nr}'th submatch of the matched text. When {nr} @@ -7164,6 +7405,9 @@ |substitute()| this list will always contain one or zero items, since there are no real line breaks. + When substitute() is used recursively only the submatches in + the current (deepest) call can be obtained. + Example: > :s/\d\+/\=submatch(0) + 1/ < This finds the first number in the line and adds one to it. @@ -7185,7 +7429,7 @@ A "~" in {sub} is not replaced with the previous {sub}. Note that some codes in {sub} have a special meaning - |sub-replace-special|. For example, to replace something with + |sub-replace-special|. For example, to replace something with "\n" (two characters), use "\\\\n" or '\\n'. When {pat} does not match in {expr}, {expr} is returned @@ -7206,9 +7450,9 @@ optional argument. Example: > :echo substitute(s, '%\(\x\x\)', SubNr, 'g') < The optional argument is a list which contains the whole - matched string and up to nine submatches,like what - |submatch()| returns. Example: > - :echo substitute(s, '\(\x\x\)', {m -> '0x' . m[1]}, 'g') + matched string and up to nine submatches, like what + |submatch()| returns. Example: > + :echo substitute(s, '%\(\x\x\)', {m -> '0x' . m[1]}, 'g') synID({lnum}, {col}, {trans}) *synID()* The result is a Number, which is the syntax ID at the position @@ -7223,7 +7467,7 @@ zero. When {trans} is |TRUE|, transparent items are reduced to the - item that they reveal. This is useful when wanting to know + item that they reveal. This is useful when wanting to know the effective color. When {trans} is |FALSE|, the transparent item is returned. This is useful when wanting to know which syntax item is effective (e.g. inside parens). @@ -7239,7 +7483,7 @@ syntax ID {synID}. This can be used to obtain information about a syntax item. {mode} can be "gui", "cterm" or "term", to get the attributes - for that mode. When {mode} is omitted, or an invalid value is + for that mode. When {mode} is omitted, or an invalid value is used, the attributes for the currently active highlighting are used (GUI, cterm or term). Use synIDtrans() to follow linked highlight groups. @@ -7321,7 +7565,7 @@ Pipes are not used, the 'shelltemp' option is not used. - When prepended by |:silent| the shell will not be set to + When prepended by |:silent| the terminal will not be set to cooked mode. This is meant to be used for commands that do not need the user to type. It avoids stray characters showing up on the screen which require |CTRL-L| to remove. > @@ -7375,7 +7619,7 @@ tabpagebuflist([{arg}]) *tabpagebuflist()* The result is a |List|, where each item is the number of the buffer associated with each window in the current tab page. - {arg} specifies the number of tab page to be used. When + {arg} specifies the number of the tab page to be used. When omitted the current tab page is used. When {arg} is invalid the number zero is returned. To get a list of all buffers in all tabs use this: > @@ -7476,7 +7720,7 @@ tempname() *tempname()* *temp-file-name* The result is a String, which is the name of a file that - doesn't exist. It can be used for a temporary file. The name + doesn't exist. It can be used for a temporary file. The name is different for at least 26 consecutive calls. Example: > :let tmpfile = tempname() :exe "redir > " . tmpfile @@ -7536,7 +7780,42 @@ {expr} must evaluate to a number. When the value is zero the normal behavior is restored. - *timer_start()* + *timer_info()* +timer_info([{id}]) + Return a list with information about timers. + When {id} is given only information about this timer is + returned. When timer {id} does not exist an empty list is + returned. + When {id} is omitted information about all timers is returned. + + For each timer the information is stored in a Dictionary with + these items: + "id" the timer ID + "time" time the timer was started with + "remaining" time until the timer fires + "repeat" number of times the timer will still fire; + -1 means forever + "callback" the callback + "paused" 1 if the timer is paused, 0 otherwise + + {only available when compiled with the |+timers| feature} + +timer_pause({timer}, {paused}) *timer_pause()* + Pause or unpause a timer. A paused timer does not invoke its + callback when its time expires. Unpausing a timer may cause + the callback to be invoked almost immediately if enough time + has passed. + + Pausing a timer is useful to avoid the callback to be called + for a short time. + + If {paused} evaluates to a non-zero Number or a non-empty + String, then the timer is paused, otherwise it is unpaused. + See |non-zero-arg|. + + {only available when compiled with the |+timers| feature} + + *timer_start()* *timer* *timers* timer_start({time}, {callback} [, {options}]) Create a timer and return the timer ID. @@ -7545,13 +7824,14 @@ busy or Vim is not waiting for input the time will be longer. {callback} is the function to call. It can be the name of a - function or a Funcref. It is called with one argument, which + function or a |Funcref|. It is called with one argument, which is the timer ID. The callback is only invoked when Vim is waiting for input. {options} is a dictionary. Supported entries: "repeat" Number of times to repeat calling the - callback. -1 means forever. + callback. -1 means forever. When not present + the callback will be called once. Example: > func MyHandler(timer) @@ -7561,12 +7841,22 @@ \ {'repeat': 3}) < This will invoke MyHandler() three times at 500 msec intervals. + {only available when compiled with the |+timers| feature} timer_stop({timer}) *timer_stop()* Stop a timer. The timer callback will no longer be invoked. {timer} is an ID returned by timer_start(), thus it must be a - Number. + Number. If {timer} does not exist there is no error. + + {only available when compiled with the |+timers| feature} + +timer_stopall() *timer_stopall()* + Stop all timers. The timer callbacks will no longer be + invoked. Useful if some timers is misbehaving. If there are + no timers there is no error. + + {only available when compiled with the |+timers| feature} tolower({expr}) *tolower()* The result is a copy of the String given, with all uppercase @@ -7696,7 +7986,7 @@ each item. For the use of {func} and {dict} see |sort()|. values({dict}) *values()* - Return a |List| with all the values of {dict}. The |List| is + Return a |List| with all the values of {dict}. The |List| is in arbitrary order. @@ -7732,7 +8022,7 @@ virtcol(".") with text "foo^Lbar", with cursor on the "^L", returns 5 virtcol("$") with text "foo^Lbar", returns 9 virtcol("'t") with text " there", with 't at 'h', returns 6 -< The first column is 1. 0 is returned for an error. +< The first column is 1. 0 is returned for an error. A more advanced example that echoes the maximum length of all lines: > echo max(map(range(1, line('$')), "virtcol([v:val, '$'])")) @@ -7769,11 +8059,11 @@ win_findbuf({bufnr}) *win_findbuf()* - Returns a list with window IDs for windows that contain buffer - {bufnr}. When there is none the list is empty. + Returns a list with |window-ID|s for windows that contain + buffer {bufnr}. When there is none the list is empty. win_getid([{win} [, {tab}]]) *win_getid()* - Get the window ID for the specified window. + Get the |window-ID| for the specified window. When {win} is missing use the current window. With {win} this is the window number. The top window has number 1. @@ -7798,7 +8088,7 @@ *winbufnr()* winbufnr({nr}) The result is a Number, which is the number of the buffer associated with window {nr}. {nr} can be the window number or - the window ID. + the |window-ID|. When {nr} is zero, the number of the buffer in the current window is returned. When window {nr} doesn't exist, -1 is returned. @@ -7812,7 +8102,7 @@ winheight({nr}) *winheight()* The result is a Number, which is the height of window {nr}. - {nr} can be the window number or the window ID. + {nr} can be the window number or the |window-ID|. When {nr} is zero, the height of the current window is returned. When window {nr} doesn't exist, -1 is returned. An existing window always has a height of zero or more. @@ -7821,7 +8111,7 @@ < *winline()* winline() The result is a Number, which is the screen line of the cursor - in the window. This is counting screen lines from the top of + in the window. This is counting screen lines from the top of the window. The first line is one. If the cursor was moved the view on the file will be updated first, this may cause a scroll. @@ -7892,7 +8182,7 @@ winwidth({nr}) *winwidth()* The result is a Number, which is the width of window {nr}. - {nr} can be the window number or the window ID. + {nr} can be the window number or the |window-ID|. When {nr} is zero, the width of the current window is returned. When window {nr} doesn't exist, -1 is returned. An existing window always has a width of zero or more. @@ -7937,7 +8227,7 @@ end does cause the last line in the file to end in a NL. When {flags} contains "a" then append mode is used, lines are - append to the file: > + appended to the file: > :call writefile(["foo"], "event.log", "a") :call writefile(["bar"], "event.log", "a") > @@ -7988,6 +8278,10 @@ < Note that it's possible for patch 147 to be omitted even though 148 is included. +Hint: To find out if Vim supports backslashes in a file name (MS-Windows), +use: `if exists('+shellslash')` + + acl Compiled with |ACL| support. all_builtin_terms Compiled with all builtin terminals enabled. amiga Amiga version of Vim. @@ -8017,7 +8311,7 @@ dialog_gui Compiled with GUI dialog support. diff Compiled with |vimdiff| and 'diff' support. digraphs Compiled with support for digraphs. -directx Compiled with support for Direct-X and 'renderoptions'. +directx Compiled with support for DirectX and 'renderoptions'. dnd Compiled with support for the "~ register |quote_~|. ebcdic Compiled on a machine with ebcdic character set. emacs_tags Compiled with support for Emacs tags. @@ -8135,6 +8429,8 @@ timers Compiled with |timer_start()| support. title Compiled with window title support |'title'|. toolbar Compiled with support for |gui-toolbar|. +ttyin input is a terminal (tty) +ttyout output is a terminal (tty) unix Unix version of Vim. user_commands User-defined commands. vertsplit Compiled with vertically split windows |:vsplit|. @@ -8249,9 +8545,9 @@ {name} can also be a |Dictionary| entry that is a |Funcref|: > :function dict.init(arg) -< "dict" must be an existing dictionary. The entry +< "dict" must be an existing dictionary. The entry "init" is added if it didn't exist yet. Otherwise [!] - is required to overwrite an existing function. The + is required to overwrite an existing function. The result is a |Funcref| to a numbered function. The function can only be used with a |Funcref| and will be deleted if there are no more references to it. @@ -8277,7 +8573,7 @@ abort as soon as an error is detected. *:func-dict* When the [dict] argument is added, the function must - be invoked through an entry in a |Dictionary|. The + be invoked through an entry in a |Dictionary|. The local variable "self" will then be set to the dictionary. See |Dictionary-function|. *:func-closure* *E932* @@ -8318,7 +8614,7 @@ {name} can also be a |Dictionary| entry that is a |Funcref|: > :delfunc dict.init -< This will remove the "init" entry from "dict". The +< This will remove the "init" entry from "dict". The function is deleted if there are no more references to it. *:retu* *:return* *E133* @@ -8338,7 +8634,7 @@ returns at the outermost ":endtry". *function-argument* *a:var* -An argument can be defined by giving its name. In the function this can then +An argument can be defined by giving its name. In the function this can then be used as "a:name" ("a:" for argument). *a:0* *a:1* *a:000* *E740* *...* Up to 20 arguments can be given, separated by commas. After the named @@ -8409,7 +8705,7 @@ itself, the function is executed for each line in the range, with the cursor in the first column of that line. The cursor is left at the last line (possibly moved by the last function - call). The arguments are re-evaluated for each line. Thus + call). The arguments are re-evaluated for each line. Thus this works: *function-range-example* > :function Mynumber(arg) @@ -8454,7 +8750,7 @@ The autocommand is useful if you have a plugin that is a long Vim script file. You can define the autocommand and quickly quit the script with |:finish|. -That makes Vim startup faster. The autocommand should then load the same file +That makes Vim startup faster. The autocommand should then load the same file again, setting a variable to skip the |:finish| command. Use the FuncUndefined autocommand event with a pattern that matches the @@ -8536,7 +8832,7 @@ "adjective" was set to "quiet", then it would be to "my_quiet_variable". One application for this is to create a set of variables governed by an option -value. For example, the statement > +value. For example, the statement > echo my_{&background}_message would output the contents of "my_dark_message" or "my_light_message" depending @@ -8582,7 +8878,7 @@ must be a valid index in that list. For nested list the index can be repeated. This cannot be used to add an item to a |List|. - This cannot be used to set a byte in a String. You + This cannot be used to set a byte in a String. You can do that like this: > :let var = var[0:2] . 'X' . var[4:] < @@ -8627,7 +8923,7 @@ that would match everywhere. :let @{reg-name} .= {expr1} - Append {expr1} to register {reg-name}. If the + Append {expr1} to register {reg-name}. If the register was empty it's like setting it to {expr1}. :let &{option-name} = {expr1} *:let-option* *:let-&* @@ -8703,7 +8999,7 @@ |List| item. *E121* -:let {var-name} .. List the value of variable {var-name}. Multiple +:let {var-name} .. List the value of variable {var-name}. Multiple variable names may be given. Special names recognized here: *E738* g: global variables @@ -8852,7 +9148,7 @@ :for item in copy(mylist) < When not making a copy, Vim stores a reference to the next item in the list, before executing the commands - with the current item. Thus the current item can be + with the current item. Thus the current item can be removed without effect. Removing any later item means it will not be found. Thus the following example works (an inefficient way to make a list empty): > @@ -9058,7 +9354,7 @@ message in the |message-history|. When used in a script or function the line number will be added. Spaces are placed between the arguments as with the - :echo command. When used inside a try conditional, + :echo command. When used inside a try conditional, the message is raised as an error exception instead (see |try-echoerr|). Example: > @@ -9187,14 +9483,14 @@ the ":endtry" are not executed and the exception might be caught elsewhere, see |try-nesting|. When during execution of a catch clause another exception is thrown, the -remaining lines in that catch clause are not executed. The new exception is +remaining lines in that catch clause are not executed. The new exception is not matched against the patterns in any of the ":catch" commands of the same try conditional and none of its catch clauses is taken. If there is, however, a finally clause, it is executed, and the exception pends during its execution. The commands following the ":endtry" are not executed. The new exception might, however, be caught elsewhere, see |try-nesting|. When during execution of the finally clause (if present) an exception is -thrown, the remaining lines in the finally clause are skipped. If the finally +thrown, the remaining lines in the finally clause are skipped. If the finally clause has been taken because of an exception from the try block or one of the catch clauses, the original (pending) exception is discarded. The commands following the ":endtry" are not executed, and the exception from the finally @@ -9228,7 +9524,7 @@ of its catch clauses or its finally clause, the outer try conditional is checked according to the rules above. If the inner try conditional is in the try block of the outer try conditional, its catch clauses are checked, but -otherwise only the finally clause is executed. It does not matter for +otherwise only the finally clause is executed. It does not matter for nesting, whether the inner try conditional is directly contained in the outer one, or whether the outer one sources a script or calls a function containing the inner try conditional. @@ -9291,7 +9587,7 @@ however displays "in Bar" and throws 4711. Any other command that takes an expression as argument might also be -abandoned by an (uncaught) exception during the expression evaluation. The +abandoned by an (uncaught) exception during the expression evaluation. The exception is then propagated to the caller of the command. Example: > @@ -9475,13 +9771,13 @@ Scripts often change global settings and restore them at their end. If the user however interrupts the script by pressing CTRL-C, the settings remain in -an inconsistent state. The same may happen to you in the development phase of +an inconsistent state. The same may happen to you in the development phase of a script when an error occurs or you explicitly throw an exception without catching it. You can solve these problems by using a try conditional with a finally clause for restoring the settings. Its execution is guaranteed on normal control flow, on error, on an explicit ":throw", and on interrupt. (Note that errors and interrupts from inside the try conditional are converted -to exceptions. When not caught, they terminate the script after the finally +to exceptions. When not caught, they terminate the script after the finally clause has been executed.) Example: > @@ -9539,7 +9835,7 @@ :echo Foo() "returned by Foo" This displays "cleanup" and "4711 returned by Foo". You don't need to add an -extra ":return" in the finally clause. (Above all, this would override the +extra ":return" in the finally clause. (Above all, this would override the return value.) *except-from-finally* @@ -9583,7 +9879,7 @@ Vim:{errmsg} {cmdname} is the name of the command that failed; the second form is used when -the command name is not known. {errmsg} is the error message usually produced +the command name is not known. {errmsg} is the error message usually produced when the error occurs outside try conditionals. It always begins with a capital "E", followed by a two or three-digit error number, a colon, and a space. @@ -9688,7 +9984,7 @@ CATCHING INTERRUPTS *catch-interrupt* When there are active try conditionals, an interrupt (CTRL-C) is converted to -the exception "Vim:Interrupt". You can catch it like every exception. The +the exception "Vim:Interrupt". You can catch it like every exception. The script is not terminated, then. Example: > @@ -9722,7 +10018,7 @@ :endwhile You can interrupt a task here by pressing CTRL-C; the script then asks for -a new command. If you press CTRL-C at the prompt, the script is terminated. +a new command. If you press CTRL-C at the prompt, the script is terminated. For testing what happens when CTRL-C would be pressed on a specific line in your script, use the debug mode and execute the |>quit| or |>interrupt| @@ -9879,7 +10175,7 @@ autocommands. Exceptions from that sequence will be catchable by the caller of the command. Example: For the ":write" command, the caller cannot know whether the file -had actually been written when the exception occurred. You need to tell it in +had actually been written when the exception occurred. You need to tell it in some way. > :if !exists("cnt") @@ -10027,8 +10323,8 @@ This problem has been solved by converting errors to exceptions and using immediate abortion (if not suppressed by ":silent!") only when a try -conditional is active. This is no restriction since an (error) exception can -be caught only from an active try conditional. If you want an immediate +conditional is active. This is no restriction since an (error) exception can +be caught only from an active try conditional. If you want an immediate termination without catching the error, just use a try conditional without catch clause. (You can cause cleanup code being executed before termination by specifying a finally clause.) @@ -10043,8 +10339,8 @@ script on error. You get the immediate abortion on error and can catch the error in the new script. If however the sourced script suppresses error messages by using the ":silent!" command (checking for errors by testing -|v:errmsg| if appropriate), its execution path is not changed. The error is -not converted to an exception. (See |:silent|.) So the only remaining cause +|v:errmsg| if appropriate), its execution path is not changed. The error is +not converted to an exception. (See |:silent|.) So the only remaining cause where this happens is for scripts that don't care about errors and produce error messages. You probably won't want to use such code from your new scripts. @@ -10276,7 +10572,7 @@ In a few situations it is not allowed to change the text in the buffer, jump to another window and some other things that might confuse or break what Vim is currently doing. This mostly applies to things that happen when Vim is -actually doing something else. For example, evaluating the 'balloonexpr' may +actually doing something else. For example, evaluating the 'balloonexpr' may happen any moment the mouse cursor is resting at some position. This is not allowed when the textlock is active: @@ -10286,5 +10582,26 @@ - closing a window or quitting Vim - etc. +============================================================================== +13. Testing *testing* + +Vim can be tested after building it, usually with "make test". +The tests are located in the directory "src/testdir". + +There are several types of tests added over time: + test33.in oldest, don't add any more + test_something.in old style tests + test_something.vim new style tests + + *new-style-testing* +New tests should be added as new style tests. These use functions such as +|assert_equal()| to keep the test commands and the expected result in one +place. + *old-style-testing* +In some cases an old style test needs to be used. E.g. when testing Vim +without the |+eval| feature. + +Find more information in the file src/testdir/README.txt. + vim:tw=78:ts=8:ft=help:norl: diff -Nru vim-7.4.2156/runtime/doc/farsi.txt vim-8.0.0134/runtime/doc/farsi.txt --- vim-7.4.2156/runtime/doc/farsi.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/farsi.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*farsi.txt* For Vim version 7.4. Last change: 2015 Aug 29 +*farsi.txt* For Vim version 8.0. Last change: 2015 Aug 29 VIM REFERENCE MANUAL by Mortaza Ghassab Shiran diff -Nru vim-7.4.2156/runtime/doc/filetype.txt vim-8.0.0134/runtime/doc/filetype.txt --- vim-7.4.2156/runtime/doc/filetype.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/filetype.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*filetype.txt* For Vim version 7.4. Last change: 2016 Jun 20 +*filetype.txt* For Vim version 8.0. Last change: 2016 Sep 09 VIM REFERENCE MANUAL by Bram Moolenaar @@ -644,6 +644,17 @@ :let g:no_pdf_maps = 1 < +PYTHON *ft-python-plugin* *PEP8* + +By default the following options are set, in accordance with PEP8: > + + setlocal expandtab shiftwidth=4 softtabstop=4 tabstop=8 + +To disable this behaviour, set the following variable in your vimrc: > + + let g:python_recommended_style = 0 + + RPM SPEC *ft-spec-plugin* Since the text for this plugin is rather long it has been put in a separate diff -Nru vim-7.4.2156/runtime/doc/fold.txt vim-8.0.0134/runtime/doc/fold.txt --- vim-7.4.2156/runtime/doc/fold.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/fold.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*fold.txt* For Vim version 7.4. Last change: 2016 Jan 02 +*fold.txt* For Vim version 8.0. Last change: 2016 Jan 02 VIM REFERENCE MANUAL by Bram Moolenaar diff -Nru vim-7.4.2156/runtime/doc/ft_ada.txt vim-8.0.0134/runtime/doc/ft_ada.txt --- vim-7.4.2156/runtime/doc/ft_ada.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/ft_ada.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*ft_ada.txt* For Vim version 7.4. Last change: 2010 Jul 20 +*ft_ada.txt* For Vim version 8.0. Last change: 2010 Jul 20 ADA FILE TYPE PLUG-INS REFERENCE MANUAL~ diff -Nru vim-7.4.2156/runtime/doc/ft_sql.txt vim-8.0.0134/runtime/doc/ft_sql.txt --- vim-7.4.2156/runtime/doc/ft_sql.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/ft_sql.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*ft_sql.txt* For Vim version 7.4. Last change: 2013 May 15 +*ft_sql.txt* For Vim version 8.0. Last change: 2013 May 15 by David Fishburn diff -Nru vim-7.4.2156/runtime/doc/gui.txt vim-8.0.0134/runtime/doc/gui.txt --- vim-7.4.2156/runtime/doc/gui.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/gui.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*gui.txt* For Vim version 7.4. Last change: 2014 Mar 08 +*gui.txt* For Vim version 8.0. Last change: 2014 Mar 08 VIM REFERENCE MANUAL by Bram Moolenaar diff -Nru vim-7.4.2156/runtime/doc/gui_w32.txt vim-8.0.0134/runtime/doc/gui_w32.txt --- vim-7.4.2156/runtime/doc/gui_w32.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/gui_w32.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*gui_w32.txt* For Vim version 7.4. Last change: 2014 Dec 20 +*gui_w32.txt* For Vim version 8.0. Last change: 2014 Dec 20 VIM REFERENCE MANUAL by Bram Moolenaar @@ -49,10 +49,6 @@ vimrc or gvimrc file: > au GUIEnter * simalt ~x < - *gui-w32s* -There is a specific version of gvim.exe that runs under the Win32s subsystem -of Windows 3.1 or 3.11. See |win32s|. - Using Vim as a plugin *gui-w32-windowid* @@ -100,9 +96,10 @@ You can also install Vim in the "Send To" menu: 1. Start a Windows Explorer 2. Navigate to your sendto directory: - Windows 95: %windir%\sendto (e.g. "c:\windows\sendto") Windows NT: %windir%\profiles\%user%\sendto (e.g. - "c:\winnt\profiles\mattha\sendto"). + "c:\winnt\profiles\mattha\sendto") + Windows XP: C:\Documents and Settings\%user%\SendTo + Windows Vista: C:\Users\%user%\AppData\Roaming\Microsoft\Windows\SendTo . 3. Right-click in the file pane and select New->Shortcut 4. Follow the shortcut wizard, using the full path to VIM/GVIM. @@ -274,35 +271,17 @@ question if you really want to kill the application, Vim may be killed too! (This does not apply to commands run asynchronously with ":!start".) -In Windows 95, the window in which the commands are executed is always 25x80 -characters, to be as DOS compatible as possible (this matters!). The default -system font is used. On NT, the window will be the default you have set up for -"Console" in Control Panel. On Win32s, the properties of the DOS box are -determined by _default.pif in the windows directory. - - *msdos-mode* -If you get a dialog that says "This program is set to run in MS-DOS mode..." -when you run an external program, you can solve this by changing the -properties of the associated shortcut: -- Use a Windows Explorer to find the command.com that is used. It can be - c:\command.com, c:\dos\command.com, c:\windows\command.com, etc. -- With the right mouse button, select properties of this command.com. -- In the Program tab select "Advanced". -- Unselect "MS-DOS mode". -- Click "OK" twice. +The window in which the commands are executed will be the default you have set +up for "Console" in Control Panel. *win32-!start* Normally, Vim waits for a command to complete before continuing (this makes sense for most shell commands which produce output for Vim to use). If you want Vim to start a program and return immediately, you can use the following -syntax on W95 & NT: > +syntax: > :!start [/min] {command} The optional "/min" causes the window to be minimized. -On Win32s, you will have to go to another window instead. Don't forget that -you must tell Windows 3.1x to keep executing a DOS command in the background -while you switch back to Vim. - ============================================================================== 5. Special colors *win32-colors* @@ -311,7 +290,7 @@ Additionally the system configured colors can also be used. These are known by the names Sys_XXX, where XXX is the appropriate system color name, from the following list (see the Win32 documentation for full descriptions). Case is -ignored. Note: On Win32s not all of these colors are supported. +ignored. Sys_3DDKShadow Sys_3DFace Sys_BTNFace Sys_3DHilight Sys_3DHighlight Sys_BTNHilight diff -Nru vim-7.4.2156/runtime/doc/gui_x11.txt vim-8.0.0134/runtime/doc/gui_x11.txt --- vim-7.4.2156/runtime/doc/gui_x11.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/gui_x11.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*gui_x11.txt* For Vim version 7.4. Last change: 2016 Apr 08 +*gui_x11.txt* For Vim version 8.0. Last change: 2016 Sep 12 VIM REFERENCE MANUAL by Bram Moolenaar @@ -421,6 +421,9 @@ GNOME is compiled with if it was found by configure and the --enable-gnome-check argument was used. +Note: Avoid use of --enable-gnome-check with GTK+ 3 GUI build. The +functionality mentioned above is consolidated in GTK+ 3. + GNOME session support *gui-gnome-session* *gnome-session* @@ -457,20 +460,37 @@ ============================================================================== 8. Compiling *gui-x11-compiling* -If using X11, Vim's Makefile will by default first try to find the necessary -GTK+ files on your system. If the GTK+ files cannot be found, then the Motif -files will be searched for. Finally, if this fails, the Athena files will be -searched for. If all three fail, the GUI will be disabled. - -For GTK+, Vim's configuration process requires that GTK+ be properly -installed. That is, the shell script 'gtk-config' must be in your PATH, and -you can already successful compile, build, and execute a GTK+ program. The -reason for this is that the compiler flags (CFLAGS) and link flags (LDFLAGS) -are obtained through the 'gtk-config' shell script. - -If you want to build with GTK+ 2 support pass the --enable-gtk2-check argument -to ./configure. Optionally, support for GNOME 2 will be compiled if the ---enable-gnome-check option is also given. +If using X11, Vim's configure will by default first try to find the necessary +GTK+ files on your system. When both GTK+ 2 and GTK+ 3 are available, GTK+ 2 +will be chosen unless --enable-gui=gtk3 is passed explicitly to configure. + +If the GTK+ files cannot be found, then the Motif files will be searched for. +Finally, if this fails, the Athena files will be searched for. If all three +fail, the GUI will be disabled. + +For GTK+, Vim's configuration process uses pkg-config(1) to check if the +GTK+ required for a specified build is properly installed and usable. +Accordingly, it is a good idea to make sure before running configure that +your system has a working pkg-config together with the .pc file of the +required GTK+. For that, say, run the following on the command line to see if +your pkg-config works with your GTK+ 2: > + + $ pkg-config --modversion gtk+-2.0 + +Replace gtk+-2.0 with gtk+-3.0 for GTK+ 3. If you get the correct version +number of your GTK+, you can proceed; if not, you probably need to do some +system administration chores to set up pkg-config and GTK+ correctly. + +The GTK+ 2 GUI is built by default. Therefore, you usually don't need to pass +any options such as --enable-gui=gtk2 to configure and build that. + +Optionally, the GTK+ 2 GUI can consolidate the GNOME 2 support. This support +is enabled by passing --enable-gnome-check to configure. + +If you want to build the GTK+ 3 GUI, you have to pass --enable-gui=gtk3 +explicitly to configure, and avoid passing --enable-gnome-check to that, as +the functionality of the GNOME 2 support has already been consolidated in +GTK+ 3. Otherwise, if you are using Motif or Athena, when you have the Motif or Athena files in a directory where configure doesn't look, edit the Makefile to enter @@ -478,18 +498,14 @@ the Motif directories, "CONF_OPT_X" for Athena. *gui-x11-gtk* -At the time of this writing, GTK+ version 1.0.6 and 1.2 are outdated. It -is suggested that you use GTK 2. The GTK 1 support will most likely be -dropped soon. - -For the GTK+ 2 GUI, using the latest release of the GTK+ 2.0 or GTK+ 2.2 -series is recommended. - -Lastly, although GTK+ has supposedly been ported to the Win32 platform, this -has not been tested with Vim and is also unsupported. Also, it's unlikely to -even compile since GTK+ GUI uses parts of the generic X11 code. This might -change in distant future; particularly because getting rid of the X11 centric -code parts is also required for GTK+ framebuffer support. +Currently, Vim supports both GTK+ 2 and GTK+ 3. + +The GTK+ 2 GUI requires GTK+ 2.2 or later. + +Although the GTK+ 3 GUI is written in such a way that the source code can be +compiled against all versions of the 3.x series, we recommend GTK+ 3.10 or +later because of its substantial implementation changes in redraw done at +that version. *gui-x11-motif* For Motif, you need at least Motif version 1.2 and/or X11R5. Motif 2.0 and diff -Nru vim-7.4.2156/runtime/doc/hangulin.txt vim-8.0.0134/runtime/doc/hangulin.txt --- vim-7.4.2156/runtime/doc/hangulin.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/hangulin.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*hangulin.txt* For Vim version 7.4. Last change: 2015 Nov 24 +*hangulin.txt* For Vim version 8.0. Last change: 2015 Nov 24 VIM REFERENCE MANUAL by Chi-Deok Hwang and Sung-Hyun Nam diff -Nru vim-7.4.2156/runtime/doc/hebrew.txt vim-8.0.0134/runtime/doc/hebrew.txt --- vim-7.4.2156/runtime/doc/hebrew.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/hebrew.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*hebrew.txt* For Vim version 7.4. Last change: 2007 Jun 14 +*hebrew.txt* For Vim version 8.0. Last change: 2007 Jun 14 VIM REFERENCE MANUAL by Ron Aaron (and Avner Lottem) diff -Nru vim-7.4.2156/runtime/doc/helphelp.txt vim-8.0.0134/runtime/doc/helphelp.txt --- vim-7.4.2156/runtime/doc/helphelp.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/helphelp.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*helphelp.txt* For Vim version 7.4. Last change: 2016 Apr 01 +*helphelp.txt* For Vim version 8.0. Last change: 2016 Apr 01 VIM REFERENCE MANUAL by Bram Moolenaar diff -Nru vim-7.4.2156/runtime/doc/help.txt vim-8.0.0134/runtime/doc/help.txt --- vim-7.4.2156/runtime/doc/help.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/help.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*help.txt* For Vim version 7.4. Last change: 2016 Mar 31 +*help.txt* For Vim version 8.0. Last change: 2016 Sep 12 VIM - main help file k @@ -135,6 +135,7 @@ |autocmd.txt| automatically executing commands on an event |filetype.txt| settings done specifically for a type of file |eval.txt| expression evaluation, conditional commands +|channel.txt| Jobs, Channels, inter-process communication |fold.txt| hide (fold) ranges of lines Special issues ~ diff -Nru vim-7.4.2156/runtime/doc/howto.txt vim-8.0.0134/runtime/doc/howto.txt --- vim-7.4.2156/runtime/doc/howto.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/howto.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*howto.txt* For Vim version 7.4. Last change: 2006 Apr 02 +*howto.txt* For Vim version 8.0. Last change: 2006 Apr 02 VIM REFERENCE MANUAL by Bram Moolenaar diff -Nru vim-7.4.2156/runtime/doc/if_cscop.txt vim-8.0.0134/runtime/doc/if_cscop.txt --- vim-7.4.2156/runtime/doc/if_cscop.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/if_cscop.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*if_cscop.txt* For Vim version 7.4. Last change: 2011 Jun 12 +*if_cscop.txt* For Vim version 8.0. Last change: 2011 Jun 12 VIM REFERENCE MANUAL by Andy Kahn diff -Nru vim-7.4.2156/runtime/doc/if_lua.txt vim-8.0.0134/runtime/doc/if_lua.txt --- vim-7.4.2156/runtime/doc/if_lua.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/if_lua.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*if_lua.txt* For Vim version 7.4. Last change: 2015 Oct 16 +*if_lua.txt* For Vim version 8.0. Last change: 2015 Oct 16 VIM REFERENCE MANUAL by Luis Carvalho @@ -59,6 +59,12 @@ EOF endfunction < +To see what version of Lua you have: > + :lua print(_VERSION) + +If you use LuaJIT you can also use this: > + :lua print(jit.version) +< *:luado* :[range]luado {body} Execute Lua function "function (line, linenr) {body} diff -Nru vim-7.4.2156/runtime/doc/if_mzsch.txt vim-8.0.0134/runtime/doc/if_mzsch.txt --- vim-7.4.2156/runtime/doc/if_mzsch.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/if_mzsch.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*if_mzsch.txt* For Vim version 7.4. Last change: 2016 Jan 24 +*if_mzsch.txt* For Vim version 8.0. Last change: 2016 Jan 24 VIM REFERENCE MANUAL by Sergey Khorev @@ -97,6 +97,9 @@ :mzscheme (require (prefix vim- vimext)) ; for MzScheme < 4.x :mzscheme (require (prefix-in vim- 'vimext)) ; MzScheme 4.x :mzscheme (vim-set-buff-line 10 "This is line #10") + +To see what version of MzScheme you have: > + :mzscheme (display (version)) < Inline script usage: > function! SetFirstLine() diff -Nru vim-7.4.2156/runtime/doc/if_ole.txt vim-8.0.0134/runtime/doc/if_ole.txt --- vim-7.4.2156/runtime/doc/if_ole.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/if_ole.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*if_ole.txt* For Vim version 7.4. Last change: 2008 Aug 16 +*if_ole.txt* For Vim version 8.0. Last change: 2008 Aug 16 VIM REFERENCE MANUAL by Paul Moore diff -Nru vim-7.4.2156/runtime/doc/if_perl.txt vim-8.0.0134/runtime/doc/if_perl.txt --- vim-7.4.2156/runtime/doc/if_perl.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/if_perl.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*if_perl.txt* For Vim version 7.4. Last change: 2015 Oct 16 +*if_perl.txt* For Vim version 8.0. Last change: 2015 Oct 16 VIM REFERENCE MANUAL by Sven Verdoolaege @@ -83,6 +83,9 @@ EOF endfunction < +To see what version of Perl you have: > + :perl print $^V +< *:perldo* *:perld* :[range]perld[o] {cmd} Execute Perl command {cmd} for each line in the diff -Nru vim-7.4.2156/runtime/doc/if_pyth.txt vim-8.0.0134/runtime/doc/if_pyth.txt --- vim-7.4.2156/runtime/doc/if_pyth.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/if_pyth.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*if_pyth.txt* For Vim version 7.4. Last change: 2015 Nov 10 +*if_pyth.txt* For Vim version 8.0. Last change: 2016 Sep 17 VIM REFERENCE MANUAL by Paul Moore @@ -56,7 +56,11 @@ print 'EAT ME' EOF endfunction -< + +To see what version of Python you have: > + :python import sys + :python print(sys.version) + Note: Python is very sensitive to the indenting. Make sure the "class" line and "EOF" do not have any indent. @@ -744,6 +748,10 @@ The `:py3` and `:python3` commands work similar to `:python`. A simple check if the `:py3` command is working: > :py3 print("Hello") + +To see what version of Python you have: > + :py3 import sys + :py3 print(sys.version) < *:py3file* The `:py3file` command works similar to `:pyfile`. *:py3do* diff -Nru vim-7.4.2156/runtime/doc/if_ruby.txt vim-8.0.0134/runtime/doc/if_ruby.txt --- vim-7.4.2156/runtime/doc/if_ruby.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/if_ruby.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*if_ruby.txt* For Vim version 7.4. Last change: 2015 Dec 03 +*if_ruby.txt* For Vim version 8.0. Last change: 2016 Sep 01 VIM REFERENCE MANUAL by Shugo Maeda @@ -58,6 +58,9 @@ EOF endfunction < +To see what version of Ruby you have: > + :ruby print RUBY_VERSION +< *:rubydo* *:rubyd* *E265* :[range]rubyd[o] {cmd} Evaluate Ruby command {cmd} for each line in the @@ -204,21 +207,19 @@ You need to install the right version of Ruby for this to work. You can find the package to download from: -http://www.garbagecollect.jp/ruby/mswin32/en/download/release.html -Currently that is ruby-1.9.1-p429-i386-mswin32.zip +http://rubyinstaller.org/downloads/ +Currently that is rubyinstaller-2.2.5.exe To use the Ruby interface the Ruby DLL must be in your search path. In a console window type "path" to see what directories are used. The 'rubydll' option can be also used to specify the Ruby DLL. The name of the DLL must match the Ruby version Vim was compiled with. -Currently the name is "msvcrt-ruby191.dll". That is for Ruby 1.9.1. To know +Currently the name is "msvcrt-ruby220.dll". That is for Ruby 2.2.X. To know for sure edit "gvim.exe" and search for "ruby\d*.dll\c". -If you want to build Vim with Ruby 1.9.1, you need to edit the config.h file -and comment-out the check for _MSC_VER. -You may also need to rename the include directory name to match the version, -strangely for Ruby 1.9.3 the directory is called 1.9.1. +If you want to build Vim with RubyInstaller 1.9 or 2.X using MSVC, you need +some tricks. See the src/INSTALLpc.txt for detail. Unix ~ diff -Nru vim-7.4.2156/runtime/doc/if_sniff.txt vim-8.0.0134/runtime/doc/if_sniff.txt --- vim-7.4.2156/runtime/doc/if_sniff.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/if_sniff.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*if_sniff.txt* For Vim version 7.4. Last change: 2016 Feb 27 +*if_sniff.txt* For Vim version 8.0. Last change: 2016 Feb 27 VIM REFERENCE MANUAL diff -Nru vim-7.4.2156/runtime/doc/if_tcl.txt vim-8.0.0134/runtime/doc/if_tcl.txt --- vim-7.4.2156/runtime/doc/if_tcl.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/if_tcl.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*if_tcl.txt* For Vim version 7.4. Last change: 2016 Jan 01 +*if_tcl.txt* For Vim version 8.0. Last change: 2016 Jan 01 VIM REFERENCE MANUAL by Ingo Wilken @@ -54,6 +54,9 @@ EOF endfunction < +To see what version of Tcl you have: > + :tcl puts [info patchlevel] +< *:tcldo* *:tcld* :[range]tcld[o] {cmd} Execute Tcl command {cmd} for each line in [range] diff -Nru vim-7.4.2156/runtime/doc/indent.txt vim-8.0.0134/runtime/doc/indent.txt --- vim-7.4.2156/runtime/doc/indent.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/indent.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*indent.txt* For Vim version 7.4. Last change: 2014 Dec 06 +*indent.txt* For Vim version 8.0. Last change: 2014 Dec 06 VIM REFERENCE MANUAL by Bram Moolenaar diff -Nru vim-7.4.2156/runtime/doc/index.txt vim-8.0.0134/runtime/doc/index.txt --- vim-7.4.2156/runtime/doc/index.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/index.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*index.txt* For Vim version 7.4. Last change: 2016 Jul 16 +*index.txt* For Vim version 8.0. Last change: 2016 Sep 27 VIM REFERENCE MANUAL by Bram Moolenaar @@ -984,7 +984,7 @@ |c_CTRL-E| CTRL-E cursor to end of command-line |'cedit'| CTRL-F default value for 'cedit': opens the command-line window; otherwise not used - CTRL-G not used +|c_CTRL-G| CTRL-G next match when 'incsearch' is active |c_| delete the character in front of the cursor |c_digraph| {char1} {char2} enter digraph when 'digraph' is on @@ -1002,7 +1002,7 @@ |c_CTRL-L| CTRL-L do completion on the pattern in front of the cursor and insert the longest common part |c_| execute entered command -|c_| CTRL-M same as +|c_CTRL-M| CTRL-M same as |c_CTRL-N| CTRL-N after using 'wildchar' with multiple matches: go to next match, otherwise: same as CTRL-O not used @@ -1017,7 +1017,7 @@ insert the contents of a register or object under the cursor literally CTRL-S (used for terminal control flow) - CTRL-T not used +|c_CTRL-T| CTRL-T previous match when 'incsearch' is active |c_CTRL-U| CTRL-U remove all characters |c_CTRL-V| CTRL-V insert next non-digit literally, insert three digit decimal number as a single byte. @@ -1026,7 +1026,7 @@ CTRL-Y copy (yank) modeless selection CTRL-Z not used (reserved for suspend) |c_| abandon command-line without executing it -|c_| CTRL-[ same as +|c_CTRL-[| CTRL-[ same as |c_CTRL-\_CTRL-N| CTRL-\ CTRL-N go to Normal mode, abandon command-line |c_CTRL-\_CTRL-G| CTRL-\ CTRL-G go to mode specified with 'insertmode', abandon command-line @@ -1207,7 +1207,7 @@ |:display| :di[splay] display registers |:djump| :dj[ump] jump to #define |:dl| :dl short for |:delete| with the 'l' flag -|:dl| :del[ete]l short for |:delete| with the 'l' flag +|:del| :del[ete]l short for |:delete| with the 'l' flag |:dlist| :dli[st] list #defines |:doautocmd| :do[autocmd] apply autocommands to current buffer |:doautoall| :doautoa[ll] apply autocommands for all loaded buffers @@ -1239,6 +1239,7 @@ |:file| :f[ile] show or set the current file name |:files| :files list all files in the buffer list |:filetype| :filet[ype] switch file type detection on/off +|:filter| :filt[er] filter output of following command |:find| :fin[d] find file in 'path' and edit it |:finally| :fina[lly] part of a :try command |:finish| :fini[sh] quit sourcing a Vim script diff -Nru vim-7.4.2156/runtime/doc/insert.txt vim-8.0.0134/runtime/doc/insert.txt --- vim-7.4.2156/runtime/doc/insert.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/insert.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*insert.txt* For Vim version 7.4. Last change: 2016 Jan 31 +*insert.txt* For Vim version 8.0. Last change: 2016 Jan 31 VIM REFERENCE MANUAL by Bram Moolenaar diff -Nru vim-7.4.2156/runtime/doc/intro.txt vim-8.0.0134/runtime/doc/intro.txt --- vim-7.4.2156/runtime/doc/intro.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/intro.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*intro.txt* For Vim version 7.4. Last change: 2015 Jan 20 +*intro.txt* For Vim version 8.0. Last change: 2016 Sep 24 VIM REFERENCE MANUAL by Bram Moolenaar @@ -135,10 +135,14 @@ Bug reports: *bugs* *bug-reports* *bugreport.vim* -Send bug reports to: Vim Developers -This is a maillist, you need to become a member first and many people will see -the message. If you don't want that, e.g. because it is a security issue, -send it to , this only goes to the Vim maintainer (that's Bram). +There are two ways to report bugs, both work: +1. Send bug reports to: Vim Developers + This is a maillist, you need to become a member first and many people will + see the message. If you don't want that, e.g. because it is a security + issue, send it to , this only goes to the Vim maintainer + (that's Bram). +2. Open issue on GitHub: https://github.com/vim/vim/issues + The text will be forwarded to the vim-dev maillist. Please be brief; all the time that is spent on answering mail is subtracted from the time that is spent on improving Vim! Always give a reproducible diff -Nru vim-7.4.2156/runtime/doc/map.txt vim-8.0.0134/runtime/doc/map.txt --- vim-7.4.2156/runtime/doc/map.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/map.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*map.txt* For Vim version 7.4. Last change: 2016 Jul 30 +*map.txt* For Vim version 8.0. Last change: 2016 Oct 15 VIM REFERENCE MANUAL by Bram Moolenaar @@ -431,6 +431,9 @@ Note: When using mappings for Visual mode, you can use the "'<" mark, which is the start of the last selected Visual area in the current buffer |'<|. +The |:filter| command can be used to select what mappings to list. The +pattern is matched against the {lhs} and {rhs} in the raw form. + *:map-verbose* When 'verbose' is non-zero, listing a key map will also display where it was last defined. Example: > @@ -1177,6 +1180,10 @@ " Command has the -register attribute b Command is local to current buffer (see below for details on attributes) + The list can be filtered on command name with + |:filter|, e.g., to list all commands with "Pyth" in + the name: > + filter Pyth command :com[mand] {cmd} List the user-defined commands that start with {cmd} @@ -1273,6 +1280,7 @@ -complete=locale locale names (as output of locale -a) -complete=mapping mapping name -complete=menu menus + -complete=messages |:messages| suboptions -complete=option options -complete=packadd optional package |pack-add| names -complete=shellcmd Shell command diff -Nru vim-7.4.2156/runtime/doc/mbyte.txt vim-8.0.0134/runtime/doc/mbyte.txt --- vim-7.4.2156/runtime/doc/mbyte.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/mbyte.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*mbyte.txt* For Vim version 7.4. Last change: 2016 Jul 21 +*mbyte.txt* For Vim version 8.0. Last change: 2016 Jul 21 VIM REFERENCE MANUAL by Bram Moolenaar et al. diff -Nru vim-7.4.2156/runtime/doc/message.txt vim-8.0.0134/runtime/doc/message.txt --- vim-7.4.2156/runtime/doc/message.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/message.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*message.txt* For Vim version 7.4. Last change: 2016 Jul 16 +*message.txt* For Vim version 8.0. Last change: 2016 Sep 01 VIM REFERENCE MANUAL by Bram Moolenaar @@ -39,6 +39,7 @@ Note: If the output has been stopped with "q" at the more prompt, it will only be displayed up to this point. The previous command output is cleared when another command produces output. +The "g<" output is not redirected. If you are using translated messages, the first printed line tells who maintains the messages or the translations. You can use this to contact the diff -Nru vim-7.4.2156/runtime/doc/mlang.txt vim-8.0.0134/runtime/doc/mlang.txt --- vim-7.4.2156/runtime/doc/mlang.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/mlang.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*mlang.txt* For Vim version 7.4. Last change: 2016 Jan 16 +*mlang.txt* For Vim version 8.0. Last change: 2016 Jan 16 VIM REFERENCE MANUAL by Bram Moolenaar diff -Nru vim-7.4.2156/runtime/doc/motion.txt vim-8.0.0134/runtime/doc/motion.txt --- vim-7.4.2156/runtime/doc/motion.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/motion.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*motion.txt* For Vim version 7.4. Last change: 2016 Jul 12 +*motion.txt* For Vim version 8.0. Last change: 2016 Nov 24 VIM REFERENCE MANUAL by Bram Moolenaar @@ -915,6 +915,7 @@ then the position can be near the end of what the command changed. For example when inserting a word, the position will be on the last character. + To jump to older changes use |g;|. {not in Vi} *'(* *`(* diff -Nru vim-7.4.2156/runtime/doc/netbeans.txt vim-8.0.0134/runtime/doc/netbeans.txt --- vim-7.4.2156/runtime/doc/netbeans.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/netbeans.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*netbeans.txt* For Vim version 7.4. Last change: 2016 Jul 15 +*netbeans.txt* For Vim version 8.0. Last change: 2016 Jul 15 VIM REFERENCE MANUAL by Gordon Prieur et al. diff -Nru vim-7.4.2156/runtime/doc/options.txt vim-8.0.0134/runtime/doc/options.txt --- vim-7.4.2156/runtime/doc/options.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/options.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*options.txt* For Vim version 7.4. Last change: 2016 Jul 29 +*options.txt* For Vim version 8.0. Last change: 2016 Nov 26 VIM REFERENCE MANUAL by Bram Moolenaar @@ -10,7 +10,7 @@ 2. Automatically setting options |auto-setting| 3. Options summary |option-summary| -For an overview of options see help.txt |option-list|. +For an overview of options see quickref.txt |option-list|. Vim has a number of internal variables and switches which can be set to achieve special effects. These options come in three forms: @@ -242,7 +242,7 @@ Handling of local options *local-options* Some of the options only apply to a window or buffer. Each window or buffer -has its own copy of this option, thus can each have their own value. This +has its own copy of this option, thus each can have its own value. This allows you to set 'list' in one window but not in another. And set 'shiftwidth' to 3 in one buffer and 4 in another. @@ -261,10 +261,10 @@ global value is changed. With "setlocal" only the local value is changed, thus this value is not used when editing a new buffer. -When editing a buffer that has been edited before, the last used window -options are used again. If this buffer has been edited in this window, the -values from back then are used. Otherwise the values from the window where -the buffer was edited last are used. +When editing a buffer that has been edited before, the options from the window +that was last closed are used again. If this buffer has been edited in this +window, the values from back then are used. Otherwise the values from the +last closed window where the buffer was edited last are used. It's possible to set a local window option specifically for a type of buffer. When you edit another buffer in the same window, you don't want to keep @@ -1734,12 +1734,12 @@ option + set value effect ~ 'allowrevins' off no CTRL-_ command - 'backupcopy' Unix: "yes" backup file is a copy - others: "auto" copy or rename backup file 'backspace' "" normal backspace + 'backupcopy' Unix: "yes" backup file is a copy + else: "auto" copy or rename backup file 'backup' off no backup file - 'cindent' off no C code indentation 'cedit' + "" no key to open the |cmdwin| + 'cindent' off no C code indentation 'cpoptions' + (all flags) Vi-compatible flags 'cscopetag' off don't use cscope for ":tag" 'cscopetagorder' 0 see |cscopetagorder| @@ -1781,6 +1781,7 @@ 'textwidth' 0 no automatic line wrap 'tildeop' off tilde is not an operator 'ttimeout' off no terminal timeout + 'viminfo' + {unchanged} no viminfo file 'whichwrap' + "" left-right movements don't wrap 'wildchar' + CTRL-E only when the current value is use CTRL-E for cmdline completion @@ -2633,7 +2634,7 @@ uhex Show unprintable characters hexadecimal as instead of using ^C and ~C. - When neither "lastline" or "truncate" is included, a last line that + When neither "lastline" nor "truncate" is included, a last line that doesn't fit is replaced with "@" lines. *'eadirection'* *'ead'* @@ -2856,10 +2857,17 @@ global {not in Vi} Enables the reading of .vimrc, .exrc and .gvimrc in the current - directory. If you switch this option on you should also consider - setting the 'secure' option (see |initialization|). Using a local - .exrc, .vimrc or .gvimrc is a potential security leak, use with care! - also see |.vimrc| and |gui-init|. + directory. + + Setting this option is a potential security leak. E.g., consider + unpacking a package or fetching files from github, a .vimrc in there + might be a trojan horse. BETTER NOT SET THIS OPTION! + Instead, define an autocommand in your .vimrc to set options for a + matching directory. + + If you do switch this option on you should also consider setting the + 'secure' option (see |initialization|). + Also see |.vimrc| and |gui-init|. This option cannot be set from a |modeline| or in the |sandbox|, for security reasons. @@ -3646,7 +3654,7 @@ qXX - quality XX. Valid quality names are: PROOF, DRAFT, ANTIALIASED, NONANTIALIASED, CLEARTYPE, DEFAULT. Normally you would use "qDEFAULT". - Some quality values isn't supported in legacy OSs. + Some quality values are not supported in legacy OSs. Use a ':' to separate the options. - A '_' can be used in the place of a space, so you don't need to use @@ -3863,6 +3871,8 @@ The format of this option is like that of 'statusline'. 'guitabtooltip' is used for the tooltip, see below. + The expression will be evaluated in the |sandbox| when set from a + modeline, see |sandbox-option|. Only used when the GUI tab pages line is displayed. 'e' must be present in 'guioptions'. For the non-GUI tab pages line 'tabline' is @@ -3945,17 +3955,16 @@ *'highlight'* *'hl'* 'highlight' 'hl' string (default (as a single string): - "8:SpecialKey,@:NonText,d:Directory, - e:ErrorMsg,i:IncSearch,l:Search,m:MoreMsg, - M:ModeMsg,n:LineNr,N:CursorLineNr, - r:Question,s:StatusLine,S:StatusLineNC, - c:VertSplit, t:Title,v:Visual, - w:WarningMsg,W:WildMenu, - f:Folded,F:FoldColumn,A:DiffAdd, - C:DiffChange,D:DiffDelete,T:DiffText, - >:SignColumn,B:SpellBad,P:SpellCap, - R:SpellRare,L:SpellLocal,-:Conceal, - +:Pmenu,=:PmenuSel, + "8:SpecialKey,~:EndOfBuffer,@:NonText, + d:Directory,e:ErrorMsg,i:IncSearch, + l:Search,m:MoreMsg,M:ModeMsg,n:LineNr, + N:CursorLineNr,r:Question,s:StatusLine, + S:StatusLineNC,c:VertSplit,t:Title, + v:Visual,w:WarningMsg,W:WildMenu,f:Folded, + F:FoldColumn,A:DiffAdd,C:DiffChange, + D:DiffDelete,T:DiffText,>:SignColumn, + B:SpellBad,P:SpellCap,R:SpellRare, + L:SpellLocal,-:Conceal,+:Pmenu,=:PmenuSel, x:PmenuSbar,X:PmenuThumb") global {not in Vi} @@ -3964,7 +3973,8 @@ first character in a pair gives the occasion, the second the mode to use for that occasion. The occasions are: |hl-SpecialKey| 8 Meta and special keys listed with ":map" - |hl-NonText| @ '~' and '@' at the end of the window and + |hl-EndOfBuffer| ~ lines after the last line in the buffer + |hl-NonText| @ '@' at the end of the window and characters from 'showbreak' |hl-Directory| d directories in CTRL-D listing and other special things in listings @@ -4319,6 +4329,8 @@ original position when no match is found and when pressing . You still need to finish the search command with to move the cursor to the match. + You can use the CTRL-G and CTRL-T keys to move to the next and + previous match. |c_CTRL-G| |c_CTRL-T| When compiled with the |+reltime| feature Vim only searches for about half a second. With a complicated pattern and/or a lot of text the match may not be found. This is to avoid that Vim hangs while you @@ -4403,7 +4415,7 @@ if you want to use Vim as a modeless editor. Used for |evim|. These Insert mode commands will be useful: - Use the cursor keys to move around. - - Use CTRL-O to execute one Normal mode command |i_CTRL-O|). When + - Use CTRL-O to execute one Normal mode command |i_CTRL-O|. When this is a mapping, it is executed as if 'insertmode' was off. Normal mode remains active until the mapping is finished. - Use CTRL-L to execute a number of Normal mode commands, then use @@ -4632,7 +4644,7 @@ be able to execute Normal mode commands. This is the opposite of the 'keymap' option, where characters are mapped in Insert mode. - Also consider setting 'langnoremap' to avoid 'langmap' applies to + Also consider resetting 'langremap' to avoid 'langmap' applies to characters resulting from a mapping. This option cannot be set from a |modeline| or in the |sandbox|, for security reasons. @@ -4695,10 +4707,20 @@ {not in Vi} {only available when compiled with the |+langmap| feature} - When on, setting 'langmap' does not apply to characters resulting from + This is just like 'langremap' but with the value inverted. It only + exists for backwards compatibility. When setting 'langremap' then + 'langnoremap' is set to the inverted value, and the other way around. + + *'langremap'* *'lrm'* *'nolangremap'* *'nolrm'* +'langremap' 'lrm' boolean (default on, reset in |defaults.vim|) + global + {not in Vi} + {only available when compiled with the |+langmap| + feature} + When off, setting 'langmap' does not apply to characters resulting from a mapping. This basically means, if you noticed that setting - 'langmap' disables some of your mappings, try setting this option. - This option defaults to off for backwards compatibility. Set it on if + 'langmap' disables some of your mappings, try resetting this option. + This option defaults to on for backwards compatibility. Set it off if that works for you to avoid mappings to break. *'laststatus'* *'ls'* @@ -4751,7 +4773,7 @@ use this command to get the tallest window possible: > :set lines=999 < Minimum value is 2, maximum value is 1000. - If you get less lines than expected, check the 'guiheadroom' option. + If you get fewer lines than expected, check the 'guiheadroom' option. When you set this option and Vim is unable to change the physical number of lines of the display, the display may be messed up. @@ -4903,10 +4925,11 @@ global Changes the special characters that can be used in search patterns. See |pattern|. - NOTE: To avoid portability problems with using patterns, always keep - this option at the default "on". Only switch it off when working with - old Vi scripts. In any other situation write patterns that work when - 'magic' is on. Include "\M" when you want to |/\M|. + WARNING: Switching this option off most likely breaks plugins! That + is because many patterns assume it's on and will fail when it's off. + Only switch it off when working with old Vi scripts. In any other + situation write patterns that work when 'magic' is on. Include "\M" + when you want to |/\M|. *'makeef'* *'mef'* 'makeef' 'mef' string (default: "") @@ -5678,6 +5701,8 @@ and |+postscript| features} Expression used to print the PostScript produced with |:hardcopy|. See |pexpr-option|. + This option cannot be set from a |modeline| or in the |sandbox|, for + security reasons. *'printfont'* *'pfn'* 'printfont' 'pfn' string (default "courier") @@ -6102,7 +6127,9 @@ personal preferences to overrule or add to the distributed defaults or system-wide settings (rarely needed). - More entries are added when using |packages|. + More entries are added when using |packages|. If it gets very long + then `:set rtp` will be truncated, use `:echo &rtp` to see the full + string. Note that, unlike 'path', no wildcards like "**" are allowed. Normal wildcards are allowed, but can significantly slow down searching for @@ -6163,7 +6190,7 @@ NOTE: This option is set to 1 when 'compatible' is set. *'scrolloff'* *'so'* -'scrolloff' 'so' number (default 0) +'scrolloff' 'so' number (default 0, set to 5 in |defaults.vim|) global {not in Vi} Minimal number of screen lines to keep above and below the cursor. @@ -6245,6 +6272,8 @@ "inclusive" means that the last character of the selection is included in an operation. For example, when "x" is used to delete the selection. + When "old" is used and 'virtualedit' allows the cursor to move past + the end of line the line break still isn't included. Note that when "exclusive" is used and selecting from the end backwards, you cannot include the last character of a line, when starting in Normal mode and 'virtualedit' empty. @@ -6733,10 +6762,21 @@ Example: Try this together with 'sidescroll' and 'listchars' as in the following example to never allow the cursor to move - onto the "extends" character: + onto the "extends" character: > :set nowrap sidescroll=1 listchars=extends:>,precedes:< :set sidescrolloff=1 +< + *'signcolumn'* *'scl'* +'signcolumn' 'scl' string (default "auto") + local to window + {not in Vi} + {not available when compiled without the |+signs| + feature} + Whether or not to draw the signcolumn. Valid values are: + "auto" only when there is a sign to display + "no" never + "yes" always *'smartcase'* *'scs'* *'nosmartcase'* *'noscs'* @@ -7406,6 +7446,9 @@ By default, tag searches are case-sensitive. Case is ignored when 'ignorecase' is set and 'tagcase' is "followic", or when 'tagcase' is "ignore". + Also when 'tagcase' is "followscs" and 'smartcase' is set, or + 'tagcase' is "smart", and the pattern contains only lowercase + characters. When 'tagbsearch' is off, tags searching is slower when a full match exists, but faster when no full match exists. Tags in unsorted tags @@ -7424,8 +7467,10 @@ This option specifies how case is handled when searching the tags file: followic Follow the 'ignorecase' option + followscs Follow the 'smartcase' and 'ignorecase' options ignore Ignore case match Match case + smart Ignore case unless an upper case letter is used *'taglength'* *'tl'* 'taglength' 'tl' number (default 0) @@ -7647,7 +7692,7 @@ 'timeout' 'to' boolean (default on) global *'ttimeout'* *'nottimeout'* -'ttimeout' boolean (default off) +'ttimeout' boolean (default off, set in |defaults.vim|)) global {not in Vi} These two options together determine the behavior when part of a @@ -7682,7 +7727,7 @@ global {not in all versions of Vi} *'ttimeoutlen'* *'ttm'* -'ttimeoutlen' 'ttm' number (default -1) +'ttimeoutlen' 'ttm' number (default -1, set to 100 in |defaults.vim|)) global {not in Vi} The time in milliseconds that is waited for a key code or mapped key @@ -7777,7 +7822,7 @@ Amiga console, Win32 console, all GUI versions and terminals with a non-empty 't_ts' option). When Vim was compiled with HAVE_X11 defined, the original title will - be restored if possible |X11|. + be restored if possible, see |X11|. When this option contains printf-style '%' items, they will be expanded according to the rules used for 'statusline'. Example: > @@ -7925,8 +7970,9 @@ "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", "mlterm", or "screen", and - 'ttymouse' is not set already. + set to a name that starts with "xterm", "mlterm", "screen", "tmux", + "st" (full match only), "st-" or "stterm", 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. diff -Nru vim-7.4.2156/runtime/doc/os_390.txt vim-8.0.0134/runtime/doc/os_390.txt --- vim-7.4.2156/runtime/doc/os_390.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/os_390.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*os_390.txt* For Vim version 7.4. Last change: 2016 Feb 27 +*os_390.txt* For Vim version 8.0. Last change: 2016 Feb 27 VIM REFERENCE MANUAL by Ralf Schandl diff -Nru vim-7.4.2156/runtime/doc/os_amiga.txt vim-8.0.0134/runtime/doc/os_amiga.txt --- vim-7.4.2156/runtime/doc/os_amiga.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/os_amiga.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*os_amiga.txt* For Vim version 7.4. Last change: 2010 Aug 14 +*os_amiga.txt* For Vim version 8.0. Last change: 2010 Aug 14 VIM REFERENCE MANUAL by Bram Moolenaar diff -Nru vim-7.4.2156/runtime/doc/os_beos.txt vim-8.0.0134/runtime/doc/os_beos.txt --- vim-7.4.2156/runtime/doc/os_beos.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/os_beos.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*os_beos.txt* For Vim version 7.4. Last change: 2016 Mar 28 +*os_beos.txt* For Vim version 8.0. Last change: 2016 Mar 28 VIM REFERENCE MANUAL by Bram Moolenaar diff -Nru vim-7.4.2156/runtime/doc/os_dos.txt vim-8.0.0134/runtime/doc/os_dos.txt --- vim-7.4.2156/runtime/doc/os_dos.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/os_dos.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*os_dos.txt* For Vim version 7.4. Last change: 2006 Mar 30 +*os_dos.txt* For Vim version 8.0. Last change: 2006 Mar 30 VIM REFERENCE MANUAL by Bram Moolenaar diff -Nru vim-7.4.2156/runtime/doc/os_mac.txt vim-8.0.0134/runtime/doc/os_mac.txt --- vim-7.4.2156/runtime/doc/os_mac.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/os_mac.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*os_mac.txt* For Vim version 7.4. Last change: 2006 Apr 30 +*os_mac.txt* For Vim version 8.0. Last change: 2006 Apr 30 VIM REFERENCE MANUAL by Bram Moolenaar et al. diff -Nru vim-7.4.2156/runtime/doc/os_mint.txt vim-8.0.0134/runtime/doc/os_mint.txt --- vim-7.4.2156/runtime/doc/os_mint.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/os_mint.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*os_mint.txt* For Vim version 7.4. Last change: 2005 Mar 29 +*os_mint.txt* For Vim version 8.0. Last change: 2005 Mar 29 VIM REFERENCE MANUAL by Jens M. Felderhoff diff -Nru vim-7.4.2156/runtime/doc/os_msdos.txt vim-8.0.0134/runtime/doc/os_msdos.txt --- vim-7.4.2156/runtime/doc/os_msdos.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/os_msdos.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*os_msdos.txt* For Vim version 7.4. Last change: 2016 Feb 26 +*os_msdos.txt* For Vim version 8.0. Last change: 2016 Feb 26 VIM REFERENCE MANUAL by Bram Moolenaar diff -Nru vim-7.4.2156/runtime/doc/os_os2.txt vim-8.0.0134/runtime/doc/os_os2.txt --- vim-7.4.2156/runtime/doc/os_os2.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/os_os2.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*os_os2.txt* For Vim version 7.4. Last change: 2015 Dec 31 +*os_os2.txt* For Vim version 8.0. Last change: 2015 Dec 31 VIM REFERENCE MANUAL by Paul Slootman diff -Nru vim-7.4.2156/runtime/doc/os_qnx.txt vim-8.0.0134/runtime/doc/os_qnx.txt --- vim-7.4.2156/runtime/doc/os_qnx.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/os_qnx.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*os_qnx.txt* For Vim version 7.4. Last change: 2005 Mar 29 +*os_qnx.txt* For Vim version 8.0. Last change: 2005 Mar 29 VIM REFERENCE MANUAL by Julian Kinraid diff -Nru vim-7.4.2156/runtime/doc/os_risc.txt vim-8.0.0134/runtime/doc/os_risc.txt --- vim-7.4.2156/runtime/doc/os_risc.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/os_risc.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*os_risc.txt* For Vim version 7.4. Last change: 2011 May 10 +*os_risc.txt* For Vim version 8.0. Last change: 2011 May 10 VIM REFERENCE MANUAL by Thomas Leonard diff -Nru vim-7.4.2156/runtime/doc/os_unix.txt vim-8.0.0134/runtime/doc/os_unix.txt --- vim-7.4.2156/runtime/doc/os_unix.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/os_unix.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*os_unix.txt* For Vim version 7.4. Last change: 2005 Mar 29 +*os_unix.txt* For Vim version 8.0. Last change: 2005 Mar 29 VIM REFERENCE MANUAL by Bram Moolenaar diff -Nru vim-7.4.2156/runtime/doc/os_vms.txt vim-8.0.0134/runtime/doc/os_vms.txt --- vim-7.4.2156/runtime/doc/os_vms.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/os_vms.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*os_vms.txt* For Vim version 7.4. Last change: 2014 Aug 29 +*os_vms.txt* For Vim version 8.0. Last change: 2014 Aug 29 VIM REFERENCE MANUAL diff -Nru vim-7.4.2156/runtime/doc/os_win32.txt vim-8.0.0134/runtime/doc/os_win32.txt --- vim-7.4.2156/runtime/doc/os_win32.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/os_win32.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*os_win32.txt* For Vim version 7.4. Last change: 2016 Mar 05 +*os_win32.txt* For Vim version 8.0. Last change: 2016 Oct 12 VIM REFERENCE MANUAL by George Reilly @@ -7,20 +7,18 @@ *win32* *Win32* *MS-Windows* This file documents the idiosyncrasies of the Win32 version of Vim. -The Win32 version of Vim works on Windows NT, 95, 98, ME, XP, Vista and -Windows 7. There are both console and GUI versions. +The Win32 version of Vim works on Windows XP, Vista, 7, 8 and 10. There are +both console and GUI versions. The 32 bit version also runs on 64 bit MS-Windows systems. -There is GUI version for use in the Win32s subsystem in Windows 3.1[1]. You -can also use the 32-bit DOS version of Vim instead. See |os_msdos.txt|. - 1. Known problems |win32-problems| 2. Startup |win32-startup| 3. Restore screen contents |win32-restore| 4. Using the mouse |win32-mouse| -5. Running under Windows 3.1 |win32-win3.1| -6. Win32 mini FAQ |win32-faq| +5. Running under Windows 95 |win32-win95| +6. Running under Windows 3.1 |win32-win3.1| +7. Win32 mini FAQ |win32-faq| Additionally, there are a number of common Win32 and DOS items: File locations |dos-locations| @@ -43,20 +41,7 @@ For compiling see "src/INSTALLpc.txt". *win32-compiling* ============================================================================== -1. Known problems *windows95* *win32-problems* - -There are a few known problems with running in a console on Windows 95. As -far as we know, this is the same in Windows 98 and Windows ME. - -Comments from somebody working at Microsoft: "Win95 console support has always -been and will always be flaky". -1. Dead key support doesn't work. -2. Resizing the window with ":set columns=nn lines=nn" works, but executing - external commands MAY CAUSE THE SYSTEM TO HANG OR CRASH. -3. Screen updating is slow, unless you change 'columns' or 'lines' to a - non-DOS value. But then the second problem applies! - -If this bothers you, use the 32 bit MS-DOS version or the Win32 GUI version. +1. Known problems *win32-problems* When doing file name completion, Vim also finds matches for the short file name. But Vim will still find and use the corresponding long file name. For @@ -141,81 +126,20 @@ the console. ============================================================================== -5. Running under Windows 3.1 *win32-win3.1* - - *win32s* *windows-3.1* -There is a special version of Gvim that runs under Windows 3.1 and 3.11. You -need the gvim.exe that was compiled with Visual C++ 4.1. - -To run the Win32 version under Windows 3.1, you need to install Win32s. You -might have it already from another Win32 application which you have installed. -If Vim doesn't seem to be running properly, get the latest version: 1.30c. -You can find it at: - - http://support.microsoft.com/download/support/mslfiles/pw1118.exe - -(Microsoft moved it again, we don't know where it is now :-( ). - -The reason for having two versions of gvim.exe is that the Win32s version was -compiled with VC++ 4.1. This is the last version of VC++ that supports Win32s -programs. VC++ 5.0 is better, so that one was used for the Win32 version. -Apart from that, there is no difference between the programs. If you are in a -mixed environment, you can use the gvim.exe for Win32s on both. - -The Win32s version works the same way as the Win32 version under 95/NT. When -running under Win32s the following differences apply: -- You cannot use long file names, because Windows 3.1 doesn't support them! -- When executing an external command, it doesn't return an exit code. After - doing ":make" you have to do ":cn" yourself. +5. Running under Windows 95 *win32-win95* + *windows95* *windows98* *windowsme* +Windows 95/98/ME support was removed in patch 8.0.0029 If you want to use it +you will need to get a version older than that. ============================================================================== -6. Win32 mini FAQ *win32-faq* +6. Running under Windows 3.1 *win32-win3.1* -Q. Why does the Win32 version of Vim update the screen so slowly on Windows 95? -A. The support for Win32 console mode applications is very buggy in Win95. - For some unknown reason, the screen updates very slowly when Vim is run at - one of the standard resolutions (80x25, 80x43, or 80x50) and the 16-bit DOS - version updates the screen much more quickly than the Win32 version. - However, if the screen is set to some other resolution, such as by ":set - columns=100" or ":set lines=40", screen updating becomes about as fast as - it is with the 16-bit version. - - WARNING: Changing 'columns' may make Windows 95 crash while updating the - window (complaints --> Microsoft). Since this mostly works, this has not - been disabled, but be careful with changing 'columns'. - - Changing the screen resolution makes updates faster, but it brings - additional problems. External commands (e.g., ":!dir") can cause Vim to - freeze when the screen is set to a non-standard resolution, particularly - when 'columns' is not equal to 80. It is not possible for Vim to reliably - set the screen resolution back to the value it had upon startup before - running external commands, so if you change the number of 'lines' or - 'columns', be very, very careful. In fact, Vim will not allow you to - execute external commands when 'columns' is not equal to 80, because it is - so likely to freeze up afterwards. - - None of the above applies on Windows NT. Screen updates are fast, no - matter how many 'lines' or 'columns' the window has, and external commands - do not cause Vim to freeze. - -Q. So if the Win32 version updates the screen so slowly on Windows 95 and the - 16-bit DOS version updates the screen quickly, why would I want to run the - Win32 version? -A. Firstly, the Win32 version isn't that slow, especially when the screen is - set to some non-standard number of 'lines' or 'columns'. Secondly, the - 16-bit DOS version has some severe limitations: It can't do big changes and - it doesn't know about long file names. The Win32 version doesn't have these - limitations and it's faster overall (the same is true for the 32-bit DJGPP - DOS version of Vim). The Win32 version is smarter about handling the - screen, the mouse, and the keyboard than the DJGPP version is. - -Q. And what about the 16-bit DOS version versus the Win32 version on NT? -A. There are no good reasons to run the 16-bit DOS version on NT. The Win32 - version updates the screen just as fast as the 16-bit version does when - running on NT. All of the above disadvantages apply. Finally, DOS - applications can take a long time to start up and will run more slowly. On - non-Intel NT platforms, the DOS version is almost unusably slow, because it - runs on top of an 80x86 emulator. + *win32s* *windows-3.1* *gui-w32s* +There was a special version of Gvim that runs under Windows 3.1 and 3.11. +Support was removed in patch 7.4.1363. + +============================================================================== +7. Win32 mini FAQ *win32-faq* Q. How do I change the font? A. In the GUI version, you can use the 'guifont' option. Example: > @@ -223,47 +147,6 @@ < In the console version, you need to set the font of the console itself. You cannot do this from within Vim. -Q. When I change the size of the console window with ':set lines=xx' or - similar, the font changes! (Win95) -A. You have the console font set to 'Auto' in Vim's (or your MS-DOS prompt's) - properties. This makes W95 guess (badly!) what font is best. Set an explicit - font instead. - -Q. Why can't I paste into Vim when running Windows 95? -A. In the properties dialog box for the MS-DOS window, go to "MS-DOS - Prompt/Misc/Fast pasting" and make sure that it is NOT checked. You should - also do ":set paste" in Vim to avoid unexpected effects. |'paste'| - -Q. How do I type dead keys on Windows 95, in the console version? - (A dead key is an accent key, such as acute, grave, or umlaut, that doesn't - produce a character by itself, but when followed by another key, produces - an accented character, such as a-acute, e-grave, u-umlaut, n-tilde, and so - on. Very useful for most European languages. English-language keyboard - layouts don't use dead keys, as far as we know.) -A. You don't. The console mode input routines simply do not work correctly in - Windows 95, and I have not been able to work around them. In the words - of a senior developer at Microsoft: - Win95 console support has always been and will always be flaky. - - The flakiness is unavoidable because we are stuck between the world of - MS-DOS keyboard TSRs like KEYB (which wants to cook the data; - important for international) and the world of Win32. - - So keys that don't "exist" in MS-DOS land (like dead keys) have a - very tenuous existence in Win32 console land. Keys that act - differently between MS-DOS land and Win32 console land (like - capslock) will act flaky. - - Don't even _mention_ the problems with multiple language keyboard - layouts... - - You may be able to fashion some sort of workaround with the digraphs - mechanism. |digraphs| - - The best solution is to use the Win32 GUI version gvim.exe. Alternatively, - you can try one of the DOS versions of Vim where dead keys reportedly do - work. - Q. How do I type dead keys on Windows NT? A. Dead keys work on NT 3.51. Just type them as you would in any other application. @@ -370,28 +253,6 @@ < The first command runs notepad minimized and the second one runs it normally. -Q. I'm using Win32s, and when I try to run an external command like "make", - Vim doesn't wait for it to finish! Help! -A. The problem is that a 32-bit application (Vim) can't get notification from - Windows that a 16-bit application (your DOS session) has finished. Vim - includes a work-around for this, but you must set up your DOS commands to - run in a window, not full-screen. Unfortunately the default when you - install Windows is full-screen. To change this: - 1) Start PIF editor (in the Main program group). - 2) Open the file "_DEFAULT.PIF" in your Windows directory. - 3) Changes the display option from "Full Screen" to "Windowed". - 4) Save and exit. - - To test, start Vim and type > - :!dir C:\". -< You should see a DOS box window appear briefly with the directory listing. - -Q. I use Vim under Win32s and NT. In NT, I can define the console to default to - 50 lines, so that I get a 80x50 shell when I ':sh'. Can I do the same in - W3.1x, or am I stuck with 80x25? -A. Edit SYSTEM.INI and add 'ScreenLines=50' to the [NonWindowsApp] section. DOS - prompts and external DOS commands will now run in a 50-line window. - *windows-icon* Q. I don't like the Vim icon, can I change it? A. Yes, place your favorite icon in bitmaps/vim.ico in a directory of diff -Nru vim-7.4.2156/runtime/doc/pattern.txt vim-8.0.0134/runtime/doc/pattern.txt --- vim-7.4.2156/runtime/doc/pattern.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/pattern.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*pattern.txt* For Vim version 7.4. Last change: 2016 Jun 08 +*pattern.txt* For Vim version 8.0. Last change: 2016 Sep 11 VIM REFERENCE MANUAL by Bram Moolenaar @@ -355,8 +355,8 @@ */\%#=* *two-engines* *NFA* Vim includes two regexp engines: 1. An old, backtracking engine that supports everything. -2. A new, NFA engine that works much faster on some patterns, but does not - support everything. +2. A new, NFA engine that works much faster on some patterns, possibly slower + on some patterns. Vim will automatically select the right engine for you. However, if you run into a problem or want to specifically select one engine or the other, you can diff -Nru vim-7.4.2156/runtime/doc/pi_gzip.txt vim-8.0.0134/runtime/doc/pi_gzip.txt --- vim-7.4.2156/runtime/doc/pi_gzip.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/pi_gzip.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*pi_gzip.txt* For Vim version 7.4. Last change: 2012 Jul 19 +*pi_gzip.txt* For Vim version 8.0. Last change: 2016 Nov 06 VIM REFERENCE MANUAL by Bram Moolenaar @@ -27,6 +27,8 @@ *.bz2 bzip2 *.lzma lzma *.xz xz + *.lz lzip + *.zst zstd That's actually the only thing you need to know. There are no options. diff -Nru vim-7.4.2156/runtime/doc/pi_netrw.txt vim-8.0.0134/runtime/doc/pi_netrw.txt --- vim-7.4.2156/runtime/doc/pi_netrw.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/pi_netrw.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*pi_netrw.txt* For Vim version 7.4. Last change: 2016 Apr 20 +*pi_netrw.txt* For Vim version 8.0. Last change: 2016 Apr 20 ------------------------------------------------ NETRW REFERENCE MANUAL by Charles E. Campbell @@ -532,7 +532,7 @@ let g:netrw_sftp_cmd= '"c:\Program Files\PuTTY\psftp.exe"' < (note: it has been reported that windows 7 with putty v0.6's "-batch" option - doesn't work, so its best to leave it off for that system) + doesn't work, so it's best to leave it off for that system) See |netrw-p8| for more about putty, pscp, psftp, etc. @@ -1206,7 +1206,7 @@ invoked in the session). The file ".netrwbook" holds bookmarks when netrw (and vim) is not active. By -default, its stored on the first directory on the user's |'runtimepath'|. +default, it's stored on the first directory on the user's |'runtimepath'|. Related Topics: |netrw-gb| how to return (go) to a bookmark @@ -1431,7 +1431,7 @@ *.netrwhist* See |g:netrw_dirhistmax| for how to control the quantity of history stack slots. The file ".netrwhist" holds history when netrw (and vim) is not -active. By default, its stored on the first directory on the user's +active. By default, it's stored on the first directory on the user's |'runtimepath'|. Related Topics: @@ -3271,7 +3271,7 @@ fun! ExampleUserMapFunc(islocal) < -where a:islocal is 1 if its a local-directory system call or 0 when +where a:islocal is 1 if it's a local-directory system call or 0 when remote-directory system call. Use netrw#Expose("varname") to access netrw-internal (script-local) @@ -3595,7 +3595,7 @@ *netrw-p16* P16. When editing remote files (ex. :e ftp://hostname/path/file), - under Windows I get an |E303| message complaining that its unable + under Windows I get an |E303| message complaining that it's unable to open a swap file. (romainl) It looks like you are starting Vim from a protected @@ -3649,7 +3649,7 @@ P21. I've made a directory (or file) with an accented character, but netrw isn't letting me enter that directory/read that file: - Its likely that the shell or o/s is using a different encoding + It's likely that the shell or o/s is using a different encoding than you have vim (netrw) using. A patch to vim supporting "systemencoding" may address this issue in the future; for now, just have netrw use the proper encoding. For example: > diff -Nru vim-7.4.2156/runtime/doc/pi_paren.txt vim-8.0.0134/runtime/doc/pi_paren.txt --- vim-7.4.2156/runtime/doc/pi_paren.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/pi_paren.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*pi_paren.txt* For Vim version 7.4. Last change: 2013 May 08 +*pi_paren.txt* For Vim version 8.0. Last change: 2013 May 08 VIM REFERENCE MANUAL by Bram Moolenaar diff -Nru vim-7.4.2156/runtime/doc/pi_spec.txt vim-8.0.0134/runtime/doc/pi_spec.txt --- vim-7.4.2156/runtime/doc/pi_spec.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/pi_spec.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*pi_spec.txt* For Vim version 7.4. Last change: 2006 Apr 24 +*pi_spec.txt* For Vim version 8.0. Last change: 2006 Apr 24 by Gustavo Niemeyer ~ diff -Nru vim-7.4.2156/runtime/doc/pi_tar.txt vim-8.0.0134/runtime/doc/pi_tar.txt --- vim-7.4.2156/runtime/doc/pi_tar.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/pi_tar.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*pi_tar.txt* For Vim version 7.4. Last change: 2013 Apr 17 +*pi_tar.txt* For Vim version 8.0. Last change: 2013 Apr 17 +====================+ | Tar File Interface | diff -Nru vim-7.4.2156/runtime/doc/pi_vimball.txt vim-8.0.0134/runtime/doc/pi_vimball.txt --- vim-7.4.2156/runtime/doc/pi_vimball.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/pi_vimball.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*pi_vimball.txt* For Vim version 7.4. Last change: 2016 Apr 11 +*pi_vimball.txt* For Vim version 8.0. Last change: 2016 Apr 11 ---------------- Vimball Archiver diff -Nru vim-7.4.2156/runtime/doc/pi_zip.txt vim-8.0.0134/runtime/doc/pi_zip.txt --- vim-7.4.2156/runtime/doc/pi_zip.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/pi_zip.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*pi_zip.txt* For Vim version 7.4. Last change: 2013 Apr 17 +*pi_zip.txt* For Vim version 8.0. Last change: 2016 Sep 13 +====================+ | Zip File Interface | @@ -6,7 +6,7 @@ Author: Charles E. Campbell (remove NOSPAM from Campbell's email first) -Copyright: Copyright (C) 2005-2012 Charles E Campbell *zip-copyright* +Copyright: Copyright (C) 2005-2015 Charles E Campbell *zip-copyright* The VIM LICENSE (see |copyright|) applies to the files in this package, including zipPlugin.vim, zip.vim, and pi_zip.vim. except use "zip.vim" instead of "VIM". Like anything else that's free, zip.vim @@ -33,6 +33,9 @@ also write to the file. Currently, one may not make a new file in zip archives via the plugin. + *zip-x* + x : may extract a listed file when the cursor is atop it + OPTIONS *g:zip_nomax* @@ -61,6 +64,11 @@ file; by default: > let g:zip_zipcmd= "zip" < + *g:zip_extractcmd* + This option specifies the program (and any options needed) used to + extract a file from a zip archive. By default, > + let g:zip_extractcmd= g:zip_unzipcmd +< PREVENTING LOADING~ If for some reason you do not wish to use vim to examine zipped files, @@ -83,8 +91,26 @@ One can simply extend this line to accommodate additional extensions that should be treated as zip files. + Alternatively, one may change *g:zipPlugin_ext* in one's .vimrc. + Currently (11/30/15) it holds: > + + let g:zipPlugin_ext= '*.zip,*.jar,*.xpi,*.ja,*.war,*.ear,*.celzip, + \ *.oxt,*.kmz,*.wsz,*.xap,*.docx,*.docm,*.dotx,*.dotm,*.potx,*.potm, + \ *.ppsx,*.ppsm,*.pptx,*.pptm,*.ppam,*.sldx,*.thmx,*.xlam,*.xlsx,*.xlsm, + \ *.xlsb,*.xltx,*.xltm,*.xlam,*.crtx,*.vdw,*.glox,*.gcsx,*.gqsx,*.epub' + ============================================================================== 4. History *zip-history* {{{1 + v28 Oct 08, 2014 * changed the sanity checks for executables to reflect + the command actually to be attempted in zip#Read() + and zip#Write() + * added the extraction of a file capability + Nov 30, 2015 * added *.epub to the |g:zipPlugin_ext| list + Sep 13, 2016 * added *.apk to the |g:zipPlugin_ext| list and + sorted the suffices. + v27 Jul 02, 2013 * sanity check: zipfile must have "PK" as its first + two bytes. + * modified to allow zipfile: entries in quickfix lists v26 Nov 15, 2012 * (Jason Spiro) provided a lot of new extensions that are synonyms for .zip v25 Jun 27, 2011 * using keepj with unzip -Z diff -Nru vim-7.4.2156/runtime/doc/print.txt vim-8.0.0134/runtime/doc/print.txt --- vim-7.4.2156/runtime/doc/print.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/print.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*print.txt* For Vim version 7.4. Last change: 2010 Jul 20 +*print.txt* For Vim version 8.0. Last change: 2010 Jul 20 VIM REFERENCE MANUAL by Bram Moolenaar diff -Nru vim-7.4.2156/runtime/doc/quickfix.txt vim-8.0.0134/runtime/doc/quickfix.txt --- vim-7.4.2156/runtime/doc/quickfix.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/quickfix.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*quickfix.txt* For Vim version 7.4. Last change: 2016 Jul 17 +*quickfix.txt* For Vim version 8.0. Last change: 2016 Nov 04 VIM REFERENCE MANUAL by Bram Moolenaar @@ -878,7 +878,7 @@ The Vim plugins in the "compiler" directory will set options to use the -selected compiler. For ":compiler" local options are set, for ":compiler!" +selected compiler. For `:compiler` local options are set, for `:compiler!` global options. *current_compiler* To support older Vim versions, the plugins always use "current_compiler" and diff -Nru vim-7.4.2156/runtime/doc/quickref.txt vim-8.0.0134/runtime/doc/quickref.txt --- vim-7.4.2156/runtime/doc/quickref.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/quickref.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*quickref.txt* For Vim version 7.4. Last change: 2016 Jun 14 +*quickref.txt* For Vim version 8.0. Last change: 2016 Aug 21 VIM REFERENCE MANUAL by Bram Moolenaar @@ -767,7 +767,7 @@ 'keywordprg' 'kp' program to use for the "K" command 'langmap' 'lmap' alphabetic characters for other language mode 'langmenu' 'lm' language to be used for the menus -'langnoremap' 'lnr' do not apply 'langmap' to mapped characters +'langremap' 'lrm' do apply 'langmap' to mapped characters 'laststatus' 'ls' tells when last window has status lines 'lazyredraw' 'lz' don't redraw while executing macros 'linebreak' 'lbr' wrap long lines at a blank @@ -883,6 +883,7 @@ 'showtabline' 'stal' tells when the tab pages line is displayed 'sidescroll' 'ss' minimum number of columns to scroll horizontal 'sidescrolloff' 'siso' min. nr. of columns to left and right of cursor +'signcolumn' 'scl' when to display the sign column 'smartcase' 'scs' no ignore case when pattern has uppercase 'smartindent' 'si' smart autoindenting for C programs 'smarttab' 'sta' use 'shiftwidth' when inserting diff -Nru vim-7.4.2156/runtime/doc/quotes.txt vim-8.0.0134/runtime/doc/quotes.txt --- vim-7.4.2156/runtime/doc/quotes.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/quotes.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*quotes.txt* For Vim version 7.4. Last change: 2010 Nov 03 +*quotes.txt* For Vim version 8.0. Last change: 2010 Nov 03 VIM REFERENCE MANUAL by Bram Moolenaar diff -Nru vim-7.4.2156/runtime/doc/recover.txt vim-8.0.0134/runtime/doc/recover.txt --- vim-7.4.2156/runtime/doc/recover.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/recover.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*recover.txt* For Vim version 7.4. Last change: 2014 Mar 27 +*recover.txt* For Vim version 8.0. Last change: 2014 Mar 27 VIM REFERENCE MANUAL by Bram Moolenaar diff -Nru vim-7.4.2156/runtime/doc/remote.txt vim-8.0.0134/runtime/doc/remote.txt --- vim-7.4.2156/runtime/doc/remote.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/remote.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*remote.txt* For Vim version 7.4. Last change: 2015 Mar 01 +*remote.txt* For Vim version 8.0. Last change: 2015 Mar 01 VIM REFERENCE MANUAL by Bram Moolenaar diff -Nru vim-7.4.2156/runtime/doc/repeat.txt vim-8.0.0134/runtime/doc/repeat.txt --- vim-7.4.2156/runtime/doc/repeat.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/repeat.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*repeat.txt* For Vim version 7.4. Last change: 2016 Jul 21 +*repeat.txt* For Vim version 8.0. Last change: 2016 Sep 11 VIM REFERENCE MANUAL by Bram Moolenaar @@ -158,7 +158,7 @@ :[addr]@: Repeat last command-line. First set cursor at line [addr] (default is current line). {not in Vi} - *:@@* +:[addr]@ *:@@* :[addr]@@ Repeat the previous :@{0-9a-z"}. First set cursor at line [addr] (default is current line). {Vi: only in some versions} diff -Nru vim-7.4.2156/runtime/doc/rileft.txt vim-8.0.0134/runtime/doc/rileft.txt --- vim-7.4.2156/runtime/doc/rileft.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/rileft.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*rileft.txt* For Vim version 7.4. Last change: 2006 Apr 24 +*rileft.txt* For Vim version 8.0. Last change: 2006 Apr 24 VIM REFERENCE MANUAL by Avner Lottem diff -Nru vim-7.4.2156/runtime/doc/russian.txt vim-8.0.0134/runtime/doc/russian.txt --- vim-7.4.2156/runtime/doc/russian.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/russian.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*russian.txt* For Vim version 7.4. Last change: 2006 Apr 24 +*russian.txt* For Vim version 8.0. Last change: 2006 Apr 24 VIM REFERENCE MANUAL by Vassily Ragosin diff -Nru vim-7.4.2156/runtime/doc/scroll.txt vim-8.0.0134/runtime/doc/scroll.txt --- vim-7.4.2156/runtime/doc/scroll.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/scroll.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*scroll.txt* For Vim version 7.4. Last change: 2006 Aug 27 +*scroll.txt* For Vim version 8.0. Last change: 2016 Nov 10 VIM REFERENCE MANUAL by Bram Moolenaar @@ -108,7 +108,8 @@ 3. Scrolling relative to cursor *scroll-cursor* The following commands reposition the edit window (the part of the buffer that -you see) while keeping the cursor on the same line: +you see) while keeping the cursor on the same line. Note that the 'scrolloff' +option may cause context lines to show above and below the cursor. *z* z Redraw, line [count] at top of window (default diff -Nru vim-7.4.2156/runtime/doc/sign.txt vim-8.0.0134/runtime/doc/sign.txt --- vim-7.4.2156/runtime/doc/sign.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/sign.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*sign.txt* For Vim version 7.4. Last change: 2014 May 07 +*sign.txt* For Vim version 8.0. Last change: 2016 Aug 17 VIM REFERENCE MANUAL by Gordon Prieur @@ -45,8 +45,10 @@ When signs are defined for a file, Vim will automatically add a column of two characters to display them in. When the last sign is unplaced the column -disappears again. The color of the column is set with the SignColumn group -|hl-SignColumn|. Example to set the color: > +disappears again. This behavior can be changed with the 'signcolumn' option. + +The color of the column is set with the SignColumn group |hl-SignColumn|. +Example to set the color: > :highlight SignColumn guibg=darkgrey @@ -195,7 +197,9 @@ If the file isn't displayed in window and the current file can not be |abandon|ed this fails. -:sign jump {id} buffer={nr} - Same, but use buffer {nr}. +:sign jump {id} buffer={nr} *E934* + Same, but use buffer {nr}. This fails if buffer {nr} does not + have a name. + vim:tw=78:ts=8:ft=help:norl: diff -Nru vim-7.4.2156/runtime/doc/spell.txt vim-8.0.0134/runtime/doc/spell.txt --- vim-7.4.2156/runtime/doc/spell.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/spell.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*spell.txt* For Vim version 7.4. Last change: 2016 Jan 08 +*spell.txt* For Vim version 8.0. Last change: 2016 Jan 08 VIM REFERENCE MANUAL by Bram Moolenaar diff -Nru vim-7.4.2156/runtime/doc/sponsor.txt vim-8.0.0134/runtime/doc/sponsor.txt --- vim-7.4.2156/runtime/doc/sponsor.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/sponsor.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*sponsor.txt* For Vim version 7.4. Last change: 2008 Jun 21 +*sponsor.txt* For Vim version 8.0. Last change: 2008 Jun 21 VIM REFERENCE MANUAL by Bram Moolenaar diff -Nru vim-7.4.2156/runtime/doc/starting.txt vim-8.0.0134/runtime/doc/starting.txt --- vim-7.4.2156/runtime/doc/starting.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/starting.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*starting.txt* For Vim version 7.4. Last change: 2016 Jul 29 +*starting.txt* For Vim version 8.0. Last change: 2016 Nov 24 VIM REFERENCE MANUAL by Bram Moolenaar @@ -421,6 +421,10 @@ not connected to a terminal. This will avoid the warning and the two second delay that would happen. {not in Vi} + *--ttyfail* +--ttyfail When the stdin or stdout is not a terminal (tty) then exit + right away. + *-d* -d Start in diff mode, like |vimdiff|. {not in Vi} {not available when compiled without the |+diff| @@ -838,7 +842,7 @@ options values and has "syntax on" and "filetype on" commands, which is what most new users will want. See |defaults.vim|. - d. If the 'exrc' option is on (which is not the default), the current + d. If the 'exrc' option is on (which is NOT the default), the current directory is searched for three files. The first that exists is used, the others are ignored. - The file ".vimrc" (for Unix, Amiga and OS/2) (*) @@ -858,6 +862,8 @@ 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. @@ -865,13 +871,18 @@ - 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". + 5. 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. @@ -916,7 +927,8 @@ The $MYVIMRC or $MYGVIMRC file will be set to the first found vimrc and/or gvimrc file. -Some hints on using initializations: + +Some hints on using initializations ~ Standard setup: Create a vimrc file to set the default settings and mappings for all your edit @@ -939,27 +951,37 @@ for default settings and mappings and put it in the place that is given with the ":version" command. -Saving the current state of Vim to a file: + +Saving the current state of Vim to a file ~ + Whenever you have changed values of options or when you have created a mapping, then you may want to save them in a vimrc file for later use. See |save-settings| about saving the current state of settings to a file. -Avoiding setup problems for Vi users: + +Avoiding setup problems for Vi users ~ + Vi uses the variable EXINIT and the file "~/.exrc". So if you do not want to interfere with Vi, then use the variable VIMINIT and the file "vimrc" instead. -Amiga environment variables: + +Amiga environment variables ~ + On the Amiga, two types of environment variables exist. The ones set with the DOS 1.3 (or later) setenv command are recognized. See the AmigaDos 1.3 manual. The environment variables set with the old Manx Set command (before version 5.0) are not recognized. -MS-DOS line separators: + +MS-DOS line separators ~ + On MS-DOS-like systems (MS-DOS itself, Win32, and OS/2), Vim assumes that all the vimrc files have pairs as line separators. This will give problems if you have a file with only s and have a line like ":map xx yy^M". The trailing ^M will be ignored. + +Vi compatible default value ~ *compatible-default* When Vim starts, the 'compatible' option is on. This will be used when Vim starts its initializations. But as soon as: @@ -992,6 +1014,8 @@ mappings depend on a certain value of 'compatible', set or reset it before giving the mapping. + +Defaults without a .vimrc file ~ *defaults.vim* If Vim is started normally and no user vimrc file is found, the $VIMRUTIME/defaults.vim script is loaded. This will set 'compatible' off, @@ -1001,17 +1025,24 @@ This should work well for new Vim users. If you create your own .vimrc, it is recommended to add this line somewhere near the top: > + unlet! skip_defaults_vim source $VIMRUNTIME/defaults.vim Then Vim works like before you had a .vimrc. Copying $VIMRUNTIME/vimrc_example is way to do this. Alternatively, you can copy defaults.vim to your .vimrc -and modify it. +and modify it (but then you won't get updates when it changes). If you don't like some of the defaults, you can still source defaults.vim and revert individual settings. See the defaults.vim file for hints on how to revert each item. + *skip_defaults_vim* +If you use a system-wide vimrc and don't want defaults.vim to change settings, +set the "skip_defaults_vim" variable. If this was set and you want to load +defaults.vim from your .vimrc, first unlet skip_defaults_vim, as in the +example above. -Avoiding trojan horses: *trojan-horse* +Avoiding trojan horses ~ + *trojan-horse* While reading the "vimrc" or the "exrc" file in the current directory, some commands can be disabled for security reasons by setting the 'secure' option. This is always done when executing the command from a tags file. Otherwise it @@ -1034,6 +1065,8 @@ part of the line in the tags file) is always done in secure mode. This works just like executing a command from a vimrc/exrc in the current directory. + +If Vim startup is slow ~ *slow-start* If Vim takes a long time to start up, use the |--startuptime| argument to find out what happens. There are a few common causes: @@ -1048,6 +1081,8 @@ moment (use the Vim argument "-i NONE", |-i|). Try reducing the number of lines stored in a register with ":set viminfo='20,<50,s10". |viminfo-file|. + +Intro message ~ *:intro* When Vim starts without a file name, an introductory message is displayed (for those who don't know what Vim is). It is removed as soon as the display is @@ -1604,8 +1639,11 @@ *:ol* *:oldfiles* :ol[dfiles] List the files that have marks stored in the viminfo file. This list is read on startup and only changes - afterwards with ":rviminfo!". Also see |v:oldfiles|. + afterwards with `:rviminfo!`. Also see |v:oldfiles|. The number can be used with |c_#<|. + The output can be filtered with |:filter|, e.g.: > + filter /\.vim/ oldfiles +< The filtering happens on the file name. {not in Vi, only when compiled with the |+eval| feature} diff -Nru vim-7.4.2156/runtime/doc/syntax.txt vim-8.0.0134/runtime/doc/syntax.txt --- vim-7.4.2156/runtime/doc/syntax.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/syntax.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*syntax.txt* For Vim version 7.4. Last change: 2016 May 28 +*syntax.txt* For Vim version 8.0. Last change: 2016 Oct 30 VIM REFERENCE MANUAL by Bram Moolenaar @@ -949,6 +949,8 @@ *c_no_bracket_error* don't highlight {}; inside [] as errors *c_no_curly_error* don't highlight {}; inside [] and () as errors; except { and } in first column + Default is to highlight them, otherwise you + can't spot a missing ")". *c_curly_error* highlight a missing }; this forces syncing from the start of the file, can be slow *c_no_ansi* don't do standard ANSI types and constants @@ -2667,7 +2669,75 @@ RUBY *ruby.vim* *ft-ruby-syntax* -There are a number of options to the Ruby syntax highlighting. + Ruby: Operator highlighting |ruby_operators| + Ruby: Whitespace errors |ruby_space_errors| + Ruby: Folding |ruby_fold| |ruby_foldable_groups| + Ruby: Reducing expensive operations |ruby_no_expensive| |ruby_minlines| + Ruby: Spellchecking strings |ruby_spellcheck_strings| + + *ruby_operators* + Ruby: Operator highlighting ~ + +Operators can be highlighted by defining "ruby_operators": > + + :let ruby_operators = 1 +< + *ruby_space_errors* + Ruby: Whitespace errors ~ + +Whitespace errors can be highlighted by defining "ruby_space_errors": > + + :let ruby_space_errors = 1 +< +This will highlight trailing whitespace and tabs preceded by a space character +as errors. This can be refined by defining "ruby_no_trail_space_error" and +"ruby_no_tab_space_error" which will ignore trailing whitespace and tabs after +spaces respectively. + + *ruby_fold* *ruby_foldable_groups* + Ruby: Folding ~ + +Folding can be enabled by defining "ruby_fold": > + + :let ruby_fold = 1 +< +This will set the value of 'foldmethod' to "syntax" locally to the current +buffer or window, which will enable syntax-based folding when editing Ruby +filetypes. + +Default folding is rather detailed, i.e., small syntax units like "if", "do", +"%w[]" may create corresponding fold levels. + +You can set "ruby_foldable_groups" to restrict which groups are foldable: > + + :let ruby_foldable_groups = 'if case %' +< +The value is a space-separated list of keywords: + + keyword meaning ~ + -------- ------------------------------------- ~ + ALL Most block syntax (default) + NONE Nothing + if "if" or "unless" block + def "def" block + class "class" block + module "module" block + do "do" block + begin "begin" block + case "case" block + for "for", "while", "until" loops + { Curly bracket block or hash literal + [ Array literal + % Literal with "%" notation, e.g.: %w(STRING), %!STRING! + / Regexp + string String and shell command output (surrounded by ', ", `) + : Symbol + # Multiline comment + << Here documents + __END__ Source code after "__END__" directive + + *ruby_no_expensive* + Ruby: Reducing expensive operations ~ By default, the "end" keyword is colorized according to the opening statement of the block it closes. While useful, this feature can be expensive; if you @@ -2678,6 +2748,8 @@ < In this case the same color will be used for all control keywords. + *ruby_minlines* + If you do want this feature enabled, but notice highlighting errors while scrolling backwards, which are fixed when redrawing with CTRL-L, try setting the "ruby_minlines" variable to a value larger than 50: > @@ -2687,48 +2759,13 @@ Ideally, this value should be a number of lines large enough to embrace your largest class or module. -Highlighting of special identifiers can be disabled by removing the -rubyIdentifier highlighting: > - - :hi link rubyIdentifier NONE -< -This will prevent highlighting of special identifiers like "ConstantName", -"$global_var", "@@class_var", "@instance_var", "| block_param |", and -":symbol". + *ruby_spellcheck_strings* + Ruby: Spellchecking strings ~ -Significant methods of Kernel, Module and Object are highlighted by default. -This can be disabled by defining "ruby_no_special_methods": > +Ruby syntax will perform spellchecking of strings if you define +"ruby_spellcheck_strings": > - :let ruby_no_special_methods = 1 -< -This will prevent highlighting of important methods such as "require", "attr", -"private", "raise" and "proc". - -Ruby operators can be highlighted. This is enabled by defining -"ruby_operators": > - - :let ruby_operators = 1 -< -Whitespace errors can be highlighted by defining "ruby_space_errors": > - - :let ruby_space_errors = 1 -< -This will highlight trailing whitespace and tabs preceded by a space character -as errors. This can be refined by defining "ruby_no_trail_space_error" and -"ruby_no_tab_space_error" which will ignore trailing whitespace and tabs after -spaces respectively. - -Folding can be enabled by defining "ruby_fold": > - - :let ruby_fold = 1 -< -This will set the 'foldmethod' option to "syntax" and allow folding of -classes, modules, methods, code blocks, heredocs and comments. - -Folding of multiline comments can be disabled by defining -"ruby_no_comment_fold": > - - :let ruby_no_comment_fold = 1 + :let ruby_spellcheck_strings = 1 < SCHEME *scheme.vim* *ft-scheme-syntax* @@ -2826,9 +2863,11 @@ (Adapted from the html.vim help text by Claudio Fleiner ) -SH *sh.vim* *ft-sh-syntax* *ft-bash-syntax* *ft-ksh-syntax* + *ft-posix-synax* *ft-dash-syntax* +SH *sh.vim* *ft-sh-syntax* *ft-bash-syntax* *ft-ksh-syntax* -This covers the "normal" Unix (Bourne) sh, bash and the Korn shell. +This covers syntax highlighting for the older Unix (Bourne) sh, and newer +shells such as bash, dash, posix, and the Korn shells. Vim attempts to determine which shell type is in use by specifying that various filenames are of specific types: > @@ -2837,28 +2876,31 @@ bash: .bashrc* bashrc bash.bashrc .bash_profile* *.bash < If none of these cases pertain, then the first line of the file is examined -(ex. /bin/sh /bin/ksh /bin/bash). If the first line specifies a shelltype, -then that shelltype is used. However some files (ex. .profile) are known to -be shell files but the type is not apparent. Furthermore, on many systems -sh is symbolically linked to "bash" (Linux, Windows+cygwin) or "ksh" (Posix). +(ex. looking for /bin/sh /bin/ksh /bin/bash). If the first line specifies a +shelltype, then that shelltype is used. However some files (ex. .profile) are +known to be shell files but the type is not apparent. Furthermore, on many +systems sh is symbolically linked to "bash" (Linux, Windows+cygwin) or "ksh" +(Posix). -One may specify a global default by instantiating one of the following three +One may specify a global default by instantiating one of the following variables in your <.vimrc>: - ksh: > + ksh: > let g:is_kornshell = 1 -< posix: (using this is the same as setting is_kornshell to 1) > +< posix: (using this is the nearly the same as setting g:is_kornshell to 1) > let g:is_posix = 1 < bash: > let g:is_bash = 1 < sh: (default) Bourne shell > let g:is_sh = 1 +< (dash users should use posix) + If there's no "#! ..." line, and the user hasn't availed himself/herself of a default sh.vim syntax setting as just shown, then syntax/sh.vim will assume the Bourne shell syntax. No need to quote RFCs or market penetration statistics in error reports, please -- just select the default version of the -sh your system uses in your <.vimrc>. +sh your system uses and install the associated "let..." in your <.vimrc>. The syntax/sh.vim file provides several levels of syntax-based folding: > @@ -2867,7 +2909,7 @@ let g:sh_fold_enabled= 2 (enable heredoc folding) let g:sh_fold_enabled= 4 (enable if/do/for folding) > -then various syntax items (HereDocuments and function bodies) become +then various syntax items (ie. HereDocuments and function bodies) become syntax-foldable (see |:syn-fold|). You also may add these together to get multiple types of folding: > @@ -2891,14 +2933,7 @@ The default is to use the twice sh_minlines. Set it to a smaller number to speed up displaying. The disadvantage is that highlight errors may appear. - *g:sh_isk* *g:sh_noisk* -The shell languages appear to let "." be part of words, commands, etc; -consequently it should be in the isk for sh.vim. As of v116 of syntax/sh.vim, -syntax/sh.vim will append the "." to |'iskeyword'| by default; you may control -this behavior with: > - let g:sh_isk = '..whatever characters you want as part of iskeyword' - let g:sh_noisk= 1 " otherwise, if this exists, the isk will NOT chg -< + *sh-embed* *sh-awk* Sh: EMBEDDING LANGUAGES~ @@ -3484,8 +3519,8 @@ and also determines where |:syn-keyword| will be checked for a new match. - It is recommended when writing syntax files, to use this command - to the correct value for the specific syntax language and not change + It is recommended when writing syntax files, to use this command to + set the correct value for the specific syntax language and not change the 'iskeyword' option. DEFINING KEYWORDS *:syn-keyword* @@ -3543,7 +3578,11 @@ DEFINING MATCHES *:syn-match* -:sy[ntax] match {group-name} [{options}] [excludenl] {pattern} [{options}] +:sy[ntax] match {group-name} [{options}] + [excludenl] + [keepend] + {pattern} + [{options}] This defines one match. @@ -3552,6 +3591,9 @@ [excludenl] Don't make a pattern with the end-of-line "$" extend a containing match or region. Must be given before the pattern. |:syn-excludenl| + keepend Don't allow contained matches to go past a + match with the end pattern. See + |:syn-keepend|. {pattern} The search pattern that defines the match. See |:syn-pattern| below. Note that the pattern may match more than one @@ -3762,7 +3804,7 @@ 'conceallevel' option. The 'concealcursor' option is used to decide whether concealable items in the current line are displayed unconcealed to be able to edit the line. -Another way to conceal text with with |matchadd()|. +Another way to conceal text is with |matchadd()|. concealends *:syn-concealends* @@ -4555,7 +4597,14 @@ Doesn't work recursively, thus you can't use ":colorscheme" in a color scheme script. - After the color scheme has been loaded the + + To customize a colorscheme use another name, e.g. + "~/.vim/colors/mine.vim", and use `:runtime` to load + the original colorscheme: > + runtime colors/evening.vim + hi Statement ctermfg=Blue guifg=Blue + +< After the color scheme has been loaded the |ColorScheme| autocommand event is triggered. For info about writing a colorscheme file: > :edit $VIMRUNTIME/colors/README.txt @@ -4868,6 +4917,9 @@ DiffDelete diff mode: Deleted line |diff.txt| *hl-DiffText* DiffText diff mode: Changed text within a changed line |diff.txt| + *hl-EndOfBuffer* +EndOfBuffer filler lines (~) after the last line in the buffer. + By default, this is highlighted like |hl-NonText|. *hl-ErrorMsg* ErrorMsg error messages on the command line *hl-VertSplit* @@ -4896,10 +4948,10 @@ *hl-MoreMsg* MoreMsg |more-prompt| *hl-NonText* -NonText '~' and '@' at the end of the window, characters from - 'showbreak' and other characters that do not really exist in - the text (e.g., ">" displayed when a double-wide character - doesn't fit at the end of the line). +NonText '@' at the end of the window, characters from 'showbreak' + and other characters that do not really exist in the text + (e.g., ">" displayed when a double-wide character doesn't + fit at the end of the line). *hl-Normal* Normal normal text *hl-Pmenu* diff -Nru vim-7.4.2156/runtime/doc/tabpage.txt vim-8.0.0134/runtime/doc/tabpage.txt --- vim-7.4.2156/runtime/doc/tabpage.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/tabpage.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*tabpage.txt* For Vim version 7.4. Last change: 2015 Jan 04 +*tabpage.txt* For Vim version 8.0. Last change: 2016 Oct 20 VIM REFERENCE MANUAL by Bram Moolenaar @@ -58,6 +58,8 @@ In the GUI tab pages line you can use the right mouse button to open menu. |tabline-menu|. +For the related autocommands see |tabnew-autocmd|. + :[count]tabe[dit] *:tabe* *:tabedit* *:tabnew* :[count]tabnew Open a new tab page with an empty window, after the current @@ -87,14 +89,21 @@ Execute {cmd} and when it opens a new window open a new tab page instead. Doesn't work for |:diffsplit|, |:diffpatch|, |:execute| and |:normal|. - When [count] is omitted the tab page appears after the current - one. - When [count] is specified the new tab page comes after tab - page [count]. Use ":0tab cmd" to get the new tab page as the - first one. + If [count] is given the new tab page appears after the tab + page [count] otherwise the new tab page will appear after the + current one. Examples: > - :tab split " opens current buffer in new tab page - :tab help gt " opens tab page with help for "gt" + :tab split " opens current buffer in new tab page + :tab help gt " opens tab page with help for "gt" + :.tab help gt " as above + :+tab help " opens tab page with help after the next + " tab page + :-tab help " opens tab page with help before the + " current one + :0tab help " opens tab page with help before the + " first one + :$tab help " opens tab page with help after the last + " one CTRL-W gf Open a new tab page and edit the file name under the cursor. See |CTRL-W_gf|. @@ -141,10 +150,11 @@ given, then they become hidden. But modified buffers are never abandoned, so changes cannot get lost. > :tabonly " close all tab pages except the current + " one :{count}tabo[nly][!] Close all tab pages except the {count}th one. > - :.tabonly " one + :.tabonly " as above :-tabonly " close all tab pages except the previous " one :+tabonly " close all tab pages except the next one @@ -193,6 +203,12 @@ :tabs List the tab pages and the windows they contain. Shows a ">" for the current window. Shows a "+" for modified buffers. + For example: + Tab page 1 ~ + + tabpage.txt ~ + ex_docmd.c ~ + Tab page 2 ~ + > main.c ~ REORDERING TAB PAGES: @@ -273,6 +289,7 @@ Currently there is only one option local to a tab page: 'cmdheight'. + *tabnew-autocmd* The TabLeave and TabEnter autocommand events can be used to do something when switching from one tab page to another. The exact order depends on what you are doing. When creating a new tab page this works as if you create a new diff -Nru vim-7.4.2156/runtime/doc/tags vim-8.0.0134/runtime/doc/tags --- vim-7.4.2156/runtime/doc/tags 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/tags 2016-12-14 20:42:00.000000000 +0000 @@ -400,6 +400,7 @@ 'langmap' options.txt /*'langmap'* 'langmenu' options.txt /*'langmenu'* 'langnoremap' options.txt /*'langnoremap'* +'langremap' options.txt /*'langremap'* 'laststatus' options.txt /*'laststatus'* 'lazyredraw' options.txt /*'lazyredraw'* 'lbr' options.txt /*'lbr'* @@ -416,6 +417,7 @@ 'lnr' options.txt /*'lnr'* 'loadplugins' options.txt /*'loadplugins'* 'lpl' options.txt /*'lpl'* +'lrm' options.txt /*'lrm'* 'ls' options.txt /*'ls'* 'lsp' options.txt /*'lsp'* 'luadll' options.txt /*'luadll'* @@ -586,6 +588,7 @@ 'nojoinspaces' options.txt /*'nojoinspaces'* 'nojs' options.txt /*'nojs'* 'nolangnoremap' options.txt /*'nolangnoremap'* +'nolangremap' options.txt /*'nolangremap'* 'nolazyredraw' options.txt /*'nolazyredraw'* 'nolbr' options.txt /*'nolbr'* 'nolinebreak' options.txt /*'nolinebreak'* @@ -594,6 +597,7 @@ 'nolnr' options.txt /*'nolnr'* 'noloadplugins' options.txt /*'noloadplugins'* 'nolpl' options.txt /*'nolpl'* +'nolrm' options.txt /*'nolrm'* 'nolz' options.txt /*'nolz'* 'noma' options.txt /*'noma'* 'nomacatsui' options.txt /*'nomacatsui'* @@ -806,6 +810,7 @@ 'sbr' options.txt /*'sbr'* 'sc' options.txt /*'sc'* 'scb' options.txt /*'scb'* +'scl' options.txt /*'scl'* 'scr' options.txt /*'scr'* 'scroll' options.txt /*'scroll'* 'scrollbind' options.txt /*'scrollbind'* @@ -848,6 +853,7 @@ 'si' options.txt /*'si'* 'sidescroll' options.txt /*'sidescroll'* 'sidescrolloff' options.txt /*'sidescrolloff'* +'signcolumn' options.txt /*'signcolumn'* 'siso' options.txt /*'siso'* 'sj' options.txt /*'sj'* 'slm' options.txt /*'slm'* @@ -1351,6 +1357,7 @@ --servername remote.txt /*--servername* --socketid starting.txt /*--socketid* --startuptime starting.txt /*--startuptime* +--ttyfail starting.txt /*--ttyfail* --version starting.txt /*--version* --windowid starting.txt /*--windowid* -A starting.txt /*-A* @@ -1591,6 +1598,9 @@ /\{- pattern.txt /*\/\\{-* /\~ pattern.txt /*\/\\~* /^ pattern.txt /*\/^* +/_CTRL-G cmdline.txt /*\/_CTRL-G* +/_CTRL-L cmdline.txt /*\/_CTRL-L* +/_CTRL-T cmdline.txt /*\/_CTRL-T* /atom pattern.txt /*\/atom* /bar pattern.txt /*\/bar* /branch pattern.txt /*\/branch* @@ -1835,6 +1845,7 @@ :$ cmdline.txt /*:$* :% cmdline.txt /*:%* :& change.txt /*:&* +:&& change.txt /*:&&* :' cmdline.txt /*:'* :, cmdline.txt /*:,* :. cmdline.txt /*:.* @@ -2265,6 +2276,8 @@ :filetype-overview filetype.txt /*:filetype-overview* :filetype-plugin-off filetype.txt /*:filetype-plugin-off* :filetype-plugin-on filetype.txt /*:filetype-plugin-on* +:filt various.txt /*:filt* +:filter various.txt /*:filter* :fin editing.txt /*:fin* :fina eval.txt /*:fina* :finally eval.txt /*:finally* @@ -4472,6 +4485,9 @@ E931 message.txt /*E931* E932 eval.txt /*E932* E933 eval.txt /*E933* +E934 sign.txt /*E934* +E935 eval.txt /*E935* +E936 autocmd.txt /*E936* E94 windows.txt /*E94* E95 message.txt /*E95* E96 diff.txt /*E96* @@ -4603,6 +4619,7 @@ OverTheSpot mbyte.txt /*OverTheSpot* P change.txt /*P* PATHEXT eval.txt /*PATHEXT* +PEP8 filetype.txt /*PEP8* PHP_BracesAtCodeLevel indent.txt /*PHP_BracesAtCodeLevel* PHP_autoformatcomment indent.txt /*PHP_autoformatcomment* PHP_default_indenting indent.txt /*PHP_default_indenting* @@ -5067,6 +5084,7 @@ beval_text-variable eval.txt /*beval_text-variable* beval_winid-variable eval.txt /*beval_winid-variable* beval_winnr-variable eval.txt /*beval_winnr-variable* +binary-number eval.txt /*binary-number* bitwise-function usr_41.txt /*bitwise-function* blockwise-examples visual.txt /*blockwise-examples* blockwise-operators visual.txt /*blockwise-operators* @@ -5162,11 +5180,13 @@ c_CTRL-D cmdline.txt /*c_CTRL-D* c_CTRL-E cmdline.txt /*c_CTRL-E* c_CTRL-F cmdline.txt /*c_CTRL-F* +c_CTRL-G cmdline.txt /*c_CTRL-G* c_CTRL-H cmdline.txt /*c_CTRL-H* c_CTRL-I cmdline.txt /*c_CTRL-I* c_CTRL-J cmdline.txt /*c_CTRL-J* c_CTRL-K cmdline.txt /*c_CTRL-K* c_CTRL-L cmdline.txt /*c_CTRL-L* +c_CTRL-M cmdline.txt /*c_CTRL-M* c_CTRL-N cmdline.txt /*c_CTRL-N* c_CTRL-P cmdline.txt /*c_CTRL-P* c_CTRL-Q cmdline.txt /*c_CTRL-Q* @@ -5178,10 +5198,12 @@ c_CTRL-R_CTRL-P cmdline.txt /*c_CTRL-R_CTRL-P* c_CTRL-R_CTRL-R cmdline.txt /*c_CTRL-R_CTRL-R* c_CTRL-R_CTRL-W cmdline.txt /*c_CTRL-R_CTRL-W* +c_CTRL-T cmdline.txt /*c_CTRL-T* c_CTRL-U cmdline.txt /*c_CTRL-U* c_CTRL-V cmdline.txt /*c_CTRL-V* c_CTRL-W cmdline.txt /*c_CTRL-W* c_CTRL-Y cmdline.txt /*c_CTRL-Y* +c_CTRL-[ cmdline.txt /*c_CTRL-[* c_CTRL-\_CTRL-G intro.txt /*c_CTRL-\\_CTRL-G* c_CTRL-\_CTRL-N intro.txt /*c_CTRL-\\_CTRL-N* c_CTRL-\_e cmdline.txt /*c_CTRL-\\_e* @@ -5228,7 +5250,9 @@ cc change.txt /*cc* ceil() eval.txt /*ceil()* ch.vim syntax.txt /*ch.vim* +ch_canread() eval.txt /*ch_canread()* ch_close() eval.txt /*ch_close()* +ch_close_in() eval.txt /*ch_close_in()* ch_evalexpr() eval.txt /*ch_evalexpr()* ch_evalraw() eval.txt /*ch_evalraw()* ch_getbufnr() eval.txt /*ch_getbufnr()* @@ -5271,8 +5295,10 @@ channel channel.txt /*channel* channel-callback channel.txt /*channel-callback* channel-close channel.txt /*channel-close* +channel-close-in channel.txt /*channel-close-in* channel-commands channel.txt /*channel-commands* channel-demo channel.txt /*channel-demo* +channel-drop channel.txt /*channel-drop* channel-functions usr_41.txt /*channel-functions* channel-mode channel.txt /*channel-mode* channel-more channel.txt /*channel-more* @@ -5716,6 +5742,8 @@ err_buf channel.txt /*err_buf* err_cb channel.txt /*err_cb* err_mode channel.txt /*err_mode* +err_modifiable channel.txt /*err_modifiable* +err_msg channel.txt /*err_msg* err_name channel.txt /*err_name* err_timeout channel.txt /*err_timeout* errmsg-variable eval.txt /*errmsg-variable* @@ -6003,6 +6031,7 @@ ft-css-omni insert.txt /*ft-css-omni* ft-cweb-syntax syntax.txt /*ft-cweb-syntax* ft-cynlib-syntax syntax.txt /*ft-cynlib-syntax* +ft-dash-syntax syntax.txt /*ft-dash-syntax* ft-desktop-syntax syntax.txt /*ft-desktop-syntax* ft-dircolors-syntax syntax.txt /*ft-dircolors-syntax* ft-docbk-syntax syntax.txt /*ft-docbk-syntax* @@ -6063,12 +6092,14 @@ ft-php3-syntax syntax.txt /*ft-php3-syntax* ft-phtml-syntax syntax.txt /*ft-phtml-syntax* ft-plaintex-syntax syntax.txt /*ft-plaintex-syntax* +ft-posix-synax syntax.txt /*ft-posix-synax* ft-postscr-syntax syntax.txt /*ft-postscr-syntax* ft-ppwiz-syntax syntax.txt /*ft-ppwiz-syntax* ft-printcap-syntax syntax.txt /*ft-printcap-syntax* ft-progress-syntax syntax.txt /*ft-progress-syntax* ft-ptcap-syntax syntax.txt /*ft-ptcap-syntax* ft-python-indent indent.txt /*ft-python-indent* +ft-python-plugin filetype.txt /*ft-python-plugin* ft-python-syntax syntax.txt /*ft-python-syntax* ft-quake-syntax syntax.txt /*ft-quake-syntax* ft-r-indent indent.txt /*ft-r-indent* @@ -6315,8 +6346,6 @@ g:netrw_winsize pi_netrw.txt /*g:netrw_winsize* g:netrw_wiw pi_netrw.txt /*g:netrw_wiw* g:netrw_xstrlen pi_netrw.txt /*g:netrw_xstrlen* -g:sh_isk syntax.txt /*g:sh_isk* -g:sh_noisk syntax.txt /*g:sh_noisk* g:syntax_on syntax.txt /*g:syntax_on* g:tar_browseoptions pi_tar.txt /*g:tar_browseoptions* g:tar_cmd pi_tar.txt /*g:tar_cmd* @@ -6347,6 +6376,8 @@ g:vimsyn_minlines syntax.txt /*g:vimsyn_minlines* g:vimsyn_noerror syntax.txt /*g:vimsyn_noerror* g:yaml_schema syntax.txt /*g:yaml_schema* +g:zipPlugin_ext pi_zip.txt /*g:zipPlugin_ext* +g:zip_extractcmd pi_zip.txt /*g:zip_extractcmd* g:zip_nomax pi_zip.txt /*g:zip_nomax* g:zip_shq pi_zip.txt /*g:zip_shq* g:zip_unzipcmd pi_zip.txt /*g:zip_unzipcmd* @@ -6394,6 +6425,7 @@ ge motion.txt /*ge* get() eval.txt /*get()* get-ms-debuggers debug.txt /*get-ms-debuggers* +getbufinfo() eval.txt /*getbufinfo()* getbufline() eval.txt /*getbufline()* getbufvar() eval.txt /*getbufvar()* getchar() eval.txt /*getchar()* @@ -6426,8 +6458,10 @@ getscript-history pi_getscript.txt /*getscript-history* getscript-plugins pi_getscript.txt /*getscript-plugins* getscript-start pi_getscript.txt /*getscript-start* +gettabinfo() eval.txt /*gettabinfo()* gettabvar() eval.txt /*gettabvar()* gettabwinvar() eval.txt /*gettabwinvar()* +getwininfo() eval.txt /*getwininfo()* getwinposx() eval.txt /*getwinposx()* getwinposy() eval.txt /*getwinposy()* getwinvar() eval.txt /*getwinvar()* @@ -6526,7 +6560,7 @@ gui-w32-start gui_w32.txt /*gui-w32-start* gui-w32-various gui_w32.txt /*gui-w32-various* gui-w32-windowid gui_w32.txt /*gui-w32-windowid* -gui-w32s gui_w32.txt /*gui-w32s* +gui-w32s os_win32.txt /*gui-w32s* gui-win32-maximized gui_w32.txt /*gui-win32-maximized* gui-x11 gui_x11.txt /*gui-x11* gui-x11-athena gui_x11.txt /*gui-x11-athena* @@ -6633,6 +6667,7 @@ hl-DiffDelete syntax.txt /*hl-DiffDelete* hl-DiffText syntax.txt /*hl-DiffText* hl-Directory syntax.txt /*hl-Directory* +hl-EndOfBuffer syntax.txt /*hl-EndOfBuffer* hl-ErrorMsg syntax.txt /*hl-ErrorMsg* hl-FoldColumn syntax.txt /*hl-FoldColumn* hl-Folded syntax.txt /*hl-Folded* @@ -6845,6 +6880,7 @@ improvements-8 version8.txt /*improvements-8* in_bot channel.txt /*in_bot* in_buf channel.txt /*in_buf* +in_io-buffer channel.txt /*in_io-buffer* in_mode channel.txt /*in_mode* in_name channel.txt /*in_name* in_top channel.txt /*in_top* @@ -7230,7 +7266,6 @@ movement intro.txt /*movement* ms-dos os_msdos.txt /*ms-dos* msdos os_msdos.txt /*msdos* -msdos-mode gui_w32.txt /*msdos-mode* msql.vim syntax.txt /*msql.vim* mswin.vim gui_w32.txt /*mswin.vim* multi-byte mbyte.txt /*multi-byte* @@ -7586,6 +7621,7 @@ new-searchpat version6.txt /*new-searchpat* new-session-files version5.txt /*new-session-files* new-spell version7.txt /*new-spell* +new-style-testing eval.txt /*new-style-testing* new-tab-pages version7.txt /*new-tab-pages* new-undo-branches version7.txt /*new-undo-branches* new-unlisted-buffers version6.txt /*new-unlisted-buffers* @@ -7629,6 +7665,7 @@ octal eval.txt /*octal* octal-nrformats options.txt /*octal-nrformats* octal-number eval.txt /*octal-number* +old-style-testing eval.txt /*old-style-testing* oldfiles-variable eval.txt /*oldfiles-variable* ole-activation if_ole.txt /*ole-activation* ole-eval if_ole.txt /*ole-eval* @@ -7673,7 +7710,10 @@ other-features vi_diff.txt /*other-features* out_buf channel.txt /*out_buf* out_cb channel.txt /*out_cb* +out_io-buffer channel.txt /*out_io-buffer* out_mode channel.txt /*out_mode* +out_modifiable channel.txt /*out_modifiable* +out_msg channel.txt /*out_msg* out_name channel.txt /*out_name* out_timeout channel.txt /*out_timeout* p change.txt /*p* @@ -7785,10 +7825,12 @@ print.txt print.txt /*print.txt* printf() eval.txt /*printf()* printf-% eval.txt /*printf-%* +printf-B eval.txt /*printf-B* printf-E eval.txt /*printf-E* printf-G eval.txt /*printf-G* printf-S eval.txt /*printf-S* printf-X eval.txt /*printf-X* +printf-b eval.txt /*printf-b* printf-c eval.txt /*printf-c* printf-d eval.txt /*printf-d* printf-e eval.txt /*printf-e* @@ -7992,6 +8034,13 @@ ruby-vim if_ruby.txt /*ruby-vim* ruby-window if_ruby.txt /*ruby-window* ruby.vim syntax.txt /*ruby.vim* +ruby_fold syntax.txt /*ruby_fold* +ruby_foldable_groups syntax.txt /*ruby_foldable_groups* +ruby_minlines syntax.txt /*ruby_minlines* +ruby_no_expensive syntax.txt /*ruby_no_expensive* +ruby_operators syntax.txt /*ruby_operators* +ruby_space_errors syntax.txt /*ruby_space_errors* +ruby_spellcheck_strings syntax.txt /*ruby_spellcheck_strings* russian russian.txt /*russian* russian-intro russian.txt /*russian-intro* russian-issues russian.txt /*russian-issues* @@ -8126,6 +8175,7 @@ single-repeat repeat.txt /*single-repeat* sinh() eval.txt /*sinh()* skeleton autocmd.txt /*skeleton* +skip_defaults_vim starting.txt /*skip_defaults_vim* slice eval.txt /*slice* slow-fast-terminal term.txt /*slow-fast-terminal* slow-start starting.txt /*slow-start* @@ -8441,11 +8491,11 @@ t_ZR term.txt /*t_ZR* t_al term.txt /*t_al* t_bc term.txt /*t_bc* -t_bool-varialble eval.txt /*t_bool-varialble* +t_bool-variable eval.txt /*t_bool-variable* t_cd term.txt /*t_cd* t_cdl version4.txt /*t_cdl* t_ce term.txt /*t_ce* -t_channel-varialble eval.txt /*t_channel-varialble* +t_channel-variable eval.txt /*t_channel-variable* t_ci version4.txt /*t_ci* t_cil version4.txt /*t_cil* t_cl term.txt /*t_cl* @@ -8457,7 +8507,7 @@ t_cvv version4.txt /*t_cvv* t_da term.txt /*t_da* t_db term.txt /*t_db* -t_dict-varialble eval.txt /*t_dict-varialble* +t_dict-variable eval.txt /*t_dict-variable* t_dl term.txt /*t_dl* t_ed version4.txt /*t_ed* t_el version4.txt /*t_el* @@ -8471,12 +8521,12 @@ t_f7 version4.txt /*t_f7* t_f8 version4.txt /*t_f8* t_f9 version4.txt /*t_f9* -t_float-varialble eval.txt /*t_float-varialble* +t_float-variable eval.txt /*t_float-variable* t_fs term.txt /*t_fs* -t_func-varialble eval.txt /*t_func-varialble* +t_func-variable eval.txt /*t_func-variable* t_help version4.txt /*t_help* t_il version4.txt /*t_il* -t_job-varialble eval.txt /*t_job-varialble* +t_job-variable eval.txt /*t_job-variable* t_k1 term.txt /*t_k1* t_k2 term.txt /*t_k2* t_k3 term.txt /*t_k3* @@ -8501,15 +8551,15 @@ t_ks term.txt /*t_ks* t_ku term.txt /*t_ku* t_le term.txt /*t_le* -t_list-varialble eval.txt /*t_list-varialble* +t_list-variable eval.txt /*t_list-variable* t_mb term.txt /*t_mb* t_md term.txt /*t_md* t_me term.txt /*t_me* t_mr term.txt /*t_mr* t_ms term.txt /*t_ms* t_nd term.txt /*t_nd* -t_none-varialble eval.txt /*t_none-varialble* -t_number-varialble eval.txt /*t_number-varialble* +t_none-variable eval.txt /*t_none-variable* +t_number-variable eval.txt /*t_number-variable* t_op term.txt /*t_op* t_se term.txt /*t_se* t_sf1 version4.txt /*t_sf1* @@ -8529,7 +8579,7 @@ t_so term.txt /*t_so* t_sr term.txt /*t_sr* t_star7 term.txt /*t_star7* -t_string-varialble eval.txt /*t_string-varialble* +t_string-variable eval.txt /*t_string-variable* t_tb version4.txt /*t_tb* t_te term.txt /*t_te* t_ti term.txt /*t_ti* @@ -8553,6 +8603,7 @@ tab-page-intro tabpage.txt /*tab-page-intro* tab-page-other tabpage.txt /*tab-page-other* tabline-menu tabpage.txt /*tabline-menu* +tabnew-autocmd tabpage.txt /*tabnew-autocmd* tabpage tabpage.txt /*tabpage* tabpage-variable eval.txt /*tabpage-variable* tabpage.txt tabpage.txt /*tabpage.txt* @@ -8673,6 +8724,7 @@ test_null_partial() eval.txt /*test_null_partial()* test_null_string() eval.txt /*test_null_string()* test_settime() eval.txt /*test_settime()* +testing eval.txt /*testing* testing-variable eval.txt /*testing-variable* tex-cchar syntax.txt /*tex-cchar* tex-cole syntax.txt /*tex-cole* @@ -8703,9 +8755,14 @@ throw-variables eval.txt /*throw-variables* throwpoint-variable eval.txt /*throwpoint-variable* time-functions usr_41.txt /*time-functions* +timer eval.txt /*timer* timer-functions usr_41.txt /*timer-functions* +timer_info() eval.txt /*timer_info()* +timer_pause() eval.txt /*timer_pause()* timer_start() eval.txt /*timer_start()* timer_stop() eval.txt /*timer_stop()* +timer_stopall() eval.txt /*timer_stopall()* +timers eval.txt /*timers* timestamp editing.txt /*timestamp* timestamps editing.txt /*timestamps* tips tips.txt /*tips* @@ -9179,6 +9236,7 @@ win32-term os_win32.txt /*win32-term* win32-vimrun gui_w32.txt /*win32-vimrun* win32-win3.1 os_win32.txt /*win32-win3.1* +win32-win95 os_win32.txt /*win32-win95* win32s os_win32.txt /*win32s* win_findbuf() eval.txt /*win_findbuf()* win_getid() eval.txt /*win_getid()* @@ -9188,6 +9246,7 @@ winbufnr() eval.txt /*winbufnr()* wincol() eval.txt /*wincol()* window windows.txt /*window* +window-ID windows.txt /*window-ID* window-contents intro.txt /*window-contents* window-exit editing.txt /*window-exit* window-functions usr_41.txt /*window-functions* @@ -9198,6 +9257,7 @@ window-size-functions usr_41.txt /*window-size-functions* window-tag windows.txt /*window-tag* window-variable eval.txt /*window-variable* +windowid windows.txt /*windowid* windowid-variable eval.txt /*windowid-variable* windows windows.txt /*windows* windows-3.1 os_win32.txt /*windows-3.1* @@ -9206,7 +9266,10 @@ windows-starting windows.txt /*windows-starting* windows.txt windows.txt /*windows.txt* windows95 os_win32.txt /*windows95* +windows98 os_win32.txt /*windows98* +windowsme os_win32.txt /*windowsme* winheight() eval.txt /*winheight()* +winid windows.txt /*winid* winline() eval.txt /*winline()* winnr() eval.txt /*winnr()* winrestcmd() eval.txt /*winrestcmd()* @@ -9334,6 +9397,7 @@ zip-history pi_zip.txt /*zip-history* zip-manual pi_zip.txt /*zip-manual* zip-usage pi_zip.txt /*zip-usage* +zip-x pi_zip.txt /*zip-x* zj fold.txt /*zj* zk fold.txt /*zk* zl scroll.txt /*zl* diff -Nru vim-7.4.2156/runtime/doc/tagsrch.txt vim-8.0.0134/runtime/doc/tagsrch.txt --- vim-7.4.2156/runtime/doc/tagsrch.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/tagsrch.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*tagsrch.txt* For Vim version 7.4. Last change: 2013 Oct 01 +*tagsrch.txt* For Vim version 8.0. Last change: 2016 Sep 20 VIM REFERENCE MANUAL by Bram Moolenaar @@ -84,14 +84,23 @@ changed, to avoid confusion when using ":tnext". It is changed when using ":tag {ident}". -The ignore-case matches are not found for a ":tag" command when the -'ignorecase' option is off and 'tagcase' is "followic" or when 'tagcase' is -"match". They are found when a pattern is used (starting with a "/") and for -":tselect", also when 'ignorecase' is off and 'tagcase' is "followic" or when -'tagcase' is "match". Note that using ignore-case tag searching disables -binary searching in the tags file, which causes a slowdown. This can be -avoided by fold-case sorting the tag file. See the 'tagbsearch' option for an -explanation. +The ignore-case matches are not found for a ":tag" command when: +- the 'ignorecase' option is off and 'tagcase' is "followic" +- 'tagcase' is "match" +- 'tagcase' is "smart" and the pattern contains an upper case character. +- 'tagcase' is "followscs" and 'smartcase' option is on and the pattern + contains an upper case character. + +The ignore-case matches are found when: +- a pattern is used (starting with a "/") +- for ":tselect" +- when 'tagcase' is "followic" and 'ignorecase' is off +- when 'tagcase' is "match" +- when 'tagcase' is "followscs" and the 'smartcase' option is off + +Note that using ignore-case tag searching disables binary searching in the +tags file, which causes a slowdown. This can be avoided by fold-case sorting +the tag file. See the 'tagbsearch' option for an explanation. ============================================================================== 2. Tag stack *tag-stack* *tagstack* *E425* @@ -442,13 +451,18 @@ The next file in the list is not used when: - A matching static tag for the current buffer has been found. - A matching global tag has been found. -This also depends on whether case is ignored. Case is ignored when -'ignorecase' is set and 'tagcase' is "followic", or when 'tagcase' is -"ignore". If case is not ignored, and the tags file only has a match without -matching case, the next tags file is searched for a match with matching case. -If no tag with matching case is found, the first match without matching case -is used. If case is ignored, and a matching global tag with or without -matching case is found, this one is used, no further tags files are searched. +This also depends on whether case is ignored. Case is ignored when: +- 'tagcase' is "followic" and 'ignorecase' is set +- 'tagcase' is "ignore" +- 'tagcase' is "smart" and the pattern only contains lower case + characters. +- 'tagcase' is "followscs" and 'smartcase' is set and the pattern only + contains lower case characters. +If case is not ignored, and the tags file only has a match without matching +case, the next tags file is searched for a match with matching case. If no +tag with matching case is found, the first match without matching case is +used. If case is ignored, and a matching global tag with or without matching +case is found, this one is used, no further tags files are searched. When a tag file name starts with "./", the '.' is replaced with the path of the current file. This makes it possible to use a tags file in the directory @@ -819,24 +833,24 @@ *:search-args* Common arguments for the commands above: -[!] When included, find matches in lines that are recognized as comments. - When excluded, a match is ignored when the line is recognized as a - comment (according to 'comments'), or the match is in a C comment (after - "//" or inside /* */). Note that a match may be missed if a line is - recognized as a comment, but the comment ends halfway the line. - And if the line is a comment, but it is not recognized (according to - 'comments') a match may be found in it anyway. Example: > +[!] When included, find matches in lines that are recognized as comments. + When excluded, a match is ignored when the line is recognized as a + comment (according to 'comments'), or the match is in a C comment + (after "//" or inside /* */). Note that a match may be missed if a + line is recognized as a comment, but the comment ends halfway the line. + And if the line is a comment, but it is not recognized (according to + 'comments') a match may be found in it anyway. Example: > /* comment foobar */ -< A match for "foobar" is found, because this line is not recognized as a - comment (even though syntax highlighting does recognize it). - Note: Since a macro definition mostly doesn't look like a comment, the - [!] makes no difference for ":dlist", ":dsearch" and ":djump". -[/] A pattern can be surrounded by '/'. Without '/' only whole words are - matched, using the pattern "\". Only after the second '/' a - next command can be appended with '|'. Example: > +< A match for "foobar" is found, because this line is not recognized as + a comment (even though syntax highlighting does recognize it). + Note: Since a macro definition mostly doesn't look like a comment, the + [!] makes no difference for ":dlist", ":dsearch" and ":djump". +[/] A pattern can be surrounded by '/'. Without '/' only whole words are + matched, using the pattern "\". Only after the second '/' a + next command can be appended with '|'. Example: > :isearch /string/ | echo "the last one" -< For a ":djump", ":dsplit", ":dlist" and ":dsearch" command the pattern - is used as a literal string, not as a search pattern. +< For a ":djump", ":dsplit", ":dlist" and ":dsearch" command the pattern + is used as a literal string, not as a search pattern. vim:tw=78:ts=8:ft=help:norl: diff -Nru vim-7.4.2156/runtime/doc/term.txt vim-8.0.0134/runtime/doc/term.txt --- vim-7.4.2156/runtime/doc/term.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/term.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*term.txt* For Vim version 7.4. Last change: 2016 Apr 29 +*term.txt* For Vim version 8.0. Last change: 2016 Sep 02 VIM REFERENCE MANUAL by Bram Moolenaar @@ -426,6 +426,8 @@ Vim supports using true colors in the terminal (taken from |highlight-guifg| and |highlight-guibg|), given that the terminal supports this. To make this work the 'termguicolors' option needs to be set. +See https://gist.github.com/XVilka/8346728 for a list of terminals that +support true colors. Sometimes setting 'termguicolors' is not enough and one has to set the |t_8f| and |t_8b| options explicitly. Default values of these options are @@ -433,9 +435,8 @@ set when `$TERM` is `xterm`. Some terminals accept the same sequences, but with all semicolons replaced by colons (this is actually more compatible, but less widely supported): > - set t_8f=^[[38:2:%lu:%lu:%lum - set t_8b=^[[48:2:%lu:%lu:%lum -(replace `^[` with real escape) + let &t_8f = "\[38:2:%lu:%lu:%lum" + let &t_8b = "\[48:2:%lu:%lu:%lum" These options contain printf strings, with |printf()| (actually, its C equivalent hence `l` modifier) invoked with the t_ option value and three diff -Nru vim-7.4.2156/runtime/doc/tips.txt vim-8.0.0134/runtime/doc/tips.txt --- vim-7.4.2156/runtime/doc/tips.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/tips.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*tips.txt* For Vim version 7.4. Last change: 2009 Nov 07 +*tips.txt* For Vim version 8.0. Last change: 2009 Nov 07 VIM REFERENCE MANUAL by Bram Moolenaar diff -Nru vim-7.4.2156/runtime/doc/todo.txt vim-8.0.0134/runtime/doc/todo.txt --- vim-7.4.2156/runtime/doc/todo.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/todo.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*todo.txt* For Vim version 7.4. Last change: 2016 Aug 02 +*todo.txt* For Vim version 8.0. Last change: 2016 Dec 01 VIM REFERENCE MANUAL by Bram Moolenaar @@ -28,15 +28,19 @@ be worked on, but only if you sponsor Vim development. See |sponsor|. Issues can also be entered online: https://github.com/vim/vim/issues -Updates will be forwarded to the vim_dev maillist. Issues entered there will -not be repeated below, unless there is extra information. +Only use this for bug reports, not for questions! Those belong on the +maillist. Updates will be forwarded to the vim_dev maillist. Issues entered +there will not be repeated below, unless there is extra information. *known-bugs* -------------------- Known bugs and current work ----------------------- -Should free_all_functions(void) skip numbered and lambda functions? - +channel: +- Problem with stderr on Windows? (Vincent Rischmann, 2016 Aug 31, #1026) +- Add 'cwd' argument to start_job(): directory to change to in the child. + check for valid directory before forking. + Part of patch for environment, Yasuhiro Matsumoto, #1160 +- Implement |job-term| ? - Channel test fails with Motif. Sometimes kills the X11 server. - When a message in the queue but there is no callback, drop it after a while? Add timestamp to queued messages and callbacks with ID, remove after a @@ -48,7 +52,6 @@ Feb 9) How to do this on MS-Windows? - For connection to server, a "keep open" flag would be useful. Retry connecting in the main loop with zero timeout. -Later - job_start(): run job in a newly opened terminal. With xterm could use -S{pty}. @@ -57,9 +60,6 @@ (Manuel Ortega, 2016 Apr 24) Test fails on Mac. Avoid using isalpha(), isalnum(), etc? Depends on LC_CTYPE -- The regexp engines are not reentrant, causing havoc when interrupted by a - remote expression or something else. Move global variables onto the stack - or into an allocated struct. - The old engine does not find a match for "/\%#=1\(\)\{80}", the new engine matches everywhere. - Using win_linetabsize() can still be slow. Cache the result, store col and @@ -72,11 +72,10 @@ 2013 Dec 11) - Using \@> and \?. (Brett Stahlman, 2013 Dec 21) Remark from Marcin Szamotulski Remark from Brett 2014 Jan 6 and 7. -- Difference in NFA and old engine. (Brett Stahlman, 2014 Nov 5) -- Bug when using \>. (Ramel, 2014 Feb 2) (Aaron Bohannon, 2014 Feb 13) - NFA regexp doesn't handle \%\/" on text "///" + (Chris Paul, 2016 Nov 13) New engine not greedy enough? + +'] mark invalid after undoing insert "hello". + +Make html indent file use javascript indent, now that it's not just cindent. +#1220 + +Use __sun instead of sun define check. #1296 + +Patch to use buffer id for system() and systemlist() (LemonBoy, 2016 Nov 7, +#1240) + +When using symbolic links, a package path will not be inserted at the right +position in 'runtimepath'. (Dugan Chen, 2016 Nov 18) json_encode(): should convert to utf-8. (Nikolai Pavlov, 2016 Jan 23) What if there is an invalid character? +Bug: ":earlier 100d" doesn't work after using undo file. +(Pavol Juhas, 2016 Nov 15, #1254) +Fix by Christian, but lacks a test. +Test by Pavol Juhas, Nov 22. + +Bug: Json with same key should not give internal error. (Lcd, 2016 Oct 26) +Make dict_add give a duplicate key error. + Should json_encode()/json_decode() restrict recursiveness? Or avoid recursiveness. -Patch to test popupmenu. Fails, possibly due to a bug. -(Christian Brabandt, 2016 Jul 23) +Allow using json with empty key? Dict already has it. + +Json string with trailing \u should be an error. (Lcd) + +Patch to reset ex_exitvalue after catch. (Christian Brabandt, 2016 Oct 23) + +Patch to deal with changed configure events in GTK 3. (Jan Alexander Steffens, +2016 Oct 23 #1193) +Remarks from nuko8, 2016 Nov 2. + +Wrong diff highlighting with three files. (2016 Oct 20, #1186) +Also get E749 on exit. + +Patch for better explanation of 'compatible' side effects. +https://github.com/vim/vim/pull/1161/files + +Error in test_startup_utf8 on Solaris. (Danek Duvall, 2016 Aug 17) + +Screen updated delayed when using CTRL-O u in Insert mode. +(Barlik, #1191) Perhaps because status message? + +Patch to fix that empty first tab is not in session. +(Hirohito Higashi, 2016 Nov 25, #1282) + +Patch for restoring wide characters in the console buffer. +(Ken Takata, 2016 Jun 7) + +Patch to fix escaping of job arguments. (Yasuhiro Matsumoto, 2016 Oct 5) +Update Oct 14: https://gist.github.com/mattn/d47e7d3bfe5ade4be86062b565a4bfca Once .exe with updated installer is available: Add remark to download page about /S and /D options (Ken Takata, 2016 Apr 13) Or point to nightly builds: https://github.com/vim/vim-win32-installer/releases -Problem with completion on "**/" in $path. (issue #932) -Happens in uniquefy_paths() ? More info Jul 22. -Fix for this (Harm te Hennepe, 2016 Jul 21, #939) - -Cursor positioned in the wrong place when editing src/testdir/test_viml.vim. - -Javascript indent wrong after /* in single quoted string: - var SRC = 'src/*.js'; - function log(tag) { - a = b; - } +Problem passing non-UTF-8 strings to Python 3. (Björn Linse, 2016 Sep 11, +#1053) With patch, does it work? +Patch to make finding duplicate tags much faster, using a hashtab. (James +McCoy, 2016 Sept 14, #1046) Should work now. Updated Nov 12. +> Use ADDR_OTHER instead of ADDR_LINES for many more commands. Add tests for using number larger than number of lines in buffer. +Patch to make v:shell_error writable. (Christian Brabandt, 2016 Sep 27) +Is there another solution? + +On MS-Windows with 'clipboard' set to "unnamed" this doesn't work to double +lines: :g/^/normal yyp On Unix it works OK. (Bryce Orgill, 2016 Nov 5) + +Patch for wrong cursor position on wrapped line, involving breakindent. +(Ozaki Kiichi, 2016 Nov 25) + +Patch for 'cursorlinenr' option. (Ozaki Kiichi, 2016 Nov 30) + Invalid behavior with NULL list. (Nikolai Pavlov, #768) +E.g. deepcopy(test_null_list()) -For current Windows build .pdb file is missing. (Gabriele Fava, 2016 May 11) -5) +Patch to make it possible to extend a list with itself. +(Nikolai Pavlov, 2016 Sep 23) + +Patch to add Zstandard compressed file support. (Nick Terrell, 2016 Oct 24) + +Patch to add trim() function. (Bukn, 2016 Nov 25, #1280) + +Patch to add MODIFIED_BY to MSVC build file. (Chen Lei, 2016 Nov 24, #1275) + +On Windows buffer completion sees backslash as escape char instead of path +separator. (Toffanim, 2016 Nov 24, #1274) + +min() and max() spawn lots of error messages if sorted list/dictionary +contains invalid data (Nikolay Pavlov, 2016 Sep 4, #1039) + +Should :vmap in matchit.vim be :xmap? (Tony Mechelynck) Problem with whitespace in errorformat. (Gerd Wachsmuth, 2016 May 15, #807) Undo problem: "g-" doesn't go back, gets stuck. (Björn Linse, 2016 Jul 18) -Do we need some way (option) to show the sign column even when there are no -signs? Patch by Christian Brabandt, 2016 Jul 29. +Add "unicode true" to NSIS installer. Doesn't work with Windows 95, which we +no longer support. + +sort() is not stable when using numeric/float sort (Nikolay Pavlov, 2016 Sep +4#1038) + +Patch to add "cmdline" completion to getcompletion(). (Shougo, Oct 1, #1140) + +Patch for systemlist(), add empty item. (thinca, Sep 30, #1135) +Add an argument to choose binary or non-binary (like readfile()), when omitted +use the current behavior. +Include the test. + +When 'keywordprg' starts with ":" the argument is still escaped as a shell +command argument. (Romain Lafourcade, 2016 Oct 16, #1175) + +Patch to support CamelCase for spell checking: See a lower-to-upper case +change as a word boundary. (btucker-MPCData, 2016 Nov 6, #1235) + +Idea from Sven: record sequence of keys. Useful to show others what they are +doing (look over the shoulder), and also to see what happened. +Probably list of keystrokes, with some annotations for mode changes. +Could store in logfile to be able to analyise it with an external command. +E.g. to see when's the last time a plugin command was used. -Patch to allow setting w:quickfix_title via setqflist() and setloclist() -functions. (Christian Brabandt, 2013 May 8, update May 21) -Patch to add getlocstack() / setlocstack(). (Christian Brabandt, 2013 May 14) -Second one. Update May 22. -Update by Daniel Hahler, 2014 Jul 4, Aug 14, Oct 14, Oct 15. -Updated patch: add an argument to setqflist() and getqflist() for these -extra items: Yegappan, 2016 Jul 30. +execute() cannot be used with command completeion. (Daniel Hahler, 2016 Oct 1, +#1141) -Patch to detect st terminal supporting xterm mouse. (Manuel Schiller, 2016 Aug -2, #963) +cmap using execute() has side effects. (Killthemule, 2016 Aug 17, #983) + +Patch to change order of compiler flags. (Yousong Zhou, 2016 Sep 19, #1100) + +Patch to order results from taglist(). (Duncan McDougall, 2016 Oct 25) + +Patch for :pyx, run python commands depending on the supported version. +(Marc Weber, update from Ken Takata, 2016 Sep 19) + +When using ":diffput" through a mapping, undo in the target buffer isn't +synced. (Ryan Carney, 2016 Sep 14) Syntax highlighting for messages with RFC3339 timestamp (#946) Did maintainer reply? -Patch to add filtering of the quickfix list. (Yegappan Lakshmanan, 2016 Mar -13, last version) Update June 26, #830. -Instead use a Vim script implementation, invoked from a Vim command. +Patch to avoid problem with special characters in file name. +(Shougo, 2016 Sept 19, #1099) Not finished? ml_get errors when reloading file. (Chris Desjardins, 2016 Apr 19) Also with latest version. -Still problems with 'emoji'. See issue #721. Patch 7.4.1697 half-fixes it. -Avoid PLAN_WRITE in windgoto() ? -Should already never use utf-8 chars to position the cursor. - Cannot delete a file with square brackets with delete(). (#696) -No autocommand for when changing directory. Patch from allen haim, 2016 Jun -27, #888 -Justin M Keyes: use "global" or "window" for the pattern. Can add "tab" -later. What if entering a window where ":lcd" was used? +Patch to add ":syn foldlevel" to use fold level further down the line. +(Brad King, 2016 Oct 19) Completion for input() does not expand environment variables. (chdiza, 2016 Jul 25, #948) -Patch to have text objects defined by arbitrary single characters. (Daniel -Thau, 2013 Nov 20, 2014 Jan 29, 2014 Jan 31) -Ben Fritz: problem with 'selection' set to "exclusive". -Updated to current Vim, not quite right yet. (Ben Fritz, 2014 Mar 27) -Updated to current Vim (James McCoy, 2016 Jul 30, #958) -Still a bit of work left. +Patch to fix wrong encoding of error message on Cygwin/MSYS terminal. +(Ken Takata, 2016 Oct 4) -Patch to add CTRL-N / CTRL-P while searching. (Christian Brabandt, 2016 Jul -29) +'hlsearch' interferes with a Conceal match. (Rom Grk, 2016 Aug 9) -'s$^$\=capture("s/^//gn")' locks Vim in sandbox mode (#950) -Patch by Christian Brabandt, 2016 Jul 27. +Patch to add context information to quickfix/location list. (Yegappan +Lakshmanan, 2016 Aug 25) MS-Windows: use WS_HIDE instead of SW_SHOWMINNOACTIVE in os_win32.c? Otherwise task flickers in taskbar. +Bogus characters inserted when triggering indent while changing test. +(Vitor Antunes, 2016 Nov 22, #1269) + Should make ":@r" handle line continuation. (Cesar Romani, 2016 Jun 26) Also for ":@.". -Patch to make printf() convert to string for %s items. (Ken Takata, 2016 Aug -1) - Repeating 'opfunc' in a function only works once. (Tarmean, 2016 Jul 15, #925) -Patch on issue #728 by Christian Brabandt, 2016 Apr 7. Update with test: Apr 8. -Explanation Apr 12. -Might be related to: -Test 44 fails when [[=A=]] is changed to [[=À=]]. Caused by getcmdline() not -handling the 0x80 as a second byte correctly? (Dominique Pelle, 2015 Jun 10) +Have a way to get the call stack, in a function and from an exception. +#1125 -Patch to add 'topbot' to 'belloff' option. (Coot, 2016 Mar 18, #695) +Patch to add 'pythonhome' and 'pythonthreehome' options. (Kazuki Sakamoto, +2016 Nov 21, #1266) -Patch for C syntax HL. (Bradley Garagan, 2016 Apr 17) #763 - -Patch to make matchit work better, respect 'matchpairs'. (Ken Takata, 2016 Mar -25) +Second problem in #966: ins_compl_add_tv() uses get_dict_string() multiple +times, overwrites the one buffer. (Nikolay Pavlov, 2016 Aug 5) This does not work: :set cscopequickfix=a- (Linewi, 2015 Jul 12, #914) Possibly wrong value for seq_cur. (Florent Fayolle, 2016 May 15, #806) +Patch to add separate highlighting for quickfix current line. +(anishsane, 2016 Sep 16, #1080) + +Filetype plugin for awk. (Doug Kearns, 2016 Sep 5) + Patch to improve map documentation. Issue #799. -Patch for restoring wide characters in the console buffer. -(Ken Takata, 2016 Jun 7) +Patch for syntax folding optimization. (Shougo, 2016 Sep 6, #1045) + +Patch for drag&drop reordering of GUI tab pages reordering. +(Ken Takata, 2013 Nov 22, second one, also by Masamichi Abe) +Now on Git: https://gist.github.com/nocd5/165286495c782b815b94 +Update 2016 Aug 10. We can use '. to go to the last change in the current buffer, but how about the last change in any buffer? Can we use ', (, is next to .)? -Patch for Python: #622. (Roland Puntaier, 2016 Feb 2) -What does it change? +Ramel Eshed: system() is much slower than job_start(), why? (Aug 26) When generating the Unicode tables with runtime/tools/unicode.vim the emoji_width table has only one entry. @@ -243,14 +328,6 @@ Update mentioned by Christian, 2016 Apr 25. Update from Ken Takata, 2016 Jul 17. -Patch to improve cscope. (Adrian Kocis, #843) - -Patch to add getbufinfo(), gettabinfo() and getwininfo(). (Yegappan -Lakshmanan, 2016 Apr 2016) Update Jul 29. #833. - -Patch for groovy multi-line comment highlighting. (Justin M. Keyes, 2016 May -20 #644) - When doing "vi buf.md" a BufNew autocommand for *.md is not triggered. Because of using the initial buffer? (Dun Peal, 2016 May 12) @@ -261,14 +338,10 @@ Neovim patch for utfc_ptr2char_len() https://github.com/neovim/neovim/pull/4574 No test, needs some work to include. -> + Patch to improve indenting for C++ constructor with initializer list. (Hirohito Higashi, 2016 Mar 31) -After 7.5 is released: -- Drop support for older MS-Windows systems, before XP. - Patch from Ken Takata, 2016 Mar 8. - Add stronger encryption. Could use libsodium (NaCl). https://github.com/jedisct1/libsodium/ Possibly include the needed code so that it can be build everywhere. @@ -294,9 +367,15 @@ Patch to make tests pass with EBCDIC. (Owen Leibman, 2016 Apr 10) +Add ":read :command", to insert the output of an Ex command? +Can already do it with ":$put =execute('command')". + When repeating the 'confirm' dialog one needs to press Enter. (ds26gte, 2016 Apr 17) #762 +exists(":tearoff") does not tell you if the command is implemented. (Tony +Mechelynck) Perhaps use exists("::tearoff") to check? + Use vim.vim syntax highlighting for help file examples, but without ":" in 'iskeyword' for syntax. @@ -320,6 +399,21 @@ Or use $XDG_DATA_DIRS. Also need to run update-desktop-database (Kuriyama Kazunobu, 2015 Nov 4) +Patch to introduce 'cmdencoding'. (Ken Takata, Aug 18?) +Better help Aug 19. +Problem: applies to too many commands, such as :cbuffer. +Updated patch with three options, 2016 Sep 8. + Win32: When running ":make" and 'encoding' differs from the system locale, + the output should be converted. Esp. when 'encoding' is "utf-8". (Yongwei + Wu) Should we use 'termencoding' for this? + +Patch to have text objects defined by arbitrary single characters. (Daniel +Thau, 2013 Nov 20, 2014 Jan 29, 2014 Jan 31) +Added tests (James McCoy, 2016 Aug 3). Still needs more work. + +Feature request: add the "al" text object, to manipulate a screen line. +Especially useful when using 'linebreak' + Access to uninitialized memory in match_backref() regexp_nda.c:4882 (Dominique Pelle, 2015 Nov 6) @@ -341,9 +435,6 @@ Patch to add {skip} argument to search(). (Christian Brabandt, 2016 Feb 24) Update 2016 Jun 10, #861 -Add value "smart" to 'tagcase': ignore case when tag is all lower case. -Patch from Christian Brabandt, 2016 Mar 30, #712. - Patch to be able to use hex numbers with :digraph. (Lcd, 2015 Sep 6) Update Sep 7. Update by Christian Brabandt, 2015 Sep 8, 2016 Feb 1. @@ -403,8 +494,6 @@ Add "==*" (?) to have a value match, but no automatic conversion, and v:true equals 1 and 1.0, v:false equals 0 and 0.0.? -Plugin to use Vim in MANPAGER. Konfekt, PR #491 - Using uninitialized memory. (Dominique Pelle, 2015 Nov 4) MS-Windows: When editing a file with a leading space, writing it uses the @@ -422,12 +511,13 @@ Can we cache the syntax attributes, so that updates for 'relativenumber' and 'cursorline'/'cursorcolumn' are a lot faster? +C highlighting: modern C allows: /* comment */ #ifdef +and also line continuation after #include. +I can't recommend it though. + Build with Python on Mac does not always use the right library. (Kazunobu Kuriyama, 2015 Mar 28) -Need a Vim equivalent of Python's None and a way to test for it. -Use v:none. var == v:none - Patch to add arguments to argc() and argv(). (Yegappan Lakshmanan, 2016 Jan 24) Also need a way to get the global arg list? Update later on Jan 24 Update Mar 5. Update Apr 7. Update Jun 5. @@ -470,10 +560,6 @@ Patch for problem with restoring screen on Windows. (Nobuhiro Takasaki, 2015 Sep 10) -Patch to set antialiasing style on Windows. (Ondrej Balaz, 2013 Mar 14) -Needs a different check for CLEARTYPE_QUALITY. -Problem mentioned by Christian Brabandt, 2016 Jan 4. - Example in editing.txt uses $HOME with the expectation that it ends in a slash. For me it does, but perhaps not for everybody. Add a function that inserts a slash when needed? pathconcat(dir, path) (Thilo Six, 2015 Aug 12) @@ -515,9 +601,6 @@ Patch to use different terminal mode settings for system(). (Hayaki Saito) Does this work for everybody? -Patch to add wordcount(). Same info as g CTRL-G. (Christian Brabandt, 2015 -Nov 17) - Patch for man.vim. (SungHyun Nam, 2015 May 20) Doesn't work completely (Dominique Orban) @@ -537,16 +620,8 @@ Mixup of highlighting when there is a match and SpellBad. (ZyX, 2015 Jan 1) -Patch for drag&drop reordering of GUI tab pages reordering. -(Ken Takata, 2013 Nov 22, second one, also by Masamichi Abe) -Now on Git: https://gist.github.com/nocd5/165286495c782b815b94 -Update 2016 Mar 15. - Patch on Issue 72: 'autochdir' causes problems for :vimgrep. -When 'balloonexpr' returns a list the result has a trailing newline. -Just remove one trailing newline. (lcd, 2014 Oct 17) - When two SIGWINCH arrive very quickly, the second one may be lost. (Josh Triplett, 2015 Sep 17) @@ -560,9 +635,6 @@ Syntax highlighting slow (hangs) in SASS file. (Niek Bosch, 2013 Aug 21) -Patch to add the EndOfBuffer highlight group, used instead of NonText for "~" -lines. (Marco Hinz, 2014 Nov 2) - Adding "~" to 'cdpath' doesn't work for completion? (Davido, 2013 Aug 19) Should be easy to highlight all matches with 'incsearch'. Idea by Itchyny, @@ -571,8 +643,6 @@ Wrong scrolling when using incsearch. Patch by Christian Brabandt, 2014 Dec 4. Is this a good solution? -Patch to add /pattern/ to :oldfiles. Pull #575. - Patch: Let rare word highlighting overrule good word highlighting. (Jakson A. Aquino, 2010 Jul 30, again 2011 Jul 2) @@ -646,8 +716,7 @@ buffers that changed. Perhaps in misc.c, function selectwindow(). Xterm 224 supports it! Patch to make FocusGained and FocusLost work in modern terminals. (Hayaki -Saito, 2013 Apr 24) Has a problem (email 2015 Jan 7). -Update 2015 Jan 10. +Saito, 2013 Apr 24) Update 2016 Aug 12. Also see issue #609. We could add the enable/disable sequences to t_ti/t_te or t_ks/t_ke. @@ -656,7 +725,7 @@ its height? It's like dragging the status bar above it at the same time. Can we make ":unlet $VAR" use unsetenv() to delete the env var? -What for systems that don't have unsetenv()? +What for systems that don't have unsetenv()? (Issue #1116) Patch to add a :domodeline command. (Christian Brabandt, 2014 Oct 21) @@ -711,9 +780,6 @@ Setting the spell file in a session only reads the local additions, not the normal spell file. (Enno Nagel, 2014 Mar 29) -CTRL-] in Visual mode uses the selected text as a tag. This does not work -when preceded with CTRL-W. (Patrick Hemmer, 2014 Jun 28) - 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? @@ -755,9 +821,6 @@ Patch to handle integer overflow. (Aaron Burrow, 2013 Dec 12) -With "$" in 'cpoptions' the popup menu isn't fully drawn. (Matti Niemenmaa, -2013 Sep 5) - Patch to add "ntab" item in 'listchars' to repeat first character. (Nathaniel Braun, pragm, 2013 Oct 13) A better solution 2014 Mar 5. @@ -776,9 +839,6 @@ Patch to add funcref to Lua. (Luis Carvalho, 2013 Sep 4) With tests: Sep 5. -Patch to fix that on suckless Terminal mousewheel up does not work. -(Ralph Eastwood, 2013 Nov 25) - Discussion about canonicalization of Hebrew. (Ron Aaron, 2011 April 10) Checking runtime scripts: Thilo Six, 2012 Jun 6. @@ -825,10 +885,6 @@ Exception caused by argument of return is not caught by try/catch. (David Barnett, 2013 Nov 19) -8 'backupdir' and 'directory' should use $TMPDIR, $TMP and/or $TEMP when - defined. -Issue 28. - Patch to fix that 'cedit' is recognized after :normal. (Christian Brabandt, 2013 Mar 19, later message) @@ -871,13 +927,8 @@ Problem: they all work slightly different (e.g. don't install vimrun.exe). How to test that it works well for all Vim users? -Patch to check whether a buffer is quickfix or a location list. -(Yasuhiro Matsumoto, 2014 Dec 9) - Patch to make fold updates much faster. (Christian Brabandt, 2012 Dec) -Issue 54: document behavior of -complete, also expands arg. - - Add regex for 'paragraphs' and 'sections': 'parare' and 'sectre'. Combine the two into a regex for searching. (Ned Konz) Patch by Christian Brabandt, 2013 Apr 20, unfinished. @@ -888,20 +939,11 @@ process that is running. It might actually be some other program, e.g. after a reboot. -Patch to select the next or previous text object if there isn't one under the -cursor. (Daniel Thau, 2013 Nov 20) - patch to add "combine" flag to syntax commands. (so8res, 2012 Dec 6) -Bug caused by patch 7.3.1288? Issue 183. -I can't reproduce it. - Syntax update problem in one buffer opened in two windows, bottom window is not correctly updated. (Paul Harris, 2012 Feb 27) -Patch to add assignments in cscope. (Uli Meis, Estabrooks, 2012 Sep 1) -Alternate patch by Gary Johnson, Sep 4. - Patch to add getsid(). (Tyru, 2011 Oct 2) Do we want this? Update Oct 4. Or use expand('')? @@ -939,10 +981,6 @@ Session file creation: 'autochdir' causes trouble. Keep it off until after loading all files. -Win32: When 'autochdir' is on and 'encoding' is changed, files on the command -line are opened again, but from the wrong directory. Apply 'autochdir' only -after starting up? - 8 "stl" and "stlnc" in 'fillchars' don't work for multi-byte characters. Patch by Christian Wellenbrock, 2013 Jul 5. @@ -960,9 +998,6 @@ Patch to add tagfunc(). Cleaned up by Christian Brabandt, 2013 Jun 22. -Help for 'b:undo_indent'. (Thilo Six, 2012 May 28) -Also question if examples are correct. - 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. @@ -1039,8 +1074,6 @@ Patch to support cursor shape in Cygwin console. (Ben bgold, 2011 Dec 27) -Issue 64: when 'incsearch' is on can't paste LF on command line. - On MS-Windows a temp dir with a & init causes system() to fail. (Ben Fritz, 2012 Jun 19) @@ -1092,10 +1125,6 @@ Setting $HOME on MS-Windows is not very well documented. Suggestion by Ben Fritz (2011 Oct 27). -Bug: Windows 7 64 bit system freezes when 'clipboard' set to "unnamed" and -doing ":g/test/d". Putting every delete on the clipboard? (Robert Chan, 2011 -Jun 17) - When there is a ">" in a line that "gq" wraps to the start of the next line, then the following line will pick it up as a leader. Should get the leader from the first line, not a wrapped line. (Matt Ackeret, 2012 Feb 27) @@ -1175,12 +1204,6 @@ 8 Add a command to jump to the next character highlighted with "Error". Patch by Christian Brabandt, uses ]e [e ]t and [t. 2011 Aug 9. -8 Add an event like CursorHold that is triggered repeatedly, not just once - after typing something. -Need for CursorHold that retriggers. Use a key that doesn't do anything, or a -function that resets did_cursorhold. -Patch by Christian Brabandt, 2011 May 6. - Add event for when the text scrolls. A bit like CursorMoved. Also a similar one for insert mode. Use the event in matchparen to update the highlight if the match scrolls into view. @@ -1290,6 +1313,7 @@ Patch to add random number generator. (Hong Xu, 2010 Nov 8, update Nov 10) Alternative from Christian Brabandt. (2010 Sep 19) +New one from Yasuhiro Matsumoto, #1277. Messages in message.txt are highlighted as examples. @@ -1317,9 +1341,6 @@ Patch for GVimExt to show an icon. (Dominik Riebeling, 2010 Nov 7) -When writing a file > 2Gbyte, the reported number of bytes is negative. -(Antonio Colombo, 2010 Dec 18) - When 'lines' is 25 and 'scrolloff' is 12, "j" scrolls zero or two lines instead of one. (Constantin Pan, 2010 Sep 10) @@ -1383,7 +1404,7 @@ Patch to support :undo absolute jump to file save number. (Christian Brabandt, 2010 Nov 5) -Patch to use 'foldnextmax' also for "marker" foldmethod. (Arnaud Lacombe, 2011 +Patch to use 'foldnestmax' also for "marker" foldmethod. (Arnaud Lacombe, 2011 Jan 7) Bug with 'incsearch' going to wrong line. (Wolfram Kresse, 2009 Aug 17) @@ -1482,8 +1503,6 @@ Motif: Build on Ubuntu can't enter any text in dialog text fields. -When 'ft' changes redraw custom status line. - ":tab split fname" doesn't set the alternate file in the original window, because win_valid() always returns FALSE. Below win_new_tabpage() in ex_docmd.c. @@ -1531,10 +1550,6 @@ Diff mode out of sync. (Gary Johnson, 2010 Aug 4) -Support a 'systemencoding' option (for Unix). It specifies the encoding of -file names. (Kikuchan, 2010 Oct 5). Useful on a latin1 or double-byte Asian -system when 'encoding' is "utf-8". - Win32 GUI: last message from startup doesn't show up when there is an echoerr command. (Cyril Slobin, 2009 Mar 13) @@ -1579,9 +1594,6 @@ Consider making YankRing or something else that keeps a list of yanked text part of standard Vim. The "1 to "9 registers are not sufficient. -netrw: dragging status line causes selection of entry. Should check row -number to be below last visible line. - After doing "su" $HOME can be the old user's home, thus ~root/file is not correct. Don't use it in the swap file. @@ -1652,8 +1664,6 @@ Shell expansion returns unexpanded string? Don't use shell when "~" is not at the start? -":unlet $VAR" doesn't work. - When using ":e ++enc=foo file" and the file is already loaded with 'fileencoding' set to "bar", then do_ecmd() uses that buffer, even though the fileencoding differs. Reload the buffer in this situation? Need to check for @@ -1688,9 +1698,6 @@ ":help s/~" jumps to *s/\~*, while ":help s/\~" doesn't find anything. (Tim Chase) Fix by Ian Kelling, 2008 Jul 14. -Use "\U12345678" for 32 bit Unicode characters? (Tony Mechelynck, 2009 -Apr 6) Or use "\u(123456)", similar to Perl. - When mapping : to ; and ; to :, @; doesn't work like @: and @: doesn't work either. Matt Wozniski: nv_at() calls do_execreg() which uses put_in_typebuf(). Char mapped twice? @@ -1747,8 +1754,6 @@ that the context can be taken into account. (Robert Webb) Patch by Christian Brabandt, 2013 May 31. -Test54 should not use shell commands. Make it portable. - The utf class table is missing some entries: 0x2212, minus sign 0x2217, star @@ -1878,10 +1883,6 @@ size and then redraw the text, skipping the characters under the popup menu. This should avoid flicker. Other solution by A.Politz, 2007 Aug 22. -Windows 98: pasting from the clipboard with text from another application has -a trailing NUL. (Joachim Hofmann) Perhaps the length specified for CF_TEXT -isn't right? - When a register contains illegal bytes, writing viminfo in utf-8 and reading it back doesn't result in utf-8. (Devin Bayer) @@ -1957,8 +1958,6 @@ Win32: compiling with normal features and OLE fails. Patch by Mathias Michaelis, 2006 Jun 4. -Win16: include patches to make Win16 version work. (Vince Negri, 2006 May 22) - Win32: after "[I" showing matches, scroll wheel messes up screen. (Tsakiridis, 2007 Feb 18) Patch by Alex Dobrynin, 2007 Jun 3. Also fixes other scroll wheel problems. @@ -1996,9 +1995,6 @@ modifier key. Need to catch three different sequences. Use K_ZF1, like K_ZHOME? (Dickey, 2007 Dec 2) -UTF-8: mapping a multi-byte key where the second byte is 0x80 doesn't appear -to work. (Tony Mechelynck, 2007 March 2) - In debug mode, using CTRL-R = to evaluate a function causes stepping through the function. (Hari Krishna Dara, 2006 Jun 28) @@ -2103,15 +2099,6 @@ cursor in the empty buffer, the other buffer only shows the last line. Change the "insert" into a change from one line to many? (Yakov Lerner, 2008 May 27) -Add autocommand for when a tabpage is being closed. Also for when a tab page -has been created. - -Using ":make" blocks Vim. Allow running one make in the background (if the -shell supports it), catch errors in a file and update the error list on the -fly. A bit like "!make > file&" and repeating ":cf file". ":bgmake", -background make. ":bgcancel" interrupts it. -A.Politz may work on this. - These two abbreviations don't give the same result: let asdfasdf = "xyz\" cabbr XXX =asdfasdf @@ -2124,9 +2111,6 @@ buffer. But the changed buffer may differ from the current buffer, how to reload it then? -New syntax files for fstab and resolv from Radu Dineiu, David Necas did -previous version. - For Aap: include a config.arg.example file with hints how to use config.arg. Command line completion when 'cmdheight' is maximum and 'wildmenu' is set, @@ -2156,11 +2140,6 @@ show more text of the completions. Shorten the items that don't fit in the middle? -When running inside screen it's possible to kill the X server and restart it -(using pty's the program can keep on running). Vim dies because it loses the -connection to the X server. Can Vim simply quit using the X server instead of -dying? Also relevant when running in a console. - Accessing file#var in a function should not need the g: prepended. When exiting detects a modified buffer, instead of opening the buffer in the @@ -2195,10 +2174,6 @@ Win32: Is it possible to have both postscript and Win32 printing? -Check: Running Vim in a console and still having connect to the X server for -copy/paste: is stopping the X server handled gracefully? Should catch the X -error and stop using the connection to the server. - Problem with 'cdpath' on MS-Windows when a directory is equal to $HOME. (2006 Jul 26, Gary Johnson) @@ -2235,34 +2210,11 @@ The magic clipboard format "VimClipboard2" appears in several places. Should be only one. -"vim -C" often has 'nocompatible', because it's set somewhere in a startup -script. Do "set compatible" after startup? - -It's difficult to debug numbered functions (function in a Dictionary). Print -the function name before resolving it to a number? - let d = {} - fun! d.foo() - echo "here" - endfun - call d.foo(9) - -Add a mark for the other end of the Visual area (VIsual pos). '< and '> are -only set after Visual moded is ended. -Also add a variable for the Visual mode. So that this mode and '< '> can be -used to set what "gv" selects. (Ben Schmidt) - -Win32: When running ":make" and 'encoding' differs from the system locale, the -output should be converted. Esp. when 'encoding' is "utf-8". (Yongwei Wu) -Should we use 'termencoding' for this? - Win32, NTFS: When editing a specific infostream directly and 'backupcopy' is "auto" should detect this situation and work like 'backupcopy' is "yes". File name is something like "c:\path\foo.txt:bar", includes a colon. (Alex Jakushev, 2008 Feb 1) -printf() uses the field width in bytes. Can it be made character width, -perhaps with a modifier? What does Posix say? - Small problem displaying diff filler line when opening windows with a script. (David Luyer, 2007 Mar 1 ~/Mail/oldmail/mool/in.15872 ) @@ -2283,8 +2235,6 @@ text has the wrong encoding. E.g., when 'encoding' is utf-8 and file is latin1. Example from Gombault Damien, 2007 Mar 24. -Is it possible to use "foo#var" instead of "g:foo#var" inside a function? - Syntax HL: When using "nextgroup" and the group has an empty match, there is no search at that position for another match. (Lukas Mai, 2008 April 11) @@ -2345,8 +2295,6 @@ - Another patch for Javascript indenting. (Hari Kumar, 2010 Jul 11) Needs a few tests. - Add 'cscopeignorecase' option. (Liang Wenzhi, 2006 Sept 3) -- Argument for feedkeys() to prepend to typeahead (Yakov Lerner, 2006 Oct - 21) - Load intl.dll too, not only libintl.dll. (Mike Williams, 2006 May 9, docs patch May 10) - Extra argument to strtrans() to translate special keys to their name (Eric @@ -2371,8 +2319,6 @@ Schmidt, 2008 Jul 22. - testdir/Make_dos_sh.mak for running tests with MingW. (Bill Mccarthy, 2008 Sep 13) -- Patch for adding "space" item in 'listchars'. (Jérémie Roquet, 2009 Oct 29, - Docs patch Oct 30, update David Burgin (glts) 2013 Aug 24, 2014 Oct 10) - Replace ccomplete.vim by cppcomplete.vim from www.vim.org? script 1520 by Vissale Neang. (Martin Stubenschrott) Asked Vissale to make the scripts more friendly for the Vim distribution. @@ -2395,8 +2341,6 @@ 9 HTML indenting can be slow. Caused by using searchpair(). Can search() be used instead? A.Politz is looking into a solution. 8 Win32: Add minidump generation. (George Reilly, 2006 Apr 24) -8 Add ":n" to fnamemodify(): normalize path, remove "../" when possible. - Aric Blumer has a patch for this. He will update the patch for 6.3. 7 Completion of network shares, patch by Yasuhiro Matsumoto. Update 2004 Sep 6. How does this work? Missing comments. @@ -2452,9 +2396,6 @@ done for filetype detection. Patch from Walter Briscoe, 2003 Jul 1. 7 Add a "-@ filelist" argument: read file names from a file. (David Kotchan has a patch for it) -8 Include a connection to an external program through a pipe? See - patches from Felbinger for a mathematica interface. - Or use emacs server kind of thing? 7 Add ":justify" command. Patch from Vit Stradal 2002 Nov 25. - findmatch() should be adjusted for Lisp. See remark at get_lisp_indent(). Esp. \( and \) should be skipped. (Dorai Sitaram, @@ -2500,8 +2441,6 @@ the ":map" when it's used without arguments? 7 CTRL-L is not the end of a section? It is for Posix! Make it an option. 7 Implement 'prompt' option. Init to off when stdin is not a tty. -7 CTRL-T in Insert mode inserts 'shiftwidth' of spaces at the cursor. Add a - flag in 'cpoptions' for this. 7 Add a way to send an email for a crashed edit session. Create a file when making changes (containing name of the swap file), delete it when writing the file. Supply a program that can check for crashed sessions (either @@ -2549,8 +2488,6 @@ Win32 GUI known bugs: - Win32: tearoff menu window should have a scrollbar when it's taller than the screen. -8 On Windows 98 the unicows library is needed to support functions with UCS2 - file names. Can we load unicows.dll dynamically? 8 The -P argument doesn't work very well with many MDI applications. The last argument of CreateWindowEx() should be used, see MSDN docs. Tutorial: http://win32assembly.online.fr/tut32.html @@ -2564,9 +2501,6 @@ 7 When font smoothing is enabled, redrawing can become very slow. The reason appears to be drawing with a transparent background. Would it be possible to use an opaque background in most places? -8 Use another default for 'termencoding': the active codepage. Means that - when 'encoding' is changed typing characters still works properly. - Alternative: use the Unicode functions to obtain typed characters. 7 The cursor color indicating IME mode doesn't work properly. (Shizhu Pan, 2004 May 9) 8 Win32: When clicking on the gvim title bar, which gives it focus, produces @@ -2779,14 +2713,6 @@ backslashes. (Ronald Hoellwarth) -Windows 95: -8 Editing a file by its short file name and writing it, makes the long file - name disappear. Setting 'backupcopy' helps. - Use FindFirstFile()->cAlternateFileName in fname_case() (George Reilly). -8 Doing wildcard expansion, will match the short filename, but result in the - long filename (both DJGPP and Win32). - - Win32 console: 9 When editing a file by its short file name, it should be expanded into its long file name, to avoid problems like these: (Mccollister) @@ -2810,9 +2736,6 @@ a Netware network drive. Use same function as for Win32 GUI? 8 In os_win32.h, HAVE_STRICMP and HAVE_STRNICMP are defined only if __GNUC__ is not defined. Shouldn't that be the other way around? -7 Use SetConsoleCP() and SetConsoleOutputCP() to implement 'termencoding'? - Avoids that input and output work differently. Need to be restored when - exiting. Amiga: @@ -2915,9 +2838,6 @@ is currently fixed to use ".,:;!". Add an option to make this configurable? 8 'hkmap' should probably be global-local. -9 When "$" is in 'cpoptions' and folding is active, a "C" command changes - the folds and resets w_lines_valid. The display updating doesn't work - then. (Pritesh Mistry) 8 Using ":s" in a function changes the previous replacement string. Save "old_sub" in save_search_patterns()? 8 Should allow multi-byte characters for the delimiter: ":s+a+b+" where "+" @@ -2961,11 +2881,6 @@ - Be able to print a window in diff mode. - Be able to specify a colorscheme to use for printing. And a separate one for B&W printing (if that can be detected). -8 In Visual block mode with 'lbr' set, a change command doesn't insert the - text in following lines where the linebreak changes. -9 dosinst.c: The DJGPP version can't uninstall the Uninstall registry key on - Windows NT. How to install a .inf file on Windows NT and how to detect - that Windows NT is being used? 8 When 'virtualedit' is "block,insert" and encoding is "utf-8", selecting a block of one double-wide character, then "d" deletes only half of it. 8 When 'virtualedit' is set, should "I" in blockwise visual mode also insert @@ -3022,8 +2937,6 @@ (e.g., ":w"). 8 CTRL-A can't handle big "long" numbers, they become negative. Check for "-" character, if not present, use unsigned long. -8 Make it possible to disable the special meaning of "#" in the first column - for ">>". 8 Add suspending with CTRL-Z at the "more" prompt, and when executing a long script in do_cmdline(). 8 When using 'hidden', many swap files will be open. When Vim runs into the @@ -3145,11 +3058,6 @@ - Amiga: The ":cq" command does not always abort the Manx compiler. Why? - Linux: A file with protection r--rw-rw- is seen readonly for others. The access() function in GNU libc is probably wrong. -- MSDOS: When using smartdrive with write-back buffering, writing to a - readonly floppy will cause problems. How to test for a writable floppy - first? -- MSDOS: Both 16 and 32 bit versions: File name expansion doesn't work for - names that start with a dot. These used to be illegal file names. - When doing a CTRL-Z and typing a command for the shell, while Vim is busy (e.g. writing a file), the command for the shell is sometimes eaten by Vim, because the terminal mode is changed from RAW to CBREAK. @@ -3260,7 +3168,6 @@ 8 List of options should mention whether environment variables are expanded or not. 8 Extend usr_27.txt a bit. (Adam Seyfarth) -7 Add a section on debugging scripts in the user manual. 9 Make the Reference Manual more precise. For each command mention: - change to cursor position and curswant - if it can be undone (u/CTRL-R) and redone (.) @@ -3286,7 +3193,6 @@ - When a help item has multiple matches make it possible to use ":tn" to go to the other matches. - Support a way to view (and edit) .info files. -- Default mapping for help files: to position cursor on next |:tag|. - Implement a "sticky" help window, some help text lines that are always displayed in a window with fixed height. (Guckes) Use "~/.vimhelp" file, user can edit it to insert his favorite commands, new account can contain a @@ -3310,20 +3216,12 @@ $HOME/_vimrc, etc.) and add "edit vimrc" to the File menu. - Add a way to save local settings and mappings into a new plugin file. ":mkplugin "? -8 Add ":plugininstall" command. Can be used to install a plugin file that - includes documentation. Let the user select a directory from - 'runtimepath'. - " Vim plugin -
- " >>> plugin help start <<< - - Add mappings local to a window: ":map ..."? 9 Add buffer-local menu. Should offer a choice between removing the menu or disabling it. Be careful that tear-offs don't disappear (keep one empty item?). Alternative: use BufEnter and BufLeave autocommands. 8 make a vimtutor script for Amiga and other systems. -7 Add the arguments for configure to the ":version" output? 7 When Vim detects a file is being edited elsewhere and it's a gvim session of the same user it should offer a "Raise" button, so that the other gvim window can be displayed. (Eduard) @@ -3342,7 +3240,6 @@ 7 :tabdup duplicate the tab with all its windows. 7 Option to put tab line at the left or right? Need an option to specify its width. It's like a separate window with ":tabs" output. -7 Add local variables for each tab page? 8 Add local options for each tab page? E.g., 'diffopt' could differ between tab pages. 7 Add local highlighting for each tab page? @@ -3446,15 +3343,8 @@ 9 Instead invoking an external diff program, use builtin code. One can be found here: http://www.ioplex.com/~miallen/libmba/dl/src/diff.c It's quite big and badly documented though. -8 Use diff mode to show the changes made in a buffer (compared to the file). - Use an unnamed buffer, like doing: - new | set bt=nofile | r # | 0d_ | diffthis | wincmd p | diffthis - Also show difference with the file when editing started? Should show what +8 Also show difference with the file when editing started? Should show what can be undone. (Tom Popovich) -7 Add cursor-binding: when moving the cursor in one diff'ed buffer, also - move it in other diff'ed buffers, so that CTRL-W commands go to the same - location. - Folding: (commands still available: zI zJ zK zp zP zq zQ zV zy zY; @@ -3462,8 +3352,6 @@ 8 Vertical folds: looks like vertically split windows, but the cursor moves through the vertical separator, separator moves when scrolling. 8 Add "z/" and "z?" for searching in not folded text only. -9 Add search pattern item to only match in closed or open fold and/or fold - with certain level. Allows doing ":g/pat/cmd" to work on closed folds. 8 When a closed fold is displayed open because of 'foldminlines', the behavior of commands is still like the fold is closed. How to make the user aware of this? @@ -3494,9 +3382,6 @@ - 'foldmethod' "syntax": "fold=3" argument: set fold level for a region or match. - Apply a new foldlevel to a range of lines. (Steve Litt) -8 Have some way to restrict commands to not folded text. Also commands like - searches. - Multi-byte characters: - When editing a file with both utf-8 and latin1 text Vim always falls back @@ -3688,9 +3573,6 @@ 8 When using a regexp for "contains=", should delay matching with it until redrawing happens. Set a flag when a group is added, check this flag when highlighting starts. -8 Some terminals can display colors like the GUI. Add some setting to use - GUI colors for the terminal? With something to define the escape - sequence. 7 It's possible for an item to be transparent, so that the colors of an item lower on the stack is used. Also do this with highlighting, so that the user can set transparent highlighting? E.g. a number in a C comment would @@ -3896,9 +3778,6 @@ so that we don't need to make a copy? Or avoid invoking ml_updatechunk(), that is taking a lot of time. (Ralf Wildenhues, 2008 Jul 7) With a patch, but does it work? -8 Instead of loading rgb.txt every time a color wasn't recognized load it - once and keep it in memory. Move the code to a common place to avoid - repeating it in various system files. 8 Turn b_syn_ic and b_syn_containedin into b_syn_flags. 9 Loading menu.vim still takes quite a bit of time. How to make it faster? 8 in_id_list() takes much time for syntax highlighting. Cache the result? @@ -3923,7 +3802,6 @@ http://www.theregister.co.uk/content/4/22908.html. (Andre Pang) 7 Check how performance of loading the wordlist can be improved (adding a lot of abbreviations). -7 MS-DOS console: Add t_DL support, to make scrolling faster. 7 Compile Ex commands to byte codes. Store byte codes in a vim script file at the end, after "compiled:. Make it look like a single comment line for old Vim versions. Insert first line "Vim script compiled . @@ -3993,7 +3871,7 @@ left out. 8 When compiled with a GUI-only version, the termcap entries for terminals can be removed. -8 Can the check for libelf in configure.in be removed? +8 Can the check for libelf in configure.ac be removed? Messages: @@ -4048,8 +3926,6 @@ 8 Add a ":refresh [winnr]" command, to force updating a window. Useful from an event handler where ":normal" can't be used. Also useful when 'lazyredraw' is set in a mapping. -7 Make 'list' and 'linebreak' work together. - Scrolling: 8 Add "zy" command: scroll horizontally to put the cursor in the middle. @@ -4233,8 +4109,6 @@ use them again? Otherwise, allow disabling allocating the default colors. Or allocate an own colormap (check UAE). With an option to use it. For the commandline, "-install" is mostly used for X11 programs. -7 Add command line argument for "gvim" not to start the GUI. Sort of the - inverse of "vim -g". (Vikas) 7 Should support multi-column menus. - Should add option for where to put the "Help" menu: like Motif at the far right, or with the other menus (but still at the right). @@ -4535,7 +4409,6 @@ 7 Use CTRL-G to repeat what follows. Useful for inserting a character multiple times or repeating CTRL-Y. - Make 'revins' work in Replace mode. -9 Can't use multi-byte characters for 'matchpairs'. 7 Use 'matchpairs' for 'showmatch': When inserting a character check if it appears in the rhs of 'matchpairs'. - In Insert mode (and command line editing?): Allow undo of the last typed @@ -4677,8 +4550,6 @@ use "aq" and "iq". Use 'quotepairs' to define pairs of quotes, like 'matchpairs'? 8 Add text object for any kind of parens, also multi-byte ones. -7 Add text object for current search pattern: "a/" and "i/". Makes it - possible to turn text highlighted for 'hlsearch' into a Visual area. 8 Add a way to make an ":omap" for a user-defined text object. Requires changing the starting position in oap->start. 8 Add "gp" and "gP" commands: insert text and make sure there is a single @@ -4735,8 +4606,6 @@ receive dropped text from another program. (Ben Godfrey) 7 With blockwise Visual mode and "c", "C", "I", "A", etc., allow the use of a . The entered lines are repeated over the Visual area. -7 CTRL-V :s should substitute only in the block, not to whole lines. (David - Young is working on this) 7 Filtering a block should only apply to the block, not to the whole lines. When the number of lines is increased, add lines. When decreased, pad with spaces or delete? Use ":`<,`>" on the command line. @@ -4766,8 +4635,6 @@ More advanced repeating commands: - Add "." command for visual mode: redo last visual command (e.g. ":fmt"). -7 Repeating "d:{cmd}" with "." doesn't work. (Benji Fisher) Somehow remember - the command line so that it can be repeated? - Add command to repeat last movement. Including count. - Add "." command after operator: repeat last command of same operator. E.g. "c." will repeat last change, also when "x" used since then (Webb). @@ -4796,9 +4663,6 @@ not the . 8 Give a warning when using CTRL-C in the lhs of a mapping. It will never (?) work. -8 Add a way to save a current mapping and restore it later. Use a function - that returns the mapping command to restore it: mapcmd()? mapcheck() is - not fool proof. How to handle ambiguous mappings? 7 Add <0x8f> (hex), <033> (octal) and <123> (decimal) to <> notation? 7 When someone tries to unmap with a trailing space, and it fails, try unmapping without the trailing space. Helps for ":unmap xx | unmap yy". @@ -4851,8 +4715,6 @@ cases, saves a lot of time in big files. (Slootman wants to work on this?) When not using special characters, can continue search from the last match (or not at all, when there was no match). See oldmail/webb/in.872. -- With incsearch, use CTRL-N/CTRL-P to go to next/previous match, some other - key to copy matched word to search pattern (Alexander Schmid). Searching: @@ -4876,9 +4738,6 @@ 8 Show the progress every second. Could use the code that checks for CTRL-C to find out how much time has passed. Or use SIGALRM. Where to show the number? -8 When using an expression for ":s", set the match position in a v: - variable. So that you can do ":%s/^/\=v:lnum/" to put a line number - before each line. 7 Support for approximate-regexps to find similar words (agrep http://www.tgries.de/agrep/ tre: http://laurikari.net/tre/index.html). 8 Add an item for a big character range, so that one can search for a @@ -4887,8 +4746,6 @@ the stack if previous atom matched". Other side is "match with top of stack, pop it when it matches". Use "\@pX" and "\@m"? Example: \((\@p).\{-}\@m\)* -7 Add an option to accept a match at the cursor position. Also for - search(). (Brett) 7 Add a flag to "/pat/" to discard an error. Useful to continue a mapping when a search fails. Could be "/pat/E" (e is already used for end offset). 7 Add pattern item to use properties of Unicode characters. In Perl it's @@ -4992,9 +4849,6 @@ when tests fail after making changes and you forgot in which files. 9 After undo/redo, in the message show whether the buffer is modified or not. -8 Use timestamps for undo, so that a version a certain time ago can be found - and info before some time/date can be flushed. 'undopersist' gives maximum - time to keep undo: "3h", "1d", "2w", "1y", etc. 8 Search for pattern in undo tree, showing when it happened and the text state, so that you can jump to it. 8 Undo tree: visually show the tree somehow (Damian Conway) @@ -5002,13 +4856,6 @@ timestamp? Put branch with most recent change on the left, older changes get more indent? -8 See ":e" as a change operation, find the changes and add them to the - undo info. Also be able to undo the "Reload file" choice for when a file - was changed outside of Vim. - Would require doing a diff between the buffer text and the file and - storing the differences. - Alternative: before reloading a buffer, store it somewhere. Keep a list - of about 10 last reloaded buffers. - Make it possible to undo all the commands from a mapping, including a trailing unfinished command, e.g. for ":map K iX^[r". - When accidentally hitting "R" instead of Ctrl-R, further Ctrl-R is not @@ -5060,8 +4907,6 @@ 7 Add expansion of buffer names, so that "*.c" is expanded to all buffer names. Needed for ":bdel *.c", ":bunload *.c", etc. 8 Support for where a buffer name is expected. -8 Some commands don't use line numbers, but buffer numbers. '$' - should then mean the number of the last buffer. E.g.: "4,$bdel". 7 Add an option to mostly use slashes in file names. Separately for internal use and for when executing an external program? 8 Some file systems are case-sensitive, some are not. Besides @@ -5381,11 +5226,6 @@ 7 Allow a window not to have a statusline. Makes it possible to use a window as a buffer-tab selection. 8 Allow non-active windows to have a different statusline. (Yakov Lerner) -7 Support using ":vert" with User commands. Add expandable items . - Do the same for ":browse" and ":confirm"? - For ":silent" and ":debug" apply to the whole user command. - More general: need a way to access command modifiers in a user command. - Assign them to a v: variable? 7 Add an invisible buffer which can be edited. For use in scripts that want to manipulate text without changing the window layout. 8 Add a command to revert to the saved version of file; undo or redo until @@ -5435,10 +5275,6 @@ non-unix systems. Perhaps let configure define CONF_XXX, and use #ifdef CONF_XXX in feature.h? Then what should min-features and max-features do? 8 Add "g^E" and "g^Y", to scroll a screen-full line up and down. -6 Add ":timer" command, to set a command to be executed at a certain - interval, or once after some time has elapsed. (Aaron) - Perhaps an autocommand event like CursorHold is better? - Patch to add async functionality. (Geoff Greer, 2013 Sep 1 and later) 8 Add ":confirm" handling in open_exfile(), for when file already exists. 8 When quitting with changed files, make the dialog list the changed file and allow "write all", "discard all", "write some". The last one would @@ -5674,7 +5510,6 @@ gives read errors. Check protection before opening. - When writing check for file exists but no permission, "Permission denied". - If file does not exist, check if directory exists. -- MSDOS: although t_cv and t_ci are not set, do invert char under cursor. - Settings edit mode: make file with ":set opt=xx", edit it, parse it as ex commands. - ":set -w all": list one option per line. @@ -5709,10 +5544,7 @@ instead of CTRL-R to make repeating possible. (Marinichev) - Add "^Vb" on the command line, replace with word before or under the cursor? -- Option to make a .swp file only when a change is made (Templeton). - Support mapping for replace mode and "r" command (Vi doesn't do this)? -5 Add 'ignorefilecase' option: Ignore case when expanding file names. - ":e ma" would also find "Makefile" on Unix. 8 Sorting of filenames for completion is wrong on systems that ignore case of filenames. Add 'ignorefncase' option. When set, case in filenames is ignored for sorting them. Patch by Mike Williams: @@ -5761,7 +5593,7 @@ Far future and "big" extensions: - Instead of using a Makefile and autoconf, use a simple shell script to find the C compiler and do everything with C code. Translate something - like an Aap recipe and configure.in to C. Avoids depending on Python, + like an Aap recipe and configure.ac to C. Avoids depending on Python, thus will work everywhere. With batch file to find the C compiler it would also work on MS-Windows. - Make it easy to setup Vim for groups of users: novice vi users, novice @@ -5781,11 +5613,6 @@ - Add open mode, use it when terminal has no cursor positioning. - Special "drawing mode": a line is drawn where the cursor is moved to. Backspace deletes along the line (from jvim). -- Implement ":Bset", set option in all buffers. Also ":Wset", set in all - windows, ":Aset, set in all arguments and ":Tset", set in all files - mentioned in the tags file. - Add buffer/arg range, like in ":2,5B%s/..." (do we really need this???) - Add search string: "B/*.c/%s/.."? Or ":F/*.c/%s/.."? - Support for underlining (underscore-BS-char), bold (char-BS-char) and other standout modes switched on/off with , 'overstrike' option (Reiter). - Add vertical mode (Paul Jury, Demirel): "5vdw" deletes a word in five @@ -5801,8 +5628,5 @@ are reflected in each Vim immediately. Could work with local files but also over the internet. See http://www.codingmonkeys.de/subethaedit/. -When using "do" or ":diffget" in a buffer with changes in every line an extra -empty line would appear. - vim:tw=78:sw=4:sts=4:ts=8:ft=help:norl: vim: set fo+=n : diff -Nru vim-7.4.2156/runtime/doc/uganda.txt vim-8.0.0134/runtime/doc/uganda.txt --- vim-7.4.2156/runtime/doc/uganda.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/uganda.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*uganda.txt* For Vim version 7.4. Last change: 2013 Jul 06 +*uganda.txt* For Vim version 8.0. Last change: 2013 Jul 06 VIM REFERENCE MANUAL by Bram Moolenaar diff -Nru vim-7.4.2156/runtime/doc/undo.txt vim-8.0.0134/runtime/doc/undo.txt --- vim-7.4.2156/runtime/doc/undo.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/undo.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*undo.txt* For Vim version 7.4. Last change: 2014 May 24 +*undo.txt* For Vim version 8.0. Last change: 2014 May 24 VIM REFERENCE MANUAL by Bram Moolenaar diff -Nru vim-7.4.2156/runtime/doc/usr_01.txt vim-8.0.0134/runtime/doc/usr_01.txt --- vim-7.4.2156/runtime/doc/usr_01.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/usr_01.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*usr_01.txt* For Vim version 7.4. Last change: 2010 Nov 03 +*usr_01.txt* For Vim version 8.0. Last change: 2010 Nov 03 VIM USER MANUAL - by Bram Moolenaar diff -Nru vim-7.4.2156/runtime/doc/usr_02.txt vim-8.0.0134/runtime/doc/usr_02.txt --- vim-7.4.2156/runtime/doc/usr_02.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/usr_02.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*usr_02.txt* For Vim version 7.4. Last change: 2016 Jan 16 +*usr_02.txt* For Vim version 8.0. Last change: 2016 Jan 16 VIM USER MANUAL - by Bram Moolenaar diff -Nru vim-7.4.2156/runtime/doc/usr_03.txt vim-8.0.0134/runtime/doc/usr_03.txt --- vim-7.4.2156/runtime/doc/usr_03.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/usr_03.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*usr_03.txt* For Vim version 7.4. Last change: 2016 Jan 05 +*usr_03.txt* For Vim version 8.0. Last change: 2016 Jan 05 VIM USER MANUAL - by Bram Moolenaar diff -Nru vim-7.4.2156/runtime/doc/usr_04.txt vim-8.0.0134/runtime/doc/usr_04.txt --- vim-7.4.2156/runtime/doc/usr_04.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/usr_04.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*usr_04.txt* For Vim version 7.4. Last change: 2014 Aug 29 +*usr_04.txt* For Vim version 8.0. Last change: 2014 Aug 29 VIM USER MANUAL - by Bram Moolenaar diff -Nru vim-7.4.2156/runtime/doc/usr_05.txt vim-8.0.0134/runtime/doc/usr_05.txt --- vim-7.4.2156/runtime/doc/usr_05.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/usr_05.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*usr_05.txt* For Vim version 7.4. Last change: 2016 Mar 28 +*usr_05.txt* For Vim version 8.0. Last change: 2016 Mar 28 VIM USER MANUAL - by Bram Moolenaar diff -Nru vim-7.4.2156/runtime/doc/usr_06.txt vim-8.0.0134/runtime/doc/usr_06.txt --- vim-7.4.2156/runtime/doc/usr_06.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/usr_06.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*usr_06.txt* For Vim version 7.4. Last change: 2009 Oct 28 +*usr_06.txt* For Vim version 8.0. Last change: 2009 Oct 28 VIM USER MANUAL - by Bram Moolenaar diff -Nru vim-7.4.2156/runtime/doc/usr_07.txt vim-8.0.0134/runtime/doc/usr_07.txt --- vim-7.4.2156/runtime/doc/usr_07.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/usr_07.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*usr_07.txt* For Vim version 7.4. Last change: 2006 Apr 24 +*usr_07.txt* For Vim version 8.0. Last change: 2006 Apr 24 VIM USER MANUAL - by Bram Moolenaar diff -Nru vim-7.4.2156/runtime/doc/usr_08.txt vim-8.0.0134/runtime/doc/usr_08.txt --- vim-7.4.2156/runtime/doc/usr_08.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/usr_08.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*usr_08.txt* For Vim version 7.4. Last change: 2014 Jul 06 +*usr_08.txt* For Vim version 8.0. Last change: 2014 Jul 06 VIM USER MANUAL - by Bram Moolenaar diff -Nru vim-7.4.2156/runtime/doc/usr_09.txt vim-8.0.0134/runtime/doc/usr_09.txt --- vim-7.4.2156/runtime/doc/usr_09.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/usr_09.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*usr_09.txt* For Vim version 7.4. Last change: 2006 Apr 24 +*usr_09.txt* For Vim version 8.0. Last change: 2006 Apr 24 VIM USER MANUAL - by Bram Moolenaar diff -Nru vim-7.4.2156/runtime/doc/usr_10.txt vim-8.0.0134/runtime/doc/usr_10.txt --- vim-7.4.2156/runtime/doc/usr_10.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/usr_10.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*usr_10.txt* For Vim version 7.4. Last change: 2006 Nov 05 +*usr_10.txt* For Vim version 8.0. Last change: 2006 Nov 05 VIM USER MANUAL - by Bram Moolenaar diff -Nru vim-7.4.2156/runtime/doc/usr_11.txt vim-8.0.0134/runtime/doc/usr_11.txt --- vim-7.4.2156/runtime/doc/usr_11.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/usr_11.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*usr_11.txt* For Vim version 7.4. Last change: 2010 Jul 20 +*usr_11.txt* For Vim version 8.0. Last change: 2010 Jul 20 VIM USER MANUAL - by Bram Moolenaar diff -Nru vim-7.4.2156/runtime/doc/usr_12.txt vim-8.0.0134/runtime/doc/usr_12.txt --- vim-7.4.2156/runtime/doc/usr_12.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/usr_12.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*usr_12.txt* For Vim version 7.4. Last change: 2007 May 11 +*usr_12.txt* For Vim version 8.0. Last change: 2007 May 11 VIM USER MANUAL - by Bram Moolenaar diff -Nru vim-7.4.2156/runtime/doc/usr_20.txt vim-8.0.0134/runtime/doc/usr_20.txt --- vim-7.4.2156/runtime/doc/usr_20.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/usr_20.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*usr_20.txt* For Vim version 7.4. Last change: 2006 Apr 24 +*usr_20.txt* For Vim version 8.0. Last change: 2006 Apr 24 VIM USER MANUAL - by Bram Moolenaar diff -Nru vim-7.4.2156/runtime/doc/usr_21.txt vim-8.0.0134/runtime/doc/usr_21.txt --- vim-7.4.2156/runtime/doc/usr_21.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/usr_21.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*usr_21.txt* For Vim version 7.4. Last change: 2012 Nov 02 +*usr_21.txt* For Vim version 8.0. Last change: 2012 Nov 02 VIM USER MANUAL - by Bram Moolenaar diff -Nru vim-7.4.2156/runtime/doc/usr_22.txt vim-8.0.0134/runtime/doc/usr_22.txt --- vim-7.4.2156/runtime/doc/usr_22.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/usr_22.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*usr_22.txt* For Vim version 7.4. Last change: 2012 Nov 15 +*usr_22.txt* For Vim version 8.0. Last change: 2012 Nov 15 VIM USER MANUAL - by Bram Moolenaar diff -Nru vim-7.4.2156/runtime/doc/usr_23.txt vim-8.0.0134/runtime/doc/usr_23.txt --- vim-7.4.2156/runtime/doc/usr_23.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/usr_23.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*usr_23.txt* For Vim version 7.4. Last change: 2006 Apr 24 +*usr_23.txt* For Vim version 8.0. Last change: 2006 Apr 24 VIM USER MANUAL - by Bram Moolenaar diff -Nru vim-7.4.2156/runtime/doc/usr_24.txt vim-8.0.0134/runtime/doc/usr_24.txt --- vim-7.4.2156/runtime/doc/usr_24.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/usr_24.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*usr_24.txt* For Vim version 7.4. Last change: 2006 Jul 23 +*usr_24.txt* For Vim version 8.0. Last change: 2006 Jul 23 VIM USER MANUAL - by Bram Moolenaar diff -Nru vim-7.4.2156/runtime/doc/usr_25.txt vim-8.0.0134/runtime/doc/usr_25.txt --- vim-7.4.2156/runtime/doc/usr_25.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/usr_25.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*usr_25.txt* For Vim version 7.4. Last change: 2016 Mar 28 +*usr_25.txt* For Vim version 8.0. Last change: 2016 Mar 28 VIM USER MANUAL - by Bram Moolenaar diff -Nru vim-7.4.2156/runtime/doc/usr_26.txt vim-8.0.0134/runtime/doc/usr_26.txt --- vim-7.4.2156/runtime/doc/usr_26.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/usr_26.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*usr_26.txt* For Vim version 7.4. Last change: 2006 Apr 24 +*usr_26.txt* For Vim version 8.0. Last change: 2006 Apr 24 VIM USER MANUAL - by Bram Moolenaar diff -Nru vim-7.4.2156/runtime/doc/usr_27.txt vim-8.0.0134/runtime/doc/usr_27.txt --- vim-7.4.2156/runtime/doc/usr_27.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/usr_27.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*usr_27.txt* For Vim version 7.4. Last change: 2010 Mar 28 +*usr_27.txt* For Vim version 8.0. Last change: 2010 Mar 28 VIM USER MANUAL - by Bram Moolenaar diff -Nru vim-7.4.2156/runtime/doc/usr_28.txt vim-8.0.0134/runtime/doc/usr_28.txt --- vim-7.4.2156/runtime/doc/usr_28.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/usr_28.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*usr_28.txt* For Vim version 7.4. Last change: 2008 Jun 14 +*usr_28.txt* For Vim version 8.0. Last change: 2008 Jun 14 VIM USER MANUAL - by Bram Moolenaar diff -Nru vim-7.4.2156/runtime/doc/usr_29.txt vim-8.0.0134/runtime/doc/usr_29.txt --- vim-7.4.2156/runtime/doc/usr_29.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/usr_29.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*usr_29.txt* For Vim version 7.4. Last change: 2016 Feb 27 +*usr_29.txt* For Vim version 8.0. Last change: 2016 Feb 27 VIM USER MANUAL - by Bram Moolenaar diff -Nru vim-7.4.2156/runtime/doc/usr_30.txt vim-8.0.0134/runtime/doc/usr_30.txt --- vim-7.4.2156/runtime/doc/usr_30.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/usr_30.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*usr_30.txt* For Vim version 7.4. Last change: 2007 Nov 10 +*usr_30.txt* For Vim version 8.0. Last change: 2007 Nov 10 VIM USER MANUAL - by Bram Moolenaar diff -Nru vim-7.4.2156/runtime/doc/usr_31.txt vim-8.0.0134/runtime/doc/usr_31.txt --- vim-7.4.2156/runtime/doc/usr_31.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/usr_31.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*usr_31.txt* For Vim version 7.4. Last change: 2007 May 08 +*usr_31.txt* For Vim version 8.0. Last change: 2007 May 08 VIM USER MANUAL - by Bram Moolenaar diff -Nru vim-7.4.2156/runtime/doc/usr_32.txt vim-8.0.0134/runtime/doc/usr_32.txt --- vim-7.4.2156/runtime/doc/usr_32.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/usr_32.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*usr_32.txt* For Vim version 7.4. Last change: 2010 Jul 20 +*usr_32.txt* For Vim version 8.0. Last change: 2010 Jul 20 VIM USER MANUAL - by Bram Moolenaar diff -Nru vim-7.4.2156/runtime/doc/usr_40.txt vim-8.0.0134/runtime/doc/usr_40.txt --- vim-7.4.2156/runtime/doc/usr_40.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/usr_40.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*usr_40.txt* For Vim version 7.4. Last change: 2013 Aug 05 +*usr_40.txt* For Vim version 8.0. Last change: 2013 Aug 05 VIM USER MANUAL - by Bram Moolenaar diff -Nru vim-7.4.2156/runtime/doc/usr_41.txt vim-8.0.0134/runtime/doc/usr_41.txt --- vim-7.4.2156/runtime/doc/usr_41.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/usr_41.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*usr_41.txt* For Vim version 7.4. Last change: 2016 Jul 24 +*usr_41.txt* For Vim version 8.0. Last change: 2016 Nov 29 VIM USER MANUAL - by Bram Moolenaar @@ -803,6 +803,9 @@ win_gotoid() go to window with ID win_id2tabwin() get tab and window nr from window ID win_id2win() get window nr from window ID + getbufinfo() get a list with buffer information + gettabinfo() get a list with tab page information + getwininfo() get a list with window information Command line: *command-line-functions* getcmdline() get the current command line @@ -927,8 +930,10 @@ test_null_string() return a null String Inter-process communication: *channel-functions* + ch_canread() check if there is something to read ch_open() open a channel ch_close() close a channel + ch_close_in() close the in part of a channel ch_read() read a message from a channel ch_readraw() read a raw message from a channel ch_sendexpr() send a JSON message over a channel @@ -957,7 +962,10 @@ Timers: *timer-functions* timer_start() create a timer + timer_pause() pause or unpause a timer timer_stop() stop a timer + timer_stopall() stop all timers + timer_info() get information about timers Various: *various-functions* mode() get current editing mode diff -Nru vim-7.4.2156/runtime/doc/usr_42.txt vim-8.0.0134/runtime/doc/usr_42.txt --- vim-7.4.2156/runtime/doc/usr_42.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/usr_42.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*usr_42.txt* For Vim version 7.4. Last change: 2008 May 05 +*usr_42.txt* For Vim version 8.0. Last change: 2008 May 05 VIM USER MANUAL - by Bram Moolenaar diff -Nru vim-7.4.2156/runtime/doc/usr_43.txt vim-8.0.0134/runtime/doc/usr_43.txt --- vim-7.4.2156/runtime/doc/usr_43.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/usr_43.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*usr_43.txt* For Vim version 7.4. Last change: 2015 Oct 23 +*usr_43.txt* For Vim version 8.0. Last change: 2015 Oct 23 VIM USER MANUAL - by Bram Moolenaar diff -Nru vim-7.4.2156/runtime/doc/usr_44.txt vim-8.0.0134/runtime/doc/usr_44.txt --- vim-7.4.2156/runtime/doc/usr_44.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/usr_44.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*usr_44.txt* For Vim version 7.4. Last change: 2008 Dec 28 +*usr_44.txt* For Vim version 8.0. Last change: 2008 Dec 28 VIM USER MANUAL - by Bram Moolenaar diff -Nru vim-7.4.2156/runtime/doc/usr_45.txt vim-8.0.0134/runtime/doc/usr_45.txt --- vim-7.4.2156/runtime/doc/usr_45.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/usr_45.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*usr_45.txt* For Vim version 7.4. Last change: 2008 Nov 15 +*usr_45.txt* For Vim version 8.0. Last change: 2008 Nov 15 VIM USER MANUAL - by Bram Moolenaar diff -Nru vim-7.4.2156/runtime/doc/usr_90.txt vim-8.0.0134/runtime/doc/usr_90.txt --- vim-7.4.2156/runtime/doc/usr_90.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/usr_90.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*usr_90.txt* For Vim version 7.4. Last change: 2008 Sep 10 +*usr_90.txt* For Vim version 8.0. Last change: 2008 Sep 10 VIM USER MANUAL - by Bram Moolenaar diff -Nru vim-7.4.2156/runtime/doc/usr_toc.txt vim-8.0.0134/runtime/doc/usr_toc.txt --- vim-7.4.2156/runtime/doc/usr_toc.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/usr_toc.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*usr_toc.txt* For Vim version 7.4. Last change: 2016 Mar 25 +*usr_toc.txt* For Vim version 8.0. Last change: 2016 Mar 25 VIM USER MANUAL - by Bram Moolenaar diff -Nru vim-7.4.2156/runtime/doc/various.txt vim-8.0.0134/runtime/doc/various.txt --- vim-7.4.2156/runtime/doc/various.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/various.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*various.txt* For Vim version 7.4. Last change: 2016 Jul 29 +*various.txt* For Vim version 8.0. Last change: 2016 Sep 06 VIM REFERENCE MANUAL by Bram Moolenaar @@ -91,6 +91,8 @@ on paper see |:hardcopy|. In the GUI you can use the File.Print menu entry. See |ex-flags| for [flags]. + The |:filter| command can be used to only show lines + matching a pattern. :[range]p[rint] {count} [flags] Print {count} lines, starting with [range] (default @@ -420,7 +422,7 @@ m *+sun_workshop* |workshop| N *+syntax* Syntax highlighting |syntax| *+system()* Unix only: opposite of |+fork| -N *+tag_binary* binary searching in tags file |tag-binary-search| +T *+tag_binary* binary searching in tags file |tag-binary-search| N *+tag_old_static* old method for static tags |tag-old-static| m *+tag_any_white* any white space allowed in tags file |tag-any-white| m *+tcl* Tcl interface |tcl| @@ -524,6 +526,27 @@ :redi[r] END End redirecting messages. {not in Vi} + *:filt* *:filter* +:filt[er] {pat} {command} +:filt[er] /{pat}/ {command} + Restrict the output of {command} to matches with {pat}. + For example, to list only xml files: > + :filter /\.xml$/ oldfiles +< + {pat} is a Vim search pattern. Instead of enclosing + it in / any non-ID character (see |'isident'|) can be + used, so long as it does not appear in {pat}. Without + the enclosing character the pattern cannot include the + bar character. + + The pattern is matched against the relevant part of + the output, not necessarily the whole line. Only some + commands support filtering, try it out to check if it + works. + + Only normal messages are filtered, error messages are + not. + *:sil* *:silent* *:silent!* :sil[ent][!] {command} Execute {command} silently. Normal messages will not be given or added to the message history. diff -Nru vim-7.4.2156/runtime/doc/version4.txt vim-8.0.0134/runtime/doc/version4.txt --- vim-7.4.2156/runtime/doc/version4.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/version4.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*version4.txt* For Vim version 7.4. Last change: 2006 Apr 24 +*version4.txt* For Vim version 8.0. Last change: 2006 Apr 24 VIM REFERENCE MANUAL by Bram Moolenaar diff -Nru vim-7.4.2156/runtime/doc/version5.txt vim-8.0.0134/runtime/doc/version5.txt --- vim-7.4.2156/runtime/doc/version5.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/version5.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*version5.txt* For Vim version 7.4. Last change: 2016 Feb 27 +*version5.txt* For Vim version 8.0. Last change: 2016 Feb 27 VIM REFERENCE MANUAL by Bram Moolenaar diff -Nru vim-7.4.2156/runtime/doc/version6.txt vim-8.0.0134/runtime/doc/version6.txt --- vim-7.4.2156/runtime/doc/version6.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/version6.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*version6.txt* For Vim version 7.4. Last change: 2014 Aug 29 +*version6.txt* For Vim version 8.0. Last change: 2014 Aug 29 VIM REFERENCE MANUAL by Bram Moolenaar diff -Nru vim-7.4.2156/runtime/doc/version7.txt vim-8.0.0134/runtime/doc/version7.txt --- vim-7.4.2156/runtime/doc/version7.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/version7.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*version7.txt* For Vim version 7.4. Last change: 2016 Jul 17 +*version7.txt* For Vim version 8.0. Last change: 2016 Jul 17 VIM REFERENCE MANUAL by Bram Moolenaar @@ -4026,7 +4026,7 @@ Files: src/if_cscope.c Patch 7.0.154 -Problem: When 'foldnextmax' is negative Vim can hang. (James Vega) +Problem: When 'foldnestmax' is negative Vim can hang. (James Vega) Solution: Avoid the fold level becoming negative. Files: src/fold.c, src/syntax.c diff -Nru vim-7.4.2156/runtime/doc/version8.txt vim-8.0.0134/runtime/doc/version8.txt --- vim-7.4.2156/runtime/doc/version8.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/version8.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,24 +1,22 @@ -*version8.txt* For Vim version 8.0. Last change: 2016 Jul 29 +*version8.txt* For Vim version 8.0. Last change: 2016 Nov 06 VIM REFERENCE MANUAL by Bram Moolenaar -NOTE: THIS FILE IS STILL BEING WORKED ON *vim8* *vim-8* *version-8.0* *version8.0* -Welcome to Vim 8! A large number of bugs have been fixed and several +Welcome to Vim 8! A large number of bugs have been fixed and several nice features have been added. This file mentions all the new items and changes to -existing features since Vim 7.4. Bug fixes, the patches for Vim 7.4, can be -found below |vim-7.4|. Use this command to see the version you are using: > - :version +existing features since Vim 7.4. The patches up to Vim 7.4 can be found here: +|vim-7.4|. -See |vi_diff.txt| for an overview of differences between Vi and Vim 7.0. -See |version4.txt|, |version5.txt|, |version6.txt| and |version7.txt| for -differences between other versions. +Use this command to see the full version and features information of the Vim +program you are using: > + :version NEW FEATURES |new-8| - -Vim script enhancements |new-vim-script-8| + Vim script enhancements |new-vim-script-8| + Various new items |new-items-8| INCOMPATIBLE CHANGES |incompatible-8| @@ -29,10 +27,15 @@ PATCHES |patches-8| +See |vi_diff.txt| for an overview of differences between Vi and Vim 8.0. +See |version4.txt|, |version5.txt|, |version6.txt| and |version7.txt| for +differences between other versions. + ============================================================================== NEW FEATURES *new-8* -First a list of the bigger new features. A comprehensive list is below. +First an overview of the more interesting new features. A comprehensive list +is below. Asynchronous I/O support, channels ~ @@ -64,7 +67,7 @@ function to do any work. For example: > let tempTimer = timer_start(4000, 'CheckTemp') This will call the CheckTemp() function four seconds (4000 milli seconds) -later. +later. See |timer_start()|. Partials ~ @@ -128,16 +131,18 @@ changing the amount of indent. -Windows: Direct-X support ~ +Windows: DirectX support ~ -This adds the 'renderoptions' option to allow for switching on Direct-X +This adds the 'renderoptions' option to allow for switching on DirectX (DirectWrite) support on MS-Windows. GTK+ 3 support ~ -GTK+ 2 is getting old, GTK+ 3 is here. Support has been added and it already -works quite well, mostly just like GTK+ 2. +The GTK+ 3 GUI works just like GTK+ 2 except for hardly noticeable technical +differences between them. Configure still chooses GTK+ 2 if both 2 and 3 are +available. See src/Makefile for how to use GTK+ 3 instead. See +|gui-x11-compiling| for other details. Vim script enhancements *new-vim-script-8* @@ -154,15 +159,27 @@ On some systems the numbers used in Vim script are now 64 bit. This can be checked with the |+num64| feature. +Many items were added to support |new-style-testing|. + +printf() now accepts any type of argument for %s. It is converted to a string +like with string(). + Various new items *new-items-8* ----------------- -Normal mode commands: ~ +Visual mode commands: ~ + +|v_CTRL-A| CTRL-A add N to number in highlighted text +|v_CTRL-X| CTRL-X subtract N from number in highlighted text +|v_g_CTRL-A| g CTRL-A add N to number in highlighted text +|v_g_CTRL-X| g CTRL-X subtract N from number in highlighted text Insert mode commands: ~ +|i_CTRL-G_U| CTRL-G U don't break undo with next cursor movement + Options: ~ @@ -171,18 +188,20 @@ 'breakindentopt' settings for 'breakindent'. 'emoji' emoji characters are considered full width 'fixendofline' make sure last line in file has -'langnoremap' do not apply 'langmap' to mapped characters +'langremap' do apply 'langmap' to mapped characters 'luadll' name of the Lua dynamic library 'packpath' list of directories used for packages 'perldll' name of the Perl dynamic library 'pythondll' name of the Python 2 dynamic library 'pythonthreedll' name of the Python 3 dynamic library +'signcolumn' when to display the sign column 'renderoptions' options for text rendering on Windows 'rubydll' name of the Ruby dynamic library 'tagcase' how to handle case when searching in tags files 'tcldll' name of the Tcl dynamic library 'termguicolors' use GUI colors for the terminal + Ex commands: ~ |:cbottom| scroll to the bottom of the quickfix window @@ -190,8 +209,8 @@ |:cfdo| execute command in each file in error list |:chistory| display quickfix list stack |:clearjumps| clear the jump list +|:filter| only output lines that (do not) match a pattern |:helpclose| close one help window -|:keeppatterns| following command keeps search pattern history |:lbottom| scroll to the bottom of the location window |:ldo| execute command in valid location list entries |:lfdo| execute command in each file in location list @@ -201,10 +220,10 @@ |:packloadall| load all packages under 'packpath' |:smile| make the user happy -Ex command modifiers: ~ +Ex command modifiers: ~ -Ex command arguments: ~ +|:keeppatterns| following command keeps search pattern history New and extended functions: ~ @@ -222,6 +241,7 @@ |bufwinid()| get the window ID of a specific buffer |byteidxcomp()| like byteidx() but count composing characters |ch_close()| close a channel +|ch_close_in()| close the in part of a channel |ch_evalexpr()| evaluates an expression over channel |ch_evalraw()| evaluates a raw string over channel |ch_getbufnr()| get the buffer number of a channel @@ -238,10 +258,14 @@ |ch_status()| get status of a channel |execute()| execute an Ex command and get the output |exepath()| full path of an executable program +|funcref()| return a reference to function {name} +|getbufinfo()| get a list with buffer information |getcharsearch()| return character search information |getcmdwintype()| return the current command-line window type |getcompletion()| return a list of command-line completion matches |getcurpos()| get position of the cursor +|gettabinfo()| get a list with tab page information +|getwininfo()| get a list with window information |glob2regpat()| convert a glob pattern into a search pattern |isnan()| check for not a number |job_getchannel()| get the channel used by a job @@ -274,8 +298,11 @@ |test_null_partial()| return a null Partial function |test_null_string()| return a null String |test_settime()| set the time Vim uses internally +|timer_info()| get information about timers +|timer_pause()| pause or unpause a timer |timer_start()| create a timer |timer_stop()| stop a timer +|timer_stopall()| stop all timers |uniq()| remove copies of repeated adjacent items |win_findbuf()| find windows containing a buffer |win_getid()| get window ID of a window @@ -287,30 +314,97 @@ New Vim variables: ~ -|v:vim_did_enter| Set when VimEnter autocommands are triggered +|v:beval_winid| Window ID of the window where the mouse pointer is +|v:completed_item| complete items for the most recently completed word +|v:errors| errors found by assert functions +|v:false| a Number with value zero +|v:hlsearch| indicates whether search highlighting is on +|v:mouse_winid| Window ID for a mouse click obtained with |getchar()| +|v:none| an empty String, used for JSON +|v:null| an empty String, used for JSON +|v:option_new| new value of the option, used by |OptionSet| +|v:option_old| old value of the option, used by |OptionSet| +|v:option_type| scope of the set command, used by |OptionSet| +|v:progpath| the command with which Vim was invoked +|v:t_bool| value of Boolean type +|v:t_channel| value of Channel type +|v:t_dict| value of Dictionary type +|v:t_float| value of Float type +|v:t_func| value of Funcref type +|v:t_job| value of Job type +|v:t_list| value of List type +|v:t_none| value of None type +|v:t_number| value of Number type +|v:t_string| value of String type +|v:testing| must be set before using `test_garbagecollect_now()` +|v:true| a Number with value one +|v:vim_did_enter| set just before VimEnter autocommands are triggered New autocommand events: ~ +|CmdUndefined| a user command is used but it isn't defined +|OptionSet| after setting any option +|TabClosed| after closing a tab page +|TabNew| after creating a new tab page +|TextChangedI| after a change was made to the text in Insert mode +|TextChanged| after a change was made to the text in Normal mode +|WinNew| after creating a new window New highlight groups: ~ +EndOfBuffer filler lines (~) after the last line in the buffer. + |hl-EndOfBuffer| -New items in search patterns: ~ +New items in search patterns: ~ -New Syntax/Indent/FTplugin files: ~ +|/\%C| \%C match any composing characters -New Keymaps: ~ - +New Syntax/Indent/FTplugin files: ~ -New message translations: ~ +AVR Assembler (Avra) syntax +Arduino syntax +Bazel syntax and indent and ftplugin +Dockerfile syntax and ftplugin +Eiffel ftplugin +Euphoria 3 and 4 syntax +Go syntax and indent and ftplugin +Godoc syntax +Groovy ftplugin +HGcommit ftplugin +Hog indent and ftplugin +Innovation Data Processing upstream.pt syntax +J syntax and indent and ftplugin +Jproperties ftplugin +Json syntax and indent and ftplugin +Kivy syntax +Less syntax and indent +Mix syntax +Motorola S-Record syntax +R ftplugin +ReStructuredText syntax and indent and ftplugin +Registry ftplugin +Rhelp indent and ftplugin +Rmd (markdown with R code chunks) syntax and indent +Rmd ftplugin +Rnoweb ftplugin +Rnoweb indent +Scala syntax and indent and ftplugin +SystemVerilog syntax and indent and ftplugin +Systemd syntax and indent and ftplugin +Teraterm (TTL) syntax and indent +Text ftplugin +Vroom syntax and indent and ftplugin -Others: ~ +New Keymaps: ~ +Armenian eastern and western +Russian jcukenwintype +Vietnamese telex and vni ============================================================================== INCOMPATIBLE CHANGES *incompatible-8* @@ -318,23 +412,33 @@ These changes are incompatible with previous releases. Check this list if you run into a problem when upgrading from Vim 7.4 to 8.0. + +Better defaults without a vimrc ~ + When no vimrc file is found, the |defaults.vim| script is loaded to set more useful default values for new users. That includes setting 'nocompatible'. Thus Vim no longer starts up in Vi compatible mode. If you do want that, either create a .vimrc file that does "set compatible" or start Vim with "Vim -C". + +Support removed ~ + The support for MS-DOS has been removed. It hasn't been working for a while -and removing it cleans up the code quite a bit. +(Vim doesn't fit in memory) and removing it cleans up the code quite a bit. The support for Windows 16 bit (Windows 95 and older) has been removed. -Minor incompatibilities: - -For filetype detection: ... +The support for OS/2 has been removed. It probably hasn't been working for a +while since nobody uses it. The SNiFF+ support has been removed. + +Minor incompatibilities: ~ + +Probably... + ============================================================================== IMPROVEMENTS *improvements-8* @@ -343,11 +447,17 @@ this still isn't a state-of-the-art encryption, but good enough for most usage. See 'cryptmethod'. + ============================================================================== COMPILE TIME CHANGES *compile-changes-8* -Dropped the support for MS-DOS. It was too big to fit in memory. +The Vim repository was moved from Google code to github, since Google code +was shut down. It can now be found at https://github.com/vim/vim. + +Functions now use ANSI-C declarations. At least a C-89 compatible compiler is +required. +The +visual feature is now always included. ============================================================================== PATCHES *patches-8* *bug-fixes-8* @@ -598,7 +708,7 @@ Files: src/ops.c Patch 7.4.042 -Problem: When using ":setlocal" for 'spell' and 'spellang' then :spelldump +Problem: When using ":setlocal" for 'spell' and 'spelllang' then :spelldump doesn't work. (Dimitar Dimitrov) Solution: Copy the option variables to the new window used to show the dump. (Christian Brabandt) @@ -777,7 +887,7 @@ Patch 7.4.072 Problem: Crash when using Insert mode completion. -Solution: Avoid going past the end of pum_array. (idea by Fransisco Lopes) +Solution: Avoid going past the end of pum_array. (idea by Francisco Lopes) Files: src/popupmnu.c Patch 7.4.073 @@ -802,8 +912,7 @@ src/testdir/Make_vms.mms, src/testdir/Makefile, src/Makefile Patch 7.4.076 -Problem: "cgn" does not wrap around the end of the file. (Dimitrov - Dimitrov) +Problem: "cgn" does not wrap around the end of the file. (Dimitar Dimitrov) Solution: Restore 'wrapscan' earlier. (Christian Brabandt) Files: src/search.c @@ -922,7 +1031,7 @@ Patch 7.4.095 (after 7.4.093) Problem: Regexp for LuaJIT version doesn't work on BSD. -Solution: Use "*" instead of "\+" and "\?". (Ozaki) +Solution: Use "*" instead of "\+" and "\?". (Ozaki Kiichi) Files: src/configure.in, src/auto/configure Patch 7.4.096 @@ -1416,7 +1525,7 @@ Patch 7.4.183 Problem: MSVC Visual Studio update not supported. -Solution: Add version number. (Mike William) +Solution: Add version number. (Mike Williams) Files: src/Make_mvc.mak Patch 7.4.184 @@ -1641,7 +1750,7 @@ Patch 7.4.218 Problem: It's not easy to remove duplicates from a list. -Solution: Add the uniq() function. (LCD) +Solution: Add the uniq() function. (Lcd) Files: runtime/doc/change.txt, runtime/doc/eval.txt, runtime/doc/usr_41.txt, runtime/doc/version7.txt, src/eval.c, src/testdir/test55.in, src/testdir/test55.ok @@ -2143,7 +2252,7 @@ Patch 7.4.303 Problem: When using double-width characters the text displayed on the command line is sometimes truncated. -Solution: Reset the string lenght. (Nobuhiro Takasaki) +Solution: Reset the string length. (Nobuhiro Takasaki) Files: src/screen.c Patch 7.4.304 @@ -2684,7 +2793,7 @@ Problem: Text drawing on newer MS-Windows systems is suboptimal. Some multi-byte characters are not displayed, even though the same font in Notepad can display them. (Srinath Avadhanula) -Solution: Add the 'renderoptions' option to enable Direct-X drawing. (Taro +Solution: Add the 'renderoptions' option to enable DirectX drawing. (Taro Muraoka) Files: runtime/doc/eval.txt, runtime/doc/options.txt, runtime/doc/various.txt, src/Make_cyg.mak, src/Make_ming.mak, @@ -4202,7 +4311,7 @@ Patch 7.4.650 Problem: Configure check may fail because the dl library is not used. -Solution: Put "-ldl" in LIBS rather than LDFLAGS. (Oazki Kiichi) +Solution: Put "-ldl" in LIBS rather than LDFLAGS. (Ozaki Kiichi) Files: src/configure.in, src/auto/configure Patch 7.4.651 (after 7.4.582) @@ -4794,7 +4903,7 @@ Files: src/eval.c Patch 7.4.749 (after 7.4.741) -Problem: For some options two consecutive commas are OK. (Nikolay Pavlov) +Problem: For some options two consecutive commas are OK. (Nikolai Pavlov) Solution: Add the P_ONECOMMA flag. Files: src/option.c @@ -5150,7 +5259,7 @@ Patch 7.4.806 Problem: CTRL-A in Visual mode doesn't work properly with "alpha" in - 'nrformat'. + 'nrformats'. Solution: Make it work. (Christian Brabandt) Files: src/ops.c, src/testdir/test_increment.in, src/testdir/test_increment.ok @@ -5997,7 +6106,7 @@ Patch 7.4.951 Problem: Sorting number strings does not work as expected. (Luc Hermitte) -Solution: Add the 'N" argument to sort() +Solution: Add the "N" argument to sort() Files: src/eval.c, runtime/doc/eval.txt, src/testdir/test_alot.vim, src/testdir/test_sort.vim, src/testdir/Makefile @@ -6079,7 +6188,7 @@ Patch 7.4.966 Problem: Configure doesn't work with a space in a path. -Solution: Put paths in quotes. (James McCoy, close #525) +Solution: Put paths in quotes. (James McCoy, closes #525) Files: src/configure.in, src/auto/configure Patch 7.4.967 @@ -6253,7 +6362,7 @@ Patch 7.4.995 Problem: gdk_pixbuf_new_from_inline() is deprecated. -Solution: Generate auto/gui_gtk_gresources.c. (Kazunobu Kazunobu, +Solution: Generate auto/gui_gtk_gresources.c. (Kazunobu Kuriyama, closes #507) Files: src/Makefile, src/auto/configure, src/config.h.in, src/config.mk.in, src/configure.in, src/gui_gtk.c, @@ -6458,7 +6567,7 @@ Patch 7.4.1027 Problem: No support for binary numbers. -Solution: Add "bin" to nrformats. (Jason Schulz) +Solution: Add "bin" to 'nrformats'. (Jason Schulz) Files: runtime/doc/change.txt, runtime/doc/eval.txt, runtime/doc/version7.txt, src/charset.c, src/eval.c, src/ex_cmds.c, src/ex_getln.c, src/misc2.c, src/ops.c, @@ -6548,7 +6657,7 @@ Problem: Various small things. Solution: Add file to list of distributed files. Adjust README. Fix typo. Files: Filelist, src/testdir/README.txt, src/testdir/test_charsearch.in, - src/INSTALLMac.txt + src/INSTALLmac.txt Patch 7.4.1042 Problem: g-CTRL-G shows the word count, but there is no way to get the word @@ -6860,7 +6969,7 @@ Patch 7.4.1096 Problem: Need several lines to verify a command produces an error. -Solution: Add assert_fails(). (suggested by Nikolay Pavlov) +Solution: Add assert_fails(). (suggested by Nikolai Pavlov) Make the quickfix alloc test actually work. Files: src/testdir/test_quickfix.vim, src/eval.c, runtime/doc/eval.txt, src/misc2.c, src/alloc.h @@ -6948,7 +7057,7 @@ Patch 7.4.1109 (after 7.4.1107) Problem: MS-Windows doesn't have rmdir(). Solution: Add mch_rmdir(). -Files: src/os_win32.c, src/proto/os_win32/pro +Files: src/os_win32.c, src/proto/os_win32.pro Patch 7.4.1110 Problem: Test 108 fails when language is French. @@ -7323,7 +7432,7 @@ Patch 7.4.1166 Problem: Can't encode a Funcref into JSON. jsonencode() doesn't handle the - same list or dict twice properly. (Nikolay Pavlov) + same list or dict twice properly. (Nikolai Pavlov) Solution: Give an error. Reset copyID when the list or dict is finished. Files: src/json.c, src/proto/json.pro, src/testdir/test_json.vim @@ -7333,7 +7442,7 @@ Files: src/testdir/test_viml.vim Patch 7.4.1168 -Problem: This doesn't give the right result: eval(string(v:true)). (Nikolay +Problem: This doesn't give the right result: eval(string(v:true)). (Nikolai Pavlov) Solution: Make the string "v:true" instead of "true". Files: src/eval.c, src/testdir/test_viml.vim @@ -7554,8 +7663,7 @@ Solution: Remove __ARGS in really the last files. Files: src/proto/if_mzsch.pro, src/if_mzsch.c, src/vim.h, src/proto/gui_gtk_gresources.pro, src/proto/gui_mac.pro, - src/proto/if_ole.pro, src/proto/if_ole.pro, src/proto/os_qnx.pro, - src/Makefile + src/proto/if_ole.pro, src/proto/os_qnx.pro, src/Makefile Patch 7.4.1204 Problem: Latin1 characters cause encoding conversion. @@ -7737,7 +7845,7 @@ Patch 7.4.1231 Problem: JSON messages are not parsed properly. Solution: Queue received messages. -Files: src/eval,c src/channel.c, src/json.c, src/proto/eval.pro, +Files: src/eval.c src/channel.c, src/json.c, src/proto/eval.pro, src/proto/channel.pro, src/proto/json.pro, src/structs.h Patch 7.4.1232 @@ -7885,7 +7993,7 @@ Patch 7.4.1258 Problem: The channel test can fail if messages arrive later. -Solution: Add a short sleep. (Jun T.) +Solution: Add a short sleep. (Jun Takimoto) Files: src/testdir/test_channel.vim Patch 7.4.1259 @@ -8116,7 +8224,7 @@ Patch 7.4.1299 Problem: When the server sends a message with ID zero the channel handler - is not invoked. (Christian J. Robinson) + is not invoked. (Christian J. Robinson) Solution: Recognize zero value for the request ID. Add a test for invoking the channel handler. Files: src/channel.c, src/testdir/test_channel.vim, @@ -8157,7 +8265,7 @@ Patch 7.4.1306 Problem: Job control doesn't work well on MS-Windows. -Solution: Various fixes. (Ken Takata, Ozaki Kiichi , Yukihiro Nakadaira, +Solution: Various fixes. (Ken Takata, Ozaki Kiichi, Yukihiro Nakadaira, Yasuhiro Matsumoto) Files: src/Make_mvc.mak, src/eval.c, src/os_unix.c, src/os_win32.c, src/proto/os_unix.pro, src/proto/os_win32.pro, src/structs.h @@ -8502,7 +8610,7 @@ Patch 7.4.1366 Problem: Typo in test and resulting error in test result. -Solution: Fix the typo and correct the result. (James McCoy, close #650) +Solution: Fix the typo and correct the result. (James McCoy, closes #650) Files: src/testdir/test_charsearch.in, src/testdir/test_charsearch.ok Patch 7.4.1367 @@ -8699,7 +8807,7 @@ src/misc1.c, src/misc2.c, src/netbeans.c, src/option.c, src/option.h, src/os_msdos.c, src/os_msdos.h, src/proto.h, src/proto/os_msdos.pro, src/regexp.c, src/screen.c, src/structs.h, - src/syntax.c, src/term.c, src/term.c, src/undo.c, src/uninstal.c, + src/syntax.c, src/term.c, src/undo.c, src/uninstal.c, src/version.c, src/vim.h, src/window.c, src/xxd/Make_bc3.mak, src/xxd/Make_djg.mak @@ -8740,8 +8848,8 @@ Patch 7.4.1405 Problem: Completion menu flickers. -Solution: Delay showing the popup menu. (Shougo, Justin M. Keyes, closes - #656) +Solution: Delay showing the popup menu. (Shougo Matsu, Justin M. Keyes, + closes #656) Files: src/edit.c Patch 7.4.1406 @@ -9201,7 +9309,7 @@ Solution: Only use ":packadd" with an optional "!". Files: src/ex_cmds.h, src/ex_cmds2.c, src/testdir/test_loadplugin.vim, src/testdir/test_packadd.vim, src/testdir/Make_all.mak, - runtime/doc/repeat.txt. + runtime/doc/repeat.txt Patch 7.4.1487 Problem: For WIN32 isinf() is defined as a macro. @@ -9251,7 +9359,7 @@ Problem: Compiler warnings when building on Unix with the job feature but without the channel feature. Solution: Move #ifdefs. (Dominique Pelle) -Files: src/os_unxic. +Files: src/os_unix.c Patch 7.4.1496 Problem: Crash when built with GUI but it's not active. (Dominique Pelle) @@ -9264,7 +9372,7 @@ Files: src/gui_gtk_x11.c Patch 7.4.1498 -Problem: Error for locked item when using json_decode(). (Shougo) +Problem: Error for locked item when using json_decode(). (Shougo Matsu) Solution: Initialize v_lock. Files: src/json.c @@ -9667,7 +9775,7 @@ Patch 7.4.1570 Problem: There is no way to avoid the message when editing a file. -Solution: Add the "F" flag to 'shortmess'. (Shougo, closes #686) +Solution: Add the "F" flag to 'shortmess'. (Shougo Matsu, closes #686) Files: runtime/doc/options.txt, src/buffer.c, src/ex_cmds.c, src/option.h @@ -10053,7 +10161,7 @@ Patch 7.4.1635 Problem: Channel test is a bit flaky. Solution: Remove 'DETACH' if it's there. -Files: src/test_channel.vim +Files: src/testdir/test_channel.vim Patch 7.4.1636 Problem: When 'F' is in 'shortmess' the prompt for the encryption key isn't @@ -10685,7 +10793,7 @@ Patch 7.4.1744 Problem: Python: Converting a sequence may leak memory. -Solution: Decrement a reference. (Nikolay Pavlov) +Solution: Decrement a reference. (Nikolai Pavlov) Files: src/if_py_both.h Patch 7.4.1745 @@ -10713,7 +10821,7 @@ Patch 7.4.1749 Problem: When using GTK 3.20 there are a few warnings. Solution: Use new functions when available. (Kazunobu Kuriyama) -Files: src/gui_beval,c src/gui_gtk_x11.c +Files: src/gui_beval.c src/gui_gtk_x11.c Patch 7.4.1750 Problem: When a buffer gets updated while in command line mode, the screen @@ -10758,7 +10866,8 @@ Patch 7.4.1757 Problem: When using complete() it may set 'modified' even though nothing was inserted. -Solution: Use Down/Up instead of Next/Previous match. (Shougo, closes #745) +Solution: Use Down/Up instead of Next/Previous match. (Shougo Matsu, closes + #745) Files: src/edit.c Patch 7.4.1758 @@ -11132,7 +11241,7 @@ Patch 7.4.1824 Problem: When a job is no longer referenced and does not have an exit - callback the process may hang around in defunc state. (Nicola) + callback the process may hang around in defunct state. (Nicola) Solution: Call job_status() if the job is running and won't get freed because it might still be useful. Files: src/channel.c @@ -11284,12 +11393,12 @@ Files: src/channel.c Patch 7.4.1850 -Problem: GUI freezes when using a job. (Shougo) +Problem: GUI freezes when using a job. (Shougo Matsu) Solution: Unregister the channel when there is an input error. Files: src/channel.c Patch 7.4.1851 -Problem: test_syn_attr failes when using the GUI. (Dominique Pelle) +Problem: test_syn_attr fails when using the GUI. (Dominique Pelle) Solution: Escape the font name properly. Files: src/testdir/test_syn_attr.vim @@ -11349,7 +11458,7 @@ Patch 7.4.1861 Problem: Compiler warnings with 64 bit compiler. -Solution: Change int to size_t. (Mike William) +Solution: Change int to size_t. (Mike Williams) Files: src/ex_cmds2.c Patch 7.4.1862 @@ -11609,7 +11718,7 @@ Patch 7.4.1906 Problem: Collapsing channel buffers and searching for NL does not work - properly. (Xavier de Gary, Ramel Eshed) + properly. (Xavier de Gaye, Ramel Eshed) Solution: Do not assume the buffer contains a NUL or not. Change NUL bytes to NL to avoid the string is truncated. Files: src/channel.c, src/netbeans.c, src/proto/channel.pro @@ -11699,7 +11808,7 @@ Patch 7.4.1922 Problem: Ruby 2.4.0 unifies Fixnum and Bignum into Integer. -Solution: Use rb_cInteger. (Weiong Mao) +Solution: Use rb_cInteger. (Weiyong Mao) Files: src/if_ruby.c Patch 7.4.1923 @@ -12246,12 +12355,12 @@ Patch 7.4.2013 Problem: Using "noinsert" in 'completeopt' breaks redo. -Solution: Set compl_curr_match. (Shougo, closes #874) +Solution: Set compl_curr_match. (Shougo Matsu, closes #874) Files: src/edit.c, src/testdir/test_popup.vim Patch 7.4.2014 Problem: Using "noinsert" in 'completeopt' does not insert match. -Solution: Set compl_enter_selects. (Shougo, closes #875) +Solution: Set compl_enter_selects. (Shougo Matsu, closes #875) Files: src/edit.c, src/testdir/test_popup.vim Patch 7.4.2015 @@ -12499,6 +12608,2319 @@ Files: src/eval.c, src/dict.c, src/vim.h, src/globals.h, src/proto/eval.pro, src/proto/dict.pro, src/Makefile, Filelist -[MORE COMING!] +Patch 7.4.2056 (after 7.4.2055) +Problem: Build fails. +Solution: Add missing changes. +Files: src/proto.h + +Patch 7.4.2057 +Problem: eval.c is too big. +Solution: Move List functions to list.c +Files: src/eval.c, src/dict.c, src/list.c, src/proto.h, src/Makefile, + src/globals.h, src/proto/eval.pro, src/proto/list.pro, Filelist + +Patch 7.4.2058 +Problem: eval.c is too big. +Solution: Move user functions to userfunc.c +Files: src/userfunc.c, src/eval.c, src/vim.h, src/globals.h, + src/structs.h, src/proto.h, src/Makefile, src/proto/eval.pro, + src/proto/userfunc.pro, Filelist + +Patch 7.4.2059 +Problem: Non-Unix builds fail. +Solution: Update Makefiles for new files. +Files: src/Make_bc5.mak, src/Make_cyg_ming.mak, src/Make_dice.mak, + src/Make_ivc.mak, src/Make_manx.mak, src/Make_morph.mak, + src/Make_mvc.mak, src/Make_sas.mak + +Patch 7.4.2060 (after 7.4.2059) +Problem: Wrong file name. +Solution: Fix typo. +Files: src/Make_mvc.mak + +Patch 7.4.2061 +Problem: qf_init_ext() is too big. +Solution: Move code to qf_parse_line() (Yegappan Lakshmanan) +Files: src/quickfix.c, src/testdir/test_quickfix.vim + +Patch 7.4.2062 +Problem: Using dummy variable to compute struct member offset. +Solution: Use offsetof(). +Files: src/globals.h, src/macros.h, src/vim.h, src/spell.c + +Patch 7.4.2063 +Problem: eval.c is still too big. +Solution: Split off internal functions to evalfunc.c. +Files: src/eval.c, src/evalfunc.c, src/list.c, src/proto.h, + src/globals.h, src/vim.h, src/proto/eval.pro, + src/proto/evalfunc.pro, src/proto/list.pro, src/Makefile, Filelist, + src/Make_bc5.mak, src/Make_cyg_ming.mak, src/Make_dice.mak, + src/Make_ivc.mak, src/Make_manx.mak, src/Make_morph.mak, + src/Make_mvc.mak, src/Make_sas.mak + +Patch 7.4.2064 +Problem: Coverity warns for possible buffer overflow. +Solution: Use vim_strcat() instead of strcat(). +Files: src/quickfix.c + +Patch 7.4.2065 +Problem: Compiler warns for uninitialized variable. (John Marriott) +Solution: Set lnum to the right value. +Files: src/evalfunc.c + +Patch 7.4.2066 +Problem: getcompletion() not well tested. +Solution: Add more testing. +Files: src/testdir/test_cmdline.vim + +Patch 7.4.2067 +Problem: Compiler warning for char/char_u conversion. (Tony Mechelynck) + Inefficient code. +Solution: Use more lines to fill with spaces. (Nikolai Pavlov) Add type cast. +Files: src/quickfix.c + +Patch 7.4.2068 +Problem: Not all arguments of trunc_string() are tested. Memory access + error when running the message tests. +Solution: Add another test case. (Yegappan Lakshmanan) Make it easy to run + unittests with valgrind. Fix the access error. +Files: src/message.c, src/message_test.c, src/Makefile + +Patch 7.4.2069 +Problem: spell.c is too big. +Solution: Split it in spell file handling and spell checking. +Files: src/spell.c, src/spellfile.c, src/spell.h, src/Makefile, + src/proto/spell.pro, src/proto/spellfile.pro, src/proto.h + Filelist, src/Make_bc5.mak, src/Make_cyg_ming.mak, + src/Make_dice.mak, src/Make_ivc.mak, src/Make_manx.mak, + src/Make_morph.mak, src/Make_mvc.mak, src/Make_sas.mak + +Patch 7.4.2070 (after 7.4.2069) +Problem: Missing change to include file. +Solution: Include the spell header file. +Files: src/vim.h + +Patch 7.4.2071 +Problem: The return value of type() is difficult to use. +Solution: Define v:t_ constants. (Ken Takata) +Files: runtime/doc/eval.txt, src/eval.c, src/evalfunc.c, + src/testdir/test_channel.vim, src/testdir/test_viml.vim, src/vim.h + +Patch 7.4.2072 +Problem: substitute() does not support a Funcref argument. +Solution: Support a Funcref like it supports a string starting with "\=". +Files: src/evalfunc.c, src/regexp.c, src/eval.c, src/proto/eval.pro, + src/proto/regexp.pro, src/testdir/test_expr.vim + +Patch 7.4.2073 +Problem: rgb.txt is read for every color name. +Solution: Load rgb.txt once. (Christian Brabandt) Add a test. +Files: runtime/rgb.txt, src/term.c, src/testdir/test_syn_attr.vim + +Patch 7.4.2074 +Problem: One more place using a dummy variable. +Solution: Use offsetof(). (Ken Takata) +Files: src/userfunc.c + +Patch 7.4.2075 +Problem: No autocommand event to initialize a window or tab page. +Solution: Add WinNew and TabNew events. (partly by Felipe Morales) +Files: src/fileio.c, src/window.c, src/vim.h, + src/testdir/test_autocmd.vim, runtime/doc/autocmd.txt + +Patch 7.4.2076 +Problem: Syntax error when dict has '>' key. +Solution: Check for endchar. (Ken Takata) +Files: src/userfunc.c, src/testdir/test_lambda.vim + +Patch 7.4.2077 +Problem: Cannot update 'tabline' when a tab was closed. +Solution: Add the TabClosed autocmd event. (partly by Felipe Morales) +Files: src/fileio.c, src/window.c, src/vim.h, + src/testdir/test_autocmd.vim, runtime/doc/autocmd.txt + +Patch 7.4.2078 +Problem: Running checks in po directory fails. +Solution: Add colors used in syntax.c to the builtin color table. +Files: src/term.c + +Patch 7.4.2079 +Problem: Netbeans test fails on non-Unix systems. +Solution: Only do the permission check on Unix systems. +Files: src/testdir/test_netbeans.vim + +Patch 7.4.2080 +Problem: When using PERROR() on some systems assert_fails() does not see + the error. +Solution: Make PERROR() always report the error. +Files: src/vim.h, src/message.c, src/proto/message.pro + +Patch 7.4.2081 +Problem: Line numbers in the error list are not always adjusted. +Solution: Set b_has_qf_entry properly. (Yegappan Lakshmanan) +Files: src/quickfix.c, src/structs.h, src/testdir/test_quickfix.vim + +Patch 7.4.2082 +Problem: Not much test coverage for digraphs. +Solution: Add a new style digraph test. (Christian Brabandt) +Files: src/Makefile, src/testdir/test_alot.vim, + src/testdir/test_digraph.vim + +Patch 7.4.2083 +Problem: Coverity complains about not restoring a value. +Solution: Restore the value, although it's not really needed. Change return + to jump to cleanup, might leak memory. +Files: src/userfunc.c + +Patch 7.4.2084 +Problem: New digraph test makes testing hang. +Solution: Don't set "nocp". +Files: src/testdir/test_digraph.vim + +Patch 7.4.2085 +Problem: Digraph tests fails on some systems. +Solution: Run it separately and set 'encoding' early. +Files: src/testdir/Make_all.mak, src/testdir/test_alot.vim, + src/testdir/test_digraph.vim + +Patch 7.4.2086 +Problem: Using the system default encoding makes tests unpredictable. +Solution: Always use utf-8 or latin1 in the new style tests. Remove setting + encoding and scriptencoding where it is not needed. +Files: src/testdir/runtest.vim, src/testdir/test_channel.vim, + src/testdir/test_digraph.vim, src/testdir/test_expand_dllpath.vim, + src/testdir/test_expr_utf8.vim, src/testdir/test_json.vim, + src/testdir/test_matchadd_conceal_utf8.vim, + src/testdir/test_regexp_utf8.vim, src/testdir/test_visual.vim, + src/testdir/test_alot_utf8.vim, + +Patch 7.4.2087 +Problem: Digraph code test coverage is still low. +Solution: Add more tests. (Christian Brabandt) +Files: src/testdir/test_digraph.vim + +Patch 7.4.2088 (after 7.4.2087) +Problem: Keymap test fails with normal features. +Solution: Bail out if the keymap feature is not supported. +Files: src/testdir/test_digraph.vim + +Patch 7.4.2089 +Problem: Color handling of X11 GUIs is too complicated. +Solution: Simplify the code. Use RGBA where appropriate. (Kazunobu + Kuriyama) +Files: src/gui.h, src/gui_beval.c, src/gui_gtk_x11.c, src/netbeans.c + +Patch 7.4.2090 +Problem: Using submatch() in a lambda passed to substitute() is verbose. +Solution: Use a static list and pass it as an optional argument to the + function. Fix memory leak. +Files: src/structs.h, src/list.c, src/userfunc.c, src/channel.c, + src/eval.c, src/evalfunc.c, src/ex_cmds2.c, src/regexp.c, + src/proto/list.pro, src/proto/userfunc.pro, + src/testdir/test_expr.vim, runtime/doc/eval.txt + +Patch 7.4.2091 +Problem: Coverity reports a resource leak when out of memory. +Solution: Close the file before returning. +Files: src/term.c + +Patch 7.4.2092 +Problem: GTK 3 build fails with older GTK version. +Solution: Check the pango version. (Kazunobu Kuriyama) +Files: src/gui_beval.c + +Patch 7.4.2093 +Problem: Netbeans test fails once in a while. Leaving log file behind. +Solution: Add it to the list of flaky tests. Disable logfile. +Files: src/testdir/runtest.vim, src/testdir/test_channel.vim + +Patch 7.4.2094 +Problem: The color allocation in X11 is overly complicated. +Solution: Remove find_closest_color(), XAllocColor() already does this. + (Kazunobu Kuriyama) +Files: src/gui_x11.c + +Patch 7.4.2095 +Problem: Man test fails when run with the GUI. +Solution: Adjust for different behavior of GUI. Add assert_inrange(). +Files: src/eval.c, src/evalfunc.c, src/proto/eval.pro, + src/testdir/test_assert.vim, src/testdir/test_man.vim, + runtime/doc/eval.txt + +Patch 7.4.2096 +Problem: Lambda functions show up with completion. +Solution: Don't show lambda functions. (Ken Takata) +Files: src/userfunc.c, src/testdir/test_cmdline.vim + +Patch 7.4.2097 +Problem: Warning from 64 bit compiler. +Solution: use size_t instead of int. (Mike Williams) +Files: src/message.c + +Patch 7.4.2098 +Problem: Text object tests are old style. +Solution: Turn them into new style tests. (James McCoy, closes #941) +Files: src/testdir/Make_all.mak, src/testdir/test_textobjects.in, + src/testdir/test_textobjects.ok, src/testdir/test_textobjects.vim, + src/Makefile + +Patch 7.4.2099 +Problem: When a keymap is active only "(lang)" is displayed. (Ilya + Dogolazky) +Solution: Show the keymap name. (Dmitri Vereshchagin, closes #933) +Files: src/buffer.c, src/proto/screen.pro, src/screen.c + +Patch 7.4.2100 +Problem: "cgn" and "dgn" do not work correctly with a single character + match and the replacement includes the searched pattern. (John + Beckett) +Solution: If the match is found in the wrong column try in the next column. + Turn the test into new style. (Christian Brabandt) +Files: src/search.c, src/testdir/Make_all.mak, src/Makefile, + src/testdir/test53.in, src/testdir/test53.ok, + src/testdir/test_gn.vim + +Patch 7.4.2101 +Problem: Looping over windows, buffers and tab pages is inconsistent. +Solution: Use FOR_ALL_ macros everywhere. (Yegappan Lakshmanan) +Files: src/buffer.c, src/diff.c, src/edit.c, src/eval.c, src/evalfunc.c, + src/ex_cmds.c, src/ex_cmds2.c, src/ex_docmd.c, src/fileio.c, + src/globals.h, src/gui.c, src/gui_mac.c, src/if_lua.c, + src/if_mzsch.c, src/if_perl.xs, src/if_ruby.c, src/if_tcl.c, + src/main.c, src/mark.c, src/memfile.c, src/memline.c, src/misc1.c, + src/move.c, src/netbeans.c, src/normal.c, src/option.c, + src/quickfix.c, src/screen.c, src/spell.c, src/term.c, + src/window.c, src/workshop.c + +Patch 7.4.2102 (after 7.4.2101) +Problem: Tiny build with GUI fails. +Solution: Revert one FOR_ALL_ change. +Files: src/gui.c + +Patch 7.4.2103 +Problem: Can't have "augroup END" right after ":au!". +Solution: Check for the bar character before the command argument. +Files: src/fileio.c, src/testdir/test_autocmd.vim, + runtime/doc/autocmd.txt + +Patch 7.4.2104 +Problem: Code duplication when unreferencing a function. +Solution: De-duplicate. +Files: src/userfunc.c + +Patch 7.4.2105 +Problem: Configure reports default features to be "normal" while it is + "huge". +Solution: Change the default text. Build with newer autoconf. +Files: src/configure.in, src/auto/configure + +Patch 7.4.2106 +Problem: Clang warns about missing field in initializer. +Solution: Define COMMA and use it. (Kazunobu Kuriyama) +Files: src/ex_cmds.c, src/globals.h, src/vim.h + +Patch 7.4.2107 (after 7.4.2106) +Problem: Misplaced equal sign. +Solution: Remove it. +Files: src/globals.h + +Patch 7.4.2108 +Problem: Netbeans test is flaky. +Solution: Wait for the cursor to be positioned. +Files: src/testdir/test_netbeans.vim + +Patch 7.4.2109 +Problem: Setting 'display' to "lastline" is a drastic change, while + omitting it results in lots of "@" lines. +Solution: Add "truncate" to show "@@@" for a truncated line. +Files: src/option.h, src/screen.c, runtime/doc/options.txt + +Patch 7.4.2110 +Problem: When there is an CmdUndefined autocmd then the error for a missing + command is E464 instead of E492. (Manuel Ortega) +Solution: Don't let the pointer be NULL. +Files: src/ex_docmd.c, src/testdir/test_usercommands.vim + +Patch 7.4.2111 +Problem: Defaults are very conservative. +Solution: Move settings from vimrc_example.vim to defaults.vim. Load + defaults.vim if no .vimrc was found. +Files: src/main.c, src/version.c, src/os_amiga.h, src/os_dos.h, + src/os_mac.h, src/os_unix.h, src/feature.h, src/Makefile, + runtime/vimrc_example.vim, runtime/defaults.vim, + runtime/evim.vim, Filelist, runtime/doc/starting.txt + +Patch 7.4.2112 +Problem: getcompletion(.., 'dir') returns a match with trailing "*" when + there are no matches. (Chdiza) +Solution: Return an empty list when there are no matches. Add a trailing + slash to directories. (Yegappan Lakshmanan) Add tests for no + matches. (closes #947) +Files: src/evalfunc.c, src/testdir/test_cmdline.vim + +Patch 7.4.2113 +Problem: Test for undo is flaky. +Solution: Turn it into a new style test. Use test_settime() to avoid + flakyness. +Files: src/Makefile, src/undo.c, src/testdir/test61.in, + src/testdir/test61.ok, src/testdir/test_undo.vim, + src/testdir/test_undolevels.vim, src/testdir/Make_all.mak, + src/testdir/test_alot.vim + +Patch 7.4.2114 +Problem: Tiny build fails. +Solution: Always include vim_time(). +Files: src/ex_cmds.c + +Patch 7.4.2115 +Problem: Loading defaults.vim with -C argument. +Solution: Don't load the defaults script with -C argument. Test sourcing + the defaults script. Set 'display' to "truncate". +Files: src/main.c, src/Makefile, runtime/defaults.vim, + src/testdir/test_startup.vim, src/testdir/Make_all.mak + +Patch 7.4.2116 +Problem: The default vimrc for Windows is very conservative. +Solution: Use the defaults.vim in the Windows installer. +Files: src/dosinst.c + +Patch 7.4.2117 +Problem: Deleting an augroup that still has autocmds does not give a + warning. The next defined augroup takes its place. +Solution: Give a warning and prevent the index being used for another group + name. +Files: src/fileio.c, src/testdir/test_autocmd.vim + +Patch 7.4.2118 +Problem: Mac: can't build with tiny features. +Solution: Don't define FEAT_CLIPBOARD unconditionally. (Kazunobu Kuriyama) +Files: src/vim.h + +Patch 7.4.2119 +Problem: Closures are not supported. +Solution: Capture variables in lambdas from the outer scope. (Yasuhiro + Matsumoto, Ken Takata) +Files: runtime/doc/eval.txt, src/eval.c, src/ex_cmds2.c, src/globals.h, + src/proto/eval.pro, src/proto/userfunc.pro, + src/testdir/test_lambda.vim, src/userfunc.c + +Patch 7.4.2120 +Problem: User defined functions can't be a closure. +Solution: Add the "closure" argument. Allow using :unlet on a bound + variable. (Yasuhiro Matsumoto, Ken Takata) +Files: runtime/doc/eval.txt, src/testdir/test_lambda.vim, src/userfunc.c, + src/eval.c src/proto/userfunc.pro + +Patch 7.4.2121 +Problem: No easy way to check if lambda and closure are supported. +Solution: Add the +lambda feature. +Files: src/evalfunc.c, src/version.c, src/testdir/test_lambda.vim + +Patch 7.4.2122 (after 7.4.2118) +Problem: Mac: don't get +clipboard in huge build. +Solution: Move #define down below including feature.h +Files: src/vim.h + +Patch 7.4.2123 +Problem: No new style test for diff mode. +Solution: Add a test. Check that folds are in sync. +Files: src/Makefile, src/testdir/test_diffmode.vim, + src/testdir/Make_all.mak, src/testdir/test47.in, + src/testdir/test47.ok + +Patch 7.4.2124 +Problem: diffmode test leaves files behind, breaking another test. +Solution: Delete the files. +Files: src/testdir/test_diffmode.vim + +Patch 7.4.2125 +Problem: Compiler warning for loss of data. +Solution: Add a type cast. (Christian Brabandt) +Files: src/message.c + +Patch 7.4.2126 +Problem: No tests for :diffget and :diffput +Solution: Add tests. +Files: src/testdir/test_diffmode.vim + +Patch 7.4.2127 +Problem: The short form of ":noswapfile" is ":noswap" instead of ":nos". + (Kent Sibilev) +Solution: Only require three characters. Add a test for the short forms. +Files: src/ex_docmd.c, src/testdir/test_usercommands.vim + +Patch 7.4.2128 +Problem: Memory leak when saving for undo fails. +Solution: Free allocated memory. (Hirohito Higashi) +Files: src/ex_cmds.c + +Patch 7.4.2129 +Problem: Memory leak when using timer_start(). (Dominique Pelle) +Solution: Don't copy the callback when using a partial. +Files: src/evalfunc.c + +Patch 7.4.2130 +Problem: Pending timers cause false memory leak reports. +Solution: Free all timers on exit. +Files: src/ex_cmds2.c, src/proto/ex_cmds2.pro, src/misc2.c + +Patch 7.4.2131 +Problem: More memory leaks when using partial, e.g. for "exit-cb". +Solution: Don't copy the callback when using a partial. +Files: src/channel.c + +Patch 7.4.2132 +Problem: test_partial has memory leaks reported. +Solution: Add a note about why this happens. +Files: src/testdir/test_partial.vim + +Patch 7.4.2133 (after 7.4.2128) +Problem: Can't build with tiny features. +Solution: Add #ifdef. +Files: src/ex_cmds.c + +Patch 7.4.2134 +Problem: No error for using function() badly. +Solution: Check for passing wrong function name. (Ken Takata) +Files: src/eval.c, src/evalfunc.c, src/proto/userfunc.pro, + src/testdir/test_expr.vim, src/userfunc.c, src/vim.h + +Patch 7.4.2135 +Problem: Various tiny issues. +Solution: Update comments, white space, etc. +Files: src/diff.c, src/digraph.c, src/testdir/test80.in, + src/testdir/test_channel.vim, src/testdir/Makefile, + runtime/menu.vim, src/INSTALLpc.txt, src/xpm/README.txt + +Patch 7.4.2136 +Problem: Closure function fails. +Solution: Don't reset uf_scoped when it points to another funccal. +Files: src/userfunc.c, src/testdir/test_lambda.vim + +Patch 7.4.2137 +Problem: Using function() with a name will find another function when it is + redefined. +Solution: Add funcref(). Refer to lambda using a partial. Fix several + reference counting issues. +Files: src/vim.h, src/structs.h, src/userfunc.c, src/eval.c, + src/evalfunc.c, src/channel.c, src/proto/eval.pro, + src/proto/userfunc.pro, src/if_mzsch.c, src/regexp.c, src/misc2.c, + src/if_py_both.h, src/testdir/test_expr.vim, runtime/doc/eval.txt + +Patch 7.4.2138 +Problem: Test 86 and 87 fail. +Solution: Call func_ref() also for regular functions. +Files: src/if_py_both.h + +Patch 7.4.2139 +Problem: :delfunction causes illegal memory access. +Solution: Correct logic when deciding to free a function. +Files: src/userfunc.c, src/testdir/test_lambda.vim + +Patch 7.4.2140 +Problem: Tiny build fails. +Solution: Add dummy typedefs. +Files: src/structs.h + +Patch 7.4.2141 +Problem: Coverity reports bogus NULL check. +Solution: When checking for a variable in the funccal scope don't pass the + varname. +Files: src/userfunc.c, src/proto/userfunc.pro, src/eval.c + +Patch 7.4.2142 +Problem: Leaking memory when redefining a function. +Solution: Don't increment the function reference count when it's found by + name. Don't remove the wrong function from the hashtab. More + reference counting fixes. +Files: src/structs.h, src/userfunc.c + +Patch 7.4.2143 +Problem: A funccal is garbage collected while it can still be used. +Solution: Set copyID in all referenced functions. Do not list lambda + functions with ":function". +Files: src/userfunc.c, src/proto/userfunc.pro, src/eval.c, + src/testdir/test_lambda.vim + +Patch 7.4.2144 +Problem: On MS-Windows quickfix does not handle a line with 1023 bytes + ending in CR-LF properly. +Solution: Don't consider CR a line break. (Ken Takata) +Files: src/quickfix.c + +Patch 7.4.2145 +Problem: Win32: Using CreateThread/ExitThread is not safe. +Solution: Use _beginthreadex and return from the thread. (Ken Takata) +Files: src/os_win32.c + +Patch 7.4.2146 +Problem: Not enough testing for popup menu. CTRL-E does not always work + properly. +Solution: Add more tests. When using CTRL-E check if the popup menu is + visible. (Christian Brabandt) +Files: src/edit.c, src/testdir/test_popup.vim + +Patch 7.4.2147 (after 7.4.2146) +Problem: test_alot fails. +Solution: Close window. +Files: src/testdir/test_popup.vim + +Patch 7.4.2148 +Problem: Not much testing for cscope. +Solution: Add a test that uses the cscope program. (Christian Brabandt) +Files: src/testdir/test_cscope.vim + +Patch 7.4.2149 +Problem: If a test leaves a window open a following test may fail. +Solution: Always close extra windows after running a test. +Files: src/testdir/runtest.vim, src/testdir/test_popup.vim + +Patch 7.4.2150 +Problem: Warning with MinGW 64. (John Marriott) +Solution: Change return type. (Ken Takata) +Files: src/os_win32.c + +Patch 7.4.2151 +Problem: Quickfix test fails on MS-Windows. +Solution: Close the help window. (Christian Brabandt) +Files: src/testdir/test_quickfix.vim + +Patch 7.4.2152 +Problem: No proper translation of messages with a count. +Solution: Use ngettext(). (Sergey Alyoshin) +Files: src/evalfunc.c, src/fold.c, src/os_win32.c, src/screen.c, src/vim.h + +Patch 7.4.2153 +Problem: GUI test isn't testing much. +Solution: Turn into a new style test. Execute a shell command. +Files: src/testdir/test_gui.vim, src/testdir/test16.in, + src/testdir/test16.ok, src/testdir/Make_all.mak, src/Makefile, + src/testdir/Make_vms.mms + +Patch 7.4.2154 +Problem: Test_communicate() fails sometimes. +Solution: Add it to the flaky tests. +Files: src/testdir/runtest.vim + +Patch 7.4.2155 +Problem: Quotes make GUI test fail on MS-Windows. +Solution: Remove quotes, strip white space. +Files: src/testdir/test_gui.vim + +Patch 7.4.2156 +Problem: Compiler warning. +Solution: Add type cast. (Ken Takata, Mike Williams) +Files: src/os_win32.c + +Patch 7.4.2157 +Problem: Test_job_start_fails() is expected to report memory leaks, making + it hard to see other leaks in test_partial. +Solution: Move Test_job_start_fails() to a separate test file. +Files: src/testdir/test_partial.vim, src/testdir/test_job_fails.vim, + src/Makefile, src/testdir/Make_all.mak + +Patch 7.4.2158 +Problem: Result of getcompletion('', 'cscope') depends on previous + completion. (Christian Brabandt) +Solution: Call set_context_in_cscope_cmd(). +Files: src/evalfunc.c, src/testdir/test_cmdline.vim + +Patch 7.4.2159 +Problem: Insufficient testing for cscope. +Solution: Add more tests. (Dominique Pelle) +Files: src/testdir/test_cscope.vim + +Patch 7.4.2160 +Problem: setmatches() mixes up values. (Nikolai Pavlov) +Solution: Save the string instead of reusing a shared buffer. +Files: src/dict.c, src/evalfunc.c, src/testdir/test_expr.vim, + +Patch 7.4.2161 (after 7.4.2160) +Problem: Expression test fails without conceal feature. +Solution: Only check "conceal" with the conceal feature. +Files: src/testdir/test_expr.vim + +Patch 7.4.2162 +Problem: Result of getcompletion('', 'sign') depends on previous + completion. +Solution: Call set_context_in_sign_cmd(). (Dominique Pelle) +Files: src/evalfunc.c, src/testdir/test_cmdline.vim + +Patch 7.4.2163 +Problem: match() and related functions tested with old style test. +Solution: Convert to new style test. (Hirohito Higashi) +Files: src/Makefile, src/testdir/Make_all.mak, src/testdir/test63.in, + src/testdir/test63.ok, src/testdir/test_alot.vim, + src/testdir/test_match.vim, src/testdir/test_matchstrpos.vim + +Patch 7.4.2164 +Problem: It is not possible to use plugins in an "after" directory to tune + the behavior of a package. +Solution: First load plugins from non-after directories, then packages and + finally plugins in after directories. + Reset 'loadplugins' before executing --cmd arguments. +Files: src/main.c, src/vim.h, src/ex_cmds2.c, src/testdir/Makefile, + src/testdir/shared.vim, src/testdir/test_startup.vim, + src/testdir/setup.vim, runtime/doc/starting.txt + +Patch 7.4.2165 (after 7.4.2164) +Problem: Startup test fails on MS-Windows. +Solution: Don't check output if RunVim() returns zero. +Files: src/testdir/test_startup.vim + +Patch 7.4.2166 (after 7.4.2164) +Problem: Small build can't run startup test. +Solution: Skip the test. +Files: src/testdir/test_startup.vim + +Patch 7.4.2167 (after 7.4.2164) +Problem: Small build can't run tests. +Solution: Don't try setting 'packpath'. +Files: src/testdir/setup.vim + +Patch 7.4.2168 +Problem: Not running the startup test on MS-Windows. +Solution: Write vimcmd. +Files: src/testdir/Make_ming.mak, src/testdir/Make_dos.mak + +Patch 7.4.2169 (after 7.4.2168) +Problem: Startup test gets stuck on MS-Windows. +Solution: Use double quotes. +Files: src/testdir/shared.vim, src/testdir/test_startup.vim + +Patch 7.4.2170 +Problem: Cannot get information about timers. +Solution: Add timer_info(). +Files: src/evalfunc.c, src/ex_cmds2.c, src/proto/ex_cmds2.pro, + runtime/doc/eval.txt + +Patch 7.4.2171 (after 7.4.2170) +Problem: MS-Windows build fails. +Solution: Add QueryPerformanceCounter(). +Files: src/ex_cmds2.c + +Patch 7.4.2172 +Problem: No test for "vim --help". +Solution: Add a test. +Files: src/testdir/test_startup.vim, src/testdir/shared.vim + +Patch 7.4.2173 (after 7.4.2172) +Problem: Can't test help on MS-Windows. +Solution: Skip the test. +Files: src/testdir/test_startup.vim + +Patch 7.4.2174 +Problem: Adding duplicate flags to 'whichwrap' leaves commas behind. +Solution: Also remove the commas. (Naruhiko Nishino) +Files: src/Makefile, src/option.c, src/testdir/Make_all.mak, + src/testdir/test_alot.vim, src/testdir/test_options.in, + src/testdir/test_options.ok, src/testdir/test_options.vim + +Patch 7.4.2175 +Problem: Insufficient testing of cscope. +Solution: Add more tests. (Dominique Pelle) +Files: src/testdir/test_cscope.vim + +Patch 7.4.2176 +Problem: #ifdefs in main() are complicated. +Solution: Always define vim_main2(). Move params to the file level. + (suggested by Ken Takata) +Files: src/main.c, src/structs.h, src/vim.h, src/if_mzsch.c, + src/proto/if_mzsch.pro + +Patch 7.4.2177 +Problem: No testing for -C and -N command line flags, file arguments, + startuptime. +Solution: Add tests. +Files: src/testdir/test_startup.vim, src/testdir/shared.vim + +Patch 7.4.2178 +Problem: No test for reading from stdin. +Solution: Add a test. +Files: src/testdir/test_startup.vim, src/testdir/shared.vim + +Patch 7.4.2179 (after 7.4.2178) +Problem: Reading from stdin test fails on MS-Windows. +Solution: Strip the extra space. +Files: src/testdir/test_startup.vim + +Patch 7.4.2180 +Problem: There is no easy way to stop all timers. There is no way to + temporary pause a timer. +Solution: Add timer_stopall() and timer_pause(). +Files: src/evalfunc.c, src/ex_cmds2.c, src/proto/ex_cmds2.pro, + src/structs.h, src/testdir/test_timers.vim, + src/testdir/shared.vim, runtime/doc/eval.txt + +Patch 7.4.2181 +Problem: Compiler warning for unused variable. +Solution: Remove it. (Dominique Pelle) +Files: src/ex_cmds2.c + +Patch 7.4.2182 +Problem: Color Grey40 used in startup but not in the short list. +Solution: Add Grey40 to the builtin colors. +Files: src/term.c + +Patch 7.4.2183 +Problem: Sign tests are old style. +Solution: Turn them into new style tests. (Dominique Pelle) +Files: src/Makefile, src/testdir/Make_all.mak, src/testdir/test_signs.in, + src/testdir/test_signs.ok, src/testdir/test_signs.vim, + +Patch 7.4.2184 +Problem: Tests that use RunVim() do not actually perform the test. +Solution: Use "return" instead of "call". (Ken Takata) +Files: src/testdir/shared.vim + +Patch 7.4.2185 +Problem: Test glob2regpat does not test much. +Solution: Add a few more test cases. (Dominique Pelle) +Files: src/testdir/test_glob2regpat.vim + +Patch 7.4.2186 +Problem: Timers test is flaky. +Solution: Relax the sleep time check. +Files: src/testdir/test_timers.vim + +Patch 7.4.2187 (after 7.4.2185) +Problem: glob2regpat test fails on Windows. +Solution: Remove the checks that use backslashes. +Files: src/testdir/test_glob2regpat.vim + +Patch 7.4.2188 (after 7.4.2146) +Problem: Completion does not work properly with some plugins. +Solution: Revert the part related to typing CTRL-E. (closes #972) +Files: src/edit.c, src/testdir/test_popup.vim + +Patch 7.4.2189 +Problem: Cannot detect encoding in a fifo. +Solution: Extend the stdin way of detecting encoding to fifo. Add a test + for detecting encoding on stdin and fifo. (Ken Takata) +Files: src/buffer.c, src/fileio.c, src/Makefile, + src/testdir/Make_all.mak, src/testdir/test_startup_utf8.vim, + src/vim.h + +Patch 7.4.2190 +Problem: When startup test fails it's not easy to find out why. + GUI test fails with Gnome. +Solution: Add the help entry matches to a list an assert that. + Set $HOME for Gnome to create .gnome2 directory. +Files: src/testdir/test_startup.vim, src/testdir/test_gui.vim + +Patch 7.4.2191 +Problem: No automatic prototype for vim_main2(). +Solution: Move the #endif. (Ken Takata) +Files: src/main.c, src/vim.h, src/proto/main.pro + +Patch 7.4.2192 +Problem: Generating prototypes with Cygwin doesn't work well. +Solution: Change #ifdefs. (Ken Takata) +Files: src/gui.h, src/gui_w32.c, src/ops.c, src/proto/fileio.pro, + src/proto/message.pro, src/proto/normal.pro, src/proto/ops.pro, + src/vim.h + +Patch 7.4.2193 +Problem: With Gnome when the GUI can't start test_startup hangs. +Solution: Call gui_mch_early_init_check(). (Hirohito Higashi) +Files: src/gui.c, src/gui_gtk_x11.c, src/proto/gui_gtk_x11.pro + +Patch 7.4.2194 +Problem: Sign tests don't cover enough. +Solution: Add more test cases. (Dominique Pelle) +Files: src/testdir/test_signs.vim + +Patch 7.4.2195 +Problem: MS-Windows: The vimrun program does not support Unicode. +Solution: Use GetCommandLineW(). Cleanup old #ifdefs. (Ken Takata) +Files: src/vimrun.c + +Patch 7.4.2196 +Problem: glob2regpat test doesn't test everything on MS-Windows. +Solution: Add patterns with backslash handling. +Files: src/testdir/test_glob2regpat.vim + +Patch 7.4.2197 +Problem: All functions are freed on exit, which may hide leaks. +Solution: Only free named functions, not reference counted ones. +Files: src/userfunc.c + +Patch 7.4.2198 +Problem: Test alot sometimes fails under valgrind. (Dominique Pelle) +Solution: Avoid passing a callback with the wrong number of arguments. +Files: src/testdir/test_partial.vim + +Patch 7.4.2199 +Problem: In the GUI the cursor is hidden when redrawing any window, + causing flicker. +Solution: Only undraw the cursor when updating the window it's in. +Files: src/screen.c, src/gui.c, src/proto/gui.pro, src/gui_gtk_x11.c + +Patch 7.4.2200 +Problem: Cannot get all information about a quickfix list. +Solution: Add an optional argument to get/set loc/qf list(). (Yegappan + Lakshmanan) +Files: runtime/doc/eval.txt, src/evalfunc.c, src/proto/quickfix.pro, + src/quickfix.c, src/tag.c, src/testdir/test_quickfix.vim + +Patch 7.4.2201 +Problem: The sign column disappears when the last sign is deleted. +Solution: Add the 'signcolumn' option. (Christian Brabandt) +Files: runtime/doc/options.txt, runtime/optwin.vim, src/edit.c, + src/move.c, src/option.c, src/option.h, src/proto/option.pro, + src/screen.c, src/structs.h, src/testdir/test_options.vim + +Patch 7.4.2202 +Problem: Build fails with small features. +Solution: Correct option initialization. +Files: src/option.c + +Patch 7.4.2203 +Problem: Test fails with normal features. +Solution: Check is signs are supported. +Files: src/testdir/test_options.vim + +Patch 7.4.2204 +Problem: It is not easy to get information about buffers, windows and + tabpages. +Solution: Add getbufinfo(), getwininfo() and gettabinfo(). (Yegappan + Lakshmanan) +Files: runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/dict.c, + src/evalfunc.c, src/option.c, src/proto/dict.pro, + src/proto/option.pro, src/proto/window.pro, + src/testdir/Make_all.mak, src/testdir/test_bufwintabinfo.vim, + src/window.c, src/Makefile + +Patch 7.4.2205 +Problem: 'wildignore' always applies to getcompletion(). +Solution: Add an option to use 'wildignore' or not. (Yegappan Lakshmanan) +Files: runtime/doc/eval.txt, src/evalfunc.c, src/testdir/test_cmdline.vim + +Patch 7.4.2206 +Problem: Warning for unused function. +Solution: Put the function inside #ifdef. (John Marriott) +Files: src/evalfunc.c + +Patch 7.4.2207 +Problem: The +xpm feature is not sorted properly in :version output. +Solution: Move it up. (Tony Mechelynck) +Files: src/version.c + +Patch 7.4.2208 +Problem: Test for mappings is old style. +Solution: Convert the test to new style. +Files: src/testdir/test_mapping.vim, src/testdir/test_mapping.in, + src/testdir/test_mapping.ok, src/Makefile, + src/testdir/test_alot.vim, src/testdir/Make_all.mak + +Patch 7.4.2209 +Problem: Cannot map . (Stephen Riehm) +Solution: Solve the memory access problem in another way. (Dominique Pelle) + Allow for using in a string. +Files: src/eval.c, src/gui_mac.c, src/misc2.c, src/option.c, + src/proto/misc2.pro, src/syntax.c, src/term.c, + src/testdir/test_mapping.vim + +Patch 7.4.2210 +Problem: On OSX configure mixes up a Python framework and the Unix layout. +Solution: Make configure check properly. (Tim D. Smith, closes #980) +Files: src/configure.in, src/auto/configure + +Patch 7.4.2211 +Problem: Mouse support is not automatically enabled with simple term. +Solution: Recognize "st" and other names. (Manuel Schiller, closes #963) +Files: src/os_unix.c + +Patch 7.4.2212 +Problem: Mark " is not set when closing a window in another tab. (Guraga) +Solution: Check all tabs for the window to be valid. (based on patch by + Hirohito Higashi, closes #974) +Files: src/window.c, src/proto/window.pro, src/buffer.c, + src/testdir/test_viminfo.vim + +Patch 7.4.2213 +Problem: Cannot highlight the "~" lines at the end of a window differently. +Solution: Add the EndOfBuffer highlighting. (Marco Hinz, James McCoy) +Files: runtime/doc/options.txt, runtime/doc/syntax.txt, src/option.c, + src/screen.c, src/syntax.c, src/vim.h + +Patch 7.4.2214 +Problem: A font that uses ligatures messes up the screen display. +Solution: Put spaces between characters when building the glyph table. + (based on a patch from Manuel Schiller) +Files: src/gui_gtk_x11.c + +Patch 7.4.2215 +Problem: It's not easy to find out if a window is a quickfix or location + list window. +Solution: Add "loclist" and "quickfix" entries to the dict returned by + getwininfo(). (Yegappan Lakshmanan) +Files: runtime/doc/eval.txt, src/evalfunc.c, + src/testdir/test_bufwintabinfo.vim + +Patch 7.4.2216 (after 7.4.2215) +Problem: Test fails without the +sign feature. +Solution: Only check for signcolumn with the +sign feature. +Files: src/testdir/test_bufwintabinfo.vim + +Patch 7.4.2217 +Problem: When using matchaddpos() a character after the end of the line can + be highlighted. +Solution: Only highlight existing characters. (Hirohito Higashi) +Files: src/screen.c, src/structs.h, src/testdir/test_match.vim + +Patch 7.4.2218 +Problem: Can't build with +timers when +digraph is not included. +Solution: Change #ifdef for e_number_exp. (Damien) +Files: src/globals.h + +Patch 7.4.2219 +Problem: Recursive call to substitute gets stuck in sandbox. (Nikolai + Pavlov) +Solution: Handle the recursive call. (Christian Brabandt, closes #950) + Add a test. +Files: src/ex_cmds.c, src/testdir/test_regexp_latin.vim + +Patch 7.4.2220 +Problem: printf() gives an error when the argument for %s is not a string. + (Ozaki Kiichi) +Solution: Behave like invoking string() on the argument. (Ken Takata) +Files: runtime/doc/eval.txt, src/message.c, src/testdir/test_expr.vim + +Patch 7.4.2221 +Problem: printf() does not support binary format. +Solution: Add %b and %B. (Ozaki Kiichi) +Files: runtime/doc/eval.txt, src/message.c, src/testdir/test_expr.vim + +Patch 7.4.2222 +Problem: Sourcing a script where a character has 0x80 as a second byte does + not work. (Filipe L B Correia) +Solution: Turn 0x80 into K_SPECIAL KS_SPECIAL KE_FILLER. (Christian + Brabandt, closes #728) Add a test case. +Files: src/getchar.c, src/proto/getchar.pro, src/misc1.c, + src/testdir/test_regexp_utf8.vim + +Patch 7.4.2223 +Problem: Buffer overflow when using latin1 character with feedkeys(). +Solution: Check for an illegal character. Add a test. +Files: src/testdir/test_regexp_utf8.vim, src/testdir/test_source_utf8.vim, + src/testdir/test_alot_utf8.vim, src/Makefile, src/getchar.c, + src/macros.h, src/evalfunc.c, src/os_unix.c, src/os_win32.c, + src/spell.c, + +Patch 7.4.2224 +Problem: Compiler warnings with older compiler and 64 bit numbers. +Solution: Add "LL" to large values. (Mike Williams) +Files: src/eval.c, src/evalfunc.c + +Patch 7.4.2225 +Problem: Crash when placing a sign in a deleted buffer. +Solution: Check for missing buffer name. (Dominique Pelle). Add a test. +Files: src/ex_cmds.c, src/testdir/test_signs.vim + +Patch 7.4.2226 +Problem: The field names used by getbufinfo(), gettabinfo() and + getwininfo() are not consistent. +Solution: Use bufnr, winnr and tabnr. (Yegappan Lakshmanan) +Files: runtime/doc/eval.txt, src/evalfunc.c, + src/testdir/test_bufwintabinfo.vim + +Patch 7.4.2227 +Problem: Tab page tests are old style. +Solution: Change into new style tests. (Hirohito Higashi) +Files: src/Makefile, src/testdir/Make_all.mak, src/testdir/test62.in, + src/testdir/test62.ok, src/testdir/test_alot.vim, + src/testdir/test_tabpage.vim + +Patch 7.4.2228 +Problem: Test files have inconsistent modelines. +Solution: Don't set 'tabstop' to 2, use 'sts' and 'sw'. +Files: src/testdir/README.txt, src/testdir/test_backspace_opt.vim, + src/testdir/test_digraph.vim, src/testdir/test_gn.vim + src/testdir/test_help_tagjump.vim, + src/testdir/test_increment_dbcs.vim, + src/testdir/test_increment.vim, src/testdir/test_match.vim, + src/testdir/test_tagjump.vim, src/testdir/test_window_cmd.vim, + src/testdir/test_regexp_latin.vim, src/testdir/test_timers.vim + +Patch 7.4.2229 +Problem: Startup test fails on Solaris. +Solution: Recognize a character device. (Danek Duvall) +Files: src/buffer.c, src/fileio.c, src/proto/fileio.pro, src/vim.h + +Patch 7.4.2230 +Problem: There is no equivalent of 'smartcase' for a tag search. +Solution: Add value "followscs" and "smart" to 'tagcase'. (Christian + Brabandt, closes #712) Turn tagcase test into new style. +Files: runtime/doc/options.txt, runtime/doc/tagsrch.txt, src/option.h, + src/tag.c, src/search.c, src/proto/search.pro, + src/testdir/test_tagcase.in, src/testdir/test_tagcase.ok, + src/testdir/test_tagcase.vim, src/Makefile, + src/testdir/Make_all.mak, src/testdir/test_alot.vim + +Patch 7.4.2231 +Problem: ":oldfiles" output is a very long list. +Solution: Add a pattern argument. (Coot, closes #575) +Files: runtime/doc/starting.txt, src/ex_cmds.h, src/eval.c, + src/ex_cmds.c, src/proto/eval.pro, src/proto/ex_cmds.pro, + src/testdir/test_viminfo.vim + +Patch 7.4.2232 +Problem: The default ttimeoutlen is very long. +Solution: Use "100". (Hirohito Higashi) +Files: runtime/defaults.vim + +Patch 7.4.2233 +Problem: Crash when using funcref() with invalid name. (Dominique Pelle) +Solution: Check for NULL translated name. +Files: src/evalfunc.c, src/testdir/test_expr.vim + +Patch 7.4.2234 +Problem: Can't build with +eval but without +quickfix. (John Marriott) +Solution: Move skip_vimgrep_pat() to separate #ifdef block. +Files: src/quickfix.c + +Patch 7.4.2235 +Problem: submatch() does not check for a valid argument. +Solution: Give an error if the argument is out of range. (Dominique Pelle) +Files: src/evalfunc.c, src/testdir/test_expr.vim + +Patch 7.4.2236 +Problem: The 'langnoremap' option leads to double negatives. And it does + not work for the last character of a mapping. +Solution: Add 'langremap' with the opposite value. Keep 'langnoremap' for + backwards compatibility. Make it work for the last character of a + mapping. Make the test work. +Files: runtime/doc/options.txt, runtime/defaults.vim, src/option.c, + src/option.h, src/macros.h, src/testdir/test_mapping.vim + +Patch 7.4.2237 +Problem: Can't use "." and "$" with ":tab". +Solution: Support a range for ":tab". (Hirohito Higashi) +Files: runtime/doc/tabpage.txt, src/ex_docmd.c, + src/testdir/test_tabpage.vim + +Patch 7.4.2238 +Problem: With SGR mouse reporting (suckless terminal) the mouse release and + scroll up/down is confused. +Solution: Don't see a release as a scroll up/down. (Ralph Eastwood) +Files: src/term.c + +Patch 7.4.2239 +Problem: Warning for missing declaration of skip_vimgrep_pat(). (John + Marriott) +Solution: Move it to another file. +Files: src/quickfix.c, src/proto/quickfix.pro, src/ex_cmds.c, + src/proto/ex_cmds.pro + +Patch 7.4.2240 +Problem: Tests using the sleep time can be flaky. +Solution: Use reltime() if available. (Partly by Shane Harper) +Files: src/testdir/shared.vim, src/testdir/test_timers.vim + +Patch 7.4.2241 (after 7.4.2240) +Problem: Timer test sometimes fails. +Solution: Increase the maximum time for repeating timer. +Files: src/testdir/test_timers.vim + +Patch 7.4.2242 (after 7.4.2240) +Problem: Timer test sometimes fails. +Solution: Increase the maximum time for callback timer test. +Files: src/testdir/test_timers.vim + +Patch 7.4.2243 +Problem: Warning for assigning negative value to unsigned. (Danek Duvall) +Solution: Make cterm_normal_fg_gui_color and _bg_ guicolor_T, cast to long_u + only when an unsigned is needed. +Files: src/structs.h, src/globals.h, src/screen.c, src/term.c, + src/syntax.c, src/gui_gtk_x11.c, src/gui.c, src/gui_mac.c, + src/gui_photon.c, src/gui_w32.c, src/gui_x11.c, + src/proto/term.pro, src/proto/gui_gtk_x11.pro, + src/proto/gui_mac.pro, src/proto/gui_photon.pro, + src/proto/gui_w32.pro, src/proto/gui_x11.pro + +Patch 7.4.2244 +Problem: Adding pattern to ":oldfiles" is not a generic solution. +Solution: Add the ":filter /pat/ cmd" command modifier. Only works for some + commands right now. +Files: src/structs.h, src/ex_docmd.c, src/ex_cmds.h, src/message.c, + src/proto/message.pro, runtime/doc/starting.txt, + runtime/doc/various.txt, src/testdir/test_viminfo.vim, + src/testdir/test_alot.vim, src/testdir/test_filter_cmd.vim, + src/Makefile + +Patch 7.4.2245 (after 7.4.2244) +Problem: Filter test fails. +Solution: Include missing changes. +Files: src/buffer.c + +Patch 7.4.2246 (after 7.4.2244) +Problem: Oldfiles test fails. +Solution: Include missing changes. +Files: src/ex_cmds.c + +Patch 7.4.2247 (after 7.4.2244) +Problem: Tiny build fails. (Tony Mechelynck) +Solution: Remove #ifdef. +Files: src/ex_cmds.c + +Patch 7.4.2248 +Problem: When cancelling the :ptjump prompt a preview window is opened for + a following command. +Solution: Reset g_do_tagpreview. (Hirohito Higashi) Add a test. Avoid that + the test runner gets stuck in trying to close a window. +Files: src/tag.c, src/testdir/test_tagjump.vim, src/testdir/runtest.vim + +Patch 7.4.2249 +Problem: Missing colon in error message. +Solution: Add the colon. (Dominique Pelle) +Files: src/userfunc.c + +Patch 7.4.2250 +Problem: Some error messages cannot be translated. +Solution: Enclose them in _() and N_(). (Dominique Pelle) +Files: src/channel.c, src/evalfunc.c, src/ex_cmds.c, src/spell.c, + src/window.c + +Patch 7.4.2251 +Problem: In rare cases diffing 4 buffers is not enough. +Solution: Raise the limit to 8. (closes #1000) +Files: src/structs.h, runtime/doc/diff.txt + +Patch 7.4.2252 +Problem: Compiler warnings for signed/unsigned in expression. +Solution: Remove type cast. (Dominique Pelle) +Files: src/vim.h + +Patch 7.4.2253 +Problem: Check for Windows 3.1 will always return false. (Christian + Brabandt) +Solution: Remove the dead code. +Files: src/gui_w32.c, src/evalfunc.c, src/ex_cmds.c, src/option.c, + src/os_win32.c, src/version.c, src/proto/gui_w32.pro + +Patch 7.4.2254 +Problem: Compiler warnings in MzScheme code. +Solution: Add UNUSED. Remove unreachable code. +Files: src/if_mzsch.c + +Patch 7.4.2255 +Problem: The script that checks translations can't handle plurals. +Solution: Check for plural msgid and msgstr entries. Leave the cursor on + the first error. +Files: src/po/check.vim + +Patch 7.4.2256 +Problem: Coverity complains about null pointer check. +Solution: Remove wrong and superfluous error check. +Files: src/eval.c + +Patch 7.4.2257 +Problem: Coverity complains about not checking for NULL. +Solution: Check for out of memory. +Files: src/if_py_both.h + +Patch 7.4.2258 +Problem: Two JSON messages are sent without a separator. +Solution: Separate messages with a NL. (closes #1001) +Files: src/json.c, src/channel.c, src/vim.h, src/testdir/test_channel.py, + src/testdir/test_channel.vim, runtime/doc/channel.txt + +Patch 7.4.2259 +Problem: With 'incsearch' can only see the next match. +Solution: Make CTRL-N/CTRL-P move to the previous/next match. (Christian + Brabandt) +Files: runtime/doc/cmdline.txt, src/ex_getln.c, src/testdir/Make_all.mak, + src/testdir/test_search.vim, src/Makefile + +Patch 7.4.2260 (after 7.4.2258) +Problem: Channel test is flaky. +Solution: Add a newline to separate JSON messages. +Files: src/testdir/test_channel.vim + +Patch 7.4.2261 (after 7.4.2259) +Problem: Build fails with small features. +Solution: Move "else" inside the #ifdef. +Files: src/ex_getln.c + +Patch 7.4.2262 +Problem: Fail to read register content from viminfo if it is 438 characters + long. (John Chen) +Solution: Adjust the check for line wrapping. (closes #1010) +Files: src/testdir/test_viminfo.vim, src/ex_cmds.c + +Patch 7.4.2263 +Problem: :filter does not work for many commands. Can only get matching + messages. +Solution: Make :filter work for :command, :map, :list, :number and :print. + Make ":filter!" show non-matching lines. +Files: src/getchar.c, src/ex_cmds.c, src/ex_cmds.h, src/ex_docmd.c, + src/message.c, src/structs.h, src/testdir/test_filter_cmd.vim + +Patch 7.4.2264 +Problem: When adding entries to an empty quickfix list the title is reset. +Solution: Improve handling of the title. (Yegappan Lakshmanan) +Files: src/testdir/test_quickfix.vim, src/quickfix.c + +Patch 7.4.2265 +Problem: printf() isn't tested much. +Solution: Add more tests for printf(). (Dominique Pelle) +Files: src/testdir/test_expr.vim + +Patch 7.4.2266 (after 7.4.2265) +Problem: printf() test fails on Windows. "-inf" is not used. +Solution: Check for Windows-specific values for "nan". Add sign to "inf" + when appropriate. +Files: src/message.c, src/testdir/test_expr.vim + +Patch 7.4.2267 (after 7.4.2266) +Problem: Build fails on MS-Windows. +Solution: Add define to get isinf(). +Files: src/message.c + +Patch 7.4.2268 (after 7.4.2259) +Problem: Using CTRL-N and CTRL-P for incsearch shadows completion keys. +Solution: Use CTRL-T and CTRL-G instead. +Files: runtime/doc/cmdline.txt, src/ex_getln.c, + src/testdir/test_search.vim + +Patch 7.4.2269 +Problem: Using 'hlsearch' highlighting instead of matchpos if there is no + search match. +Solution: Pass NULL as last item to next_search_hl() when searching for + 'hlsearch' match. (Shane Harper, closes #1013) +Files: src/screen.c, src/testdir/test_match.vim. + +Patch 7.4.2270 +Problem: Insufficient testing for NUL bytes on a raw channel. +Solution: Add a test for writing and reading. +Files: src/testdir/test_channel.vim + +Patch 7.4.2271 +Problem: Netbeans test doesn't read settings from file. +Solution: Use "-Xnbauth". +Files: src/testdir/test_netbeans.vim + +Patch 7.4.2272 +Problem: getbufinfo(), getwininfo() and gettabinfo() are inefficient. +Solution: Instead of making a copy of the variables dictionary, use a + reference. +Files: src/evalfunc.c + +Patch 7.4.2273 +Problem: getwininfo() and getbufinfo() are inefficient. +Solution: Do not make a copy of all window/buffer-local options. Make it + possible to get them with gettabwinvar() or getbufvar(). +Files: src/evalfunc.c, src/eval.c, src/testdir/test_bufwintabinfo.vim, + runtime/doc/eval.txt + +Patch 7.4.2274 +Problem: Command line completion on "find **/filename" drops sub-directory. +Solution: Handle this case separately. (Harm te Hennepe, closes #932, closes + #939) +Files: src/misc1.c, src/testdir/test_cmdline.vim + +Patch 7.4.2275 +Problem: ":diffoff!" does not remove filler lines. +Solution: Force a redraw and invalidate the cursor. (closes #1014) +Files: src/diff.c, src/testdir/test_diffmode.vim + +Patch 7.4.2276 +Problem: Command line test fails on Windows when run twice. +Solution: Wipe the buffer so that the directory can be deleted. +Files: src/testdir/test_cmdline.vim + +Patch 7.4.2277 +Problem: Memory leak in getbufinfo() when there is a sign. (Dominique + Pelle) +Solution: Remove extra vim_strsave(). +Files: src/evalfunc.c + +Patch 7.4.2278 +Problem: New users have no idea of the 'scrolloff' option. +Solution: Set 'scrolloff' in defaults.vim. +Files: runtime/defaults.vim + +Patch 7.4.2279 +Problem: Starting diff mode with the cursor in the last line might end up + only showing one closed fold. (John Beckett) +Solution: Scroll the window to show the same relative cursor position. +Files: src/diff.c, src/window.c, src/proto/window.pro + +Patch 7.4.2280 +Problem: printf() doesn't handle infinity float values correctly. +Solution: Add a table with possible infinity values. (Dominique Pelle) +Files: src/message.c, src/testdir/test_expr.vim + +Patch 7.4.2281 +Problem: Timer test fails sometimes. +Solution: Reduce minimum time by 1 msec. +Files: src/testdir/test_timers.vim + +Patch 7.4.2282 +Problem: When a child process is very fast waiting 10 msec for it is + noticeable. (Ramel Eshed) +Solution: Start waiting for 1 msec and gradually increase. +Files: src/os_unix.c + +Patch 7.4.2283 +Problem: Part of ":oldfiles" command isn't cleared. (Lifepillar) +Solution: Clear the rest of the line. (closes 1018) +Files: src/ex_cmds.c + +Patch 7.4.2284 +Problem: Comment in scope header file is outdated. (KillTheMule) +Solution: Point to the help instead. (closes #1017) +Files: src/if_cscope.h + +Patch 7.4.2285 +Problem: Generated files are outdated. +Solution: Generate the files. Avoid errors when generating prototypes. +Files: src/if_mzsch.h, src/Makefile, src/option.h, src/os_mac_conv.c, + src/os_amiga.c, src/vim.h, src/structs.h, src/os_win32.c, + src/if_lua.c, src/proto/mbyte.pro + +Patch 7.4.2286 +Problem: The tee program isn't included. Makefile contains build + instructions that don't work. +Solution: Update the Filelist and build instructions. Remove build + instructions for DOS and old Windows. Add the tee program. +Files: Filelist, Makefile, nsis/gvim.nsi + +Patch 7.4.2287 +Problem: The callback passed to ch_sendraw() is not used. +Solution: Pass the read part, not the send part. (haya14busa, closes #1019) +Files: src/channel.c, src/testdir/test_channel.vim + +Patch 7.4.2288 +Problem: MS-Windows build instructions are clumsy. "dosbin" doesn't build. +Solution: Add rename.bat. Fix building "dosbin". +Files: Makefile, Filelist, rename.bat + +Patch 7.4.2289 +Problem: When installing and $DESTDIR is set the icons probably won't be + installed. +Solution: Create the icon directories if $DESTDIR is not empty. (Danek + Duvall) +Files: src/Makefile + +Patch 7.4.2290 +Problem: Compiler warning in tiny build. (Tony Mechelynck) +Solution: Add #ifdef around infinity_str(). +Files: src/message.c + +Patch 7.4.2291 +Problem: printf() handles floats wrong when there is a sign. +Solution: Fix placing the sign. Add tests. (Dominique Pelle) +Files: src/testdir/test_expr.vim, runtime/doc/eval.txt, src/message.c + +Patch 7.4.2292 (after 7.4.2291) +Problem: Not all systems understand %F in printf(). +Solution: Use %f. +Files: src/message.c + +Patch 7.4.2293 +Problem: Modelines in source code are inconsistent. +Solution: Use the same line in most files. Add 'noet'. (Naruhiko Nishino) +Files: src/alloc.h, src/arabic.c, src/arabic.h, src/ascii.h, + src/blowfish.c, src/buffer.c, src/channel.c, src/charset.c, + src/crypt.c, src/crypt_zip.c, src/dict.c, src/diff.c, + src/digraph.c, src/dosinst.c, src/dosinst.h, src/edit.c, + src/eval.c, src/evalfunc.c, src/ex_cmds.c, src/ex_cmds.h, + src/ex_cmds2.c, src/ex_docmd.c, src/ex_eval.c, src/ex_getln.c, + src/farsi.c, src/farsi.h, src/feature.h, src/fileio.c, src/fold.c, + src/getchar.c, src/glbl_ime.cpp, src/glbl_ime.h, src/globals.h, + src/gui.c, src/gui.h, src/gui_at_fs.c, src/gui_at_sb.c, + src/gui_at_sb.h, src/gui_athena.c, src/gui_beval.c, + src/gui_beval.h, src/gui_gtk.c, src/gui_gtk_f.c, src/gui_gtk_f.h, + src/gui_gtk_vms.h, src/gui_gtk_x11.c, src/gui_mac.c, + src/gui_motif.c, src/gui_photon.c, src/gui_w32.c, src/gui_x11.c, + src/gui_x11_pm.h, src/gui_xmdlg.c, src/gui_xmebw.c, + src/gui_xmebw.h, src/gui_xmebwp.h, src/hangulin.c, src/hardcopy.c, + src/hashtab.c, src/if_cscope.c, src/if_cscope.h, src/if_mzsch.c, + src/if_mzsch.h, src/if_ole.cpp, src/if_perl.xs, src/if_perlsfio.c, + src/if_python3.c, src/if_ruby.c, src/if_tcl.c, src/if_xcmdsrv.c, + src/integration.c, src/integration.h, src/iscygpty.c, src/json.c, + src/json_test.c, src/keymap.h, src/list.c, src/macros.h, + src/main.c, src/mark.c, src/mbyte.c, src/memfile.c, + src/memfile_test.c, src/memline.c, src/menu.c, src/message.c, + src/message_test.c, src/misc1.c, src/misc2.c, src/move.c, + src/nbdebug.c, src/nbdebug.h, src/netbeans.c, src/normal.c, + src/ops.c, src/option.c, src/option.h, src/os_amiga.c, + src/os_amiga.h, src/os_beos.c, src/os_beos.h, src/os_dos.h, + src/os_mac.h, src/os_mac_conv.c, src/os_macosx.m, src/os_mint.h, + src/os_mswin.c, src/os_qnx.c, src/os_qnx.h, src/os_unix.c, + src/os_unix.h, src/os_unixx.h, src/os_vms.c, src/os_w32dll.c, + src/os_w32exe.c, src/os_win32.c, src/os_win32.h, src/popupmnu.c, + src/proto.h, src/pty.c, src/quickfix.c, src/regexp.c, + src/regexp.h, src/regexp_nfa.c, src/screen.c, src/search.c, + src/sha256.c, src/spell.c, src/spell.h, src/spellfile.c, + src/structs.h, src/syntax.c, src/tag.c, src/term.c, src/term.h, + src/termlib.c, src/ui.c, src/undo.c, src/uninstal.c, + src/userfunc.c, src/version.c, src/version.h, src/vim.h, + src/vim.rc, src/vimio.h, src/vimrun.c, src/winclip.c, + src/window.c, src/workshop.c, src/workshop.h, src/wsdebug.c, + src/wsdebug.h, src/xpm_w32.c + +Patch 7.4.2294 +Problem: Sign test fails on MS-Windows when using the distributed zip + archives. +Solution: Create dummy files instead of relying on files in the pixmaps + directory. +Files: src/testdir/test_signs.vim + +Patch 7.4.2295 (after 7.4.2293) +Problem: Cscope test fails. +Solution: Avoid checking for specific line and column numbers. +Files: src/testdir/test_cscope.vim + +Patch 7.4.2296 +Problem: No tests for :undolist and "U" command. +Solution: Add tests. (Dominique Pelle) +Files: src/testdir/test_undo.vim + +Patch 7.4.2297 +Problem: When starting a job that reads from a buffer and reaching the end, + the job hangs. +Solution: Close the pipe or socket when all lines were read. +Files: src/channel.c, src/testdir/test_channel.vim + +Patch 7.4.2298 +Problem: It is not possible to close the "in" part of a channel. +Solution: Add ch_close_in(). +Files: src/evalfunc.c, src/channel.c, src/proto/channel.pro, + src/testdir/test_channel.vim, runtime/doc/eval.txt, + runtime/doc/channel.txt + +Patch 7.4.2299 +Problem: QuickFixCmdPre and QuickFixCmdPost autocommands are not always + triggered. +Solution: Also trigger on ":cexpr", ":cbuffer", etc. (Yegappan Lakshmanan) +Files: src/quickfix.c, src/testdir/test_quickfix.vim + +Patch 7.4.2300 +Problem: Get warning for deleting autocommand group when the autocommand + using the group is scheduled for deletion. (Pavol Juhas) +Solution: Check for deleted autocommand. +Files: src/fileio.c, src/testdir/test_autocmd.vim + +Patch 7.4.2301 +Problem: MS-Windows: some files remain after testing. +Solution: Close the channel output file. Wait for the file handle to be + closed before deleting the file. +Files: src/os_win32.c, src/testdir/test_channel.vim + +Patch 7.4.2302 +Problem: Default interface versions for MS-Windows are outdated. +Solution: Use Active Perl 5.24, Python 3.5.2. Could only make it work with + Ruby 1.9.2. +Files: src/bigvim.bat, src/bigvim64.bat, src/Make_mvc.mak + +Patch 7.4.2303 +Problem: When using "is" the mode isn't always updated. +Solution: Redraw the command line. (Christian Brabandt) +Files: src/search.c + +Patch 7.4.2304 +Problem: In a timer callback the timer itself can't be found or stopped. + (Thinca) +Solution: Do not remove the timer from the list, remember whether it was + freed. +Files: src/ex_cmds2.c, src/testdir/test_timers.vim + +Patch 7.4.2305 +Problem: Marks, writefile and nested function tests are old style. +Solution: Turn them into new style tests. (Yegappan Lakshmanan) +Files: src/testdir/Make_all.mak, src/testdir/test_marks.in, + src/testdir/test_marks.ok, src/testdir/test_marks.vim, + src/testdir/test_nested_function.in, + src/testdir/test_nested_function.ok, + src/testdir/test_nested_function.vim, + src/testdir/test_writefile.in, src/testdir/test_writefile.ok, + src/testdir/test_writefile.vim, src/Makefile + +Patch 7.4.2306 +Problem: Default value for 'langremap' is wrong. +Solution: Set the right value. (Jürgen Krämer) Add a test. +Files: src/option.c, src/testdir/test_mapping.vim + +Patch 7.4.2307 +Problem: Several tests are old style. +Solution: Turn them into new style tests. (Yegappan Lakshmanan) +Files: src/testdir/Make_all.mak, src/testdir/test102.in, + src/testdir/test102.ok, src/testdir/test46.in, + src/testdir/test46.ok, src/testdir/test81.in, + src/testdir/test81.ok, src/testdir/test_charsearch.in, + src/testdir/test_charsearch.ok, src/testdir/test_charsearch.vim, + src/testdir/test_fnameescape.vim, src/testdir/test_substitute.vim, + src/Makefile + +Patch 7.4.2308 (after 7.4.2307) +Problem: Old charsearch test still listed in Makefile. +Solution: Remove the line. +Files: src/testdir/Make_all.mak + +Patch 7.4.2309 +Problem: Crash when doing tabnext in a BufUnload autocmd. (Dominique Pelle) +Solution: When detecting that the tab page changed, don't just abort but + delete the window where w_buffer is NULL. +Files: src/window.c, src/testdir/test_tabpage.vim + +Patch 7.4.2310 (after 7.4.2304) +Problem: Accessing freed memory when a timer does not repeat. +Solution: Free after removing it. (Dominique Pelle) +Files: src/ex_cmds2.c + +Patch 7.4.2311 +Problem: Appveyor 64 bit build still using Python 3.4 +Solution: Switch to Python 3.5. (Ken Takata, closes #1032) +Files: appveyor.yml, src/appveyor.bat + +Patch 7.4.2312 +Problem: Crash when autocommand moves to another tab. (Dominique Pelle) +Solution: When navigating to another window halfway the :edit command go + back to the right window. +Files: src/buffer.c, src/ex_cmds.c, src/ex_getln.c, src/ex_docmd.c, + src/window.c, src/proto/ex_getln.pro, src/testdir/test_tabpage.vim + +Patch 7.4.2313 +Problem: Crash when deleting an augroup and listing an autocommand. + (Dominique Pelle) +Solution: Make sure deleted_augroup is valid. +Files: src/fileio.c, src/testdir/test_autocmd.vim + +Patch 7.4.2314 +Problem: No error when deleting an augroup while it's the current one. +Solution: Disallow deleting an augroup when it's the current one. +Files: src/fileio.c, src/testdir/test_autocmd.vim + +Patch 7.4.2315 +Problem: Insufficient testing for Normal mode commands. +Solution: Add a big test. (Christian Brabandt, closes #1029) +Files: src/Makefile, src/testdir/Make_all.mak, + src/testdir/test_normal.vim + +Patch 7.4.2316 +Problem: Channel sort test is flaky. +Solution: Add a check the output has been read. +Files: src/testdir/test_channel.vim + +Patch 7.4.2317 (after 7.4.2315) +Problem: Normal mode tests fail on MS-Windows. +Solution: Do some tests only on Unix. Set 'fileformat' to "unix". +Files: src/testdir/test_normal.vim + +Patch 7.4.2318 +Problem: When 'incsearch' is not set CTRL-T and CTRL-G are not inserted as + before. +Solution: Move #ifdef and don't use goto. +Files: src/ex_getln.c + +Patch 7.4.2319 +Problem: No way for a system wide vimrc to stop loading defaults.vim. + (Christian Hesse) +Solution: Bail out of defaults.vim if skip_defaults_vim was set. +Files: runtime/defaults.vim + +Patch 7.4.2320 +Problem: Redraw problem when using 'incsearch'. +Solution: Save the current view when deleting characters. (Christian + Brabandt) Fix that the '" mark is set in the wrong position. Don't + change the search start when using BS. +Files: src/ex_getln.c, src/normal.c, src/testdir/test_search.vim + +Patch 7.4.2321 +Problem: When a test is commented out we forget about it. +Solution: Let a test throw an exception with "Skipped" and list skipped test + functions. (Christian Brabandt) +Files: src/testdir/Makefile, src/testdir/runtest.vim, + src/testdir/test_popup.vim, src/testdir/README.txt + +Patch 7.4.2322 +Problem: Access memory beyond the end of the line. (Dominique Pelle) +Solution: Adjust the cursor column. +Files: src/move.c, src/testdir/test_normal.vim + +Patch 7.4.2323 +Problem: Using freed memory when using 'formatexpr'. (Dominique Pelle) +Solution: Make a copy of 'formatexpr' before evaluating it. +Files: src/ops.c, src/testdir/test_normal.vim + +Patch 7.4.2324 +Problem: Crash when editing a new buffer and BufUnload autocommand wipes + out the new buffer. (Norio Takagi) +Solution: Don't allow wiping out this buffer. (partly by Hirohito Higashi) + Move old style test13 into test_autocmd. Avoid ml_get error when + editing a file. +Files: src/structs.h, src/buffer.c, src/ex_cmds.c, src/ex_docmd.c, + src/window.c, src/testdir/test13.in, src/testdir/test13.ok, + src/testdir/test_autocmd.vim, src/testdir/Make_all.mak, + src/Makefile + +Patch 7.4.2325 (after 7.4.2324) +Problem: Tiny build fails. +Solution: Add #ifdef. +Files: src/buffer.c + +Patch 7.4.2326 +Problem: Illegal memory access when Visual selection starts in invalid + position. (Dominique Pelle) +Solution: Correct position when needed. +Files: src/normal.c, src/misc2.c, src/proto/misc2.pro + +Patch 7.4.2327 +Problem: Freeing a variable that is on the stack. +Solution: Don't free res_tv or err_tv. (Ozaki Kiichi) +Files: src/channel.c + +Patch 7.4.2328 +Problem: Crash when BufWinLeave autocmd goes to another tab page. (Hirohito + Higashi) +Solution: Make close_buffer() go back to the right window. +Files: src/buffer.c, src/testdir/test_autocmd.vim + +Patch 7.4.2329 +Problem: Error for min() and max() contains %s. (Nikolai Pavlov) +Solution: Pass the function name. (closes #1040) +Files: src/evalfunc.c, src/testdir/test_expr.vim + +Patch 7.4.2330 +Problem: Coverity complains about not checking curwin to be NULL. +Solution: Use firstwin to avoid the warning. +Files: src/buffer.c + +Patch 7.4.2331 +Problem: Using CTRL-X CTRL-V to complete a command line from Insert mode + does not work after entering an expression on the command line. +Solution: Don't use "ccline" when not actually using a command line. (test + by Hirohito Higashi) +Files: src/edit.c, src/ex_getln.c, src/proto/ex_getln.pro, + src/testdir/test_popup.vim + +Patch 7.4.2332 +Problem: Crash when stop_timer() is called in a callback of a callback. + Vim hangs when the timer callback uses too much time. +Solution: Set tr_id to -1 when a timer is to be deleted. Don't keep calling + callbacks forever. (Ozaki Kiichi) +Files: src/evalfunc.c, src/ex_cmds2.c, src/structs.h, + src/proto/ex_cmds2.pro, src/testdir/test_timers.vim + +Patch 7.4.2333 +Problem: Outdated comments in test. +Solution: Cleanup normal mode test. (Christian Brabandt) +Files: src/testdir/test_normal.vim + +Patch 7.4.2334 +Problem: On MS-Windows test_getcwd leaves Xtopdir behind. +Solution: Set 'noswapfile'. (Michael Soyka) +Files: src/testdir/test_getcwd.in + +Patch 7.4.2335 +Problem: taglist() is slow. (Luc Hermitte) +Solution: Check for CTRL-C less often when doing a linear search. (closes + #1044) +Files: src/tag.c + +Patch 7.4.2336 +Problem: Running normal mode tests leave a couple of files behind. + (Yegappan Lakshmanan) +Solution: Delete the files. (Christian Brabandt) +Files: src/testdir/test_normal.vim + +Patch 7.4.2337 +Problem: taglist() is still slow. (Luc Hermitte) +Solution: Check for CTRL-C less often when finding duplicates. +Files: src/tag.c + +Patch 7.4.2338 +Problem: Can't build with small features. (John Marriott) +Solution: Nearly always define FEAT_TAG_BINS. +Files: src/feature.h, src/tag.c + +Patch 7.4.2339 +Problem: Tab page test fails when run as fake root. +Solution: Check 'buftype' instead of 'filetype'. (James McCoy, closes #1042) +Files: src/testdir/test_tabpage.vim + +Patch 7.4.2340 +Problem: MS-Windows: Building with Ruby uses old version. +Solution: Update to 2.2.X. Use clearer name for the API version. (Ken + Takata) +Files: Makefile, src/INSTALLpc.txt, src/Make_cyg_ming.mak, + src/Make_mvc.mak, src/bigvim.bat + +Patch 7.4.2341 +Problem: Tiny things. Test doesn't clean up properly. +Solution: Adjust comment and white space. Restore option value. +Files: src/ex_cmds.c, src/message.c, src/testdir/test_autocmd.vim + +Patch 7.4.2342 +Problem: Typo in MS-Windows build script. +Solution: change "w2" to "22". +Files: src/bigvim.bat + +Patch 7.4.2343 +Problem: Too many old style tests. +Solution: Turn several into new style tests. (Yegappan Lakshmanan) +Files: src/testdir/Make_all.mak, src/testdir/test101.in, + src/testdir/test101.ok, src/testdir/test18.in, + src/testdir/test18.ok, src/testdir/test2.in, src/testdir/test2.ok, + src/testdir/test21.in, src/testdir/test21.ok, + src/testdir/test6.in, src/testdir/test6.ok, + src/testdir/test_arglist.vim, src/testdir/test_charsearch.vim, + src/testdir/test_fnameescape.vim, src/testdir/test_gf.vim, + src/testdir/test_hlsearch.vim, src/testdir/test_smartindent.vim, + src/testdir/test_tagjump.vim, src/Makefile + +Patch 7.4.2344 +Problem: The "Reading from channel output..." message can be unwanted. + Appending to a buffer leaves an empty first line behind. +Solution: Add the "out_msg" and "err_msg" options. Writing the first line + overwrites the first, empty line. +Files: src/structs.h, src/channel.c, src/testdir/test_channel.vim, + runtime/doc/channel.txt + +Patch 7.4.2345 (after 7.4.2340) +Problem: For MinGW RUBY_API_VER_LONG isn't set correctly. Many default + version numbers are outdated. +Solution: Set RUBY_API_VER_LONG to RUBY_VER_LONG. Use latest stable releases + for defaults. (Ken Takata) +Files: src/Make_cyg_ming.mak, src/Make_mvc.mak + +Patch 7.4.2346 +Problem: Autocommand test fails when run directly, passes when run as part + of test_alot. +Solution: Add command to make the cursor move. Close a tab page. +Files: src/testdir/test_autocmd.vim + +Patch 7.4.2347 +Problem: Crash when closing a buffer while Visual mode is active. + (Dominique Pelle) +Solution: Adjust the position before computing the number of lines. + When closing the current buffer stop Visual mode. +Files: src/buffer.c, src/normal.c, src/testdir/test_normal.vim + +Patch 7.4.2348 +Problem: Crash on exit when EXITFREE is defined. (Dominique Pelle) +Solution: Don't access curwin when exiting. +Files: src/buffer.c + +Patch 7.4.2349 +Problem: Valgrind reports using uninitialized memory. (Dominique Pelle) +Solution: Check the length before checking for a NUL. +Files: src/message.c + +Patch 7.4.2350 +Problem: Test 86 and 87 fail with some version of Python. +Solution: Unify "can't" and "cannot". Unify quotes. +Files: src/testdir/test86.in, src/testdir/test86.ok, + src/testdir/test87.in, src/testdir/test87.ok + +Patch 7.4.2351 +Problem: Netbeans test fails when run from unpacked MS-Windows sources. +Solution: Open README.txt instead of Makefile. +Files: src/testdir/test_netbeans.py, src/testdir/test_netbeans.vim + +Patch 7.4.2352 +Problem: Netbeans test fails in shadow directory. +Solution: Also copy README.txt to the shadow directory. +Files: src/Makefile + +Patch 7.4.2353 +Problem: Not enough test coverage for Normal mode commands. +Solution: Add more tests. (Christian Brabandt) +Files: src/testdir/test_normal.vim + +Patch 7.4.2354 +Problem: The example that explains nested backreferences does not work + properly with the new regexp engine. (Harm te Hennepe) +Solution: Also save the end position when adding a state. (closes #990) +Files: src/regexp_nfa.c, src/testdir/test_regexp_latin.vim + +Patch 7.4.2355 +Problem: Regexp fails to match when using "\>\)\?". (Ramel) +Solution: When a state is already in the list, but addstate_here() is used + and the existing state comes later, add the new state anyway. +Files: src/regexp_nfa.c, src/testdir/test_regexp_latin.vim + +Patch 7.4.2356 +Problem: Reading past end of line when using previous substitute pattern. + (Dominique Pelle) +Solution: Don't set "pat" only set "searchstr". +Files: src/search.c, src/testdir/test_search.vim + +Patch 7.4.2357 +Problem: Attempt to read history entry while not initialized. +Solution: Skip when the index is negative. +Files: src/ex_getln.c + +Patch 7.4.2358 +Problem: Compiler warnings with Solaris Studio when using GTK3. (Danek + Duvall) +Solution: Define FUNC2GENERIC depending on the system. (Kazunobu Kuriyama) +Files: src/gui.h, src/gui_beval.c, src/gui_gtk_f.c + +Patch 7.4.2359 +Problem: Memory leak in timer_start(). +Solution: Check the right field to be NULL. +Files: src/evalfunc.c, src/testdir/test_timers.vim + +Patch 7.4.2360 +Problem: Invalid memory access when formatting. (Dominique Pelle) +Solution: Make sure cursor line and column are associated. +Files: src/misc1.c + +Patch 7.4.2361 +Problem: Checking for last_timer_id to overflow is not reliable. (Ozaki + Kiichi) +Solution: Check for the number not going up. +Files: src/ex_cmds2.c + +Patch 7.4.2362 +Problem: Illegal memory access with ":1@". (Dominique Pelle) +Solution: Correct cursor column after setting the line number. Also avoid + calling end_visual_mode() when not in Visual mode. +Files: src/ex_docmd.c, src/buffer.c + +Patch 7.4.2363 +Problem: Superfluous function prototypes. +Solution: Remove them. +Files: src/regexp.c + +Patch 7.4.2364 +Problem: Sort test sometimes fails. +Solution: Add it to the list of flaky tests. +Files: src/testdir/runtest.vim + +Patch 7.4.2365 +Problem: Needless line break. Confusing directory name. +Solution: Remove line break. Prepend "../" to "tools". +Files: Makefile, src/normal.c + +Patch 7.4.2366 +Problem: MS-Windows gvim.exe does not have DirectX support. +Solution: Add the DIRECTX to the script. +Files: src/bigvim.bat + +Patch 7.4.2367 (after 7.4.2364) +Problem: Test runner misses a comma. +Solution: Add the comma. +Files: src/testdir/runtest.vim + +Patch 8.0.0001 +Problem: Intro screen still mentions version7. (Paul) +Solution: Change it to version8. +Files: src/version.c + +Patch 8.0.0002 +Problem: The netrw plugin does not work. +Solution: Make it accept version 8.0. +Files: runtime/autoload/netrw.vim + +Patch 8.0.0003 +Problem: getwinvar() returns wrong Value of boolean and number options, + especially non big endian systems. (James McCoy) +Solution: Cast the pointer to long or int. (closes #1060) +Files: src/option.c, src/testdir/test_bufwintabinfo.vim + +Patch 8.0.0004 +Problem: A string argument for function() that is not a function name + results in an error message with NULL. (Christian Brabandt) +Solution: Use the argument for the error message. +Files: src/evalfunc.c, src/testdir/test_expr.vim + +Patch 8.0.0005 +Problem: Netbeans test fails with Python 3. (Jonathonf) +Solution: Encode the string before sending it. (closes #1070) +Files: src/testdir/test_netbeans.py + +Patch 8.0.0006 +Problem: ":lb" is interpreted as ":lbottom" while the documentation says it + means ":lbuffer". +Solution: Adjust the order of the commands. (haya14busa, closes #1093) +Files: src/ex_cmds.h + +Patch 8.0.0007 +Problem: Vim 7.4 is still mentioned in a few places. +Solution: Update to Vim 8. (Uncle Bill, closes #1094) +Files: src/INSTALLpc.txt, src/vimtutor, uninstal.txt + +Patch 8.0.0008 +Problem: Popup complete test is disabled. +Solution: Enable the test and change the assert. (Hirohito Higashi) +Files: src/testdir/test_popup.vim + +Patch 8.0.0009 +Problem: Unnecessary workaround for AppVeyor. +Solution: Revert patch 7.4.990. (Christian Brabandt) +Files: appveyor.yml + +Patch 8.0.0010 +Problem: Crash when editing file that starts with crypt header. (igor2x) +Solution: Check for length of text. (Christian Brabandt) Add a test. +Files: src/fileio.c, src/testdir/test_crypt.vim, src/Makefile, + src/testdir/Make_all.mak + +Patch 8.0.0011 +Problem: On OSX Test_pipe_through_sort_all() sometimes fails. +Solution: Add the test to the list of flaky tests. +Files: src/testdir/runtest.vim + +Patch 8.0.0012 +Problem: Typos in comments. +Solution: Change "its" to "it's". (Matthew Brener, closes #1088) +Files: src/evalfunc.c, src/main.aap, src/nbdebug.c, src/netbeans.c, + src/quickfix.c, src/workshop.c, src/wsdebug.c + +Patch 8.0.0013 (after 8.0.0011) +Problem: Missing comma in list. +Solution: Add the comma. +Files: src/testdir/runtest.vim + +Patch 8.0.0014 +Problem: Crypt tests are old style. +Solution: Convert to new style. +Files: src/testdir/test71.in, src/testdir/test71.ok, + src/testdir/test71a.in, src/testdir/test_crypt.vim, src/Makefile, + src/testdir/Make_all.mak + +Patch 8.0.0015 +Problem: Can't tell which part of a channel has "buffered" status. +Solution: Add an optional argument to ch_status(). Let ch_info() also + return "buffered" for out_status and err_status. +Files: src/evalfunc.c, src/channel.c, src/proto/channel.pro, + src/testdir/test_channel.vim, runtime/doc/eval.txt + +Patch 8.0.0016 (after 8.0.0015) +Problem: Build fails. +Solution: Include missing change. +Files: src/eval.c + +Patch 8.0.0017 +Problem: Cannot get the number of the current quickfix or location list. +Solution: Use the current list if "nr" in "what" is zero. (Yegappan + Lakshmanan) Remove debug command from test. +Files: src/quickfix.c, src/testdir/test_quickfix.vim, + runtime/doc/eval.txt + +Patch 8.0.0018 +Problem: When using ":sleep" channel input is not handled. +Solution: When there is a channel check for input also when not in raw mode. + Check every 100 msec. +Files: src/channel.c, src/proto/channel.pro, src/ui.c, src/proto/ui.pro, + src/ex_docmd.c, src/os_amiga.c, src/proto/os_amiga.pro, + src/os_unix.c, src/proto/os_unix.pro, src/os_win32.c, + src/proto/os_win32.pro + +Patch 8.0.0019 +Problem: Test_command_count is old style. +Solution: Turn it into a new style test. (Naruhiko Nishino) + Use more assert functions. +Files: src/Makefile, src/testdir/Make_all.mak, src/testdir/test_alot.vim, + src/testdir/test_autocmd.vim, src/testdir/test_command_count.in, + src/testdir/test_command_count.ok, + src/testdir/test_command_count.vim + +Patch 8.0.0020 +Problem: The regexp engines are not reentrant. +Solution: Add regexec_T and save/restore the state when needed. +Files: src/regexp.c, src/regexp_nfa.c, src/testdir/test_expr.vim, + runtime/doc/eval.txt, runtime/doc/change.txt + +Patch 8.0.0021 +Problem: In the GUI when redrawing the cursor it may be on the second half + of a double byte character. +Solution: Correct the cursor column. (Yasuhiro Matsumoto) +Files: src/screen.c + +Patch 8.0.0022 +Problem: If a channel in NL mode is missing the NL at the end the remaining + characters are dropped. +Solution: When the channel is closed use the remaining text. (Ozaki Kiichi) +Files: src/channel.c, src/testdir/test_channel.vim + +Patch 8.0.0023 +Problem: "gd" and "gD" may find a match in a comment or string. +Solution: Ignore matches in comments and strings. (Anton Lindqvist) +Files: src/normal.c, src/testdir/test_goto.vim + +Patch 8.0.0024 +Problem: When the netbeans channel closes, "DETACH" is put in the output + part. (Ozaki Kiichi) +Solution: Write "DETACH" in the socket part. +Files: src/channel.c, src/testdir/test_netbeans.vim + +Patch 8.0.0025 +Problem: Inconsistent use of spaces vs tabs in gd test. +Solution: Use tabs. (Anton Lindqvist) +Files: src/testdir/test_goto.vim + +Patch 8.0.0026 +Problem: Error format with %W, %C and %Z does not work. (Gerd Wachsmuth) +Solution: Skip code when qf_multiignore is set. (Lcd) +Files: src/quickfix.c, src/testdir/test_quickfix.vim + +Patch 8.0.0027 +Problem: A channel is closed when reading on stderr or stdout fails, but + there may still be something to read on another part. +Solution: Turn ch_to_be_closed into a bitfield. (Ozaki Kiichi) +Files: src/channel.c, src/eval.c, src/structs.h, src/proto/channel.pro, + src/testdir/test_channel.vim + +Patch 8.0.0028 +Problem: Superfluous semicolons. +Solution: Remove them. (Ozaki Kiichi) +Files: src/ex_cmds2.c + +Patch 8.0.0029 +Problem: Code for MS-Windows is complicated because of the exceptions for + old systems. +Solution: Drop support for MS-Windows older than Windows XP. (Ken Takata) +Files: runtime/doc/gui_w32.txt, runtime/doc/os_win32.txt, + runtime/doc/todo.txt, src/GvimExt/Makefile, src/Make_mvc.mak, + src/evalfunc.c, src/ex_cmds.c, src/ex_docmd.c, src/gui_w32.c, + src/if_cscope.c, src/misc1.c, src/misc2.c, src/option.c, + src/os_mswin.c, src/os_win32.c, src/os_win32.h, + src/proto/os_mswin.pro, src/proto/os_win32.pro, src/version.c + +Patch 8.0.0030 +Problem: Mouse mode is not automatically detected for tmux. +Solution: Check for 'term' to be "tmux". (Michael Henry) +Files: src/os_unix.c + +Patch 8.0.0031 +Problem: After ":bwipeout" 'fileformat' is not set to the right default. +Solution: Get the default from 'fileformats'. (Mike Williams) +Files: src/option.c, src/Makefile, src/testdir/test_fileformat.vim, + src/testdir/test_alot.vim + +Patch 8.0.0032 +Problem: Tests may change the input file when something goes wrong. +Solution: Avoid writing the input file. +Files: src/testdir/test51.in, src/testdir/test67.in, + src/testdir/test97.in, src/testdir/test_tabpage.vim + +Patch 8.0.0033 +Problem: Cannot use overlapping positions with matchaddpos(). +Solution: Check end of match. (Ozaki Kiichi) Add a test (Hirohito Higashi) +Files: src/screen.c, src/testdir/test_match.vim + +Patch 8.0.0034 +Problem: No completion for ":messages". +Solution: Complete "clear" argument. (Hirohito Higashi) +Files: src/ex_docmd.c, src/ex_getln.c, src/proto/ex_docmd.pro, + src/testdir/test_cmdline.vim, src/vim.h, + runtime/doc/eval.txt, runtime/doc/map.txt + +Patch 8.0.0035 (after 7.4.2013) +Problem: Order of matches for 'omnifunc' is messed up. (Danny Su) +Solution: Do not set compl_curr_match when called from complete_check(). + (closes #1168) +Files: src/edit.c, src/evalfunc.c, src/proto/edit.pro, src/search.c, + src/spell.c, src/tag.c, src/testdir/test76.in, + src/testdir/test76.ok, src/testdir/test_popup.vim, src/Makefile, + src/testdir/Make_all.mak + +Patch 8.0.0036 +Problem: Detecting that a job has finished may take a while. +Solution: Check for a finished job more often (Ozaki Kiichi) +Files: src/channel.c, src/os_unix.c, src/os_win32.c, + src/proto/os_unix.pro, src/proto/os_win32.pro, + src/testdir/test_channel.vim + +Patch 8.0.0037 +Problem: Get E924 when switching tabs. () +Solution: Use win_valid_any_tab() instead of win_valid(). (Martin Vuille, + closes #1167, closes #1171) +Files: src/quickfix.c, src/testdir/test_quickfix.vim + +Patch 8.0.0038 +Problem: OPEN_CHR_FILES not defined for FreeBSD using Debian userland + files. +Solution: Check for __FreeBSD_kernel__. (James McCoy, closes #1166) +Files: src/vim.h + +Patch 8.0.0039 +Problem: When Vim 8 reads an old viminfo and exits, the next time marks are + not read from viminfo. (Ned Batchelder) +Solution: Set a mark when it wasn't set before, even when the timestamp is + zero. (closes #1170) +Files: src/mark.c, src/testdir/test_viminfo.vim + +Patch 8.0.0040 (after 8.0.0033) +Problem: Whole line highlighting with matchaddpos() does not work. +Solution: Check for zero length. (Hirohito Higashi) +Files: src/screen.c, src/testdir/test_match.vim + +Patch 8.0.0041 +Problem: When using Insert mode completion but not actually inserting + anything an undo item is still created. (Tommy Allen) +Solution: Do not call stop_arrow() when not inserting anything. +Files: src/edit.c, src/testdir/test_popup.vim + +Patch 8.0.0042 (after 8.0.0041) +Problem: When using Insert mode completion with 'completeopt' containing + "noinsert" change is not saved for undo. (Tommy Allen) +Solution: Call stop_arrow() before inserting for pressing Enter. +Files: src/edit.c, src/testdir/test_popup.vim + +Patch 8.0.0043 (after 8.0.0041) +Problem: When using Insert mode completion with 'completeopt' containing + "noinsert" with CTRL-N the change is not saved for undo. (Tommy + Allen) +Solution: Call stop_arrow() before inserting for any key. +Files: src/edit.c, src/testdir/test_popup.vim + +Patch 8.0.0044 +Problem: In diff mode the cursor may end up below the last line, resulting + in an ml_get error. +Solution: Check the line to be valid. +Files: src/move.c, src/diff.c, src/proto/diff.pro, + src/testdir/test_diffmode.vim + +Patch 8.0.0045 +Problem: Calling job_stop() right after job_start() does not work. +Solution: Block signals while fork is still busy. (Ozaki Kiichi, closes + #1155) +Files: src/auto/configure, src/config.h.in, src/configure.in, + src/os_unix.c, src/testdir/test_channel.vim + +Patch 8.0.0046 +Problem: Using NUL instead of NULL. +Solution: Change to NULL. (Dominique Pelle) +Files: src/ex_cmds.c, src/json.c + +Patch 8.0.0047 +Problem: Crash when using the preview window from an unnamed buffer. + (lifepillar) +Solution: Do not clear the wrong buffer. (closes #1200) +Files: src/popupmnu.c + +Patch 8.0.0048 +Problem: On Windows job_stop() stops cmd.exe, not the processes it runs. + (Linwei) +Solution: Iterate over all processes and terminate the one where the parent + is the job process. (Yasuhiro Matsumoto, closes #1184) +Files: src/os_win32.c, src/structs.h + +Patch 8.0.0049 +Problem: When a match ends in part of concealed text highlighting, it might + mess up concealing by resetting prev_syntax_id. +Solution: Do not reset prev_syntax_id and add a test to verify. (Christian + Brabandt, closes #1092) +Files: src/screen.c, src/testdir/test_matchadd_conceal.vim + +Patch 8.0.0050 +Problem: An exiting job is detected with a large latency. +Solution: Check for pending job more often. (Ozaki Kiichi) Change the + double loop in mch_inchar() into one. +Files: src/channel.c, src/os_unix.c, src/testdir/shared.vim, + src/testdir/test_channel.vim + +Patch 8.0.0051 (after 8.0.0048) +Problem: New code for job_stop() breaks channel test on AppVeyor. +Solution: Revert the change. +Files: src/os_win32.c, src/structs.h + +Patch 8.0.0052 (after 8.0.0049) +Problem: Conceal test passes even without the bug fix. +Solution: Add a redraw command. (Christian Brabandt) +Files: src/testdir/test_matchadd_conceal.vim + +Patch 8.0.0053 (after 8.0.0047) +Problem: No test for what 8.0.0047 fixes. +Solution: Add a test. (Hirohito Higashi) +Files: src/testdir/test_popup.vim + +Patch 8.0.0054 (after 8.0.0051) +Problem: On Windows job_stop() stops cmd.exe, not the processes it runs. + (Linwei) +Solution: Iterate over all processes and terminate the one where the parent + is the job process. Now only when there is no job object. + (Yasuhiro Matsumoto, closes #1203) +Files: src/os_win32.c + +Patch 8.0.0055 +Problem: Minor comment and style deficiencies. +Solution: Update comments and fix style. +Files: src/buffer.c, src/misc2.c, src/os_unix.c + +Patch 8.0.0056 +Problem: When setting 'filetype' there is no check for a valid name. +Solution: Only allow valid characters in 'filetype', 'syntax' and 'keymap'. +Files: src/option.c, src/testdir/test_options.vim + +Patch 8.0.0057 (after 8.0.0056) +Problem: Tests fail without the 'keymap' features. +Solution: Check for feature in test. +Files: src/testdir/test_options.vim + +Patch 8.0.0058 +Problem: Positioning of the popup menu is not good. +Solution: Position it better. (Hirohito Higashi) +Files: src/popupmnu.c + +Patch 8.0.0059 +Problem: Vim does not build on VMS systems. +Solution: Various changes for VMS. (Zoltan Arpadffy) +Files: src/json.c, src/macros.h, src/Make_vms.mms, src/os_unix.c, + src/os_unix.h, src/os_vms.c, src/os_vms_conf.h, + src/proto/os_vms.pro, src/testdir/Make_vms.mms + +Patch 8.0.0060 +Problem: When using an Ex command for 'keywordprg' it is escaped as with a + shell command. (Romain Lafourcade) +Solution: Escape for an Ex command. (closes #1175) +Files: src/normal.c, src/testdir/test_normal.vim + +Patch 8.0.0061 (after 8.0.0058) +Problem: Compiler warning for unused variable. +Solution: Add #ifdef. (John Marriott) +Files: src/popupmnu.c + +Patch 8.0.0062 +Problem: No digraph for HORIZONTAL ELLIPSIS. +Solution: Use ",.". (Hans Ginzel, closes #1226) +Files: src/digraph.c, runtime/doc/digraph.txt + +Patch 8.0.0063 +Problem: Compiler warning for comparing with unsigned. (Zoltan Arpadffy) +Solution: Change <= to ==. +Files: src/undo.c + +Patch 8.0.0064 (after 8.0.0060) +Problem: Normal test fails on MS-Windows. +Solution: Don't try using an illegal file name. +Files: src/testdir/test_normal.vim + +Patch 8.0.0065 (after 8.0.0056) +Problem: Compiler warning for unused function in tiny build. (Tony + Mechelynck) +Solution: Add #ifdef. +Files: src/option.c + +Patch 8.0.0066 +Problem: when calling an operator function when 'linebreak' is set, it is + internally reset before calling the operator function. +Solution: Restore 'linebreak' before calling op_function(). (Christian + Brabandt) +Files: src/normal.c, src/testdir/test_normal.vim + +Patch 8.0.0067 +Problem: VMS has a problem with infinity. +Solution: Avoid an overflow. (Zoltan Arpadffy) +Files: src/json.c, src/macros.h + +Patch 8.0.0068 +Problem: Checking did_throw after executing autocommands is wrong. (Daniel + Hahler) +Solution: Call aborting() instead, and only when autocommands were executed. +Files: src/quickfix.c, src/if_cscope.c, src/testdir/test_quickfix.vim + +Patch 8.0.0069 +Problem: Compiler warning for self-comparison. +Solution: Define ONE_WINDOW and add #ifdef. +Files: src/globals.h, src/buffer.c, src/ex_docmd.c, src/move.c, + src/screen.c, src/quickfix.c, src/window.c vim:tw=78:ts=8:ft=help:norl: diff -Nru vim-7.4.2156/runtime/doc/vi_diff.txt vim-8.0.0134/runtime/doc/vi_diff.txt --- vim-7.4.2156/runtime/doc/vi_diff.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/vi_diff.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*vi_diff.txt* For Vim version 7.4. Last change: 2016 Feb 12 +*vi_diff.txt* For Vim version 8.0. Last change: 2016 Aug 16 VIM REFERENCE MANUAL by Bram Moolenaar @@ -147,7 +147,7 @@ resource usage, esp. on MS-DOS. For some outdated systems you need to use an older Vim version. -Multi level undo. |undo| +Multi level persistent undo. |undo| 'u' goes backward in time, 'CTRL-R' goes forward again. Set option 'undolevels' to the number of changes to be remembered (default 1000). Set 'undolevels' to 0 for a Vi-compatible one level undo. Set it to @@ -158,6 +158,9 @@ create a branch in the undo tree. This means you can go back to any state of the text, there is no risk of a change causing text to be lost forever. |undo-tree| + The undo information is stored in a file when the 'undofile' option is + set. This means you can exit Vim, start Vim on a previously edited + file and undo changes that were made before exiting Vim. Graphical User Interface (GUI). |gui| Included support for GUI: menu's, mouse, scrollbars, etc. You can @@ -212,6 +215,15 @@ right directory. That's an easy way to start using Vim scripts written by others. Plugins can be for all kind of files, or specifically for a filetype. + Packages make this even easier. |packages| + +Asynchronous communication and timers. |channel| |job| |timer| + Vim can exchange messages with other processes in the background. + This makes it possible to have servers do work and send back the + results to Vim. |channel| + Vim can start a job, communicate with it and stop it. |job| + Timers can fire once or repeatedly and invoke a function to do any + work. |timer| Repeat a series of commands. |q| "q{c}" starts recording typed characters into named register {c}. diff -Nru vim-7.4.2156/runtime/doc/vim.man vim-8.0.0134/runtime/doc/vim.man --- vim-7.4.2156/runtime/doc/vim.man 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/vim.man 2016-12-14 20:42:00.000000000 +0000 @@ -222,7 +222,7 @@ -R Read-only mode. The 'readonly' option will be set. You can still edit the buffer, but will be prevented from acci†- dently overwriting a file. If you do want to overwrite a + dentally overwriting a file. If you do want to overwrite a file, add an exclamation mark to the Ex command, as in ":w!". The -R option also implies the -n option (see below). The 'readonly' option can be reset with ":set diff -Nru vim-7.4.2156/runtime/doc/visual.txt vim-8.0.0134/runtime/doc/visual.txt --- vim-7.4.2156/runtime/doc/visual.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/visual.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*visual.txt* For Vim version 7.4. Last change: 2014 Mar 23 +*visual.txt* For Vim version 8.0. Last change: 2014 Mar 23 VIM REFERENCE MANUAL by Bram Moolenaar diff -Nru vim-7.4.2156/runtime/doc/windows.txt vim-8.0.0134/runtime/doc/windows.txt --- vim-7.4.2156/runtime/doc/windows.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/windows.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*windows.txt* For Vim version 7.4. Last change: 2016 Jul 30 +*windows.txt* For Vim version 8.0. Last change: 2016 Dec 01 VIM REFERENCE MANUAL by Bram Moolenaar @@ -75,7 +75,7 @@ The main Vim window can hold several split windows. There are also tab pages |tab-page|, each of which can hold multiple windows. - + *window-ID* *winid* *windowid* Each window has a unique identifier called the window ID. This identifier will not change within a Vim session. The |win_getid()| and |win_id2tabwin()| functions can be used to convert between the window/tab number and the @@ -295,8 +295,8 @@ :1quit " quit the first window :$quit " quit the last window :9quit " quit the last window - " if there are less than 9 windows opened - :-quit " quit the previews window + " if there are fewer than 9 windows opened + :-quit " quit the previous window :+quit " quit the next window :+2quit " quit the second next window < @@ -696,6 +696,8 @@ - If the file is not open in a window edit the file in the current window. If the current buffer can't be |abandon|ed, the window is split first. + - Windows that are not in the argument list or are not full + width will be closed if possible. The |argument-list| is set, like with the |:next| command. The purpose of this command is that it can be used from a program that wants Vim to edit another file, e.g., a debugger. @@ -1042,6 +1044,10 @@ h+ hidden buffers which are modified a+ active buffers which are modified + When using |:filter| the pattern is matched against the + displayed buffer name, e.g.: > + filter /\.vim/ ls +< *:bad* *:badd* :bad[d] [+lnum] {fname} Add file name {fname} to the buffer list, without loading it. diff -Nru vim-7.4.2156/runtime/doc/workshop.txt vim-8.0.0134/runtime/doc/workshop.txt --- vim-7.4.2156/runtime/doc/workshop.txt 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/doc/workshop.txt 2016-12-14 20:42:00.000000000 +0000 @@ -1,4 +1,4 @@ -*workshop.txt* For Vim version 7.4. Last change: 2013 Jul 06 +*workshop.txt* For Vim version 8.0. Last change: 2013 Jul 06 VIM REFERENCE MANUAL by Gordon Prieur diff -Nru vim-7.4.2156/runtime/filetype.vim vim-8.0.0134/runtime/filetype.vim --- vim-7.4.2156/runtime/filetype.vim 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/filetype.vim 2016-12-14 20:42:00.000000000 +0000 @@ -1,7 +1,7 @@ " Vim support file to detect file types " " Maintainer: Bram Moolenaar -" Last Change: 2016 Jul 21 +" Last Change: 2016 Oct 31 " Listen very carefully, I will say this only once if exists("did_load_filetypes") @@ -676,6 +676,9 @@ " EDIF (*.edf,*.edif,*.edn,*.edo) au BufNewFile,BufRead *.ed\(f\|if\|n\|o\) setf edif +" EditorConfig (close enough to dosini) +au BufNewFile,BufRead .editorconfig setf dosini + " Embedix Component Description au BufNewFile,BufRead *.ecd setf ecd @@ -692,8 +695,8 @@ let n = 1 while n < 100 && n < line("$") if getline(n) =~ "^\\s*\\(<'\\|'>\\)\\s*$" - setf specman - return + setf specman + return endif let n = n + 1 endwhile @@ -779,8 +782,7 @@ au BufNewFile,BufRead *.ged,lltxxxxx.txt setf gedcom " Git -au BufNewFile,BufRead COMMIT_EDITMSG setf gitcommit -au BufNewFile,BufRead MERGE_MSG setf gitcommit +au BufNewFile,BufRead COMMIT_EDITMSG,MERGE_MSG,TAG_EDITMSG setf gitcommit au BufNewFile,BufRead *.git/config,.gitconfig,.gitmodules setf gitconfig au BufNewFile,BufRead *.git/modules/*/config setf gitconfig au BufNewFile,BufRead */.config/git/config setf gitconfig @@ -807,6 +809,10 @@ au BufNewFile,BufRead */.gnupg/options setf gpg au BufNewFile,BufRead */.gnupg/gpg.conf setf gpg au BufNewFile,BufRead */usr/*/gnupg/options.skel setf gpg +if !empty($GNUPGHOME) + au BufNewFile,BufRead $GNUPGHOME/options setf gpg + au BufNewFile,BufRead $GNUPGHOME/gpg.conf setf gpg +endif " gnash(1) configuration files au BufNewFile,BufRead gnashrc,.gnashrc,gnashpluginrc,.gnashpluginrc setf gnash @@ -856,7 +862,7 @@ au BufNewFile,BufRead *.htpp setf hastepreproc " Hercules -au BufNewFile,BufRead *.vc,*.ev,*.rs,*.sum,*.errsum setf hercules +au BufNewFile,BufRead *.vc,*.ev,*.sum,*.errsum setf hercules " HEX (Intel) au BufNewFile,BufRead *.hex,*.h32 setf hex @@ -1754,6 +1760,9 @@ " RubyGems au BufNewFile,BufRead *.gemspec setf ruby +" Rust +au BufNewFile,BufRead *.rs setf rust + " Rackup au BufNewFile,BufRead *.ru setf ruby @@ -1781,6 +1790,9 @@ " Sather au BufNewFile,BufRead *.sa setf sather +" Scala +au BufNewFile,BufRead *.scala setf scala + " Scilab au BufNewFile,BufRead *.sci,*.sce setf scilab @@ -2053,7 +2065,7 @@ if line =~ s:ft_rules_udev_rules_pattern let udev_rules = substitute(line, s:ft_rules_udev_rules_pattern, '\1', "") if dir == udev_rules - setf udevrules + setf udevrules endif break endif @@ -2245,7 +2257,7 @@ endfunc " ConTeXt -au BufNewFile,BufRead tex/context/*/*.tex,*.mkii,*.mkiv setf context +au BufNewFile,BufRead tex/context/*/*.tex,*.mkii,*.mkiv,*.mkvi setf context " Texinfo au BufNewFile,BufRead *.texinfo,*.texi,*.txi setf texinfo @@ -2302,7 +2314,7 @@ au BufNewFile,BufRead */usr/share/upstart/*.conf setf upstart au BufNewFile,BufRead */usr/share/upstart/*.override setf upstart au BufNewFile,BufRead */etc/init/*.conf,*/etc/init/*.override setf upstart -au BufNewFile,BufRead */.init/*.conf,*/.init/*.override setf upstart +au BufNewFile,BufRead */.init/*.conf,*/.init/*.override setf upstart au BufNewFile,BufRead */.config/upstart/*.conf setf upstart au BufNewFile,BufRead */.config/upstart/*.override setf upstart @@ -2659,6 +2671,9 @@ " Nroff macros au BufNewFile,BufRead tmac.* call s:StarSetf('nroff') +" OpenBSD hostname.if +au BufNewFile,BufRead /etc/hostname.* call s:StarSetf('config') + " Pam conf au BufNewFile,BufRead */etc/pam.d/* call s:StarSetf('pamconf') diff -Nru vim-7.4.2156/runtime/ftplugin/context.vim vim-8.0.0134/runtime/ftplugin/context.vim --- vim-7.4.2156/runtime/ftplugin/context.vim 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/ftplugin/context.vim 2016-12-14 20:42:00.000000000 +0000 @@ -1,7 +1,8 @@ " Vim filetype plugin file -" Language: ConTeXt typesetting engine -" Maintainer: Nikolai Weibull -" Latest Revision: 2008-07-09 +" Language: ConTeXt typesetting engine +" Maintainer: Nicola Vitacolonna +" Former Maintainers: Nikolai Weibull +" Latest Revision: 2016 Oct 30 if exists("b:did_ftplugin") finish @@ -11,16 +12,26 @@ let s:cpo_save = &cpo set cpo&vim -let b:undo_ftplugin = "setl com< cms< def< inc< sua< fo<" +if !exists('current_compiler') + compiler context +endif + +let b:undo_ftplugin = "setl com< cms< def< inc< sua< fo< ofu<" + \ . "| unlet! b:match_ignorecase b:match_words b:match_skip" -setlocal comments=b:%D,b:%C,b:%M,:% commentstring=%\ %s formatoptions+=tcroql +setlocal comments=b:%D,b:%C,b:%M,:% commentstring=%\ %s formatoptions+=tjcroql2 +if get(b:, 'context_metapost', get(g:, 'context_metapost', 1)) + setlocal omnifunc=contextcomplete#Complete + let g:omni_syntax_group_include_context = 'mf\w\+,mp\w\+' + let g:omni_syntax_group_exclude_context = 'mfTodoComment' +endif let &l:define='\\\%([egx]\|char\|mathchar\|count\|dimen\|muskip\|skip\|toks\)\=' \ . 'def\|\\font\|\\\%(future\)\=let' \ . '\|\\new\%(count\|dimen\|skip\|muskip\|box\|toks\|read\|write' \ . '\|fam\|insert\|if\)' -let &l:include = '^\s*\%(input\|component\)' +let &l:include = '^\s*\\\%(input\|component\|product\|project\|environment\)' setlocal suffixesadd=.tex @@ -31,5 +42,61 @@ \ '\\start\(\a\+\):\\stop\1' endif +let s:context_regex = { + \ 'beginsection' : '\\\%(start\)\=\%(\%(sub\)*section\|\%(sub\)*subject\|chapter\|part\|component\|product\|title\)\>', + \ 'endsection' : '\\\%(stop\)\=\%(\%(sub\)*section\|\%(sub\)*subject\|chapter\|part\|component\|product\|title\)\>', + \ 'beginblock' : '\\\%(start\|setup\|define\)', + \ 'endblock' : '\\\%(stop\|setup\|define\)' + \ } + +function! s:move_around(count, what, flags, visual) + if a:visual + exe "normal! gv" + endif + call search(s:context_regex[a:what], a:flags.'s') " 's' sets previous context mark + call map(range(2, a:count), 'search(s:context_regex[a:what], a:flags)') +endfunction + +" Move around macros. +nnoremap [[ :call move_around(v:count1, "beginsection", "bW", v:false) +vnoremap [[ :call move_around(v:count1, "beginsection", "bW", v:true) +nnoremap ]] :call move_around(v:count1, "beginsection", "W", v:false) +vnoremap ]] :call move_around(v:count1, "beginsection", "W", v:true) +nnoremap [] :call move_around(v:count1, "endsection", "bW", v:false) +vnoremap [] :call move_around(v:count1, "endsection", "bW", v:true) +nnoremap ][ :call move_around(v:count1, "endsection", "W", v:false) +vnoremap ][ :call move_around(v:count1, "endsection", "W", v:true) +nnoremap [{ :call move_around(v:count1, "beginblock", "bW", v:false) +vnoremap [{ :call move_around(v:count1, "beginblock", "bW", v:true) +nnoremap ]} :call move_around(v:count1, "endblock", "W", v:false) +vnoremap ]} :call move_around(v:count1, "endblock", "W", v:true) + +" Other useful mappings +if get(g:, 'context_mappings', 1) + let s:tp_regex = '?^$\|^\s*\\\(item\|start\|stop\|blank\|\%(sub\)*section\|chapter\|\%(sub\)*subject\|title\|part\)' + + fun! s:tp() + call cursor(search(s:tp_regex, 'bcW') + 1, 1) + normal! V + call cursor(search(s:tp_regex, 'W') - 1, 1) + endf + + " Reflow paragraphs with commands like gqtp ("gq TeX paragraph") + onoremap tp :call tp() + " Select TeX paragraph + vnoremap tp :call tp() + + " $...$ text object + onoremap i$ :normal! T$vt$ + onoremap a$ :normal! F$vf$ + vnoremap i$ T$ot$ + vnoremap a$ F$of$ +endif + +" Commands for asynchronous typesetting +command! -buffer -nargs=? -complete=file ConTeXt call context#typeset() +command! -nargs=0 ConTeXtJobStatus call context#job_status() +command! -nargs=0 ConTeXtStopJobs call context#stop_jobs() + let &cpo = s:cpo_save unlet s:cpo_save diff -Nru vim-7.4.2156/runtime/ftplugin/cucumber.vim vim-8.0.0134/runtime/ftplugin/cucumber.vim --- vim-7.4.2156/runtime/ftplugin/cucumber.vim 2016-08-04 20:00:15.000000000 +0000 +++ vim-8.0.0134/runtime/ftplugin/cucumber.vim 2016-12-14 20:42:00.000000000 +0000 @@ -1,7 +1,7 @@ " Vim filetype plugin " Language: Cucumber " Maintainer: Tim Pope -" Last Change: 2013 Jun 01 +" Last Change: 2016 Aug 29 " Only do this when not done yet for this buffer if (exists("b:did_ftplugin")) @@ -19,27 +19,23 @@ let b:undo_ftplugin = "setl fo< com< cms< ofu<" let b:cucumber_root = expand('%:p:h:s?.*[\/]\%(features\|stories\)\zs[\/].*??') +if !exists("b:cucumber_steps_glob") + let b:cucumber_steps_glob = b:cucumber_root.'/**/*.rb' +endif if !exists("g:no_plugin_maps") && !exists("g:no_cucumber_maps") - nnoremap :exe jump('edit',v:count) - nnoremap [ :exe jump('edit',v:count) - nnoremap ] :exe jump('edit',v:count) - nnoremap ] :exe jump('split',v:count) - nnoremap :exe jump('split',v:count) - nnoremap d :exe jump('split',v:count) - nnoremap :exe jump('split',v:count) - nnoremap } :exe jump('pedit',v:count) - nnoremap [d :exe jump('pedit',v:count) - nnoremap ]d :exe jump('pedit',v:count) + cnoremap foldopen if &foldopen =~# 'tag'exe 'norm! zv'endif + nnoremap