Vim 8.0 released and Now, I’m a contributor of Vim !!!

haya14busa
4 min readSep 12, 2016

--

[Vim 8.0 released! — Google Groups](https://groups.google.com/forum/#!topic/vim_dev/CmiGxtJ7fn4)

Vim 8.0 finally released!

I’m really excited about it. New features of Vim 8.0 are

  • Asynchronous I/O support, channels, JSON
  • Jobs
  • Timers
  • Partials, Lambdas and Closures
  • etc…

It’s really cool and broaden the possibility of Vim.

Now Vim can easily communicate with other programs by Channels and Jobs **Asynchronously** ! Timer feature also helps to handle the communications and Lambdas and Closures helps to write callback for them.

Some plugins already use this feature. For example, let me introduce vim-quickrun. It run commands in buffer quickly and asynchronously.

I’m also writing scripts using job and channel! Through writing the scripts and use them, I found and reported some issues and wrote a patch!

Patch 7.4.2258
Problem: Two JSON messages are sent without a separator.
Solution: Separate messages with a NL. (closes #1001)

Patch 7.4.2287
Problem: The callback passed to ch_sendraw() is not used.
Solution: Pass the read part, not the send part. (haya14busa, closes #1019)

Lambdas and Closures also helps to write Vim script easily and broaden the possibility of Vim script. It’s definitely one of the killer feature of Vim 8.0 for Vim script lovers like me ;)

Lambda patch was written by mattn and vim-jp members in the past https://github.com/vim-jp/issues/issues/632 (Japanese), and when I heard the Vim 8.0 will come, I really wanted lambda feature included in Vim 8.0. So, I updated patch for latest Vim at that time, wrote tests in New style testing format which is also the good feature of Vim 8.0, and asked vim-jp for help. I didn’t do much things, but thanks to the hard work of vim-jp members, the lambda patches was included! I’m very happy with it :)

:echo map(range(10), {i -> i*2})

We can write lambda like this instead of ugly string arg! (map(range(10), ‘v:val * 2’) ). Goodbye, Vim under 7.4 !

Now, I’m a contributor of Vim!

Between Vim 7.4 and 8.0, I wrote 4 patches which are included into Vim!

:helpgrep haya14busa

You can see my contributions by executing :helpgrep haya14busa .

I developed some Vim plugins like https://github.com/easymotion/vim-easymotion and https://github.com/haya14busa/incsearch.vim in Vim script, but due to the lack of knowledge and experience of C and Vim source code, I couldn’t write patches to Vim itself before.

However, even though the lack of C experience, I can try to debug it through Vim interface or reading code carefully. I can ask vim-jp members to help, and I can write some patches and contribute to Vim! The patches are smalls, but I really like them. I’m happy with the code I wrote runs in Vim, which is running in lots of computers from lots of people from all over the world!

It’s a great honor! I’ll continue to contribute Vim through Vim script, writing patches and communicating other Vimmers!

Thank you Bram, Vim developer, vim-jp members and all Vim users

https://github.com/vim/vim/graphs/contributors

You can see really hard and lots of works of Bram and Vim developers from the graph. The patch number of Vim 7.4 reached one thousand, two thousand, and finally 7.4.2367! Vim 7.4 was released in August 2013, so 3 years of works are in Vim 8.0.

About 3 years ago, I started to using Vim and I was stunned by Vim’s awesomeness. I started customize Vim by vimrc soon, communicate with Vimmers in Japan, improve easymotion and started to write many Vim plugins, try to write patches to Vim… I enjoyed programming using Vim through 3 years. Vim always stands by me, helps me, and makes me strong.

I really appreciate it, so let me say thank you to Bram for creating and developing Vim and thank you to vim-developers and all vimmers for supporting Vim.

Happy Vimming!

--

--