LeavaTailの日記

初心者がLinuxカーネルについて学習していく過程

vimで使用するプラグインを断捨離してみた

はじめに

Vimを使い始めてから4年経ち、徐々にvimに侵食されつつある。 その一方で、話題になっているプラグインをひたすら導入していたため、vimrcがブラックボックス化してしまっている。 そのため、使っていないプラグインなど忘れられているプラグインなどあると思うので、2019年のうちに設定ファイルを整理してみたいと思う。 今回は、導入するプラグインを必要最低限に絞って素のVimを楽しむことにする。

本記事は、vimrcのプラグイン周りの整理したときの記録を残す。

現状

1年前からVimを含めて設定ファイルはdotfilesにまとめている。導入自体は簡単で、ワンコマンドでデプロイできるようにしている。

github.com

整理前のvimは下記の状態になっていて、ステータスラインやアンドゥツリーなどIDEっぽくしている。

f:id:LeavaTail:20191201001906p:plain
整理する前のvim

ここで、使用しているVimプラグインを抜粋してみる。 deinを利用してプラグインを管理している。

プラグイン 概要
Shougo/dein.vim Vimプラグインマネージャ
Shougo/vimproc.vim Vimを非同期処理
tomasr/molokai カラースキーム
Shougo/neosnippet-snippets スニペット定義ファイル
Shougo/context_filetype.vim 動的にfiletypeを判定する
nathanaelkane/vim-indent-guides インデントの可視化
ujihisa/neco-look 英単語を補完
sjl/gundo.vim アンドゥツリーの表示
Lokaltog/vim-easymotion キータッチで目的行に移動する
Shougo/vimshell Vimからシェルを起動する
scrooloose/nerdtree ディレクトリツリーを表示
ryanoasis/vim-devicons ファイルタイプのアイコンを表示する
roxma/nvim-yarp deopleteの依存パッケージ
roxma/vim-hug-neovim-rpc deopleteの依存パッケージ
airblade/vim-gitgutter Git差分を左端に表示する
mbbill/undotree アンドゥツリーを表示(gundoできない環境用)
itchyny/lightline.vim ステータスラインをカスタマイズ
Shougo/neocomplete.vim コード補完(deopleteできない環境用)
Shougo/deoplete.nvim コード補完
Shougo/neosnippet スニペット機能
cespare/vim-toml TOMLのシンタックス

実施

プラグインマネージャの選定

現在、deinを使用しているが他のプラグインマネージャに移行するか検討する。

  • Vundle
  • vim-pathogen
  • vim-plug
  • NeoBundle

ただ、今更プラグインマネージャを入れ替えるのは手間なので (めんどくさい) のでdeinのままで進める。

プラグイン 変更点 理由
Shougo/dein.vim なし 面倒なので

カラースキームの選定

これまでmolokaiを使用してきたが、私にはすこし黒が強すぎるので他のcolorを試してみる。 Vim Colors から、しばらくはonedarkを使用することにした。

プラグイン 変更点 理由
tomasr/molokai joshdick/onedark.vimへ移行 気分転換

Vimの標準コマンドで代用できるプラグインの削除

NERDTree は、ディレクトリツリーを表示してくれるプラグインである。 現状は、起動時に自動でディレクトリを表示させるようにして、開発効率の貢献をしてくれたと思っている。 しかし、:e .ディレクトリ表示ができるらしいので、あえてこのプラグインを削除して運用してみることにした。

VimShellは、Vimからシェルを起動するプラグインである。 ちょっとしたプログラムやスクリプトを確認するときに約に立ってくれたプラグインでもあるが、:terminalで代用できることもありいったん削除することにした。

deopleteは補完ツールプラグインの一つで、入力した文字から動的に補完バーを表示してくれる。 こちらもかなりお世話にになっているプラグインで、neco-lookと組み合わせて開発効率にかなり貢献してくれた。 しかし、VimにはデフォルトでCtrl-X補完機能が備わっているため、しばらくはそちらで運用してみることにした。

プラグイン 変更点 理由
scrooloose/nerdtree 削除 :e .で代用できるため
Shougo/vimshell 削除 :terminalで代用できるため
Shougo/neocomplete.vim 削除 Ctrl-X補完モードで代用
Shougo/deoplete.nvim 削除 Ctrl-X補完モードで代用
Shougo/neosnippet-snippets 削除 deopleteを削除するため
ujihisa/neco-look 削除 deopleteを削除するため
Shougo/neosnippet 削除 deopleteを削除するため
roxma/nvim-yarp 削除 deopleteを削除するため
roxma/vim-hug-neovim-rpc 削除 deopleteを削除するため

最近あまり使用していなかったプラグインの削除

context_filetypeは動的にfiletypeを判定してくれるツールで、ファイル内に複数のfiletypeがあるような言語での開発などに大いに活躍してくれる。 しかし、現在ファイルシステムの開発やCプログラムを触っている私には、そのような機会がなくあまり恩恵が受けられなかったので削除して運用する。

vim-indent-guidesは、インデントを可視化するプラグインで、プログラムの深さを意識させてくれる。 しかし、タブ文字派に転職したことでタブ文字からインデントを意識できるようになったので削除して運用する。

gundoは、アンドゥツリーを表示するプラグインであり、戻したりやり直したりを容易にできるプラグインである。 しかし、自分はこの機能を忘れて普通にアンドゥやリドゥを使っていることが多かったので削除して運用する。

vim-tomlはTOML用のシンタックスを提供してくれるプラグインであるが、あまりTOMLファイルを書かないので必要になったときにインストールすることにして、今回は削除して運用する。

プラグイン 変更点 理由
Shougo/context_filetype.vim 削除 あまり使わないため
nathanaelkane/vim-indent-guides 削除 あまり使わないため
sjl/gundo.vim 削除 あまり使わないため
mbbill/undotree 削除 あまり使わないため
cespare/vim-toml 削除 あまり使わないため

新しく導入するプラグイン

dense-analysis/aleは非同期でソースコード静的解析してくれるプラグインである。 以前、vim-syntastic/syntasticを使用していたが、少々使いづらいイメージがあったので削除していた。 今回は非同期でできるようになっているとのことなので、新規導入してみた。

プラグイン 変更点 理由
dense-analysis/ale 追加 静的解析を使いたい

結果

最終的に導入しているプラグインは以下のようになった。

プラグイン 概要
Shougo/dein.vim Vimプラグインマネージャ
Shougo/vimproc.vim Vimを非同期処理
joshdick/onedark.vim カラースキーム
Lokaltog/vim-easymotion キータッチで目的行に移動する
airblade/vim-gitgutter Git差分を左端に表示する
itchyny/lightline.vim ステータスラインをカスタマイズ
ryanoasis/vim-devicons ファイルタイプのアイコンを表示する
dense-analysis/ale 非同期にソースコード静的解析してくれる

整理前と比べて表示の部分もすっきりとした感じになった。

f:id:LeavaTail:20191202004125p:plain
最終的なVim

おわりに

今回はVimの使ってなかったプラグインの削除をして、vimrcの整理をした。 しばらくは、必要最低限度のプラグインで運用していき必要になったら追加していくようにする。

参考