After more than a decade, the vi, or Vim, editor is getting a major update.
Vim 8.0 released
Vim has long been an important tool for programmers and anyone else who needs a highly configurable text editor in Linux. And now version 8.0 of Vim has been released, according to an announcement in Google Groups.
Today, most of us use graphical text editors, but many developers still use vi, or its modern clone Vim, or Emacs, and they’re as passionate about their choice of editors as ever. I’m not sure why since vi is clearly the better choice.
After almost 40 years of development, there’s not a lot left to be improved in Vim. But, after a decade, some things needed changing. So it is that Vim 8 has just been released.
This release is not just obscure bug fixes. It also includes significant improvements. These are:
Asynchronous I/O support: Vim can now exchange messages with other processes in the background via channels. This makes it possible to have servers do work and send back the results to Vim.
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.
Timers: Vim also now supports asynchronous timers. These can fire once or repeatedly and invoke a function to do any work.
Plugin Package support: To keep the ever increasing number of plugins in check, 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 automatically load them, or only when desired.
Window IDs: I’ve been waiting for this one for decades. Previously, Vim 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.
Wrapping lines with indent: The ‘breakindent’ option has been added to be able to wrap lines without changing the amount of indent.
Now Vim has the ability to talk to the other background processes. Thanks to this addition, now servers can do their work and send back the results to Vim.
Vim 8.0 widely supports JSON and it can be used for inter-process communication. It allows one to write a complex plugin in any programming language.
This recent release also supports timers, jobs, partials, lambdas, packages, closures, new style testing, etc.
Now, previously opened windows can only be accessed by their number. As each of them has a unique ID, they can be found easily.
Vim 8.0 comes with the support for GTK+3 GUI. Configure, however, chooses GTK+2 if both are available.
This release also adds the ‘renderoption’ to allow switching on DirectX support on Windows operating system. It’s focused on DirectWrite support for better text rendering.
Another important change comes in the form of use of timestamps by Viminfo to always keep the most recent items.
For the complete list of changes, find the changelog here.
Bram Moolenaar Post on Google Group
Hello Vim users!
Announcing: Vim (Vi IMproved) version 8.0
This the first major Vim release in ten years. There are interesting
new features, many small improvements and lots of bug fixes.
Among the new features are:
– Asynchronous I/O support, channels, JSON
– Partials, Lambdas and Closures
– New style testing
– Viminfo merged by timestamp
– GTK+ 3 support
– MS-Windows DirectX support
Once you have installed Vim 8.0 you can find details about the changes
since Vim 7.4 with:
Or view it online:
If you like Vim, please consider helping poor children in the south of
Where to get it
For MS-Windows most of you will want the self-installing executable:
Information about which files to download for what system:
A list of mirror sites can be found here:
The files available for download:
sources + runtime files, bzip2 compressed:
help files converted to HTML:
Self-installing, includes all runtime files, loads libraries dynamically:
MS-WINDOWS separate 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):
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
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 http://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
Subject specific lists:
Macintosh issues: http://www.vim.org/maillist.php#vim-mac
Before you ask a question you should search the archives, someone may
already have given the answer.
Send them to <vim…@vim.org>. 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.
Alternatively, create an issue at github and/or a pull request.
Please try to write a test that reproduces the problem and will pass
once it is fixed. See https://github.com/vim/vim
“Marriage is a wonderful institution…
but who wants to live in an institution?”
– Groucho Marx
/// Bram Moolenaar — Bram@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 ///