概要
deinプラグインマネージャで21個のVimプラグインをインストールしている環境に対して、見直しを実施した。
Vimの基本機能で代用できるものを削除していった結果、12個までプラグインを削減することができた。
はじめに
著者は4年以上Vimを使っているが、設定ファイルがブラックボックス化してしまっている。
そこで、使っていないプラグインなど忘れられているプラグインなどあると思うので、2019年のうちに設定ファイルを整理してみたいと思う。
今回は、導入するプラグインを必要最低限に絞って素のVimを楽しむことにする。
本記事は、vimrcのプラグイン周りの整理したときの記録を残す。
見直し前の環境
1年前からVimを含めて設定ファイルはdotfilesにまとめている。導入自体は簡単で、ワンコマンドでデプロイできるようにしている。
整理前のvimは下記の状態になっていて、ステータスラインやアンドゥツリーなどIDEっぽくしている。
ここで、使用している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を使用しているが他のプラグインマネージャに移行するか検討する。
ただ、今更プラグインマネージャを入れ替えるのは手間なのでdeinのままで進める。
プラグイン | 変更点 | 理由 |
---|---|---|
Shougo/dein.vim | なし | 移行理由がなかったため |
カラースキーム
これまでmolokaiを使用してきたが、私にはすこし黒が強すぎるので他のcolorを試してみる。 http://vimcolors.com/ から、しばらくはonedarkを使用することにした。
プラグイン | 変更点 | 理由 |
---|---|---|
tomasr/molokai | ntk148v/vim-horizonへ移行 | 気分転換 |
LSP
LSP (Language Server Protocol) は、Microsoftが設計したプロトコルであり、エディタに必要な機能を実現するためのやり取りを規定している。
VimでLSPを利用する場合には、プログインを使う方法が最も簡単だと思われる。
ここでは、拡張機能の豊富な点からcoc.nvimを利用する。
プラグイン | 変更点 | 理由 |
---|---|---|
neoclide/coc.nvim | 追加 | LSPプラグインの中で、拡張機能に優れているため |
検索
fzf
(fuzzy finder) がコマンドラインであいまい検索ができるツールとなっている。
プラグイン | 変更点 | 理由 |
---|---|---|
junegunn/fzf | 追加 | あいまい検索を使うため (fzf 本体) |
junegunn/fzf.vim | 追加 | 検索時の入力ミスが目立ってきたため |
表示
プラグイン | 変更点 | 理由 |
---|---|---|
kshenoy/vim-signature | 追加 | Vimのシグネチャ機能を使えていないため、導入として |
machakann/vim-highlightedyank | 追加 | ヤンクの範囲漏れが目立ってきたので |
プラグイン削除
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 | 削除 | あまり使わないため |
見直し後の環境
最終的に導入しているプラグインは以下のようになった。
プラグイン | 概要 |
---|---|
Shougo/dein.vim | Vimプラグインマネージャ |
Shougo/vimproc.vim | Vimを非同期処理 |
ntk148v/vim-horizon | カラースキーム |
Lokaltog/vim-easymotion | キータッチで目的行に移動する |
neoclide/coc.nvim | LSPプラグイン |
airblade/vim-gitgutter | Git差分を左端に表示する |
itchyny/lightline.vim | ステータスラインをカスタマイズ |
ryanoasis/vim-devicons | ファイルタイプのアイコンを表示する |
junegunn/fzf | あいまい検索を使うため (fzf 本体) |
junegunn/fzf.vim | fuzzy finder |
kshenoy/vim-signature | シグネチャの位置をマークする |
machakann/vim-highlightedyank | ヤンク範囲を一時的にハイライトする |
整理前と比べて表示の部分もすっきりとした感じになった。
おわりに
今回はVimの使ってなかったプラグインの削除をして、vimrcの整理をした。 しばらくは、必要最低限度のプラグインで運用していき必要になったら追加していくようにする。
変更履歴
- 2019/12/02: 記事公開
- 2022/02/27: 2022年用に更新
- 2022/06/05: デザイン修正