Happy birthday!

96 views
Skip to first unread message

Bram Moolenaar

unread,
Nov 2, 2020, 1:20:04 PM11/2/20
to vim-an...@vim.org, vim...@vim.org, v...@vim.org, vim...@vim.org

Hello Vim users,

29 years ago the very first version of Vim was built and distributed.
And Vim is more popular than ever before! So, what's going on these days?


VIM 9 DEVELOPMENTS - MAKING VIM SCRIPT FASTER AND EASIER TO USE

This is a big project. A lot of progress has been made, but it will
take time until we'll have "version 1.0". To make it possible to
compile a Vim script function, so that it can be executed 10-100 times
faster, it was required to make changes that are not backwards
compatible. Such as not having a dictionary and list for the function
arguments, since that causes too much overhead for every function call.

Once making changes that are not backwards compatible, it seemed like a
good idea to also make it easier to use Vim script. Or in other words:
"less weird". Using keywords and syntax that is similar to popular
programming languages helps a lot. At the same time we can make the
semantics more predictable and avoid mistakes. Type checking is a great
help with that, especially when writing a large plugin.

In case you don't like Vim 9 script, you can keep using the legacy one,
it won't go away and remain backwards compatible.


RELIABILITY - MAKING SURE VIM NEVER FAILS

The functionality included with Vim for testing has been greatly
improved. Besides unit testing, it is now also possible to write
screendump tests. That is especially useful for highlighting and
dynamic behavior, such as with completion.

We now have continuous integration on three platforms. Neither of them
is perfect, but together it gives very good coverage of systems and
variations in configuration. The main challenge is to avoid flaky
tests.

Source code coverage is now at 88.75%. It keeps increasing, although
it's getting harder to cover the last few lines, especially related to
running out of memory. We have also several people running fuzzers and
other tools to uncover problems.

I dare to say that Vim is more reliable than ever before. Thanks to
everybody who helped with that.

Happy Vimming!


--
hundred-and-one symptoms of being an internet addict:
178. You look for an icon to double-click to open your bedroom window.

/// 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 ///

Philip Rhoades

unread,
Nov 2, 2020, 10:20:41 PM11/2/20
to vim...@googlegroups.com
Bram and other Vim contributors,

Thanks so much for Vim - I love it! (I have been using it since the
beginning).

Phil.
> --

--
Philip Rhoades

PO Box 896
Cowra NSW 2794
Australia
E-mail: ph...@pricom.com.au

caveman رجل الكهف

unread,
Nov 3, 2020, 2:13:16 AM11/3/20
to vim...@googlegroups.com, vim-an...@vim.org, vim...@vim.org, v...@vim.org, vim...@vim.org
‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
On Monday, November 2, 2020 6:19 PM, Bram Moolenaar <Br...@moolenaar.net> wrote:

> 29 years ago the very first version of Vim was built and distributed.
> And Vim is more popular than ever before! So, what's going on these days?

nice sir!

i conjecture that vim will keep getting more and
more popular, even in the distant future, such as
5000+ years later.

my reasoning is that vim's user-interface is so
innovative for mammals with 10 fingers, it might
even be near shannon's channel limit for
finger-to-keyboard data transfer.

so in 5000 years, assuming we evolve towards
higher intelligence, we are bound to see increased
vim population, until it becomes the standard user
interface across other apps.

of course, unless we evolve to grow other output
organs that have higher bandwidth than the 10
fingers. but even then, vim will be a miraculous
gift to other mammals before us that still have
those 10 fingers.

(i'm not a prophet - in case you read this 5k years later).

rgrds,
cm

Shlomi Fish

unread,
Nov 3, 2020, 2:22:16 AM11/3/20
to vim...@googlegroups.com
Hi Bram!

On Mon, 02 Nov 2020 19:19:38 +0100
Bram Moolenaar <Br...@moolenaar.net> wrote:

> Hello Vim users,
>
> 29 years ago the very first version of Vim was built and distributed.
> And Vim is more popular than ever before! So, what's going on these days?
>

Mazal Tov ( https://en.wikipedia.org/wiki/Mazel_tov ) and thanks for all your
work, effort and contributions. I love (❣️) vim / gvim / nvim / nvim-qt!

--

Shlomi Fish https://www.shlomifish.org/
Optimising Code for Speed - https://shlom.in/optimise

/usr/bin/perl consults Chuck Norris with how to parse Perl.
— Nadav Vinik ; https://www.shlomifish.org/humour/bits/facts/Chuck-Norris/

Please reply to list if it's a mailing list post - https://shlom.in/reply .

tria...@gmx.com

unread,
Nov 3, 2020, 2:49:57 AM11/3/20
to vim...@googlegroups.com
Den Mandag den 2. november 2020 skrev Bram Moolenaar:
>
> Hello Vim users,
>
> 29 years ago the very first version of Vim was built and distributed.

Van harte Gefeliciteerd!

//meine

Steve Litt

unread,
Nov 3, 2020, 3:24:19 AM11/3/20
to vim...@googlegroups.com
On Mon, 02 Nov 2020 19:19:38 +0100
Bram Moolenaar <Br...@moolenaar.net> wrote:

> Hello Vim users,
>
> 29 years ago the very first version of Vim was built and distributed.
> And Vim is more popular than ever before! So, what's going on these
> days?
>
>
> VIM 9 DEVELOPMENTS - MAKING VIM SCRIPT FASTER AND EASIER TO USE
>
> This is a big project. A lot of progress has been made, but it will
> take time until we'll have "version 1.0". To make it possible to
> compile a Vim script function, so that it can be executed 10-100 times
> faster, it was required to make changes that are not backwards
> compatible. Such as not having a dictionary and list for the function
> arguments, since that causes too much overhead for every function
> call.
>
> Once making changes that are not backwards compatible, it seemed like
> a good idea to also make it easier to use Vim script. Or in other
> words: "less weird". Using keywords and syntax that is similar to
> popular programming languages helps a lot. At the same time we can
> make the semantics more predictable and avoid mistakes. Type
> checking is a great help with that, especially when writing a large
> plugin.

Thank you, thank you, THANK YOU! The old vimscript was so weird I had
to do hours of trial and error just to do simple things, and there were
a lot of things I couldn't do at all. Much/most of this was for
VimOutliner, and I didn't want to require VimOutliner users to need to
install Python extensions, so I used VimScript.

> In case you don't like Vim 9 script, you can keep using the legacy
> one, it won't go away and remain backwards compatible.

Can I use some of one and some of the other, so I can slowly switch
things to the new one?

SteveT

Steve Litt
Autumn 2020 featured book: Thriving in Tough Times
http://www.troubleshooters.com/thrive

Volker Bernhard Duetsch

unread,
Nov 3, 2020, 3:58:26 AM11/3/20
to vim...@googlegroups.com
On Mon, 02 Nov 2020 19:19:38 +0100
Bram Moolenaar <Br...@moolenaar.net> wrote:

>
> Hello Vim users,
>
> 29 years ago the very first version of Vim was built and distributed.
> And Vim is more popular than ever before! So, what's going on these days?

Hello Vim users,

Vim the only constant in my life since 1998, version 5.x.
Thanks to Bram and all supporters.
Thanks Achim for bringing vim to my attention back then.

Volker

--
Volker Bernhard Duetsch
Career Track Python Programmer (Datacamp)
Certified Senior Project Manager (IAPM) - UX0T4FMC06FZ
Certified Senior Agile Project Manager (IAPM) - 5YLACN958FXX
Certified International Project Manager (IAPM) - WPN5U2F88RDW
MCTS C# Application Dev. .Net 4 / WPF

Bram Moolenaar

unread,
Nov 3, 2020, 5:44:43 AM11/3/20
to vim...@googlegroups.com, Steve Litt
Yes, each file can be legacy script or Vim 9 script and one can source
the other. You cannot switch halfway the file, that would be too
confusing.

You can use the new :def functions in legacy script. And you can use
legacy functions in Vim 9 script. However, the mix of syntax can be
confusing, thus I would recommend using :def functions in Vim 9 script
and legacy functions in legacy script. You can make exceptions where
you need to. E.g. keep using legacy script but move functionality that
needs to be fast into a :def function.

Keep in mind that Vim9 script is still under development, there are
still quite a few todo items.

--
Wizards had always known that the act of observation changed the thing that
was observed, and sometimes forgot that it also changed the observer too.
Terry Pratchett - Interesting times

Johannes Degen

unread,
Nov 3, 2020, 8:56:01 AM11/3/20
to vim...@googlegroups.com
Many happy returns! En een fijne verjaardag gewenst.
I've been a happy user since Vim 5.8 (I think).

Thanks for one of the finest pieces of software on our planet!

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/vim_use/20201103095816.7dc3fcf92e1a2a06099ec0a5%40gmx.de.


--
When in doubt become a philosopher.

Tony Mechelynck

unread,
Nov 3, 2020, 9:49:01 AM11/3/20
to Steve Litt, vim_use
On Tue, Nov 3, 2020 at 9:24 AM Steve Litt <sl...@troubleshooters.com> wrote:
>
> On Mon, 02 Nov 2020 19:19:38 +0100
> Bram Moolenaar <Br...@moolenaar.net> wrote:
>
> > Hello Vim users,
> >
> > 29 years ago the very first version of Vim was built and distributed.
> > And Vim is more popular than ever before! So, what's going on these
> > days?
> >
> >
> > VIM 9 DEVELOPMENTS - MAKING VIM SCRIPT FASTER AND EASIER TO USE
[...]
> > In case you don't like Vim 9 script, you can keep using the legacy
> > one, it won't go away and remain backwards compatible.
>
> Can I use some of one and some of the other, so I can slowly switch
> things to the new one?

Yes.

For instance, in an old-style Vim script, you can define a new-style
"def" function (see :help :def). Everything from the :def statement to
the corresponding :enddef must be in new-style code IIUC.

I _think_ you can also use an old-style "function" function in a
new-style script but I'm not sure of that.

You can always :source a new-style script from an old-style one, or vice-versa.

Warning: Vim 9 is still under development. You can use it in the
latest Vim builds (see :help vim9.txt in a recent enough Vim), you are
even encouraged to do so if you want to help Bram find and fix the
bugs in it, but at the moment it is "at your own risk".

Best regards,
Tony.

Steve Litt

unread,
Nov 4, 2020, 4:04:19 AM11/4/20
to vim...@googlegroups.com
On Tue, 03 Nov 2020 11:44:26 +0100
Bram Moolenaar <Br...@moolenaar.net> wrote:

> Steve Litt wrote:

> Yes, each file can be legacy script or Vim 9 script and one can source
> the other. You cannot switch halfway the file, that would be too
> confusing.
>
> You can use the new :def functions in legacy script. And you can use
> legacy functions in Vim 9 script. However, the mix of syntax can be
> confusing, thus I would recommend using :def functions in Vim 9 script
> and legacy functions in legacy script. You can make exceptions where
> you need to. E.g. keep using legacy script but move functionality
> that needs to be fast into a :def function.
>
> Keep in mind that Vim9 script is still under development, there are
> still quite a few todo items.

Is there any documentation on the new Vim9 script yet, and if so, where
is it. Also, congrats on and thank you for 29 years of a spectacular
editor.

Tony Mechelynck

unread,
Nov 4, 2020, 4:40:47 AM11/4/20
to vim_use
On Wed, Nov 4, 2020 at 10:04 AM Steve Litt <sl...@troubleshooters.com> wrote:
[...]
> Is there any documentation on the new Vim9 script yet, and if so, where
> is it. Also, congrats on and thank you for 29 years of a spectacular
> editor.
>
> SteveT
>
> Steve Litt

The documentation about Vim 9 script is at :help vim9.txt. That
helpfile keeps changing accoding to the development of Vim9 script but
it is supposed to correspond with the Vim version with which it is
distributed.

Best regards,
Tony.

BPJ

unread,
Nov 4, 2020, 5:59:15 AM11/4/20
to vim_use, vim-an...@vim.org, vim-dev, v...@vim.org, vim...@vim.org
Den mån 2 nov. 2020 19:20Bram Moolenaar <Br...@moolenaar.net> skrev:

Hello Vim users,

29 years ago the very first version of Vim was built and distributed.

Congratulations, and thanks for keeping it up all these years; it gives "long term maintenance" a whole new meaning!

And Vim is more popular than ever before!  So, what's going on these days?


VIM 9 DEVELOPMENTS - MAKING VIM SCRIPT FASTER AND EASIER TO USE

This is a big project.  A lot of progress has been made, but it will
take time until we'll have "version 1.0".  To make it possible to
compile a Vim script function, so that it can be executed 10-100 times
faster, it was required to make changes that are not backwards
compatible.  Such as not having a dictionary and list for the function
arguments, since that causes too much overhead for every function call.

Does this mean

-   That there are no varargs?
-   That varargs are made available in some other way?
-   That you can't pass lists and dictionaries as arguments? (Not likely!)
-    Something else entirely? (I.e. me being dense!)

/bpj

Bram Moolenaar

unread,
Nov 4, 2020, 7:39:13 AM11/4/20
to vim...@googlegroups.com, BPJ, vim-dev

> > VIM 9 DEVELOPMENTS - MAKING VIM SCRIPT FASTER AND EASIER TO USE
> >
> > This is a big project. A lot of progress has been made, but it will
> > take time until we'll have "version 1.0". To make it possible to
> > compile a Vim script function, so that it can be executed 10-100 times
> > faster, it was required to make changes that are not backwards
> > compatible. Such as not having a dictionary and list for the function
> > arguments, since that causes too much overhead for every function call.
>
> Does this mean
>
> - That there are no varargs?
> - That varargs are made available in some other way?

You can have arguments with default values, which are optional, and the
last argument can be a list, as explained in the help:

Variable arguments are defined as the last argument, with a name
and have a list type, similar to TypeScript. For example, a
list of numbers: >
def MyFunc(...itemlist: list<number>)
for item in itemlist


> - That you can't pass lists and dictionaries as arguments? (Not likely!)

Of course you can. But you can't access the arguments with the "a:"
dictionary or the a:000 list. Not only was this inefficient, it was
also rather weird. I don't think this will be missed.


--
hundred-and-one symptoms of being an internet addict:
194. Your business cards contain your e-mail and home page address.

Steve Litt

unread,
Nov 5, 2020, 6:11:02 PM11/5/20
to vim...@googlegroups.com
Confirmed!

Note to all still using Vim8: Tony's :help vim9.txt works on my Vim
8.2, so even if our distros currently don't give us vim9, we can start
learning about the new scripting language.

Jerry Peek at sites4people.com

unread,
Nov 5, 2020, 6:12:59 PM11/5/20
to vim...@googlegroups.com, Bram Moolenaar, vim-an...@vim.org, vim...@vim.org, v...@vim.org, vim...@vim.org
On 11/2/2020 11:19, Bram Moolenaar wrote:
Hello Vim users,

29 years ago the very first version of Vim was built and distributed.
And Vim is more popular than ever before!  So, what's going on these days?


VIM 9 DEVELOPMENTS - MAKING VIM SCRIPT FASTER AND EASIER TO USE
...

I started using Unix in 1981. I'm not sure when vi came on the scene -- I started using a teletype (with paper) and ed or ex. But I'm amazed that you've added so many features to the editor and I can still do basically anything I learned in the early vi days without having to think about how to do it in vim. What great work!!

I put together two chapters about vi in "UNIX Power Tools", in 1990 or so, when I worked for O'Reilly. It was fun writing articles about how to work around various vi bugs. :) By the way, I see that the 8th Edition of O'Reilly's "Learning the vi & Vim Editors" is due out in September 2021. They have an "Early Release - Raw & Unedited" version... see https://www.oreilly.com/library/view/learning-the-vi/9781492078791/ .

All the best,
Jerry Peek

PS: This old email address of mine is going away. A better address is jp...@jpeek.com.

Ottavio Caruso

unread,
Nov 6, 2020, 3:59:24 AM11/6/20
to vim...@googlegroups.com
On Thu, 5 Nov 2020 at 23:12, Jerry Peek at sites4people.com
<in...@sites4people.com> wrote:

> I put together two chapters about vi in "UNIX Power Tools", in 1990 or so, when I worked for O'Reilly.
[...]
>, I see that the 8th Edition of O'Reilly's "Learning the vi & Vim Editors"

Two solid books! Thanks Jerry. And thanks Bram for your baby Vim!

(I also use nvi, which is still a solid editor)

--
Ottavio Caruso

Tony Mechelynck

unread,
Nov 7, 2020, 7:55:51 AM11/7/20
to vim_use
On Fri, Nov 6, 2020 at 12:10 AM Steve Litt <sl...@troubleshooters.com> wrote:
>
> On Wed, 4 Nov 2020 10:40:23 +0100
> Tony Mechelynck <antoine.m...@gmail.com> wrote:
>
> > On Wed, Nov 4, 2020 at 10:04 AM Steve Litt
> > <sl...@troubleshooters.com> wrote: [...]
> > > Is there any documentation on the new Vim9 script yet, and if so,
> > > where is it. Also, congrats on and thank you for 29 years of a
> > > spectacular editor.
> > >
> > > SteveT
> > >
> > > Steve Litt
> >
> > The documentation about Vim 9 script is at :help vim9.txt. That
> > helpfile keeps changing accoding to the development of Vim9 script but
> > it is supposed to correspond with the Vim version with which it is
> > distributed.
>
> Confirmed!
>
> Note to all still using Vim8: Tony's :help vim9.txt works on my Vim
> 8.2, so even if our distros currently don't give us vim9, we can start
> learning about the new scripting language.
>
> SteveT

The latest Vim as of this writing is 8.2.1965 so no distro can yet
give us Vim 9.0 or higher; however we already can not only read about
the new functionality in the vim9.txt helpfile, we can even start
using it (at our own risk) because everything in that helpfile is
supposed to be included in the Vim build with which it is distributed.
For instance (in a recent Vim compiled with +eval i.e. Normal, Big or
Huge),
:echo exists(':def')
answers 2 (i.e. "I know an ex-command by that exact name").

Best regards,
Tony.

Suresh Govindachar

unread,
Nov 18, 2020, 11:05:39 AM11/18/20
to vim...@googlegroups.com, Br...@moolenaar.net

On 11/2/2020 10:19 AM, Bram Moolenaar wrote:
>
> Hello Vim users,
>
> 29 years ago the very first version of Vim was built and distributed.
> And Vim is more popular than ever before! So, what's going on these days?
>
>
> VIM 9 DEVELOPMENTS - MAKING VIM SCRIPT FASTER AND EASIER TO USE
>
> This is a big project. A lot of progress has been made, but it will
> take time until we'll have "version 1.0".
>
[...]>
> RELIABILITY - MAKING SURE VIM NEVER FAILS
>
> The functionality included with Vim for testing has been greatly
> improved. Besides unit testing,
>
[...]
>
> I dare to say that Vim is more reliable than ever before. Thanks to
> everybody who helped with that.
>
> Happy Vimming!
>

Congratulations, Bram. Thank yous for your product.

--Suresh
Reply all
Reply to author
Forward
0 new messages