LoginSignup
5
5

More than 3 years have passed since last update.

最低限の手間で、開発にも使えるVim環境を構築する。

Last updated at Posted at 2021-01-29

最低限の手間で、簡易的に開発にも使えるVim環境の構築を目指します。
最近取り組んでいるシンプルに環境を作るシリーズの一環です。

環境

WSL2上のUbuntu20.04で作業しています。

目標

やること
1. Vim8のインストール/更新
2. プラグインマネージャ(vim-plug)のインストール
3. LSP1を用いた各種プログラム言語の補完機能
4. ステータスラインをドレスアップ
5. Linter2の導入(Python/Go/Dockerを例として)

やらないこと
・Vimから離れられなくなるあれやこれや

Vim8のインストール/更新

Ubuntu20.04にはデフォルトでvim8.1が入っていますが、LSP機能を提供するプラグイン(coc)を利用する場合にvimは8.2以上の方が良いようなので更新します。

# リポジトリの追加
sudo add-apt-repository ppa:jonathonf/vim
sudo apt update

# インストールを実施
sudo apt install vim

# 確認
vim --version
> VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Jan 08 2021 14:00:27)

Nodejsをインストール

cocを動作させるにはnodejs 10.12以上が必要です。マニュアルにありませんがnpmも必要なので一緒に入れます。

nodejs v14系など、もっと新しいものを入れたい場合はnodesourceなどを参照してください。

sudo apt install nodejs npm

node --version
> v10.19.0
npm --version
> 6.14.4

プラグインマネージャ(vim-plug)をインストール

vimのプラグインマネージャはVundleなどもありますが、cocの公式ドキュメントがvim-plugを使っていたので合わせます。

curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
    https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

存在しない場合は~/.vimフォルダを同時に作成します。

vim8の設定ファイルを作成

次の内容で~/.vim/vimrcを作成します。
vimでコピペする場合にインデントや自動コメントで結果が崩れる場合は「:set paste」の投入後に張り付けるとよいです。

"
" 通常のオプション
"

" lightlime利用のためにステータスラインを2行にする
set laststatus=2

" ビープ音を消します
set belloff=all

" コメントを灰色へ変更
hi Comment ctermfg=gray

"
" 以降、Pluginのための記述
"
call plug#begin('~/.vim/plugged')

" ステータスラインをかっこよくします
Plug 'itchyny/lightline.vim'

" coc
Plug 'neoclide/coc.nvim', {'branch': 'release'}

call plug#end()

プラグインのインストールを実行

次のコマンドで上記設定ファイルに記述したプラグインをインストールします。

vim +PlugInstall +qall

あるいは、vimのコマンドラインモード(EXモード)で次のコマンドを入力します。
(コピペはコロンの右側「CocInstall coc-python」のみです。以降同様です。)

:PlugInstall

ここまでで冒頭の「やること」の4.までが完了しました。

言語毎のlinterなどの導入

Vimを開発に使う場合は、vim-pythonのような言語毎のvimプラグインをインストールする方も多いと思いますが、最近はVSCodeのおかげもありLSP環境が充実してきているので本記事ではcocのエクステンションを用いる方針で環境構築します。

Python

ここではflake8を利用する想定で解説します。
(venvやpyenvなど環境管理ツールを使っている場合はそれぞれの方法で環境をアクティベートした状態で実施してください。何を言っているか分からない方は無視していただいて問題ないです)

flake8をインストール

pip install flake8

vimのコマンドラインモードでcoc-pythonをインストール

:CocInstall coc-python

.pyファイル編集時にlinterを聞かれるのでflake8を選択します。

Go言語

goplsをインストール

GO111MODULE=on go get golang.org/x/tools/gopls@latest

vimのコマンドラインモードでcoc-goをインストール

:CocInstall coc-go

Docker

:CocInstall coc-docker

docker-compose用にyamlのプラグインも入れておく

:CocInstall coc-yaml

補足

vimrcのコピペで導入したプラグインの説明など。

lightline

ステータスラインを綺麗にするプラグインです。
インサートモードとコマンドモードで色が変化して便利です。

coc

LSPを使用して各種言語の保管やLint機能を提供します。

その他プラグイン探しの参考として

よく使われているvimのプラグイン top20

最後に

ここ数年、私はNeovimを使ってきました(VSCodeも使っていますが)。今もNeovimに不満はなく、lspやらファイラーやら整備して便利に使っています。今回は仕事でAWS EC2上のUbuntuで作業する用事があり、ここにNeovim環境を再構築するのは気が引けたので、シンプルながらソコソコ使えるVim8環境を目指した結果を記事にしました。

Vim8を本格的に使うのは初めてなので、なるべく定石と思われる方法を心がけていますが勘違いが混ざっていたらご指摘いただけるとありがたいです。投稿時点で完成ではなく、おかしな点など随時更新していきたいと思います。シンプルな設定を目指しているためプラグインのLazyLoadなどvimユーザからすると物足りないかもしれませんがコンセプトとしておおめに見ていただければと思います。


  1. LSP (Language Server Protocol)は補完や定義ジャンプなど、プログラミング時に役立つ機能を提供するための仕組みです。 

  2. Linterは一定の基準に従ってプログラムの誤りや書式のズレをチェックして指摘してくれる機能です。Pythonなど広く使われている言語にはこのチェック基準が複数あり、後半で登場するflake8もそんなチェック基準のうちの一つを提供するツールです。 

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5