Vim 7.4a ready for beta testing

Skip to first unread message

Bram Moolenaar

Jul 6, 2013, 9:59:06 AM7/6/13

Hello Vim users,

Announcing: Vim (Vi IMproved) version 7.4a BETA

This is the first BETA release of Vim 7.4.

Please check that the distribution is OK. I haven't done one for a long
time. Report anything that isn't right. That includes a crash but also
a typo in the documentation or a missing file.

The biggest additions since 7.3:
- A new, faster regular expression engine.
- More than a thousand fixes and small improvements.

Once you have installed Vim 7.4a BETA you can find details about the
changes since Vim 7.3 with:
:help version-7.4


If you like Vim, please consider helping poor children in the south of

Where to get it

The best way to obtain the latest Vim 7.4 is using Mercurial.
hg clone vim
cd vim
hg update
More information here:
The tag for this beta version is v7-4a.

For MS-Windows most of you will want the self-installing executable:

Information about which files to download for what system (don't use the
links, they are still for Vim 7.3):

A list of mirror sites can be found here:

The files available for download:

sources + runtime files, bzip2 compressed:

help files converted to HTML:

MS-WINDOWS one-size-fits-all:
Self-installing, includes all runtime files, loads libraries dynamically:

MS-WINDOWS separate files:
Runtime files:
GUI binary for Windows 95/98/NT/2000/XP/7:
GUI binary with OLE support:
Console version for Windows NT/2000/XP/7:
Sources for PC (with CR-LF):

For debugging:

Omitted in this version are:
- The 16-bit DOS, OS/2 and Amiga versions, these are obsolete.
- The 32-bit console version for MS-DOS/Windows 95/98
- The 16 bit MS-Windows version

Mailing lists

For user questions you can turn to the Vim mailing list. There are a
lot of tips, scripts and solutions. You can ask your Vim questions, but
only if you subscribe. See

If you want to help Vim development, discuss new features or get the
latest patches, subscribe to the vim-dev mailing list. See

Subject specific lists:
Multi-byte issues:
Macintosh issues:

Before you ask a question you should search the archives, someone may
already have given the answer.

Reporting bugs

Send them to <>. Please describe the problem precisely.
All the time spent on answering mail is subtracted from the time that is
spent on improving Vim! Always give a reproducible example and try to
find out which settings or other things influence the appearance of the
bug. Try starting without your own vimrc file: "vim -u NONE". Try
different machines if possible. See ":help bugs" in Vim. Send a patch
if you can!

Happy Vimming!

Q: What kind of stuff do you do?
A: I collect hobbies.

/// Bram Moolenaar -- -- \\\
/// sponsor Vim, vote for features -- \\\
\\\ an exciting new programming language -- ///
\\\ help me help AIDS victims -- ///


Jul 13, 2013, 1:21:54 PM7/13/13
diff -r 1205c07d8df2 runtime/doc/version7.txt
--- a/runtime/doc/version7.txt Сб. июля 13 16:57:24 2013 +0400
+++ b/runtime/doc/version7.txt Сб. июля 13 21:20:00 2013 +0400
@@ -70,6 +70,7 @@ Fixed |fixed-7.3|

VERSION 7.4 |version-7.4|
New regexp engine |new-regexp-engine|
+Better vim ↔ python interface |new-python-interfac|
Changed |changed-7.4|
Added |added-7.4|
Fixed |fixed-7.4|
@@ -10182,16 +10183,168 @@ is now working fine. Previously Vim cou

More information here: |two-engines|

+Better vim ↔ python interface *new-python-interface*
+Added |python-bindeval| function. Unlike |python-eval| this one returns
+ |python-Dictionary|, |python-List| and |python-Function| objects for
+ dictionaries lists and functions respectively in place of their python
+ built-in equivalents (or None if we are talking about function references).
+For simple types this function returns python built-in types and not only
+ python `str()` like |python-eval| does. On python 3 it will return `bytes()`
+ objects in place of `str()` ones avoiding possibility of UnicodeDecodeError.
+Interface of new objects mimics standard python `dict()` and `list()`
+ interfaces to some extent. Extent will be improved in the future.
+Added special |python-vars| objects also available for |python-buffer| and
+|python-window|. They ease access to VimL variables from python.
+Now you no longer need to alter `sys.path` to import your module: special
+hooks are responsible for importing from {rtp}/python2, {rtp}/python3 and
+{rtp}/pythonx directories (for python 2, python 3 and both respectively).
+See |python-special-path|.
+Added possibility to work with |tabpage|s through |python-tabpage| object.
+Added automatic conversion of vim errors and exceptions to python
+Changed the behavior of |python-buffers| object: it now uses buffer numbers
+as keys in place of the index of the buffer in the internal buffer list.
+This should not break anything as the only way to get this index was
+iterating over |python-buffers|.
+Added |:pydo| and |:py3do| commands.
+Added |pyeval()| and |py3eval()| functions.
+Now in all places which previously accepted `str()` objects in both python
+version both `str()` and `unicode()` (python 2) or `bytes()` and `str()`
+(python 3) are accepted.
+|python-window| has gained `.col` and `.row` attributes that are currently
+the only way to get internal window positions.
+Added or fixed support for `dir()` in vim python objects.
+Old python versions (≤2.2) are no longer supported. Building with them did
+not work anyway.

Changed *changed-7.4*

+ Added ability to use |Dictionary-function|s for |sort()|ing, via
+ optional third argument. (Nikolay Pavlov)
+ Added special |expand()| argument that expands to the current line
+ number.
+ Made it possible to force |char2nr()| always give unicode codepoints
+ regardless of current encoding. (Yasuhiro Matsumoto)
+ Made it possible for functions generating file list generate |List|
+ and not NL-separated string. (e.g. |glob()|, |expand()|) (Christian
+ Brabandt)
+ Functions that obtain variables from the specific window, tabpage or
+ buffer scope dictionary can now return specified default value in
+ place of empty string in case variable is not found. (|gettabvar()|,
+ |getwinvar()|, |getbufvar()|) (Shougo Matsushita, Hirohito Higashi)
+ Added ability to automatically save selection into the system
+ clipboard when using non-GUI version of vim (autoselectplus in
+ 'clipboard'). Also added ability to use system clipboard as default
+ register (previously only primary selection could be used). (Ivan
+ Krasilnikov, Christian Brabandt, Bram Moolenaar)
+ Added special 'shiftwidth' value that makes 'sw' follow 'tabstop'. As
+ indenting via 'indentexpr' became tricky |shiftwidth()| function was
+ added. Also added equivalent special value to 'softtabstop' option.
+ (Christian Brabandt, so8res)
+ Added ability to delete comment leader when using |J| by `j` flag in
+ 'formatoptions' (|fo-table|). (Lech Lorens)
+ Added ability to control indentation inside namespaces: |cino-N|.
+ (Konstantin Lepa)
+ Added ability to control alignment inside `if` condition separately
+ from alignment inside function arguments: |cino-k|. (Lech Lorens)
+ Added ability to show absolute number in number column when
+ 'relativenumber' option is on. (Christian Brabandt)
+ Made it possible to remove all signs from the current buffer using
+ |:sign-unplace|. (Christian Brabandt)
+ Added |:language| autocompletion. (Dominique Pelle)
+ |:diffoff| now saves the local values of some settings and restores
+ them in place of blindly resetting them to the defaults. (Christian
+ Brabandt)
+ Added |:map-nowait| creating mapping which when having lhs that is the
+ prefix of another mapping’s lhs will not allow vim to wait for user to
+ type more characters to resolve ambiguity, forcing vim to take the
+ shorter alternative: one with <nowait>.
+ Added more |:command-complete| completion types: |:behave| suboptions,
+ color schemes, compilers, |:cscope| suboptions, files from 'path',
+ |:history| suboptions, locale names, |:syntime| suboptions, user
+ names. (Dominique Pelle)
+ Improved support for cmd.exe. (Ben Fritz, Bram Moolenaar)
+ Added |v:windowid| variable containing current window number in GUI
+ vim. (Christian J. Robinson, Lech Lorens)
+ Lua interface now also uses userdata binded to vim structures. (Taro
+ Muraoka, Luis Carvalho)
+ Added rxvt-unicode and >xterm-277 mouse support. (Yiding Jia, Hayaki
+ Saito)

Added *added-7.4*

+Added support for |Lists| and |Dictionaries| in |viminfo|. (Christian
+ Bitwise functions: |and()|, |or()|, |invert()|, |xor()|.
+ Added |luaeval()| function. (Taro Muraoka, Luis Carvalho)
+ Added |sha256()| function. (Tyru, Hirohito Higashi)
+ Added |wildmenumode()| function. (Christian Brabandt)
+ Debugging functions: |screenattr()|, |screenchar()|, |screencol()|,
+ |screenrow()|. (Simon Ruderich, Bram Moolenaar)
+ Added |InsertCharPre| event launched before inserting character.
+ (Jakson A. Aquino)
+ Added |CompleteDone| event launched after finishing completion in
+ insert mode. (idea by Florian Klein)
+ Added |QuitPre| event launched when commands that can either close vim
+ or only some window(s) are launched.
+ Added |TextChanged| and |TextChangedI| events launched when text is
+ changed.
+ |:syntime| command useful for debugging.
+ Made it possible to ignore case when completing: 'wildignorecase'.
Various syntax, indent and other plugins were added.

Reply all
Reply to author
0 new messages