Report of #vimconf2016 — an international conference for Vim

Conference of the vimmer, by the vimmer, for the vimmer

7 min readNov 7, 2016

This is my report of #vimconf2016 which was held in Japan on 2016/11/05 (Sat). About one hundred vimmers participated in this conference.

I went to vimconf as a presenter and talked about vimlparser written in Go. I also enjoyed watching others talks and talking with lots of talented vimmers.

This is an “international” conference for Vim

#vimconf is an international conference. vimconf was held 4th times including vimconf2016 (vimconf2013, vimconf2014, vimconf2015). All of them are held in Japan and talks were in Japanese, but vimconf definitely aims to be an international conference.

A lot of slides are written in English, so I think you can enjoy reading them even if you cannot read Japanese. I’ll mention whether the slide is written in English or Japanese in this report.

I’m not an organizer of vimconf, but they seems to aim to make vimconf more international one, like inviting vimmers from outside Japan as a presenter and taking care participants who cannot read Japanese.

It’s difficult to hold a big conference. vimconf is a conference for Vim, the editor, so I assume it’s especially difficult for vimconf to get an understanding, supports, and sponsors compared to major programming language conferences. However, I believe it’s worth supporting it. Vim is one of must-have tool for lots of software developers and improves their productivity.

In order to make next vimconf more international/big/interesting conference, I assume your interest will helps. So, Please tell us your interest if you are interested in vimconf even if you are not in Japan.

My talk: Vim script parser written in Go

by haya14busa (English)

I talked about Vim script parser written in Go. I already posted an entry (English) about this, so please take a look at it to get an overview if you find interested in this.

In short, Vim script parser written in Go is fastest and easy to use, so it must broadens the possibility of tools for Vim script (e.g. linter, fixer, etc..)

I think Golang is good for working with Vim. Both Go and Vim works in multi platform. We don’t even have to take care the difference of language version like plugins using if_python. Vim 8.0 provides feature for working with external tools (e.g. job, channel), so I believe more and more Vim plugins uses this feature and Golang will comes in as a major language. In vimconf2016, 3 out of 10 talks mentioned Golang!

Introduction to Vim 8.0

by Ken Takata (English)

Ken takata is one of the most active Vim contributor and talks about Vim 8.0 feature, history of Vim, and contribution of Japanese people. He sent lots of patches between 7.4 and 8.0 including ‘breakindent’ and ‘lambda’ patches. You can find lots of his works in vim_dev.

It’s interesting that it took 10 years to include ‘breakindent’ patch. He talked that vim-jp plays a big role for contributions from Japanese people. The number of patches from Japanese people becomes 10 times in 5 years after vim-jp started. I often report problems to vim-jp and they helps me fix it or writes patches for the problem. I really thank them for their great works.

Vim as the MAIN text editor

by bird_nitryn (Japanese)

He talked about his history from starting to use Vim. He used VSCode Vim extention and switched to use Vim itself about one year ago. He reminds me my first year with Vim :)

Denite.nvim ~The next generation of unite~

by Shougo (English)

slide: gist

He talked about denite.nvim, which is the successor of unite.vim. He said unite.vim was slow and unite becomes too complex to extend anymore, so he developed denite.nvim with learning from unite and uses Python along with neovim’s remote plugin feature or if_python3 for Vim.

He said Vim itself becomes slow if the plugin consumes lots of memory as one of main reason why unite.vim is slow. I somewhat doubt this and asked him the source or something. He said that Vim script is not designed for such purpose and didn’t give me a clear source for this but denite is definitely fast. If the memory consumption was really the problem, I think it’s great to make a reproduction step and report to vim-dev.

I also asked him about other performance problems about unite.vim and it was really interesting to hear.

Go、C、Pythonのためのdeoplete.nvimのソースの紹介と、Neovim専用にpure Goでvim-goをスクラッチした話

(deoplete.nvim sources for Go, C, Python and development of vim-go for Neovim from scratch using pure-Go)

by zchee (Japanese)

The slide itself is Japanese, but you may find interested in his projects.

I think he is highly talented software developer and I always surprised with his lots of great activity. This talk was one of the most interesting talk in vimconf2016 for me.

He talked about deoplete sources he wrote and demonstrated completion using them. It was really fast! deoplete-go is not a mere port of major go completion for Vim and supports cgo completion.

He also talked about nvim-go, which is Go development plugin for Neovim written in pure Go using neovim/go-client. He developed nvim-go from scratch to learn Vim and Golang. It’s not just a port of vim-go (e.g. supports derekparker/delve debugger) but aims to make it compatible with vim-go.

I’m interested in developing Vim plugin in Golang for Vim8.0 these days, so his talk was really interesting.


by tenntenn (Japanese)

He talked about the practice of Go development tools which works in across any editors and how to write such tools. As I already mentioned Go in this post several times, I also think Go developments tools are really awesome and we can develop tools for any editors including Vim by using Golang.

btw, his Gopher images are really cute!

vim-mode-plus for Atom editor

by t9md (English)

If there were vote system for the best talk in vimconf, I would give my vote for this talk. t9md’s idea is always interesting and activities and power for realizing it is really impressive. I always respect his works.

He got a deep understanding about Vim-ish way through the development of vim-mode-plus and implemented original (more!?) Vim-ish feature.

As for the keep cursor position by operator, I back-ported it for yank operator (haya14busa/vim-operator-flashy). Keep cursor position and highlight the object is really useful. But, in order to support this feature by Vim for general operators, it’s difficult because Vim doesn’t expose hook or API for this. We also needs handle special cases for “change” operator like replace(vim-operator-replace).

t9md implemented Vim feature by himself in vim-mode-plus in clean and extensible way with deep understanding of Vim and it enables him to implement interesting feature on top that. It’s really awesome!

Japanese documentation for Vim

by MURAOKA Taro (Japanese)

This talk is about translating Vim documentation in Japanese. He explained how vim-jp manages translation work and call for our contribution. You can also find translated document here

I didn’t use Japanese doc personal these days, but without translated document, I assume Vim community in Japan would be small, so I think I should contribute it in my spare time. Development of helper tools for translation maybe interesting.


by aiya000 (Japanese)

He introduces several Vim plugins which helps development.

Best practices for building Vim plugins

by thinca (English)

slide: gist presented in Vim by his thinca/vim-showtime plugin

thinca has deep knowledge of Vim script and the practice for developing Vim plugins. If you are Vim plugin developer, you must check it out! It’s worth reading it.

I always learn a lot for developing Vim plugin from him and his plugin.

Party (w/ dinner by vimconf)

I talked with lots of vimmers but especially it was interesting that talk with t9md more about vim-mode-plus and talk with kaoriya (MURAOKA Taro) about lua translator, how to write patch which is easier to included, implementing feature in Vim itself or in Vim plugin and Vim architecture. etc…

I personally inclined to make Vim plugin, but some of them might be better to implement in Vim itself. I developed haya14busa/incsearch.vim but some of it’s feature is implemented in Vim itself these days (like moving cursor while searching)…

kaoriya said that it’s easier to ask vim-dev include new feature patches, compile option is useful to enable it optionally.

Conclusion & Next Expectation… :)

I really enjoyed communicating with lots of vimmers in Japan. There are lots of Japanese Vim plugin developer and Vim contributors (C developer).

A lot of plugin developers and Vim users from various background in Japan participates in vimconf. It’s really interesting to communicate with them but I want to hear more from Vim contributors in Japan and from Vim users outside Japan :)

At the end, please let me say thank you, vimconf staff for their hard work! (btw, PA Kuniwak is the developer of vint and manages high quality live recording.) and thank you, mixi, Inc. for providing a place.

I really enjoyed #vimconf2016! It was best vimconf ever :)