Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

vimでGoのシンタックスチェックをquickrun+vimprocで非同期に行う

$
0
0

これまで、シンタックスチェックには scrooloose/syntasticを使っていて、特に問題なく快適でした。
ところが、最近プロジェクトの肥大化に伴い、syntasticでのシンタックスチェックに数秒〜10数秒ほどかかるようになってしまって、ついつい :wしちゃう僕としては辛かった。

syntasticのgoチェッカーを読んでみると、どうやらgofmtしてgo buildしてるっぽい。
gofmtはvim-goでgoimports使うよう設定しているので必要ない。
あとはgo buildさえ出来ればsyntastic使わなくてもいいという発想から、quickrun+vimprocを使うことに。
結果かなり快適になりました。

設定は以下。

"" vim-quickrunとvimprocのインストール
"" vimprocは別途makeの必要あり。詳細は省略。 
Plugin 'thinca/vim-quickrun'
Plugin 'Shougo/vimproc'

"" quickrun
let g:quickrun_config = get(g:, 'quickrun_config', {})

"" quickrunのランナーにvimprocを使用する
"" 成功時はバッファへ
"" エラー時はquickfixへ出力
let g:quickrun_config._ = {
\   'runner'    : 'vimproc',
\   'runner/vimproc/updatetime' : 60,
\   'outputter' : 'error',
\   'outputter/error/success' : 'buffer',
\   'outputter/error/error'   : 'quickfix',
\   'outputter/buffer/split'  : ':rightbelow 8sp',
\   'outputter/buffer/close_on_empty' : 1,
\}

"" quickrunにgo buildを登録
let g:quickrun_config["gobuild"] = {
\   'command': 'go',
\   'exec': '%c build %s',
\   "errorformat": '%f:%l: %m,%-G%.%#',
\}

"" *.goファイルを保存したら非同期にgo buildを実行
autocmd BufWritePost *.go :QuickRun gobuild

参考になったページ


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>