Vim 8.2 is released!

132 views
Skip to first unread message

Bram Moolenaar

unread,
Dec 12, 2019, 10:08:18 AM12/12/19
to vim-an...@vim.org, vim...@vim.org, v...@vim.org, vim...@vim.org

Hello Vim users!

Announcing: Vim (Vi IMproved) version 8.2


This is a minor release, a lot of bugs have been fixed, documentation
was updated, test coverage was improved, etc. There are a few
interesting new features, see below.

Read the announcement with links and a few images online:
https://www.vim.org/vim-8.2-released.php

Once you have installed Vim 8.2 you can find details about the changes
since Vim 8.2 with:
:help version8.2


Background
----------

Before I did the keynote at VimConf 2018 I asked plugin developers what
they wanted from Vim. The result was a very long list of requested
features. The top two items were clear: Popup windows and text
properties.

After more than a year of development the new features are now ready for
the Vim crowds. Popup windows make it possible to show messages,
function prototypes, code snippets and anything else on top of the text
being edited. They open and close quickly and can be highlighted in many
ways. More about that below.

This was no small effort. Although the existing window support could be
used, popup windows are different enough to require a lot of extra
logic. Especially to update the screen efficiently. Also to make it easy
for plugin writers to use them; you don't need to tell Vim exactly where
to show one, just give a reference point and the text to display, Vim
will figure out the size and where the popup fits best.

Text properties can be used for something as simple as highlighting a
text snippet or something as complicated as using an external parser to
locate syntax items and highlight them asynchronously. This can be used
instead of the pattern based syntax highlighting. A text property sticks
with the text, also when inserting a word before it. And this is done
efficiently by storing the properties with the text.

The new change listener support can be used to keep the highlighting
up-to-date and support other LSP features. An example of what can be
done with this is the "govim" plugin. It connects to a server (written
in Go) and uses "gopls", the Language Server Protocol (LSP) server for
Go. You can find a list of features with links to demo videos on github:
https://github.com/govim/govim/wiki/govim-plugin-API


Demo game
---------

To show what is possible with popup windows (and because I sometimes get
bored fixing bugs), I created a silly game. This uses popup windows that
move across the display, text properties to highlight the animals and
even sound to make it more fun! Thanks for my colleagues Greg, Martijn
and Shannon for making the silly sounds. You can find it on github:
https://github.com/vim/killersheep


Other noticeable new features
-----------------------------

A ":const" command for declaring a variable that cannot change:
const TIMER_DELAY = 400

A Dictionary with literal keys to avoid all those quotes:
let options = #{width: 30, height: 24}

A heredoc-style assignment to easily assign a list of lines to a
variable without quoting or line continuation:
let lines =<< trim END
line one
line two
END

Function chaining for method calls:
mylist->filter(filterexpr)->map(mapexpr)->sort()->join()

The xdiff library has been included for a much improved diff view.

When 'incsearch' is set it also applies to ":substitute".

"modifyOtherKeys" was added to allow mapping more key combinations.

ConPTY support was added for Windows 10, can show full color in the console.

The MS-Windows installer supports translations, silent install and looks
much better.

A big thanks to all the developers who helped implementing and testing this!


Popup windows
-------------

The main new feature of Vim 8.2 is support for popup windows. These can
be used to display text on top of other windows and are very flexible:
they can be positioned relative to text, at an absolute position or just
in the middle of the screen. The size can be fixed or can adjust to fit
the text. A "zindex" value specifies what popup window goes on top of
others.

The popup window can react to user input. This works with a filter
callback. The filter can handle a few keys and pass on the rest, or it
can consume all the keys, thus grabbing focus. This allows for very
flexible use of the popups.

Popup windows can be used for many purposes, here are a few examples:

- When a background build finishes a message popup can show "Build
finished successfully" on top of the screen, without interfering with
what the user is working on.
- When using Insert mode completion extra info for a completion item can
be displayed in an info popup.
- A list of choices can be displayed, where the user selects an entry
with keys or with the mouse.
- While typing a function call, a popup can show the documentation and
the list of arguments, just next to where the user is typing. The new
text properties feature can be used to highlight types.

Plugins are the main audience for the popup window feature, there are
many options to change the positioning, size and highlighting.


Gratitude
---------

If you like Vim, please consider helping poor children in the south of
Uganda: http://iccf-holland.org


Where to get it
---------------

The best way to obtain the latest Vim is using Git. Summary:
git clone https://github.com/vim/vim.git
More information here: https://www.vim.org/git.php

For MS-Windows most of you will want the self-installing executable:
https://ftp.nluug.nl/pub/vim/pc/gvim82.exe

Signed versions will appear soon at:
https://github.com/vim/vim-win32-installer/releases

Information about which files to download for what system:
https://www.vim.org/download.php

A list of mirror sites can be found here:
https://www.vim.org/mirrors.php


Files available for download:

UNIX:
sources + runtime files, bzip2 compressed:
https://ftp.nluug.nl/pub/vim/unix/vim-8.2.tar.bz2

VARIOUS:
help files converted to HTML:
https://ftp.nluug.nl/pub/vim/doc/vim82html.zip

MS-WINDOWS one-size-fits-all:
Self-installing, includes all runtime files, loads libraries dynamically:
https://ftp.nluug.nl/pub/vim/pc/gvim82.exe

MS-WINDOWS separate files:
Runtime files:
https://ftp.nluug.nl/pub/vim/pc/vim82rt.zip
GUI binary for Windows NT/2000/XP/7/8/10:
https://ftp.nluug.nl/pub/vim/pc/gvim82.zip
GUI binary with OLE support:
https://ftp.nluug.nl/pub/vim/pc/gvim82ole.zip
Console version for Windows NT/2000/XP/7/8/10:
https://ftp.nluug.nl/pub/vim/pc/vim82w32.zip
Sources for PC (with CR-LF):
https://ftp.nluug.nl/pub/vim/pc/vim82src.zip

For debugging:
https://ftp.nluug.nl/pub/vim/pc/gvim82.pdb
https://ftp.nluug.nl/pub/vim/pc/gvim82ole.pdb
https://ftp.nluug.nl/pub/vim/pc/vim82w32.pdb

AMIGA:
Only runtime and sources are provided, no binary:
https://ftp.nluug.nl/pub/vim/amiga/vim82rt.tgz
https://ftp.nluug.nl/pub/vim/amiga/vim82src.tgz


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


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 https://www.vim.org/maillist.php#vim

If you want to help Vim development, discuss new features or get the
latest patches, subscribe to the vim-dev mailing list. See
https://www.vim.org/maillist.php#vim-dev

Subject specific lists:
Macintosh issues: https://www.vim.org/maillist.php#vim-mac

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


Reporting bugs
--------------

Create an issue at github and/or a pull request: https://github.com/vim/vim

Alternatively send your problem to <vim...@vim.org>.

Please describe the problem precisely. Try to write a test that
reproduces the problem and will pass once it is fixed.

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.


Happy Vimming!


--
INSPECTOR END OF FILM: Move along. There's nothing to see! Keep moving!
[Suddenly he notices the cameras.]
INSPECTOR END OF FILM: (to Camera) All right, put that away sonny.
[He walks over to it and puts his hand over the lens.]
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD

/// Bram Moolenaar -- Br...@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

Christian J. Robinson

unread,
Dec 12, 2019, 12:34:55 PM12/12/19
to vim...@googlegroups.com
On Thu, 12 Dec 2019, Bram Moolenaar wrote:

> Announcing: Vim (Vi IMproved) version 8.2

:echo v:version
801

This happens in my manually compiled version and in the Windows
executable I got from vim.org.

--
Christian J. Robinson <hep...@gmail.com> -- https://christianrobinson.name/
"The 'Net is a waste of time, and that's exactly what's right about it."
-- William Gibson

Christian J. Robinson

unread,
Dec 12, 2019, 1:38:41 PM12/12/19
to vim...@googlegroups.com
On Thu, 12 Dec 2019, Christian J. Robinson wrote:

> :echo v:version
> 801
>
> This happens in my manually compiled version and in the Windows
> executable I got from vim.org.

Correction, this does NOT happen with the version I got from vim.org,
and I resolved the issue with my local compile by doing a full
reconfig and recompile.

Sorry for the noise.

- Christian

--
Christian J. Robinson <hep...@gmail.com> -- https://christianrobinson.name/
Stupidity, when maintained long enough, _is_ a form of malice.
-- Richard's corollary to Hanlon's Razor.

Tony Mechelynck

unread,
Dec 12, 2019, 8:48:38 PM12/12/19
to vim_dev
On Thu, Dec 12, 2019 at 7:38 PM Christian J. Robinson <hep...@gmail.com> wrote:
>
> On Thu, 12 Dec 2019, Christian J. Robinson wrote:
>
> > :echo v:version
> > 801
> >
> > This happens in my manually compiled version and in the Windows
> > executable I got from vim.org.
>
> Correction, this does NOT happen with the version I got from vim.org,
> and I resolved the issue with my local compile by doing a full
> reconfig and recompile.
>
> Sorry for the noise.
>
> - Christian

FWIW, after updating my repository clone, I did an incremental compile
(just "make" followed by "make install") and I got what I expected for
a Vim 8.2 with no patches yet:
• make did not decide to run configure, and only the following sources
were recompiled (for a Big build with GTK2 GUI); all others were taken
unchanged from the *.o objects found into the objects/ subdirectory
after compiling Vim 8.1.2424:
- buffer.c
- evalfunc.c
- evalvars.c
- ex_cmds.c
- ex_cmds2.c
- hardcopy.c
- if_xcmdsrv.c
- misc1.c
- auto/pathdef.c (recreated)
- viminfo.c
- netbeans.c
- version.c
• the :intro screen says "version 8.2"
• the :version screen says "Vim - Vi Improved 8.2" (etc.)
• v:version is 802
• the runtime files have been installed into a freshly created
$VIMRUNTIME named /usr/local/share/vim/vim82/

Best regards,
Tony.

Nick Jensen

unread,
Dec 12, 2019, 9:15:04 PM12/12/19
to vim...@googlegroups.com
The 2019-12-12 16:08, Bram Moolenaar wrote:
>Announcing: Vim (Vi IMproved) version 8.2

Congratulations on the release Bram!

Thanks for all the continued hard work and the great new features.

Nick

Ken Takata

unread,
Dec 12, 2019, 10:39:33 PM12/12/19
to vim_dev
Hi,


2019/12/13 Fri 3:38:41 UTC+9 Heptite wrote:
On Thu, 12 Dec 2019, Christian J. Robinson wrote:

> :echo v:version
> 801
>
> This happens in my manually compiled version and in the Windows
> executable I got from vim.org.

Correction, this does NOT happen with the version I got from vim.org,
and I resolved the issue with my local compile by doing a full
reconfig and recompile.

Sorry for the noise.

I remember that you reported the same issue when Vim 8.1 was released.
Looking at the Windows makefiles, I found that some dependencies to version.h are missing.
So this can happen when MSVC or MinGW is used.
I will prepare a patch when I have a time.

Regards,
Ken Takata

Christian Brabandt

unread,
Dec 13, 2019, 3:09:18 AM12/13/19
to vim-an...@vim.org, vim...@vim.org, v...@vim.org, vim...@vim.org

On Do, 12 Dez 2019, Bram Moolenaar wrote:

> Announcing: Vim (Vi IMproved) version 8.2

Congratulations!

> Signed versions will appear soon at:
> https://github.com/vim/vim-win32-installer/releases

For some reason, the automatic job failed today because of a download
timeout when trying to download the racket dependencies. I tried to
manually trigger a build, but that fails again every time.

I can download it locally fine, so not sure what problem Appveyor has.
Hopefully this is just a hickup, that goes away.

Best,
Christian
--
Das Gehirn ist ein Apparat zur Abwehr von Fakten.
-- Erwin Pelzig

Bram Moolenaar

unread,
Dec 13, 2019, 7:57:36 AM12/13/19
to vim...@googlegroups.com, Christian Brabandt, vim-an...@vim.org, vim...@vim.org, v...@vim.org, vim...@vim.org

Christian -

> On Do, 12 Dez 2019, Bram Moolenaar wrote:
>
> > Announcing: Vim (Vi IMproved) version 8.2
>
> Congratulations!
>
> > Signed versions will appear soon at:
> > https://github.com/vim/vim-win32-installer/releases
>
> For some reason, the automatic job failed today because of a download
> timeout when trying to download the racket dependencies. I tried to
> manually trigger a build, but that fails again every time.
>
> I can download it locally fine, so not sure what problem Appveyor has.
> Hopefully this is just a hickup, that goes away.

So should I still hold off on adding patches?

Can you somehow make the automatic job run more often?

- Bram

--
hundred-and-one symptoms of being an internet addict:
264. You turn to the teletext page "surfing report" and are surprised that it
is about sizes of waves and a weather forecast for seaside resorts.

Christian Brabandt

unread,
Dec 13, 2019, 9:10:09 AM12/13/19
to vim...@googlegroups.com, v...@vim.org

On Fr, 13 Dez 2019, Bram Moolenaar wrote:

> So should I still hold off on adding patches?
>
> Can you somehow make the automatic job run more often?

No, I would say just keep on and don't let yourself hold off by the
failing build script. Since there are no changes, to the vim repository,
the ci build won't try to build new releases.

I hope the build will start soon again, (I just tried again, and it is
still failing). If it doesn't work by monday, I'll go ahead and disable
racket in the build)

Best,
Christian
--
Gott will, daß der Mensch seinen Spaß hat.
-- Theresia von Avila

Bram Moolenaar

unread,
Dec 13, 2019, 10:36:42 AM12/13/19
to vim...@googlegroups.com, Christian Brabandt, v...@vim.org

Christian wrote:

> On Fr, 13 Dez 2019, Bram Moolenaar wrote:
>
> > So should I still hold off on adding patches?
> >
> > Can you somehow make the automatic job run more often?
>
> No, I would say just keep on and don't let yourself hold off by the
> failing build script. Since there are no changes, to the vim repository,
> the ci build won't try to build new releases.
>
> I hope the build will start soon again, (I just tried again, and it is
> still failing). If it doesn't work by monday, I'll go ahead and disable
> racket in the build)

Racket hasn't worked for me for quite a while. Looks like the only way
is to get the sources and build that. I don't think any users require
this interface.

--
hundred-and-one symptoms of being an internet addict:
265. Your reason for not staying in touch with family is that
they do not have e-mail addresses.

Ken Takata

unread,
Dec 13, 2019, 11:45:37 AM12/13/19
to vim_dev
Hi Christian,


2019/12/13 Fri 17:09:18 UTC+9 Christian Brabandt wrote:

On Do, 12 Dez 2019, Bram Moolenaar wrote:

> Announcing:  Vim (Vi IMproved) version 8.2

Congratulations!

> Signed versions will appear soon at:
>         https://github.com/vim/vim-win32-installer/releases

For some reason, the automatic job failed today because of a download
timeout when trying to download the racket dependencies. I tried to
manually trigger a build, but that fails again every time.

I can download it locally fine, so not sure what problem Appveyor has.
Hopefully this is just a hickup, that goes away.

Looking at the log of AppVeyor, it seems that now "download.racket-lang.org" is redirected to
Isn't it better to use "www.cs.utah.edu" or some another mirror?
(www.cs.utah.edu is one of the official mirrors.)

Regards,
Ken Takata

Christian Brabandt

unread,
Dec 13, 2019, 2:11:50 PM12/13/19
to vim_dev

On Fr, 13 Dez 2019, Ken Takata wrote:

> Looking at the log of AppVeyor, it seems that now "download.racket-lang.org" is
> redirected to
> "mirror.racket-lang.org" which caused a trouble before: https://github.com/vim/
> vim-win32-installer/pull/116.
> Isn't it better to use "www.cs.utah.edu" or some another mirror?
> (www.cs.utah.edu is one of the official mirrors.)

Yes, this might be better. I don't understand the error message, it
downloads a couple of seconds using https:// and then it aborts with
"Failed to connect to mirror.racket-lang.org port 80"

Note the port. Could it be somebody is blocking the IP?

Best,
Christian
--
Köder: Ein Präparat, das einen Haken genießbarer macht.
Der beste Köder ist die Schönheit.
-- Ambrose Bierce

Ken Takata

unread,
Dec 20, 2019, 6:14:16 PM12/20/19
to vim_dev
Hi Bram,

I found a missing feature which should have been added in the
*new-vimscript-8.2* section in the version8.txt.

|optional-function-argument| was added in 8.1.1310.

It's too late for the release notes, but it might be better to update
version8.txt.


I also found a typo:

--- a/runtime/doc/version8.txt
+++ b/runtime/doc/version8.txt
@@ -25897,7 +25897,7 @@ Makefiles for old Amiga compilers were r
 If a swap file is found without any changes it is automatically deleted.
 
 The FEAT_TAG_OLDSTATIC code was removed, it slowed down tag searches.
-The FEAT_TAG_ANYWHITE code was removed, is was not enabled in any build.
+The FEAT_TAG_ANYWHITE code was removed, it was not enabled in any build.
 The UNICODE16 code was removed, it was not useful.
 Workshop support was removed, nobody was using it.
 The Aap build files were removed, they were outdated.


Regards,
Ken Takata

Ken Takata

unread,
Dec 20, 2019, 6:18:02 PM12/20/19
to vim_dev
Hi Christian,

It seems that the hg mirror repositories are missing two tags: v8.2.0 and
v8.2.0000.
Could you add those tags?

Regards,
Ken Takata

Wei Zhang

unread,
Dec 21, 2019, 6:01:29 AM12/21/19
to vim_dev
Thanks Bram,without your effort these amazing features may not be possible。

Bram Moolenaar

unread,
Dec 21, 2019, 9:11:47 AM12/21/19
to vim...@googlegroups.com, Ken Takata

Ken Takata wrote:

> I found a missing feature which should have been added in the
> *new-vimscript-8.2* section in the version8.txt.
>
> |optional-function-argument| was added in 8.1.1310.
>
> It's too late for the release notes, but it might be better to update
> version8.txt.

Yes, that's actually a nice addition. I'll add a rmark.

> I also found a typo:
>
> --- a/runtime/doc/version8.txt
> +++ b/runtime/doc/version8.txt
> @@ -25897,7 +25897,7 @@ Makefiles for old Amiga compilers were r
> If a swap file is found without any changes it is automatically deleted.
>
> The FEAT_TAG_OLDSTATIC code was removed, it slowed down tag searches.
> -The FEAT_TAG_ANYWHITE code was removed, is was not enabled in any build.
> +The FEAT_TAG_ANYWHITE code was removed, it was not enabled in any build.
> The UNICODE16 code was removed, it was not useful.
> Workshop support was removed, nobody was using it.
> The Aap build files were removed, they were outdated.

I'll fix that.

--
Q: Why do ducks have flat feet?
A: To stamp out forest fires.

Q: Why do elephants have flat feet?
A: To stamp out flaming ducks.

Andy Massimino

unread,
Dec 21, 2019, 1:32:37 PM12/21/19
to vim...@googlegroups.com, Bram Moolenaar
On 12/21/19 9:11 AM, Bram Moolenaar wrote:
> Ken Takata wrote:
>
>> I found a missing feature which should have been added in the
>> *new-vimscript-8.2* section in the version8.txt.
>>
>> |optional-function-argument| was added in 8.1.1310.
>>
>> It's too late for the release notes, but it might be better to update
>> version8.txt.
> Yes, that's actually a nice addition. I'll add a rmark.
>
>> I also found a typo:
>>
>> --- a/runtime/doc/version8.txt
>> +++ b/runtime/doc/version8.txt
>> @@ -25897,7 +25897,7 @@ Makefiles for old Amiga compilers were r
>> If a swap file is found without any changes it is automatically deleted.
>>
>> The FEAT_TAG_OLDSTATIC code was removed, it slowed down tag searches.
>> -The FEAT_TAG_ANYWHITE code was removed, is was not enabled in any build.
>> +The FEAT_TAG_ANYWHITE code was removed, it was not enabled in any build.
>> The UNICODE16 code was removed, it was not useful.
>> Workshop support was removed, nobody was using it.
>> The Aap build files were removed, they were outdated.
> I'll fix that.
>
Some or most of runtime/doc/debugger.txt seems outdated after removal of
Workshop support.

Bram Moolenaar

unread,
Dec 21, 2019, 4:01:38 PM12/21/19
to vim...@googlegroups.com, Andy Massimino
Most of it was already removed. I'll make it a bit more clearer that
Workshop support itself was removed. But the features added for it
still exist.

--
I have to exercise early in the morning before my brain
figures out what I'm doing.
Reply all
Reply to author
Forward
0 new messages