note 2019-02-28T01:49:54+09:00

vim-lspはじめました

vim-goGO111MODULE=on 時の挙動が気になり、prabirshrestha/vim-lsp に移行した際の設定メモ。

セットアップ手順

  1. Language Server として bingo をインストールする

    go get -u github.com/saibing/bingo
  2. vim-lsp を設定する

    Plug 'prabirshrestha/async.vim'
    Plug 'prabirshrestha/vim-lsp'
    if executable('bingo')
        augroup LspGo
            au!
            autocmd User lsp_setup call lsp#register_server({
                \ 'name': 'go-lang',
                \ 'cmd': {server_info->['bingo', '-mode', 'stdio']},
                \ 'whitelist': ['go'],
                \ })
            autocmd FileType go setlocal noexpandtab
            autocmd FileType go setlocal omnifunc=lsp#complete
            autocmd FileType go nmap <C-]> :LspDefinition<CR>
            autocmd FileType go nmap K :LspHover<CR>
            autocmd FileType go nmap ]] :LspDocumentSymbol<CR>
            autocmd BufWritePre *.go LspDocumentFormatSync
        augroup END
    endif

キーマッピングは Wiki の例をそのまま使えば問題ない。