tea-test-dao
Version:
[C[CHello Tea
1,380 lines (1,099 loc) • 1.6 MB
Plain Text
*version8.txt* For Vim version 9.1. Last change: 2022 Feb 26
VIM REFERENCE MANUAL by Bram Moolenaar
*vim8* *vim-8* *version-8.0* *version8.0*
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. The patches up to Vim 7.4 can be found here:
|vim-7.4|.
Use this command to see the full version and features information of the Vim
program you are using: >
:version
NEW FEATURES |new-8|
Vim script enhancements |new-vim-script-8|
Various new items |new-items-8|
INCOMPATIBLE CHANGES |incompatible-8|
IMPROVEMENTS |improvements-8|
COMPILE TIME CHANGES |compile-changes-8|
PATCHES |patches-8|
VERSION 8.1 |version-8.1|
Changed |changed-8.1|
Added |added-8.1|
Patches |patches-8.1|
VERSION 8.2 |version-8.2|
Changed |changed-8.2|
Added |added-8.2|
Patches |patches-8.2|
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.
*vim-changelog*
You can find an overview of the most important changes (according to Martin
Tournoij) on this site: https://www.arp242.net/vimlog/
==============================================================================
NEW FEATURES *new-8*
First an overview of the more interesting new features. A comprehensive list
is below.
Asynchronous I/O support, channels ~
Vim can now exchange messages with other processes in the background. This
makes it possible to have servers do work and send back the results to Vim.
See |channel-demo| for an example, this shows communicating with a Python
server.
Closely related to channels is JSON support. JSON is widely supported and can
easily be used for inter-process communication, allowing for writing a server
in any language. The functions to use are |json_encode()| and |json_decode()|.
This makes it possible to build very complex plugins, written in any language
and running in a separate process.
Jobs ~
Vim can now start a job, communicate with it and stop it. This is very useful
to run a process for completion, syntax checking, etc. Channels are used to
communicate with the job. Jobs can also read from or write to a buffer or a
file. See |job_start()|.
Timers ~
Also asynchronous are timers. They can fire once or repeatedly and invoke a
function to do any work. For example: >
let tempTimer = timer_start(4000, 'CheckTemp')
This will call the CheckTemp() function four seconds (4000 milliseconds)
later. See |timer_start()|.
Partials ~
Vim already had a Funcref, a reference to a function. A partial also refers
to a function, and additionally binds arguments and/or a dictionary. This is
especially useful for callbacks on channels and timers. E.g., for the timer
example above, to pass an argument to the function: >
let tempTimer = timer_start(4000, function('CheckTemp', ['out']))
This will call CheckTemp('out') four seconds later.
Lambda and Closure ~
A short way to create a function has been added: {args -> expr}. See |lambda|.
This is useful for functions such as `filter()` and `map()`, which now also
accept a function argument. Example: >
:call filter(mylist, {idx, val -> val > 20})
A lambda can use variables defined in the scope where the lambda is defined.
This is usually called a |closure|.
User defined functions can also be a closure by adding the "closure" argument
|:func-closure|.
Packages ~
Plugins keep growing and more of them are available than ever before. To keep
the collection of plugins manageable package support has been added. This is
a convenient way to get one or more plugins, drop them in a directory and
possibly keep them updated. Vim will load them automatically, or only when
desired. See |packages|.
New style tests ~
This is for Vim developers. So far writing tests for Vim has not been easy.
Vim 8 adds assert functions and a framework to run tests. This makes it a lot
simpler to write tests and keep them updated. Also new are several functions
that are added specifically for testing. See |test-functions|.
Window IDs ~
Previously windows could only be accessed by their number. And every time a
window would open, close or move that number changes. Each window now has a
unique ID, so that they are easy to find. See |win_getid()| and |win_id2win()|.
Viminfo uses timestamps ~
Previously the information stored in viminfo was whatever the last Vim wrote
there. Now timestamps are used to always keep the most recent items.
See |viminfo-timestamp|.
Wrapping lines with indent ~
The 'breakindent' option has been added to be able to wrap lines without
changing the amount of indent.
Windows: DirectX support ~
This adds the 'renderoptions' option to allow for switching on DirectX
(DirectWrite) support on MS-Windows.
GTK+ 3 support ~
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*
-----------------------
In Vim script the following types have been added:
|Special| |v:false|, |v:true|, |v:none| and |v:null|
|Channel| connection to another process for asynchronous I/O
|Job| process control
Many functions and commands have been added to support the new types.
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*
-----------------
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
Cmdline mode commands: ~
|/_CTRL-G| CTRL-G move to the next match in 'incsearch' mode
|/_CTRL-T| CTRL-T move to the previous match in 'incsearch' mode
Options: ~
'belloff' do not ring the bell for these reasons
'breakindent' wrapped line repeats indent
'breakindentopt' settings for 'breakindent'.
'emoji' emoji characters are considered full width
'fixendofline' make sure last line in file has <EOL>
'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
'renderoptions' options for text rendering on Windows
'rubydll' name of the Ruby dynamic library
'signcolumn' when to display the sign column
'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
|:cdo| execute command in each valid error list entry
|: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
|: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
|:lhistory| display location list stack
|:noswapfile| following commands don't create a swap file
|:packadd| add a plugin from 'packpath'
|:packloadall| load all packages under 'packpath'
|:smile| make the user happy
Ex command modifiers: ~
|:keeppatterns| following command keeps search pattern history
|<mods>| supply command modifiers to user defined commands
New and extended functions: ~
|arglistid()| get id of the argument list
|assert_equal()| assert that two expressions values are equal
|assert_exception()| assert that a command throws an exception
|assert_fails()| assert that a function call fails
|assert_false()| assert that an expression is false
|assert_inrange()| assert that an expression is inside a range
|assert_match()| assert that a pattern matches the value
|assert_notequal()| assert that two expressions values are not equal
|assert_notmatch()| assert that a pattern does not match the value
|assert_true()| assert that an expression is true
|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
|ch_getjob()| get the job associated with a channel
|ch_info()| get channel information
|ch_log()| write a message in the channel log file
|ch_logfile()| set the channel log file
|ch_open()| open 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
|ch_sendraw()| send a raw message over a channel
|ch_setoptions()| set the options for a channel
|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
|job_info()| get information about a job
|job_setoptions()| set options for a job
|job_start()| start a job
|job_status()| get the status of a job
|job_stop()| stop a job
|js_decode()| decode a JSON string to Vim types
|js_encode()| encode an expression to a JSON string
|json_decode()| decode a JSON string to Vim types
|json_encode()| encode an expression to a JSON string
|matchaddpos()| define a list of positions to highlight
|matchstrpos()| match and positions of a pattern in a string
|perleval()| evaluate Perl expression
|reltimefloat()| convert reltime() result to a Float
|setcharsearch()| set character search information
|setfperm()| set the permissions of a file
|strcharpart()| get part of a string using char index
|strgetchar()| get character from a string using char index
|systemlist()| get the result of a shell command as a list
|test_alloc_fail()| make memory allocation fail
|test_autochdir()| test 'autochdir' functionality
|test_garbagecollect_now()| free memory right now
|test_null_channel()| return a null Channel
|test_null_dict()| return a null Dict
|test_null_job()| return a null Job
|test_null_list()| return a null List
|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
|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
|wordcount()| get byte/word/char count of buffer
New Vim variables: ~
|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_oldlocal| old local value of the option, used by |OptionSet|
|v:option_oldglobal| old global value of the option, used by |OptionSet|
|v:option_type| scope of the set command, used by |OptionSet|
|v:option_command| command used to set the option, 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
|TextChanged| after a change was made to the text in Normal mode
|TextChangedI| after a change was made to the text in Insert mode
|WinNew| after creating a new window
New highlight groups: ~
EndOfBuffer filler lines (~) after the last line in the buffer.
|hl-EndOfBuffer|
New items in search patterns: ~
|/\%C| \%C match any composing characters
New Syntax/Indent/FTplugin files: ~
AVR Assembler (Avra) syntax
Arduino syntax
Bazel syntax and indent and ftplugin
Dockerfile syntax and ftplugin
Eiffel ftplugin
Euphoria 3 and 4 syntax
Go syntax and indent and ftplugin
Godoc syntax
Groovy ftplugin
HGcommit ftplugin
Hog indent and ftplugin
Innovation Data Processing upstream.pt syntax
J syntax and indent and ftplugin
Jproperties ftplugin
Json syntax and indent and ftplugin
Kivy syntax
Less syntax and indent
Mix syntax
Motorola S-Record syntax
R ftplugin
ReStructuredText syntax and indent and ftplugin
Registry ftplugin
Rhelp indent and ftplugin
Rmd (markdown with R code chunks) syntax and indent
Rmd ftplugin
Rnoweb ftplugin
Rnoweb indent
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
New Keymaps: ~
Armenian eastern and western
Russian jcukenwintype
Vietnamese telex and vni
==============================================================================
INCOMPATIBLE CHANGES *incompatible-8*
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
(Vim doesn't fit in memory) and removing it cleans up the code quite a bit.
The support for Windows 16 bit (Windows 95 and older) has been removed.
The support for OS/2 has been removed. It probably hasn't been working for a
while since nobody uses it.
The SNiFF+ support has been removed.
Minor incompatibilities: ~
Probably...
==============================================================================
IMPROVEMENTS *improvements-8*
The existing blowfish encryption turned out to be much weaker than it was
supposed to be. The blowfish2 method has been added to fix that. Note that
this still isn't a state-of-the-art encryption, but good enough for most
usage. See 'cryptmethod'.
==============================================================================
COMPILE TIME CHANGES *compile-changes-8*
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*
The list of patches that got included since 7.4.0. This includes all the new
features, but does not include runtime file changes (syntax, indent, help,
etc.)
Patch 7.4.001
Problem: Character classes such as [a-z] do not react to 'ignorecase'.
Breaks man page highlighting. (Mario Grgic)
Solution: Add separate items for classes that react to 'ignorecase'. Clean
up logic handling character classes. Add more tests.
Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
Patch 7.4.002
Problem: Pattern with two alternative look-behind matches does not match.
(Amadeus Demarzi)
Solution: When comparing PIMs also compare their state ID to see if they are
different.
Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
Patch 7.4.003
Problem: Memory access error in Ruby syntax highlighting. (Christopher Chow)
Solution: Refresh stale pointer. (James McCoy)
Files: src/regexp_nfa.c
Patch 7.4.004
Problem: When closing a window fails ":bwipe" may hang.
Solution: Let win_close() return FAIL and break out of the loop.
Files: src/window.c, src/proto/window.pro, src/buffer.c
Patch 7.4.005
Problem: Using "vaB" while 'virtualedit' is set selects the wrong area.
(Dimitar Dimitrov)
Solution: Reset coladd when finding a match.
Files: src/search.c
Patch 7.4.006
Problem: mkdir("foo/bar/", "p") gives an error message. (David Barnett)
Solution: Remove the trailing slash. (lcd)
Files: src/eval.c
Patch 7.4.007
Problem: Creating a preview window on startup leaves the screen layout in a
messed up state. (Marius Gedminas)
Solution: Don't change firstwin. (Christian Brabandt)
Files: src/main.c
Patch 7.4.008
Problem: New regexp engine can't be interrupted.
Solution: Check for CTRL-C pressed. (Yasuhiro Matsumoto)
Files: src/regexp_nfa.c, src/regexp.c
Patch 7.4.009
Problem: When a file was not decrypted (yet), writing it may destroy the
contents.
Solution: Mark the file as readonly until decryption was done. (Christian
Brabandt)
Files: src/fileio.c
Patch 7.4.010 (after 7.4.006)
Problem: Crash with invalid argument to mkdir().
Solution: Check for empty string. (lcd47)
Files: src/eval.c
Patch 7.4.011
Problem: Cannot find out if "acl" and "xpm" features are supported.
Solution: Add "acl" and "xpm" to the list of features. (Ken Takata)
Files: src/eval.c, src/version.c
Patch 7.4.012
Problem: MS-Windows: resolving shortcut does not work properly with
multibyte characters.
Solution: Use wide system functions. (Ken Takata)
Files: src/os_mswin.c
Patch 7.4.013
Problem: MS-Windows: File name buffer too small for utf-8.
Solution: Use character count instead of byte count. (Ken Takata)
Files: src/os_mswin.c
Patch 7.4.014
Problem: MS-Windows: check for writing to device does not work.
Solution: Fix #ifdefs. (Ken Takata)
Files: src/fileio.c
Patch 7.4.015
Problem: MS-Windows: Detecting node type does not work for multibyte
characters.
Solution: Use wide character function when needed. (Ken Takata)
Files: src/os_win32.c
Patch 7.4.016
Problem: MS-Windows: File name case can be wrong.
Solution: Add fname_casew(). (Ken Takata)
Files: src/os_win32.c
Patch 7.4.017
Problem: ":help !!" does not find the "!!" tag in the help file. (Ben
Fritz)
Solution: When reading the start of the tags file do parse lines that are
not header lines.
Files: src/tag.c
Patch 7.4.018
Problem: When completing item becomes unselected. (Shougo Matsu)
Solution: Revert patch 7.3.1269.
Files: src/edit.c
Patch 7.4.019
Problem: MS-Windows: File name completion doesn't work properly with
Chinese characters. (Yue Wu)
Solution: Take care of multibyte characters when looking for the start of
the file name. (Ken Takata)
Files: src/edit.c
Patch 7.4.020
Problem: NFA engine matches too much with \@>. (John McGowan)
Solution: When a whole pattern match is found stop searching.
Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
Patch 7.4.021
Problem: NFA regexp: Using \ze in one branch which doesn't match may cause
end of another branch to be wrong. (William Fugh)
Solution: Set end position if it wasn't set yet.
Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
Patch 7.4.022
Problem: Deadlock while exiting, because of allocating memory.
Solution: Do not use gettext() in deathtrap(). (James McCoy)
Files: src/os_unix.c, src/misc1.c
Patch 7.4.023
Problem: Compiler warning on 64 bit windows.
Solution: Add type cast. (Mike Williams)
Files: src/edit.c
Patch 7.4.024
Problem: When root edits a file the undo file is owned by root while the
edited file may be owned by another user, which is not allowed.
(cac2s)
Solution: Accept an undo file owned by the current user.
Files: src/undo.c
Patch 7.4.025 (after 7.4.019)
Problem: Reading before start of a string.
Solution: Do not call mb_ptr_back() at start of a string. (Dominique Pelle)
Files: src/edit.c
Patch 7.4.026
Problem: Clang warning for int shift overflow.
Solution: Use unsigned and cast back to int. (Dominique Pelle)
Files: src/misc2.c
Patch 7.4.027 (after 7.4.025)
Problem: Another valgrind error when using CTRL-X CTRL-F at the start of
the line. (Dominique Pelle)
Solution: Don't call mb_ptr_back() at the start of the line. Add a test.
Files: src/edit.c, src/testdir/test32.in
Patch 7.4.028
Problem: Equivalence classes are not working for multibyte characters.
Solution: Copy the rules from the old to the new regexp engine. Add a test
to check both engines.
Files: src/regexp_nfa.c, src/testdir/test44.in, src/testdir/test99.in,
src/testdir/test99.ok, src/testdir/Make_amiga.mak,
src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
src/testdir/Make_os2.mak, src/testdir/Make_vms.mms,
src/testdir/Makefile
Patch 7.4.029
Problem: An error in a pattern is reported twice.
Solution: Remove the retry with the backtracking engine, it won't work.
Files: src/regexp.c
Patch 7.4.030
Problem: The -mno-cygwin argument is no longer supported by Cygwin.
Solution: Remove the arguments. (Steve Hall)
Files: src/GvimExt/Make_cyg.mak, src/Make_cyg.mak, src/xxd/Make_cyg.mak
Patch 7.4.031
Problem: ":diffoff!" resets options even when 'diff' is not set. (Charles
Cooper)
Solution: Only resets related options in a window where 'diff' is set.
Files: src/diff.c
Patch 7.4.032
Problem: NFA engine does not match the NUL character. (Jonathon Merz)
Solution: Use 0x0a instead of NUL. (Christian Brabandt)
Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
Patch 7.4.033
Problem: When the terminal has only 20 lines test 92 and 93 overwrite the
input file.
Solution: Explicitly write test.out. Check that the terminal is large enough
to run the tests. (Hirohito Higashi)
Files: src/testdir/test92.in, src/testdir/test93.in,
src/testdir/test1.in, src/testdir/Makefile
Patch 7.4.034
Problem: Using "p" in Visual block mode only changes the first line.
Solution: Repeat the put in all text in the block. (Christian Brabandt)
Files: runtime/doc/change.txt, src/ops.c, src/normal.c,
src/testdir/test20.in, src/testdir/test20.ok
Patch 7.4.035
Problem: MS-Windows: The mouse pointer flickers when going from command
line mode to Normal mode.
Solution: Check for WM_NCMOUSEMOVE. (Ken Takata)
Files: src/gui_w48.c
Patch 7.4.036
Problem: NFA engine does not capture group correctly when using \@>. (ZyX)
Solution: Copy submatches before doing the recursive match.
Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
Patch 7.4.037
Problem: Using "\ze" in a sub-pattern does not result in the end of the
match to be set. (Axel Bender)
Solution: Copy the end of match position when a recursive match was
successful.
Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
Patch 7.4.038
Problem: Using "zw" and "zg" when 'spell' is off give a confusing error
message. (Gary Johnson)
Solution: Ignore the error when locating the word. Explicitly mention what
word was added. (Christian Brabandt)
Files: src/normal.c, src/spell.c
Patch 7.4.039
Problem: MS-Windows: MSVC10 and earlier can't handle symlinks to a
directory properly.
Solution: Add stat_symlink_aware() and wstat_symlink_aware(). (Ken Takata)
Files: src/os_mswin.c, src/os_win32.c, src/os_win32.h
Patch 7.4.040
Problem: Valgrind error on exit when a script-local variable holds a
reference to the scope of another script.
Solution: First clear all variables, then free the scopes. (ZyX)
Files: src/eval.c
Patch 7.4.041 (after 7.4.034)
Problem: Visual selection does not remain after being copied over. (Axel
Bender)
Solution: Move when VIsual_active is reset. (Christian Brabandt)
Files: src/ops.c
Patch 7.4.042
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)
Files: src/spell.c
Patch 7.4.043
Problem: VMS can't handle long function names.
Solution: Shorten may_req_ambiguous_character_width. (Samuel Ferencik)
Files: src/main.c, src/term.c, src/proto/term.pro
Patch 7.4.044 (after 7.4.039)
Problem: Can't build with old MSVC. (Wang Shoulin)
Solution: Define OPEN_OH_ARGTYPE instead of using intptr_t directly.
Files: src/os_mswin.c
Patch 7.4.045
Problem: substitute() does not work properly when the pattern starts with
"\ze".
Solution: Detect an empty match. (Christian Brabandt)
Files: src/eval.c, src/testdir/test80.in, src/testdir/test80.ok
Patch 7.4.046
Problem: Can't use Tcl 8.6.
Solution: Change how Tcl_FindExecutable is called. (Jan Nijtmans)
Files: src/if_tcl.c
Patch 7.4.047
Problem: When using input() in a function invoked by a mapping it doesn't
work.
Solution: Temporarily reset ex_normal_busy. (Yasuhiro Matsumoto)
Files: src/eval.c
Patch 7.4.048
Problem: Recent clang version complains about -fno-strength-reduce.
Solution: Add a configure check for the clang version. (Kazunobu Kuriyama)
Files: src/configure.in, src/auto/configure
Patch 7.4.049
Problem: In Ex mode, when line numbers are enabled the substitute prompt is
wrong.
Solution: Adjust for the line number size. (Benoit Pierre)
Files: src/ex_cmds.c
Patch 7.4.050
Problem: "gn" selects too much for the pattern "\d" when there are two
lines with a single digit. (Ryan Carney)
Solution: Adjust the logic of is_one_char(). (Christian Brabandt)
Files: src/search.c, src/testdir/test53.in, src/testdir/test53.ok
Patch 7.4.051
Problem: Syntax highlighting a Yaml file causes a crash. (Blake Preston)
Solution: Copy the pim structure before calling addstate() to avoid it
becoming invalid when the state list is reallocated.
Files: src/regexp_nfa.c
Patch 7.4.052
Problem: With 'fo' set to "a2" inserting a space in the first column may
cause the cursor to jump to the previous line.
Solution: Handle the case when there is no comment leader properly. (Tor
Perkins) Also fix that cursor is in the wrong place when spaces
get replaced with a Tab.
Files: src/misc1.c, src/ops.c, src/testdir/test68.in,
src/testdir/test68.ok
Patch 7.4.053
Problem: Test75 has a wrong header. (ZyX)
Solution: Fix the text and remove leading ".
Files: src/testdir/test75.in
Patch 7.4.054
Problem: Reading past end of the 'stl' string.
Solution: Don't increment pointer when already at the NUL. (Christian
Brabandt)
Files: src/buffer.c
Patch 7.4.055
Problem: Mac: Where availability macros are defined depends on the system.
Solution: Add a configure check. (Felix Bünemann)
Files: src/config.h.in, src/configure.in, src/auto/configure,
src/os_mac.h
Patch 7.4.056
Problem: Mac: Compilation problem with OS X 10.9 Mavericks.
Solution: Include AvailabilityMacros.h when available. (Kazunobu Kuriyama)
Files: src/os_unix.c
Patch 7.4.057
Problem: byteidx() does not work for composing characters.
Solution: Add byteidxcomp().
Files: src/eval.c, src/testdir/test69.in, src/testdir/test69.ok,
runtime/doc/eval.txt
Patch 7.4.058
Problem: Warnings on 64 bit Windows.
Solution: Add type casts. (Mike Williams)
Files: src/ops.c
Patch 7.4.059
Problem: set_last_cursor() may encounter w_buffer being NULL. (Matt
Mkaniaris)
Solution: Check for NULL.
Files: src/mark.c
Patch 7.4.060
Problem: Declaration has wrong return type for PyObject_SetAttrString().
Solution: Use int instead of PyObject. (Andreas Schwab)
Files: src/if_python.c, src/if_python3.c
Patch 7.4.061 (after 7.4.055 and 7.4.056)
Problem: Availability macros configure check in wrong place.
Solution: Also check when not using Darwin. Remove version check.
Files: src/configure.in, src/auto/configure, src/os_unix.c
Patch 7.4.062 (after 7.4.061)
Problem: Configure check for AvailabilityMacros.h is wrong.
Solution: Use AC_CHECK_HEADERS().
Files: src/configure.in, src/auto/configure
Patch 7.4.063
Problem: Crash when using invalid key in Python dictionary.
Solution: Check for object to be NULL. Add tests. (ZyX)
Files: src/if_py_both.h, src/testdir/test86.in, src/testdir/test86.ok,
src/testdir/test87.in, src/testdir/test87.ok
Patch 7.4.064
Problem: When replacing a character in Visual block mode, entering a CR
does not cause a repeated line break.
Solution: Recognize the situation and repeat the line break. (Christian
Brabandt)
Files: src/normal.c, src/ops.c, src/testdir/test39.in,
src/testdir/test39.ok
Patch 7.4.065
Problem: When recording, the character typed at the hit-enter prompt is
recorded twice. (Urtica Dioica)
Solution: Avoid recording the character twice. (Christian Brabandt)
Files: src/message.c
Patch 7.4.066
Problem: MS-Windows: When there is a colon in the file name (sub-stream
feature) the swap file name is wrong.
Solution: Change the colon to "%". (Yasuhiro Matsumoto)
Files: src/fileio.c, src/memline.c, src/misc1.c, src/proto/misc1.pro
Patch 7.4.067
Problem: After inserting comment leader, CTRL-\ CTRL-O does move the
cursor. (Wiktor Ruben)
Solution: Avoid moving the cursor. (Christian Brabandt)
Files: src/edit.c
Patch 7.4.068
Problem: Cannot build Vim on Mac with non-Apple compilers.
Solution: Remove the -no-cpp-precomp flag. (Misty De Meo)
Files: src/configure.in, src/auto/configure, src/osdef.sh
Patch 7.4.069
Problem: Cannot right shift lines starting with #.
Solution: Allow the right shift when 'cino' contains #N with N > 0.
(Christian Brabandt)
Refactor parsing 'cino', store the values in the buffer.
Files: runtime/doc/indent.txt, src/buffer.c, src/edit.c, src/eval.c,
src/ex_getln.c, src/fold.c, src/misc1.c, src/ops.c,
src/proto/misc1.pro, src/proto/option.pro, src/structs.h,
src/option.c
Patch 7.4.070 (after 7.4.069)
Problem: Can't compile with tiny features. (Tony Mechelynck)
Solution: Add #ifdef.
Files: src/buffer.c
Patch 7.4.071 (after 7.4.069)
Problem: Passing limits around too often.
Solution: Use limits from buffer.
Files: src/edit.c, src/misc1.c, src/proto/misc1.pro
Patch 7.4.072
Problem: Crash when using Insert mode completion.
Solution: Avoid going past the end of pum_array. (idea by Francisco Lopes)
Files: src/popupmnu.c
Patch 7.4.073
Problem: Setting undolevels for one buffer changes undo in another.
Solution: Make 'undolevels' a global-local option. (Christian Brabandt)
Files: runtime/doc/options.txt, src/buffer.c, src/option.c, src/option.h
src/structs.h, src/undo.c
Patch 7.4.074
Problem: When undo'ing all changes and creating a new change the undo
structure is incorrect. (Christian Brabandt)
Solution: When deleting the branch starting at the old header, delete the
whole branch, not just the first entry.
Files: src/undo.c
Patch 7.4.075
Problem: Locally setting 'undolevels' is not tested.
Solution: Add a test. (Christian Brabandt)
Files: src/testdir/test100.in, src/testdir/test100.ok,
src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
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. (Dimitar Dimitrov)
Solution: Restore 'wrapscan' earlier. (Christian Brabandt)
Files: src/search.c
Patch 7.4.077
Problem: DOS installer creates shortcut without a path, resulting in the
current directory to be C:\Windows\system32.
Solution: Use environment variables.
Files: src/dosinst.c
Patch 7.4.078
Problem: MSVC 2013 is not supported.
Solution: Recognize and support MSVC 2013. (Ed Brown)
Files: src/Make_mvc.mak
Patch 7.4.079
Problem: A script cannot detect whether 'hlsearch' highlighting is actually
displayed.
Solution: Add the "v:hlsearch" variable. (ZyX)
Files: src/eval.c, src/ex_docmd.c,
src/option.c, src/screen.c, src/search.c, src/tag.c, src/vim.h,
src/testdir/test101.in, src/testdir/test101.ok,
src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
src/testdir/Make_vms.mms, src/testdir/Makefile
Patch 7.4.080 (after 7.4.079)
Problem: Missing documentation for v:hlsearch.
Solution: Include the right file in the patch.
Files: runtime/doc/eval.txt
Patch 7.4.081 (after 7.4.078)
Problem: Wrong logic when ANALYZE is "yes".
Solution: Use or instead of and. (KF Leong)
Files: src/Make_mvc.mak
Patch 7.4.082
Problem: Using "gf" in a changed buffer suggests adding "!", which is not
possible. (Tim Chase)
Solution: Pass a flag to check_changed() whether adding ! make sense.
Files: src/vim.h, src/ex_cmds2.c, src/proto/ex_cmds2.pro, src/globals.h,
src/ex_cmds.c, src/ex_docmd.c
Patch 7.4.083
Problem: It's hard to avoid adding a used pattern to the search history.
Solution: Add the ":keeppatterns" modifier. (Christian Brabandt)
Files: runtime/doc/cmdline.txt, src/ex_cmds.h, src/ex_docmd.c,
src/ex_getln.c, src/structs.h
Patch 7.4.084
Problem: Python: interrupt not being properly discarded. (Yggdroot Chen)
Solution: Discard interrupt in VimTryEnd. (ZyX)
Files: src/if_py_both.h, src/testdir/test86.in, src/testdir/test86.ok,
src/testdir/test87.in, src/testdir/test87.ok
Patch 7.4.085
Problem: When inserting text in Visual block mode and moving the cursor the
wrong text gets repeated in other lines.
Solution: Use the '[ mark to find the start of the actually inserted text.
(Christian Brabandt)
Files: src/ops.c, src/testdir/test39.in, src/testdir/test39.ok
Patch 7.4.086
Problem: Skipping over an expression when not evaluating it does not work
properly for dict members.
Solution: Skip over unrecognized expression. (ZyX)
Files: src/eval.c, src/testdir/test34.in, src/testdir/test34.ok
Patch 7.4.087
Problem: Compiler warning on 64 bit Windows systems.
Solution: Fix type cast. (Mike Williams)
Files: src/ops.c
Patch 7.4.088
Problem: When spell checking is enabled Asian characters are always marked
as error.
Solution: When 'spelllang' contains "cjk" do not mark Asian characters as
error. (Ken Takata)
Files: runtime/doc/options.txt, runtime/doc/spell.txt, src/mbyte.c,
src/option.c, src/spell.c, src/structs.h
Patch 7.4.089
Problem: When editing a file in a directory mounted through sshfs Vim
doesn't set the security context on a renamed file.
Solution: Add mch_copy_sec() to vim_rename(). (Peter Backes)
Files: src/fileio.c
Patch 7.4.090
Problem: Win32: When a directory name contains an exclamation mark,
completion doesn't complete the contents of the directory.
Solution: Escape the exclamation mark. (Jan Stocker)
Files: src/ex_getln.c, src/testdir/test102.in, src/testdir/test102.ok,
src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
src/testdir/Make_vms.mms, src/testdir/Makefile
Patch 7.4.091 (after 7.4.089)
Problem: Missing semicolon.
Solution: Add the semicolon.
Files: src/fileio.c
Patch 7.4.092 (after 7.4.088)
Problem: Can't build small version.
Solution: Add #ifdef where the b_cjk flag is used. (Ken Takata)
Files: src/spell.c
Patch 7.4.093
Problem: Configure can't use LuaJIT on ubuntu 12.04.
Solution: Adjust the configure regexp that locates the version number.
(Charles Strahan)
Files: src/configure.in, src/auto/configure
Patch 7.4.094
Problem: Configure may not find that -lint is needed for gettext().
Solution: Check for gettext() with empty $LIBS. (Thomas De Schampheleire)
Files: src/configure.in, src/auto/configure
Patch 7.4.095 (after 7.4.093)
Problem: Regexp for LuaJIT version doesn't work on BSD.
Solution: Use "*" instead of "\+" and "\?". (Ozaki Kiichi)
Files: src/configure.in, src/auto/configure
Patch 7.4.096
Problem: Can't change directory to an UNC path.
Solution: Use win32_getattrs() in mch_getperm(). (Christian Brabandt)
Files: src/os_win32.c
Patch 7.4.097 (after 7.4.034)
Problem: Unexpected behavior change related to 'virtualedit'. (Ingo Karkat)
Solution: Update the valid cursor position. (Christian Brabandt)
Files: src/ops.c
Patch 7.4.098
Problem: When using ":'<,'>del" errors may be given for the visual line
numbers being out of range.
Solution: Reset Visual mode in ":del". (Lech Lorens)
Files: src/ex_docmd.c, src/testdir/test103.in, src/testdir/test103.ok,
src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
src/testdir/Make_vms.mms, src/testdir/Makefile
Patch 7.4.099
Problem: Append in blockwise Visual mode with "$" is wrong.
Solution: After "$" don't use the code that checks if the cursor was moved.
(Hirohito Higashi, Ken Takata)
Files: src/ops.c, src/testdir/test39.in, src/testdir/test39.ok
Patch 7.4.100
Problem: NFA regexp doesn't handle backreference correctly. (Ryuichi
Hayashida, Urtica Dioica)
Solution: Always add NFA_SKIP, also when it already exists at the start
position.
Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
Patch 7.4.101
Problem: Using \1 in pattern goes one line too far. (Bohr Shaw, John Little)
Solution: Only advance the match end for the matched characters in the last
line.
Files: src/regexp.c, src/testdir/test64.in, src/testdir/test64.ok
Patch 7.4.102
Problem: Crash when interrupting "z=".
Solution: Add safety check for word length. (Christian Brabandt, Dominique
Pelle)
Files: src/spell.c
Patch 7.4.103
Problem: Dos installer uses an old way to escape spaces in the diff
command.
Solution: Adjust the quoting to the new default shellxquote. (Ben Fritz)
Files: src/dosinst.c
Patch 7.4.104
Problem: ":help s/\_" reports an internal error. (John Beckett)
Solution: Check for NUL and invalid character classes.
Files: src/regexp_nfa.c
Patch 7.4.105
Problem: Completing a tag pattern may give an error for invalid pattern.
Solution: Suppress the error, just return no matches.
Files: src/tag.c
Patch 7.4.106
Problem: Can't build with Ruby using Cygwin.
Solution: Fix library name in makefile. (Steve Hall)
Files: src/Make_cyg.mak
Patch 7.4.107
Problem: Python: When vim.eval() encounters a Vim error, a try/catch in the
Python code doesn't catch it. (Yggdroot Chen)
Solution: Throw exceptions on errors in vim.eval(). (ZyX)
Files: src/ex_eval.c, src/if_py_both.h, src/proto/ex_eval.pro,
src/testdir/test86.in, src/testdir/test86.ok,
src/testdir/test87.in, src/testdir/test87.ok
Patch 7.4.108
Problem: "zG" and "zW" leave temp files around on MS-Windows.
Solution: Delete the temp files when exiting. (Ken Takata)
Files: src/memline.c, src/proto/spell.pro, src/spell.c
Patch 7.4.109
Problem: ColorScheme autocommand matches with the current buffer name.
Solution: Match with the colorscheme name. (Christian Brabandt)
Files: runtime/doc/autocmd.txt, src/fileio.c, src/syntax.c
Patch 7.4.110
Problem: "gUgn" cannot be repeated. (Dimitar Dimitrov)
Solution: Don't put "gn" in a different order in the redo buffer. Restore
'wrapscan' when the pattern isn't found. (Christian Wellenbrock)
Files: src/normal.c, src/search.c, src/test53.in, src/test53.ok
Patch 7.4.111
Problem: Memory leak in Python OptionsAssItem. (Ken Takata)
Solution: Call Py_XDECREF() where needed. (ZyX)
Files: src/if_py_both.h
Patch 7.4.112
Problem: The defaults for 'directory' and 'backupdir' on MS-Windows do not
include a directory that exists.
Solution: Use $TEMP.
Files: src/os_dos.h
Patch 7.4.113
Problem: MSVC static analysis gives warnings.
Solution: Avoid the warnings and avoid possible bugs. (Ken Takata)
Files: src/os_win32.c
Patch 7.4.114
Problem: New GNU make outputs messages about changing directory in another
format.
Solution: Recognize the new format.
Files: src/option.h
Patch 7.4.115
Problem: When using Zsh expanding ~abc doesn't work when the result
contains a space.
Solution: Off-by-one error in detecting the NUL. (Pavol Juhas)
Files: src/os_unix.c
Patch 7.4.116
Problem: When a mapping starts with a space, the typed space does not show
up for 'showcmd'.
Solution: Show "<20>". (Brook Hong)
Files: src/normal.c
Patch 7.4.117
Problem: Can't build with Cygwin/MingW and Perl 5.18.
Solution: Add a linker argument for the Perl library. (Cesar Romani)
Adjust CFLAGS and LIB. (Cesar Romani)
Move including inline.h further down. (Ken Takata)
Files: src/Make_cyg.mak, src/Make_ming.mak, src/if_perl.xs
Patch 7.4.118
Problem: It's possible that redrawing the status lines causes
win_redr_custom() to be called recursively.
Solution: Protect against recursiveness. (Yasuhiro Matsumoto)
Files: src/screen.c
Patch 7.4.119
Problem: Vim doesn't work well on OpenVMS.
Solution: Fix various problems. (Samuel Ferencik)
Files: src/os_unix.c, src/os_unix.h, src/os_vms.c
Patch 7.4.120 (after 7.4.117)
Problem: Can't build with Perl 5.18 on Linux. (Lcd 47)
Solution: Add #ifdef. (Ken Takata)
Files: src/if_perl.xs
Patch 7.4.121
Problem: Completion doesn't work for ":py3d" and ":py3f". (Bohr Shaw)
Solution: Skip over letters after ":py3".
Files: src/ex_docmd.c
Patch 7.4.122
Problem: Win32: When 'encoding' is set to "utf-8" and the active codepage
is cp932 then ":grep" and other commands don't work for multibyte
characters.
Solution: (Yasuhiro Matsumoto)
Files: src/os_win32.c
Patch 7.4.123
Problem: Win32: Getting user name does not use wide function.
Solution: Use GetUserNameW() if possible. (Ken Takata)
Files: src/os_win32.c
Patch 7.4.124
Problem: Win32: Getting host name does not use wide function.
Solution: Use GetComputerNameW() if possible. (Ken Takata)
Files: src/os_win32.c
Patch 7.4.125
Problem: Win32: Dealing with messages may not work for multibyte chars.
Solution: Use pDispatchMessage(). (Ken Takata)
Files: src/os_win32.c
Patch 7.4.126
Problem: Compiler warnings for "const" and incompatible types.
Solution: Remove "const", add type cast. (Ken Takata)
Files: src/os_win32.c
Patch 7.4.127
Problem: Perl 5.18 on Unix doesn't work.
Solution: Move workaround to after including vim.h. (Ken Takata)
Files: src/if_perl.xs
Patch 7.4.128
Problem: Perl 5.18 for MSVC doesn't work.
Solution: Add check in makefile and define __inline. (Ken Takata)
Files: src/Make_mvc.mak, src/if_perl.xs
Patch 7.4.129
Problem: getline(-1) returns zero. (mvxxc)
Solution: Return an empty string.
Files: src/eval.c
Patch 7.4.130
Problem: Relative line numbers mix up windows when using folds.
Solution: Use hasFoldingWin() instead of hasFolding(). (Lech Lorens)
Files: src/misc2.c
Patch 7.4.131
Problem: Syncbind causes E315 errors in some situations. (Liang Li)
Solution: Set and restore curbuf in ex_syncbind(). (Christian Brabandt)
Files: src/ex_docmd.c, src/testdir/test37.ok
Patch 7.4.132 (after 7.4.122)
Problem: Win32: flags and inherit_handles arguments mixed up.
Solution: Swap the argument. (cs86661)
Files: src/os_win32.c
Patch 7.4.133
Problem: Clang warns for using NUL.
Solution: Change NUL to NULL. (Dominique Pelle)
Files: src/eval.c, src/misc2.c
Patch 7.4.134
Problem: Spurious space in MingW Makefile.
Solution: Remove the space. (Michael Soyka)
Files: src/Make_ming.mak
Patch 7.4.135
Problem: Missing dot in MingW test Makefile.
Solution: Add the dot. (Michael Soyka)
Files: src/testdir/Make_ming.mak
Patch 7.4.136 (after 7.4.096)
Problem: MS-Windows: When saving a file with a UNC path the file becomes
read-only.
Solution: Don't mix up Win32 attributes and Unix attributes. (Ken Takata)
Files: src/os_mswin.c, src/os_win32.c
Patch 7.4.137
Problem: Cannot use IME with Windows 8 console.
Solution: Change the user of ReadConsoleInput() and PeekConsoleInput().
(Nobuhiro Takasaki)
Files: src/os_win32.c
Patch 7.4.138 (after 7.4.114)
Problem: Directory change messages are not recognized.
Solution: Fix using a character range literally. (Lech Lorens)
Files: src/option.h
Patch 7.4.139
Problem: Crash when using :cd in autocommand. (François Ingelrest)
Solution: Set w_localdir to NULL after freeing it. (Dominique Pelle)
Files: src/ex_docmd.c, src/window.c
Patch 7.4.140
Problem: Crash when wiping out buffer triggers autocommand that wipes out
only other buffer.
Solution: Do not delete the last buffer, make it empty. (Hirohito Higashi)
Files: src/buffer.c
Patch 7.4.141
Problem: Problems when building with Borland: st_mode is signed short;
can't build with Python; temp files not ignored by Mercurial;
building with DEBUG doesn't define _DEBUG.
Solution: Fix the problems. (Ken Takata)
Files: src/Make_bc5.mak, src/if_py_both.h, src/os_win32.c
Patch 7.4.142 (after 7.4.137)
Problem: On MS-Windows 8 IME input doesn't work correctly.
Solution: Work around the problem. (Nobuhiro Takasaki)
Files: src/os_win32.c
Patch 7.4.143
Problem: TextChangedI is not triggered.
Solution: Reverse check for "ready". (lilydjwg)
Files: src/edit.c
Patch 7.4.144
Problem: MingW also supports intptr_t for OPEN_OH_ARGTYPE.
Solution: Adjust #ifdef. (Ken Takata)
Files: src/os_mswin.c
Patch 7.4.145
Problem: getregtype() does not return zero for unknown register.
Solution: Adjust documentation: return empty string for unknown register.
Check the register name to be valid. (Yukihiro Nakadaira)
Files: runtime/doc/eval.txt, src/ops.c
Patch 7.4.146
Problem: When starting Vim with "-u NONE" v:oldfiles is NULL.
Solution: Set v:oldfiles to an empty list. (Yasuhiro Matsumoto)
Files: src/main.c
Patch 7.4.147
Problem: Cursor moves to wrong position when using "gj" after "$" and
virtual editing is active.
Solution: Make "gj" behave differently when virtual editing is active.
(Hirohito Higashi)
Files: src/normal.c, src/testdir/test39.in, src/testdir/test39.ok
Patch 7.4.148
Problem: Cannot build with Cygwin and X11.
Solution: Include Xwindows.h instead of windows.h. (Lech Lorens)
Files: src/mbyte.c
Patch 7.4.149
Problem: Get E685 error when assigning a function to an autoload variable.
(Yukihiro Nakadaira)
Solution: Instead of having a global no_autoload variable, pass an autoload
flag down to where it is used. (ZyX)
Files: src/eval.c, src/testdir/test55.in, src/testdir/test55.ok,
src/testdir/test60.in, src/testdir/test60.ok,
src/testdir/sautest/autoload/footest.vim
Patch 7.4.150
Problem: :keeppatterns is not respected for :s.
Solution: Check the keeppatterns flag. (Yasuhiro Matsumoto)
Files: src/search.c, src/testdir/test14.in, src/testdir/test14.ok
Patch 7.4.151
Problem: Python: slices with steps are not supported.
Solution: Support slices in Python vim.List. (ZyX)
Files: src/eval.c, src/if_py_both.h, src/if_python3.c, src/if_python.c,
src/proto/eval.pro, src/testdir/test86.in, src/testdir/test86.ok,
src/testdir/test87.in, src/testdir/test87.ok
Patch 7.4.152
Problem: Python: Cannot iterate over options.
Solution: Add options iterator. (ZyX)
F