Vimは、組み込みでいくつかの言語のコンパイル設定ファイルを持っている。 Debian, Vim 8.1なら、/usr/share/vim/vim81/compiler の下に ${言語名}.vim というファイルが置いてある。golangなら /usr/share/vim/vim81/compiler/go.vim。このPATHは runtimepath か packpath を見ればみつかる。
これを読み込むことで (拡張子で自動で読んでくれるわけではないらしい?) quickfix errorformatが適用される。
:compiler! go.vim
必要があれば autcmd などで拡張子毎の設定をしておくと良さそう。
その他
:help compiler によると
What the command actually does is the following:
- Delete the "current_compiler" and "b:current_compiler" variables.
- Define the "CompilerSet" user command. With "!" it does ":set", without "!"
it does ":setlocal".
- Execute ":runtime! compiler/{name}.vim". The plugins are expected to set
options with "CompilerSet" and set the "current_compiler" variable to the
name of the compiler.
- Delete the "CompilerSet" user command.
- Set "b:current_compiler" to the value of "current_compiler".
- Without "!" the old value of "current_compiler" is restored.
compiler/{name}.vim を読んでみると、makeprg (:make が発効されたときのコマンド)とerrorformat が設定されているようだ。 errorformatを自分で書くときののexampleとしても役立つ。
参考
:help runtime:help compiler:help current_compiler:help makeprg