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

vim-goを使ってみた

$
0
0

GoをVimで書こうとした時には、プラグインを入れたくなります。
Vimのプラグインであるvim-goである程度困らない環境を構築していきます。

前提環境

elementsversion
go versiongo1.12.6 darwin/amd64
OSMacOS Mojave 10.14.5
VimVIM - Vi IMproved 8.1

GOPATHなどは通しておいてください。

とりあえずインストール

vim-goをインストールします。
NeoBundleVundle、vim scriptでインストールしても良いですが、
ここではvim-goのレポジトリに書いてある手順でインストールしていきます。

と言っても、git cloneするだけです。

$ git clone https://github.com/fatih/vim-go.git ~/.vim/pack/plugins/start/vim-go

vimを再起動して、:GoPathなどのコマンドが使えれば完了です。

エラーの対応

goplsが見つからない

Vimを再起動し、.goのファイルを開くと、次のようなエラーが出ました。

vim-go: could not find 'gopls'. Run :GoInstallBinaries to fix it
Errorr detected while processing function <SNR>36_register[5]..go#lsp#DidOpen

対応

素直に:GoInstallBinariesを実行します。
一部のツール(gurugoimportsなど)が既にインストールされている場合は:GoUpdateBinariesも実行します。

tools/cmd/goplsがダウンロードできない

どうして。

対応

色々と調べてみると、どうやら元々入っていたGoのバージョンが果てしなく古かったためでした。12.6ではダウンロードできました。
最新のバージョンを使いましょう。

Features that rely on gopls will not work correctly outside of GOPATH or a module

なんじゃこりゃ。

対応

今だに原因究明できていませんが、go listコマンドが失敗するとこのようなエラーが出る場合があるそうです。

重要なエラーではなさそうなので、握りつぶしておきます。

let g:go_null_module_warning = 0

テンプレートを消したい

なにも設定していないと新しいGoファイルを作成した時にテンプレートが吐き出されるが正直なくていいなと感じました。

packagemainimport"fmt"funcmain(){fmt.Println("vim-go")}

対応

以下のコマンドで消せます。

let g:go_template_autocreate = 0

保存が遅すぎる

対応

vim-go: initialize goplsと表示される場合はgoplsが初期化する時に時間がかかっている場合があります。
一度、GoUpdateBinaries goplsで直接アップデートして再度保存を試みてください。

そうでない場合は、goimports(パッケージのimportの削除や追加をよしなにやってくれるツール)やgofmt(フォーマットしてくれるツール)の影響やsyntastic(保存時にLintとかやってくれるツール)の影響が大きいことが考えられます。

次のコマンドで、設定を変更します。

let g:go_fmt_command = "gofmt"
let g:syntastic_go_checkers = ['golint', 'govet', 'errcheck']

おわりに

快適なGoライフを!!

参考


Viewing all articles
Browse latest Browse all 5608

Trending Articles



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