How I

Yasuhiro Matsumoto, a.k.a. mattn

Systems engineer and OSS developer

Osaka, Japan

Who are you and what do you use Vim for?

I’m Yasuhiro Matsumoto working as system engineer in japan . I met vim 15 years ago. I used Stevie (it’s vi clone) on HP-UX. I’ve known vim in later but didn’t use vim because I didn’t know well. I often tried many vi clones. Elvis, Stevie, nvi etc. Then I met a japanese localization of vim called jvim. jvim was useful but it didn’t upgrade even though vim was upgraded. I had some frustrations for jvim. “Why jvim doesn’t contribute to vim?”, “Why don’t follow latest version?”. Soon after vim5 is released, I decided to send a patch to vim-dev. The first patch I sent was fixing guifont on windows. Since it was quickly merged, I began to write many patches for vim after this.

I noticed that I use vim for 15 years.

I use vim in any-time. Writing codes, HTMLs, script languages, memo, writing e-mail, or draft of system design documentation that will become Word/Excel document in later. I use Windows/UNIX both. You might know, I’m windows hacker. I’m often sending patches to many OSS products to support Windows. So my vimrc must works on multi-platform. In recently, it isn’t, but I did download latest code of vim and compiled it, uses latest version of vim in always. I’m reading all of official patchs even now. So i uses latest version of vim always. Ordinarily, I applies few draft patches that will be sent to vim-dev.

I’m a member of vim-jp that is japanese working group of vim. We are discussing about bugs. Writing patches, support newbie. If you can ask questions about vim or vim-plugins in japanese, see https://github.com/vim-jp/issues/issues. There are many vim hackers.

Back to my talking, I have little occasion to use WYSIWYG editor. I don’t know why. But this is caused that I love plain text. In office, I use vim.exe on windows command prompt. I love CUI. So I rarely use explorer.

In usually, I’m writing C,C++,C#,Go,Perl,Python,Ruby,Lua, etc. And of course Vim script. I use vim for all. In my home, I use Linux for writing codes. Currently, it’s ubuntu 14.04, and i love it.

Introduce us to your Vim config.

I don’t publish my vimrc. When start to use new PC or laptop, I make new vimrc always. So i don’t share it. But there are few points that I keep a thing.

Don’t keep old plugins. Remove them if you don’t use.

Vim plugins make vim slowly. If vim is slowly, it stops the thinking.

Don’t spend a lot of time for the maintenance of vimrc.

That you wanted to do in the limited times, it shouldn’t be a maintenance of vimrc.

If you write plugins, put it on github.

It should be shared in the world. And it should be improved by many OSS developers.

Plugins

I use about 30 plugins for vim. I below that indispensable among them.

CtrlP is useful to find file/buffer/window/mru. Currently, I’m maintener of fork of CtrlP: https://github.com/ctrlpvim/ctrlp-vim. When I start to write codes, I use sonictemplate-vim to make skeleton of the code. It works as template/snippet both. After writing codes, I use vim-quickrun. Typing <leader>r to run them. It’s awesome.

I manage vim plugins with vim-unbundle. It is very small but powerfull. It load plugins in lazy when filetype was changed.

Mappings

" toggle list
nnoremap <F2> :set list!<cr>
" rotate tab size
nnoremap <silent> <F3> :let &ts=(&ts*2 > 16 ? 2 : &ts*2)<cr>:echo "tabstop:" . &ts<cr>

This works pretty good for me. F2 toggle list-chars. F3 rotate tabstop.

Colorscheme

I use solarized with background=dark for colorscheme. I love settle. But I don’t use any colorschemes on vim.exe. Because it’s ugly.

Statusline

I don’t customize statusline because it’s yak shaving.

Leader

I don’t change mapleader. So it’s backslash. This is list that is in my vimrc.

nnoremap <leader>K :exe 'Ag' expand('<cword>')<cr>
nmap <leader>G <Plug>(openbrowser-open)
nnoremap <c-e> :<c-u>CtrlPLauncher<cr>
noremap <leader>f :<c-u>CtrlPFunky<cr>

I use this mappings for 10 years.

What have been the most useful resources for you to learn Vim?

vim-jp that I said in above. They have held a vimrc reading party on Saturday night every week. They read one vimrc on github in every week. It is very practical. I don’t have many resources I learned about vim. I learned vim in self. However, I read usevim.com in some times.

Share a piece of Vim script you’ve written and talk about what it does.

emmet-vim : https://github.com/mattn/emmet-vim

This is powerful plugin to writing HTML/CSS etc.

gist-vim : https://github.com/mattn/gist-vim

This plugin is possible to share your text on gist.github.com.

I wrote many vim plugins. Most of them are not useful. And it’s crazy.

See: https://github.com/mattn

What have you been working on recently in Vim?

In practice, I’m writing this in Vim. Vim is used as programmer’s text editor. But it’s useful to write anything other also. Someone might write poem. Someone might write love letters. :)